Target profit rémanent ?
Forums › ProRealTime forum Français › Support ProOrder › Target profit rémanent ?
- This topic has 9 replies, 3 voices, and was last updated 4 years ago by Nicolas.
-
-
09/15/2020 at 5:33 PM #144364
Bonjour,
Je reviens vers vous pour un problème de TARGET PROFIT à présent !
Dans le code ci-dessous, si j’active la routine de short (ShortON = 1), le target profit réservé au position short se retrouve actif pour les longs…
Du coup le trailing stop n’est pas actif et les longs sont coupé au target profit qui ne devrait être actif pour les shorts ?
Si on passe les short à 0 le trailing stop pour les longs fonctionne …123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106// UT = 4 minutesDEFPARAM CumulateOrders = False // Cumul des positions désactivé//Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".DEFPARAM FLATBEFORE = 070000////////// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"DEFPARAM FLATAFTER = 213000DEFPARAM Preloadbars = 3000ShortON = 1 // Short activé ?ONCE TSL = 1 // Use TSL?// Evite l'ouverture de WSTemps1 = time >= 150000 and time < 160000MME100 = Average[100,1](close)//// LONG ////c1 = high > MME100 and close > openc2 = close - open > 14// bougie de x point minimumc3 = high[1] < MME100 and open[1] < close[1]c4 = 1c5 = 1C13 = c1 and c2 and c3 and c4 and c5 and not Temps1 and NOT LongOnMarketIF C13 THENBUY 1 CONTRACT AT MARKETSET STOP LOSS (close-low) // SL sous le plus bas de la bougie précédenteENDIFIF ShortON then///// SHORT ////c6 = low < MME100 and close < openc7 = open - close > 14// bougie de x point minimumc8 = low[1] > MME100 and open[1] > close[1]c9 = 1c10 = 1C14 = c6 and c7 and c8 and c9 and c10 and not Temps1 and NOT ShortOnMarketIF C14 THENSellshort 1 CONTRACT AT MARKETSET STOP LOSS (close+high) // SL sur le plus haut de la bougie précédenteSET Target Pprofit 10 // Pas de stop suiveur car mouvement de baisse trop rapideENDIFEndIf// *****************************IF TSL = 1 THEN//trailing stop functiontrailingstart = 8 //trailing will start @trailinstart points profittrailingstep = 4 // trailing step to move the "stoploss"//reset the stoploss valueIF NOT ONMARKET THENnewSL=0ENDIF//manage long positionsIF LONGONMARKET THEN//first move (breakeven)IF newSL=0 AND close-tradeprice(1)>=trailingstart THENnewSL = tradeprice(1)+trailingstepENDIF//next movesIF newSL>0 AND close-newSL>=trailingstep THENnewSL = newSL+trailingstepENDIFSell at newSL stop // Place un ordre de vente stop en guise de seuil de stopsuiveur//graph newSL coloured (0,255,255) as "newSL"ENDIF//manage short positions//IF SHORTONMARKET THEN////first move (breakeven)//IF newSL=0 AND tradeprice(1)-close>=trailingstart THEN//newSL = tradeprice(1)-trailingstep//ENDIF////next moves//IF newSL>0 AND newSL-close>=trailingstep THEN//newSL = newSL-trailingstep//ENDIF//Exitshort at newSL stop // Place un ordre d'achat stop en guise de seuil de stopsuiveur//graph newSL coloured (255,255,255) as "newSL SHORT"////ENDIFENDIF09/16/2020 at 8:22 AM #14438309/16/2020 at 8:39 AM #144384Le code affiché:
- il n'a jamais le stop suiveur pour les shorts, quelle que soit la valeur des variables
- a toujours le TP pour les shorts
- il n'a pas le TP pour les Longs au départ, mais seulement APRÈS qu'au moins un Short a été exécuté, car SET TARGET pPROFIT reste dans la mémoire ProOrder.
1 user thanked author for this post.
09/16/2020 at 9:37 AM #144392Il faut simplement reset le takeprofit, puisqu’en effet celui-ci restera actif à la cette valeur pour tous les ordres consécutifs.
Ajoute la ligne :
1set target pprofit 0à la ligne 37, après ton achat, pour bien lui coller un TP nul.
1 user thanked author for this post.
09/16/2020 at 2:12 PM #144440Cela ne fonctionne pas 🙁
J’utilise la version 10.3 de PRT (pour information)
Voici la nouvelle verison du code avec une petite optimisation mais qui reste le même sur globalement
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125// UT = 4 minutesDEFPARAM CumulateOrders = False // Cumul des positions désactivé//Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".DEFPARAM FLATBEFORE = 081500////////// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"DEFPARAM FLATAFTER = 213000DEFPARAM Preloadbars = 1000ShortON = 1 // Short activé ?ONCE TSL = 1 // Use TSL?// Evite l'ouverture de WSTemps1 = time >= 151500 and time < 160000MME100 = Average[100,1](close)//// LONG-1 //// Une bougie de part et autre de la EMA100c1 = high > MME100 and close > openc2 = close - open > 12// bougie de x point minimumc3 = high[1] < MME100 and open[1] < close[1] // bougie précédente verte également et inférieure à MME100c4 = 1c5 = 1C13 = c1 and c2 and c3 and c4 and c5 and not Temps1 and NOT LongOnMarketIF C13 THENBUY 1 CONTRACT AT MARKETSET STOP LOSS (close-low) // SL sous le plus bas de la bougie précédenteENDIF//// LONG-2 //// Une bougie rebondit sur la MME100d1 = close > open // bougie verted2 = open > MME100 and close > MME100d3 = open[1] > MME100 and close[1] > MME100d4 = low[1] < MME100 and low < MME100d5 = close[1] > open[1]D13 = d1 and d2 and d3 and d4 and d5 and not Temps1 and NOT LongOnMarketIF D13 THENBUY 1 CONTRACT AT MARKETSet Target pprofit 0SET STOP LOSS (close-low) // SL sous le plus bas de la bougie précédentegraph (close-low) coloured(255,255,255) as "SL"ENDIFIF ShortON then///// SHORT ////c6 = low < MME100 and close < openc7 = open - close > 14// bougie de x point minimumc8 = low[1] > MME100 and open[1] > close[1]c9 = 1c10 = 1C14 = c6 and c7 and c8 and c9 and c10 and not Temps1 and NOT ShortOnMarketIF C14 THENSellshort 1 CONTRACT AT MARKETSET STOP LOSS (close+high) // SL sur le plus haut de la bougie précédenteSET Target Pprofit 10 // Pas de stop suiveur car mouvement de baisse trop rapideENDIFEndIf// *****************************IF TSL = 1 THEN//trailing stop functiontrailingstart = 8 //trailing will start @trailinstart points profittrailingstep = 4 // trailing step to move the "stoploss"//reset the stoploss valueIF NOT ONMARKET THENnewSL=0ENDIF//manage long positionsIF LONGONMARKET THEN//first move (breakeven)IF newSL=0 AND close-tradeprice(1)>=trailingstart THENnewSL = tradeprice(1)+trailingstepENDIF//next movesIF newSL>0 AND close-newSL>=trailingstep THENnewSL = newSL+trailingstepENDIFSell at newSL stop // Place un ordre de vente stop en guise de seuil de stopsuiveur//graph newSL coloured (0,255,255) as "newSL"ENDIF//manage short positions//IF SHORTONMARKET THEN////first move (breakeven)//IF newSL=0 AND tradeprice(1)-close>=trailingstart THEN//newSL = tradeprice(1)-trailingstep//ENDIF////next moves//IF newSL>0 AND newSL-close>=trailingstep THEN//newSL = newSL-trailingstep//ENDIF//Exitshort at newSL stop // Place un ordre d'achat stop en guise de seuil de stopsuiveur//graph newSL coloured (255,255,255) as "newSL SHORT"////ENDIFENDIF09/16/2020 at 3:38 PM #144450Le fix que je t’ai indiqué fonctionne sur la version que tu as posté précédemment ! 🙄
Dans ce dernier code, que je n’ai pas testé, rapidement je vois que la ligne 77 est incohérente, tu ajoutes 2 prix pour calculer ta taille de stoploss ! 😀
1 user thanked author for this post.
09/16/2020 at 3:52 PM #14445109/16/2020 at 4:19 PM #144452Exemple sur le DAX, si j’ajoute un Close (13226) et un High (13330), j’obtiens une valeur de stoploss de 26556 points ajouté à ton Close (puisque tu utilises SET STOP LOSS), donc un ordre sera placé à 39782 points. Je pense que c’est un peu … large ? 😆
1 user thanked author for this post.
09/16/2020 at 4:29 PM #14445309/16/2020 at 5:10 PM #144458 -
AuthorPosts
Find exclusive trading pro-tools on