Bonjour, petit nouveau, j’aurais besoin d’aide : je voudrais que mon code s’arrête automatiquement et clôture toutes les positions a partir d’un certain nombres de pertes (ici 200 euros) et redémarre à une période donnée (par exemple 1 journée après)
Bien merci, à celui qui saura me répondre
Mon code :
DEFPARAM CumulateOrders = False
ONCE OrderSize = 1
noEntryBeforeTime = 080000
timeEnterBefore = time >= noEntryBeforeTime
noEntryAfterTime = 183000
timeEnterAfter = time < noEntryAfterTime
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
indicator1 = RSI[14](close)
c1 = (indicator1 <= 30)
IF c1 AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry AND not longonmarket THEN
EXITSHORT AT MARKET
IF PositionPerf(1) < 0 THEN
OrderSize = OrderSize * 2
ELSIF PositionPerf(1) > 0 THEN
OrderSize = 1
ENDIF
BUY ordersize CONTRACT AT MARKET
ENDIF
indicator2 = RSI[14](close)
c2 = (indicator2 >= 70)
IF c2 AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry AND not shortonmarket THEN
SELL AT MARKET
IF PositionPerf(1) < 0 THEN
OrderSize = OrderSize * 2
ELSIF PositionPerf(1) > 0 THEN
OrderSize = 1
ENDIF
SELLSHORT ordersize CONTRACT AT MARKET
ENDIF
pour commencer tu dois te clarifier ce que signifie précisément pour toi “perte 200 euros”, car ça peut être perte par rapport au capital initial (tel que tu l’as fait avec strategyprofit), mais aussi perte par rapport au point haut de ta courbe P&L (le highwatermark) et là ça se programmerait différemment, ou bien perte sur la journée quel que soit le résultat de la session précédente tant qu’elle gagnait ou perdait moins de 200 (possible découpage par jour étant une possibilité sous-entendue par la possibilité de reprendre la journée suivante), ou bien pertes consécutives soit que sur positions clôturées soit tenant compte aussi du latent de positions en cours… bref autant de cas précis qui se programment tous différemment mais qui correspondent tous à un plus vaste “perte de 200 euros”.
Ensuite, quit est définitif, or tu souhaites pouvoir reprendre automatiquement, il faut donc faire autrement.
Tu peux utiliser ce qu’on appelle un flag, une variable booléenne qui vaudra 0 ou 1 selon que tu interdis le trade ou l’autorise, et au lieu de “quit” on va se servir de ce flag, appelons-le fairepause par exemple, pour filtrer les ouvertures de positions, avec les modifications suivantes respectivement en fin, début et milieu du code.
1) En fin de code, là où tu faisais le quit, à la place on va faire:
oncefairepause=0// initialise en mode ok pour trader pour la 1ère prise de position
iffairepause=1and(conditionsderé-autorisationdutrading)then// tant qu'on vient d'une bougie où la pause était en vigueur, vérifie si on peut arrêter la pause
fairepause=0
endif
3) Enfin, au milieu du code, tu rajoutes à tes conditions long:
To help us continually offer you the best experience on ProRealCode, we use cookies. By clicking on "Continue" you are agreeing to our use of them. You can also check our "privacy policy" page for more information.Continue