Condition de période entre croisement de moyenne mobile
Forums › ProRealTime forum Français › Support ProOrder › Condition de période entre croisement de moyenne mobile
- This topic has 16 replies, 3 voices, and was last updated 4 years ago by Fantasio2020.
-
-
04/25/2020 at 11:03 AM #127994
Bonjour à la communauté…
je sèche sur la création d’une condition de validité d’une prise de position, j’ai parcouru les lignes de code disponibles dans la bibliothèque sans trouver mon bonheur.
J’ai dans mon code un certain nombre de condition pour prendre position en LONG ou SHORT dont des croisements de moyenne mobile. l’algorithme fonctionne bien et me donne de bon résultat mais sur certaine prise de position j’ai des faut signal.
Je n’utilise pas de stop loss, uniquement un trailingstar et trailingstep.
je souhaiterai néanmoins insérer une condition à mes prises de positions LONG et SHORT pour couper mon trade juste après une prise de position, si l’interval entre la prise de position et un nouveau croisement de moyenne mobile est inférieur à (X) période.
04/27/2020 at 7:37 AM #128316Pour cela on peut tester si une condition booléenne a eu lieu dans les X dernière périodes :
12345678910f = average[7]s = average[20]test = f crosses over s //booléenx = 10 //quantité de périodesa = summation[x](test)>0 //au moins 1 test a eu lieu dans les X dernières périodesreturn a04/27/2020 at 1:09 PM #128410Merci Nicolas,
Merci pour la réponse, mais ce n’est pas exactement ce que je cherche.
Dans le code ci-dessus et ci j’ai bien compris, il s’agit de vérifier si dans les dix dernières periodes, les moyennes se sont croisées.
Dans mon cas ce que je cherche à faire, c’est couper la position que je viens de prendre, si, dans les futures [x] période les moyennes se croisent à nouveau, mais seulement ce croisement précis [x] periode après la prise de position…. je ne veux pas tenir compte des croisements futures.
123456789101112// Conditions pour ouvrir une position acheteusec1a = (low > MM5)c2a = (MM5 > MM50)c3a = (MM5 CROSSES OVER MM20)IF (c1a AND c2a AND c3a AND (myInverseFisherTransformsRSI CROSSES OVER 53)) AND not daysForbiddenEntry THENBUY 10 SHARES AT MARKETENDIF// Conditions pour fermer une position acheteuseIF summation[x](MM5 CROSSES UNDER MM20)>1 THEN // ici ce qui m'interesse c'est de pouvoir fermer la position si et seulement si un croisement intervient [x] periodes après la prise de position.SELL AT MARKETENDIFSlts
04/27/2020 at 1:16 PM #12841104/27/2020 at 1:21 PM #12841304/27/2020 at 1:25 PM #128416Ok…autant pour moi!
04/28/2020 at 12:37 PM #128609Bonjour à la communauté,
ci-dessous une petite stratégie pour le DOW en M1
Moyennes Mobiles + MACD + Inverse Transforme RSIje suis débutant et je suis pas a l’abris de faire des erreurs.
votre avis m’interesse et des retouche de code également12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697// Définition des paramètres du codeDEFPARAM CumulateOrders = True // Cumul des positions désactivé//DEFPARAM FLATBEFORE = 091500//DEFPARAM FLATAFTER = 154500daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0// Moyenne Mobile et MACDMMA = (ExponentialAverage[8](close)[1]*1.00002)MMB = (Average[20](close)[3]*1.00003)MMC = (MACDline[8,24,8](close)[1])MMD = (TriangularAverage[8](MACDline[8,24,8](close)[1]))// Inverse Transform RSIInd = RSI[11](Close)x = 0.1 * (Ind - 50)y = (EXP (2 * x) - 1) / (EXP (2 * x) + 1)z = 50 * (y + 1)// Conditions pour ouvrir une position acheteusec1a = close > MMAc2a = MMA CROSSES OVER MMBc3a = MMA > MMBc4a = MMC > MMDc5a = z CROSSES OVER 50IF (c1a AND c2a AND c3a AND c4a AND c5a) AND not daysForbiddenEntry THENBUY 0.2 SHARES AT MARKETENDIF// Conditions pour fermer une position acheteuseif onmarket and barindex-tradeindex <=7 and (MMA CROSSES UNDER MMB) thenSELL AT MARKETendif// Conditions pour ouvrir une position en vente à découvertc1b = open < MMAc2b = MMA CROSSES UNDER MMBc3b = MMA < MMBc4b = MMC < MMDc5b = z CROSSES UNDER 47IF (c1b AND c2b AND c3b AND c4b AND c5b) AND not daysForbiddenEntry THENSELLSHORT 0.2 SHARES AT MARKETENDIF// Conditions pour fermer une position vendeuseif onmarket and barindex-tradeindex <=5 and (MMA CROSSES OVER MMB) thenSELL AT MARKETendif//************************************************************************//trailing stop functiontrailingstart = 6 //trailing will start @trailinstart points profittrailingstep = 18 //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*pipsize THENnewSL = tradeprice(1)+trailingstep*pipsizeENDIF//next movesIF newSL>0 AND close-newSL>=trailingstep*pipsize THENnewSL = newSL+trailingstep*pipsizeENDIFENDIF//manage short positionsIF SHORTONMARKET THEN//first move (breakeven)IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THENnewSL = tradeprice(1)-trailingstep*pipsizeENDIF//next movesIF newSL>0 AND newSL-close>=trailingstep*pipsize THENnewSL = newSL-trailingstep*pipsizeENDIFENDIF//stop order to exit the positionsIF newSL>0 THENSELL AT newSL STOPEXITSHORT AT newSL STOPENDIF//************************************************************************//Stops et objectifsSET STOP %LOSS 2SET TARGET %PROFIT 1.15//************************************************************************ci-joint mon code actuel pour le Wall Street Cash M1….
j’ai l’impression que mes paramètres stop et objectif ne fonctionne pas.
je suis pas contre un peu d’optimisation du code…
Slts
Slts
04/29/2020 at 9:28 PM #128888Bsr Nicolas,
j’ai essayé ton code, mais j’ai l’impression que ça ne fonctionne pas!
1234// Conditions pour fermer une position vendeuseIF ONMARKET and barindex-tradeindex<=6 AND (MMA CROSSES OVER MMB) THENSELL AT MARKETENDIFvoici l’exemple ci-dessus…et le résultat en image
j’ai une prise de position le 29 avril à 1H58 mais la position ne se cloture pas lorsque MMA CROSSES OVER MMB….Quid
Merci d’avance
04/30/2020 at 9:30 AM #12894904/30/2020 at 10:09 AM #128960Bonjour Nicolas,
Non Non, les moyennes sur le graph, sont celles retracées par le contrôle ci-dessous:
1234MMA = (ExponentialAverage[8](close)[1]*1.0000027)MMB = (Average[21](close)[2]*1.000047)MMC = (MACDline[8,24,8](TypicalPrice)[1])MMD = (TriangularAverage[7](MACDline[8,24,8](TypicalPrice)[1]))12345GRAPH (c1b AND c2b AND c3b AND c4b AND c5b)graphonprice MMAgraphonprice MMBgraphonprice MMCgraphonprice MMDà te lire
04/30/2020 at 11:04 AM #128974123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100Le code complet (DAX M1)// Définition des paramètres du codeDEFPARAM CumulateOrders = True // Cumul des positions désactivé//DEFPARAM FLATBEFORE = 091500//DEFPARAM FLATAFTER = 154500daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0// Moyenne Mobile et MACDMMA = (ExponentialAverage[8](close)[1]*1.0000027)MMB = (Average[21](close)[2]*1.000047)MMC = (MACDline[8,24,8](TypicalPrice)[1])MMD = (TriangularAverage[7](MACDline[8,24,8](TypicalPrice)[1]))// Inverse Transform RSIInd = RSI[11](Close)x = 0.1 * (Ind - 50)y = (EXP (2 * x) - 1) / (EXP (2 * x) + 1)z = 50 * (y + 1)// Conditions pour ouvrir une position acheteusec1a = close > MMAc2a = MMA CROSSES OVER MMBc3a = MMA > MMBc4a = MMC > MMDc5a = z CROSSES OVER 50IF (c1a AND c2a AND c3a AND c4a AND c5a) AND not daysForbiddenEntry THENBUY 2 SHARES AT MARKETSET STOP %LOSS 2SET TARGET %PROFIT 1.15// Conditions pour fermer une position acheteuseIF ONMARKET AND barindex-tradeindex<=6 and (MMA CROSSES UNDER MMB) thenSELL AT MARKETENDIFENDIF// Conditions pour ouvrir une position en vente à découvertc1b = open < MMAc2b = MMA CROSSES UNDER MMBc3b = MMA < MMBc4b = MMC < MMDc5b = z CROSSES UNDER 47IF (c1b AND c2b AND c3b AND c4b AND c5b) AND not daysForbiddenEntry THENSELLSHORT 2 SHARES AT MARKETSET STOP %LOSS 2SET TARGET %PROFIT 1.15// Conditions pour fermer une position vendeuseIF ONMARKET and barindex-tradeindex<=6 AND (MMA CROSSES OVER MMB) THENSELL AT MARKETENDIFENDIF//************************************************************************//trailing stop functiontrailingstart = 7 //trailing will start @trailinstart points profittrailingstep = 13 //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*pipsize THENnewSL = tradeprice(1)+trailingstep*pipsizeENDIF//next movesIF newSL>0 AND close-newSL>=trailingstep*pipsize THENnewSL = newSL+trailingstep*pipsizeENDIFENDIF//manage short positionsIF SHORTONMARKET THEN//first move (breakeven)IF newSL=0 AND tradeprice(1)-close>=trailingstart*pipsize THENnewSL = tradeprice(1)-trailingstep*pipsizeENDIF//next movesIF newSL>0 AND newSL-close>=trailingstep*pipsize THENnewSL = newSL-trailingstep*pipsizeENDIFENDIF//stop order to exit the positionsIF newSL>0 THENSELL AT newSL STOPEXITSHORT AT newSL STOPENDIF//************************************************************************//GRAPH (c1b AND c2b AND c3b AND c4b AND c5b)//graphonprice MMA//graphonprice MMB//graphonprice MMC//graphonprice MMD04/30/2020 at 1:16 PM #12901104/30/2020 at 1:44 PM #129026Bonjour Nicolas,
Oui j’ai graphé le code pour m’assurer que les conditions soient respectées…et la position qui aurait dû se couper au croisement de MMA et MMB ne s’est pas coupé.
pour l’instant, c’est ce point qui me tracasse…ça me crée du drawdown quand le trade par dans le mauvais sens.
Si tu as une autre idée ou une solution, je suis preneur.
Slts
04/30/2020 at 2:33 PM #12904204/30/2020 at 3:46 PM #12906612345678910111213141516171819202122232425262728IF (c1a AND c2a AND c3a AND c4a AND c5a) AND not daysForbiddenEntry THENBUY 0.3 SHARES AT MARKETSET STOP %LOSS 2SET TARGET %PROFIT 1.15ENDIF// Conditions pour fermer une position acheteuseIF ONMARKET AND barindex-tradeindex<=6 and (MMA CROSSES UNDER MMB) thenSELL AT MARKETENDIF// Conditions pour ouvrir une position en vente à découvertc1b = open < MMAc2b = MMA CROSSES UNDER MMBc3b = MMA < MMBc4b = MMC < MMDc5b = z CROSSES UNDER 47IF (c1b AND c2b AND c3b AND c4b AND c5b) AND not daysForbiddenEntry THENSELLSHORT 0.3 SHARES AT MARKETSET STOP %LOSS 2SET TARGET %PROFIT 1.15ENDIF// Conditions pour fermer une position vendeuseIF ONMARKET and barindex-tradeindex<=6 AND (MMA CROSSES OVER MMB) THENEXITSHORT AT MARKETENDIFComme ceci?
-
AuthorPosts
Find exclusive trading pro-tools on