remonter stop à 0 une fois X points gagnés
Forums › ProRealTime forum Français › Support ProOrder › remonter stop à 0 une fois X points gagnés
- This topic has 6 replies, 2 voices, and was last updated 7 years ago by AlexMarlier.
-
-
09/19/2017 at 7:54 AM #46553
Chers contributeurs,
je souhaite intégrer un code à mes stratégies.
Je soahite que ce code fasse en sort que quand ma position a atteint x gains eut etre en % ou en pts, ici j’ai voulu faire 0,3%) le stop initial (ici 125) soit ramener à 0.
J’ai testé deux solutions, qui ne fonctionnent malheuresement pas…
Par avance, un grand merci pour votre aide !
IF LONGONMARKET AND PositionPerf(0) > 0.003 THEN
SET STOP PLOSS 0
ELSIF LONGONMARKET AND PositionPerf(0) < 0.003 THEN
SET STOP Ploss 125
ENDIFet
IF LONGONMARKET AND CLOSE > 1.003 * TRADEPRICE THEN
SET STOP PLOSS 0
ELSIF LONGONMARKET AND CLOSE < 1.003 * TRADEPRICE THEN
SET STOP Ploss 125ENDIF
09/19/2017 at 8:14 AM #46560Dans ce cas il vaut mieux utiliser un order conditionnel de type STOP, comme dans le code ci-dessous. Il s’agit du code du breakeven déjà présent dans le blog, mais adapté en pourcentage de gain de l’ordre (soit ta demande). Ce code intégre une stratégie basique basée sur le RSI pour l’exemple, il est donc à adapter à ta propre stratégie de trading automatique. Bon courage 🙂
Breakeven en pourcentage de gain réalisé1234567891011121314151617181920212223242526272829303132333435363738394041424344defparam cumulateorders = falsestartBreakeven = 0.1 //how much percentage in price gain to activate the breakeven function?PercentToKeep = 0.05 //how much percentage in price to keep in profit above of below our entry price when the breakeven is activated (beware of spread)c1 = RSI[14] crosses over 50if c1 thenBUY 1 LOT AT MARKETSET STOP %LOSS 1endif//reset the breakevenLevel when no trade are on marketIF NOT ONMARKET THENbreakevenLevel=0ENDIF// --- BUY SIDE ---//test if the price have moved favourably of "startBreakeven" percent alreadyIF LONGONMARKET AND positionperf>=startBreakeven THEN//calculate the breakevenLevelPointsToKeep = (tradeprice(1)/100)*PercentToKeepbreakevenLevel = tradeprice(1)+PointsToKeepENDIF//place the new stop orders on market at breakevenLevelIF breakevenLevel>0 THENSELL AT breakevenLevel STOPENDIF// --- end of BUY SIDE ---// --- SELL SIDE ---//test if the price have moved favourably of "startBreakeven" percent alreadyIF SHORTONMARKET AND positionperf>=startBreakeven THEN//calculate the breakevenLevelPointsToKeep = (tradeprice(1)/100)*PercentToKeepbreakevenLevel = tradeprice(1)-PointsToKeepENDIF//place the new stop orders on market at breakevenLevelIF breakevenLevel>0 THENEXITSHORT AT breakevenLevel STOPENDIF// --- end of SELL SIDE ---1 user thanked author for this post.
09/19/2017 at 9:14 AM #46570super merci Nicolas je vais regarder ca pour l’adapter à mon cas
09/22/2017 at 7:42 AM #46873Bonjour Nicolas,
J’ai passé pas mal de temps dessus et je n’arrive pas a comprendre comment fonctionne le code…
j’ai changé un peu tout les paramètres, cela me donne toujours les meme resultats en BT. ces résultats sont meilleurs que sans l’intégration de code sans meme savoir pourquoi !
je te joins ma stratégie complète avec le code intégré; peux tu y jeter un coup d’oeil ?
pour info, j’ai modifié le code avec d’avoir le breakeven en nbr de points et pas en %.
mon idée est de remonter le stop à 0 (initialement à 50) une fois 70 pts acquis. il y une target a 100 pts de profit. ma stratégie est uniquement à l’achat
09/22/2017 at 7:43 AM #46874// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivéstartBreakeven = 70 //how much in price gain to activate the breakeven function?
PtToKeep = 100 //how much in price to keep in profit above of below our entry price when the breakeven is activated (beware of spread)// Conditions pour ouvrir une position acheteuse
indicator1 = BollingerDown[100](close)
c1 = (close CROSSES OVER indicator1)IF c1 THEN
BUY 10 CONTRACT AT MARKET
SET STOP PLOSS 50
ENDIF//reset the breakevenLevel when no trade are on market
IF NOT ONMARKET THEN
breakevenLevel=0
ENDIF// — BUY SIDE —
//test if the price have moved favourably of “startBreakeven” percent already
IF LONGONMARKET AND positionperf>=startBreakeven THEN
//calculate the breakevenLevel
PointsToKeep = tradeprice(1) + PtToKeep
breakevenLevel = tradeprice(1)+PointsToKeep
ENDIF//place the new stop orders on market at breakevenLevel
IF breakevenLevel>0 THEN
SELL AT breakevenLevel STOP
ENDIF
// — end of BUY SIDE —SET TARGET PPROFIT 100
09/22/2017 at 8:17 AM #46883Merci de respecter un peu les règles du forum : >> Pour la clarté des messages sur les forums de ProRealCode, merci d’utiliser le bouton “insert PRT code” pour séparer la partie texte de la partie code, merci ! <<
Concernant le code du breakeven, il suffit d’intégrer en copier/coller ce que j’ai donné dans mon post précédent ou alors d’utiliser le code tout prêt que tu trouveras dans le blog: https://www.prorealcode.com/blog/learning/breakeven-code-automated-trading-strategy/Je vais passer trop de temps à débugger ton code alors qu’il faut simplement faire un copier/coller de la fonction breakeven, merci.
09/22/2017 at 12:29 PM #46920désolé Nicolas. C’est bien compris pour la présentation de code. je vais revoir le blog encore une fois.
-
AuthorPosts
Find exclusive trading pro-tools on