Stratégie MTF, besoins d'explications sur le comportement de ma stratégie
Forums › ProRealTime forum Français › Support ProOrder › Stratégie MTF, besoins d'explications sur le comportement de ma stratégie
- This topic has 21 replies, 3 voices, and was last updated 5 years ago by Nicolas.
-
-
03/14/2019 at 5:39 PM #93672
Bonjour,
J’ai écrit le code suivant avec une stratégie sur le 5 minutes et l’application sur le 1 minutes. Je pense avoir tout fait comme dans les exemples, mais il semble que le robot prenne plusieurs ordres alors qu’il ne devrait en prendre qu’un …. et je ne trouve pas ce qui ne vas pas. Je l’ai testé sur une période ou il a fonctionné en live et le résultat de prise de position est totalement différent. Les prises de position devraient être les mêmes, il n’y a juste que la mise à BE qui devrait être différente … ou est ce que je me trompe ?
Merci d’avance pour votre aide.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596// Définition des paramètres du codeDEFPARAM CumulateOrders = True // Cumul des positions activé// 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 = 090000// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"DEFPARAM FLATAFTER = 220000daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0//-------- Stratégie sur le 5 minutes --------timeframe(5 minute, updateonclose)//Définition de la pénétration ou de l'avalement d'une bougieTBP = high[1]-low[1] // taille de la bougie précédente mèches comprisesPenetrationAchat = close > low[1]+1*TBPPenetrationVente = close < high[1]-1*TBP//Définition du RSIRSIA = RSI[7](close)crosses over 70RSIV = RSI[7](close)crosses under 30//Définitions des MMMM50 = average[50](close)//Conditions pour un signal d'achat --------ca1 = RSIAca2 = PenetrationAchatca3 = MM50 > MM50 [1]Buycondition = ca1 and ca2 and ca3//Conditions pour un signal de vente --------cv1 = RSIVcv2 = PenetrationVentecv3 = MM50 < MM50 [1]Sellcondition = cv1 and cv2 and cv3//-------- Définition de l'unité de temps principale d'action pour la mise à Break Eventimeframe(1 minute, default)//Définition du stop à BE (break-even)startBEA = 12 //Nombre de point pour activer le stopBEstartBEV = 12PointsToKeepA = 2 //Nombre de point de mise en place du stop par rapport au point d'entrée afin d'être stopé non pas à 0 mais un peu en postifPointsToKeepV = 2//-------- condition d'achatif Buycondition and not daysForbiddenEntry thenbuy 1 contract at marketSET STOP pLOSS 30SET TARGET pPROFIT 30endif//On remet le niveau de mise à BE à 0 losque l'on n'est pas en positionif not onmarket thenbreakeven=0endif//on regarde si le trade actuel à fait au moins x pipsif longonmarket and high-tradeprice>=startBEA thenbreakeven=1endif//placer stoploss au prix d'entrée + x pointsif breakeven=1 thensell at tradeprice+PointsToKeepA stopendif//-------- Condition de venteif Sellcondition and not daysForbiddenEntry thensell 1 contract at marketSET STOP pLOSS 30SET Target pProfit 30endif//On remet le niveau de mise à BE à 0 losque l'on n'est pas en positionif not onmarket thenbreakeven=0endif//on regarde si le trade actuel à fait au moins x pipsif shortonmarket and tradeprice-low>=startBEV thenbreakeven=1endif//placer stoploss au prix d'entrée + x pointsif breakeven=1 thenbuy at tradeprice+PointsToKeepV stopendif03/14/2019 at 5:58 PM #93677Plusieurs ordres en même temps ? Normal avec :
1DEFPARAM CumulateOrders = TrueIl faut interdire le cumul des positions en forçant à “false”.
Je n’ai pas testé la stratégie, mais pourquoi délocaliser la prise des ordres en dehors du timeframe qui les conditionne ? (lignes 55 à 59 et lignes 77 à 81).
Le MTF est utile pour déplacer ton stop rapidement à breakeven, sans attendre la fin d’une bougie M5, donc ne laisser uniquement que la gestion des ordres dans le timeframe le plus petit.
Pour mémoire, l’instruction SELL ferme une position acheteuse, et n’ouvre pas de position de VAD (vente à découvert), pour cela utiliser l’instruction SELLSHORT.
EDIT: merci de choisir un titre plus explicite la prochaine fois, sinon on va vite se retrouver avec plein de sujets “stratégie MTF” sur le forum ! 😉
03/14/2019 at 6:01 PM #93678Pour prendre une seule commande, vous devez mettre “FALSE” sur la ligne 2.
De plus, la stratégie est exécutée à la minute, les conditions d’achat et de vente sont donc valables pour 5 barres.
Si la stratégie atteint le SL ou le TP avant 5 barres, une autre opération peut également commencer. Si vous ne le souhaitez pas, vous devez mettre une variable dans le TF de 1 minute qui, lors de votre première entrée, en achat ou en vente, ou les deux à la fois, NE FAITES AUCUNE autre opération avant une nouvelle barre de 5 minutes ou jusqu’à une certaine heure, etc …03/14/2019 at 6:02 PM #93679Nicolas, tu es trop rapide!
03/14/2019 at 6:15 PM #93680d’accord mais il arrivera ou sur le 5 minutes un deuxième signal sera donné alors que je serais encore en position avec le premier. Le fait de mettre False empêchera la prise de position de ce deuxième signal sur le 5 minutes non ?
03/14/2019 at 6:18 PM #93681Ce que je veux dire en fait c’est que là j’ai l’impression qu’il prend chaque croisement de la zone 70 du rsi dans une même bougie 5 minutes, et ça je ne veux pas. Je ne désire prendre qu’une position par signal 5 minutes. Mais je ne veux pas m’empêcher de prendre un deuxième signal 15 minutes plus tard si le premier trade est toujours en cours.
03/14/2019 at 6:21 PM #93682Ce que je veux dire en fait c’est que là j’ai l’impression qu’il prend chaque croisement de la zone 70 du rsi dans une même bougie 5 minutes, et ça je ne veux pas. Je ne désire prendre qu’une position par signal 5 minutes.
J’ai répondu à cette question. Merci de LIRE et d’attendre un peu que ça grimpe tout la haut 🙂
pourquoi délocaliser la prise des ordres en dehors du timeframe qui les conditionne ? (lignes 55 à 59 et lignes 77 à 81). Le MTF est utile pour déplacer ton stop rapidement à breakeven, sans attendre la fin d’une bougie M5, donc ne laisser uniquement que la gestion des ordres dans le timeframe le plus petit.
03/14/2019 at 6:23 PM #93683Mais je ne veux pas m’empêcher de prendre un deuxième signal 15 minutes plus tard si le premier trade est toujours en cours.
Ok donc laisser le cumul à true. Le problème c’est que tu prends tes ordres à chaque fermeture de barre dans le TF 1-Minute, alors que ta stratégie est bien en M5, donc l’ouverture des ordres doit rester dans ce TF.
03/14/2019 at 6:30 PM #93684Ok merci ça semble mieux fonctionner comme ça effectivement 🙂
Grand merci
03/14/2019 at 6:31 PM #93685ha non quand je laisse “true” il me remet la plein d’ordre sur le même signal 🙁
03/14/2019 at 6:43 PM #9368803/14/2019 at 8:20 PM #93696Voici le code
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596// Définition des paramètres du codeDEFPARAM CumulateOrders = true // Cumul des positions activé// 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 = 090000// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"DEFPARAM FLATAFTER = 220000daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0//-------- Stratégie sur le 5 minutes --------timeframe(5 minute, updateonclose)//Définition de la pénétration ou de l'avalement d'une bougieTBP = high[1]-low[1] // taille de la bougie précédente mèches comprisesPenetrationAchat = close > low[1]+1*TBPPenetrationVente = close < high[1]-1*TBP//Définition du RSIRSIA = RSI[7](close)crosses over 70RSIV = RSI[7](close)crosses under 30//Définitions des MMMM50 = average[50](close)//Conditions pour un signal d'achat --------ca1 = RSIAca2 = PenetrationAchatca3 = MM50 > MM50 [1]//-------- condition d'achatif ca1 and ca2 and ca3 and not daysForbiddenEntry thenbuy 1 contract at marketSET STOP pLOSS 30SET TARGET pPROFIT 30endif//Conditions pour un signal de vente --------cv1 = RSIVcv2 = PenetrationVentecv3 = MM50 < MM50 [1]//-------- Condition de venteif cv1 and cv2 and cv3 and not daysForbiddenEntry thensellshort 1 contract at marketSET STOP pLOSS 30SET Target pProfit 30endif//-------- Définition de l'unité de temps principale d'action pour la mise à Break Eventimeframe(1 minute, default)//Définition du stop à BE (break-even)startBEA = 12 //Nombre de point pour activer le stopBEstartBEV = 12PointsToKeepA = 2 //Nombre de point de mise en place du stop par rapport au point d'entrée afin d'être stopé non pas à 0 mais un peu en postifPointsToKeepV = 2//On remet le niveau de mise à BE à 0 losque l'on n'est pas en positionif not onmarket thenBELvAchat=0endif//on regarde si le trade actuel à fait au moins x pipsif longonmarket and high-tradeprice>=startBEA thenBELvAchat=1endif//placer stoploss au prix d'entrée + x pointsif BELvAchat=1 thensell at tradeprice+PointsToKeepA stopendif//On remet le niveau de mise à BE à 0 losque l'on n'est pas en positionif not onmarket thenBELvVente=0endif//on regarde si le trade actuel à fait au moins x pipsif shortonmarket and tradeprice-low>=startBEV thenBELvVente=1endif//placer stoploss au prix d'entrée + x pointsif BELvVente=1 thenbuy at tradeprice+PointsToKeepV stopendif03/14/2019 at 9:03 PM #93700Voilà ce qu’il a fait en test live sur la première bougie 5 minutes (je voulais voir si ça serait différent du backtest ou pas).
Il a pris au total 4 positions sur ce robot.
Détail des ordres
Acaht 25735.6 – sortie 25705.6 (SL de 30 pts touché)
Achat 25727.6 – 25726.6 – 25724.6 – Sortie à 25706 pour les trois positions (ils ont été stoppé entre 22 et 19 pts –> pourquoi le stop a t il remonté de 10 pts ? on dirait que la procédure de mise à BE à fait relevé le stop alors que ça ne devrait pas).
Merci pour l’aide
03/15/2019 at 10:03 AM #9374703/15/2019 at 3:42 PM #93813J’ai changer la ligne 95 mais toujours la même chose qui se produit pour la prise de position multiple.
-
AuthorPosts
Find exclusive trading pro-tools on