Bonjour,
je m’arrache les cheveux pour coder un déplacement de stop loss !!!
Je veux après être entré en position remonter mon SL sur un plus bas après que les prix aient bougés en ma faveur et ca ne marche pas
Mon code :
IF NOT LongOnMarket THEN
trail = 0
ENDIF
IF LONGONMARKET THEN
IF trail=0 AND low[0] > low[1] AND low[2] > low[1] AND low[1] > tradeprice(1) THEN
trail = low[1]
ENDIF
ENDIF
IF trail > 0 then
SELL AT trail STOP
ENDIF
A première vue, je pense qu’il s’agit d’un problème de condition. As-tu essayé de GRAPH la condition ? Si elle ne s’active pas (toujours égal à 0), alors il faut la revoir. Bien sûr tu sais déjà que dans ton code, le stop ne remontera qu’une seule fois, n’est ce pas ?
GRAPH trail=0 AND low[0] > low[1] AND low[2] > low[1] AND low[1] > tradeprice(1)
Bonjour,
J’ai fait un graph de trail et il ne fait que augmenter
Merci de poster la stratégie afin d’y voir un peu plus clair 🙂
DEFPARAM CUMULATEORDERS = FALSE
R= 0
IF NOT LongOnMarket THEN
trail = 0
ENDIF
IF close > highest[15](close[1]) then
R = 1
endif
CAPITAL = 10000 + STRATEGYPROFIT
IF (R > 0) THEN
SL = low[1] - 0.03
LM = HIGH[0] + HIGH[0]*0.001
//TP = LM + 2.5*(LM - SL)
N = (CAPITAL * 0.01) / (LM - SL)
STOPLOSS = LM - SL
BUY N SHARES ROUNDEDUP AT LM STOP
SET STOP LOSS STOPLOSS
ENDIF
IF LONGONMARKET THEN
IF trail=0 AND low[0] > low[1] AND low[2] > low[1] AND low[1] > tradeprice(1) THEN
trail = low[1]
ENDIF
ENDIF
if trail > 0 then
SELL AT trail STOP
endif
graph trail
Sauf erreur de ma part, cela semble fonctionner correctement. Lorsque la condition testée à la ligne 31 est vrai, le trail (soit le nouveau stoploss) est calculé et un ordre conditionnel STOP est placé en attente qu’il soit touché. Le prix du trail correspond bien à la sortie (symbole d’une croix) sur le trade de l’exemple ci-dessous attaché.
Sur les autres ordres, on constate bien que ce nouveau stop est bien calculé qu’une seule fois et qu’il ne bougera plus tant que l’ordre ne sera pas fermé.