Vente à découvert programmé sur cassure de MM seulement si.
Forums › ProRealTime forum Français › Support ProOrder › Vente à découvert programmé sur cassure de MM seulement si.
- This topic has 12 replies, 2 voices, and was last updated 4 years ago by Nicolas.
-
-
03/03/2020 at 11:28 AM #121047
Bonjour à tous,
Je suis bloqué dans la réalisation de mon ProOrder.
J’ai le souhait de placer un ordre à la vente à découvert au moment de la prochaine cassure à la baisse d’une MM34 seulement si précédemment j’ai eu 3 conditions remplis.
- Condition_1: Le prix soit en dessous de ma MM100
- Condition_2:Le prix soit au dessus de ma MM34
- Condition_3:Le RSI période 7 est été au moins une fois au dessus de la valeur “71”.
J’ai ajouté une image pour exemple (un ordre perdant mais c’est pas grave, c’est pour l’exemple).
Je vous remercie d’avance pour votre aide.
03/03/2020 at 1:42 PM #12107003/03/2020 at 9:29 PM #121100Bonjour,
Merci pour votre retour
Si je comprend bien, nous somme obligé d’indiquer le nombre de période antérieur pour le RSI.
Mais si j’indique un nombre de période antérieur, je risque de louper une ouverture d’ordre si le RSI à cassé sur la bougie juste avant ma période.
Il faudrait que je puisse indiquer la période correspondante à toute les bougies antérieurs qui ce trouve entre la MM34 et MM100.
Est-ce que la logique est bonne ?
Et si elle est bonne comment indiquer dans mon code “les bougies antérieurs à mon prix, qui ce trouve entre la MM34 et MM100” ?
Merci
03/04/2020 at 1:07 PM #121132Il faut en effet définir des conditions strictes et répétables, le RSI 7 a bien été au dessus du niveau X à un moment de l’historique. Hors on ne va pas donner un signal valide si cet événement du RSI a eu lieu il y a Y périodes. Donc définir un point de départ où on commence à vérifier cette condition, il ne faut pas s’inquiéter sur comment on va déterminer la quantité de bougies à vérifier et comment on va le coder, le principal c’est de définir la condition du “début” de vérification.
03/08/2020 at 5:42 PM #121487Bonjour,
Merci pour votre retour.
J’ai changé ma manière de coder ce que je souhaité.
Cependant ça ne me retourne rien. Et la je bloc…
Mon code123456789101112131415161718192021222324252627282930313233// Définition des paramètres du codeDEFPARAM 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 = 080000// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"DEFPARAM FLATAFTER = 173000// Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiésdaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0// Déclaration de Variablesindicator1 = Average[34](close)indicator2 = ExponentialAverage[100](close)indicator3 = RSI[7](close)c1 = (close > indicator1) //Au dessus de la MM34c2 = (close < indicator2) //En dessous de la MM100c3 = (indicator3 > 70) //RSI au dessus des 70c4 = (close CROSSES UNDER indicator1) //Casse à la baisse la MM34result = 0//Condition pour que le result s'incrémente de 1IF c1 AND c2 AND c3 THENresult = 1ENDIF//Condition pour ouvrir un ordre à la venteIF c4 AND result = 1 AND not daysForbiddenEntry THENSELLSHORT 1 CONTRACT AT MARKETENDIF// Stops et objectifsSET STOP pLOSS 10SET TARGET pPROFIT 10Pouvez-vous m’indiquer si j’ai bien compris le principe et où j’ai fait une erreur ?
Merci d’avance.
03/08/2020 at 11:57 PM #121512Re-Bonjour
J’ai bien avancé avec mes recherches et test, mais je reste bloqué sur la fin de mon code.
J’aimerai reset ma Variable “NombrePeriodeDepuisRSI” après l’ouverture de mon trade, pour que toutes mes conditions ce test à nouveau seulement à partir du nouveau moment ou le RSI est au dessus des 70.
Merci pour votre aide.
Code v2123456789101112131415161718192021222324252627282930313233343536// Définition des paramètres du codeDEFPARAM 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 = 060000// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"DEFPARAM FLATAFTER = 173000// Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiésdaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0// Déclaration de Variablesindicator1 = Average[34](close)indicator2 = ExponentialAverage[100](close)indicator3 = RSI[7](close)//c1 = (close > indicator1) //Au dessus de la MM34c2 = (close < indicator2) //En dessous de la MM100c3 = (indicator3 > 70) //RSI au dessus des 70c4 = (close CROSSES UNDER indicator1) //Casse à la baisse la MM34//c5 = (close CROSSES OVER indicator2) //Casse à la hausse la MM100//Comptabiliser le nombre de période depuis que le RSI est valideIF c2 AND c3 THENFigeMaPeriodeRSI = barindexGRAPH FigeMaPeriodeRSI AS "FigeMaPeriodeRSI"ENDIFNombrePeriodeDepuisRSI = barindex - FigeMaPeriodeRSIGRAPH NombrePeriodeDepuisRSI AS "NombrePeriodeDepuisRSI"//Condition pour vente à découvertIF c3[NombrePeriodeDepuisRSI] AND c2[1] AND c4 AND not daysForbiddenEntry THENSELLSHORT 1 CONTRACT AT MARKETENDIF// Stops et objectifsSET STOP pLOSS 10SET TARGET pPROFIT 1003/09/2020 at 10:15 AM #121520Bravo pour ce code, c’est une façon élégante de vérifier la condition.
Pour remettre à zéro ta condition on peut flagger “FigeMaPeriodeRSI” à 0 quand tu passes un ordre et ajouter une condition pour calculer “NombrePeriodeDepuisRSI” seulement si “FigeMaPeriodeRSI” est supérieure à zéro, donc si un événement a bien eu lieu, soit :
123456789101112131415161718192021222324252627282930313233343536373839// Définition des paramètres du codeDEFPARAM 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 = 060000// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"DEFPARAM FLATAFTER = 173000// Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiésdaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0// Déclaration de Variablesindicator1 = Average[34](close)indicator2 = ExponentialAverage[100](close)indicator3 = RSI[7](close)//c1 = (close > indicator1) //Au dessus de la MM34c2 = (close < indicator2) //En dessous de la MM100c3 = (indicator3 > 70) //RSI au dessus des 70c4 = (close CROSSES UNDER indicator1) //Casse à la baisse la MM34//c5 = (close CROSSES OVER indicator2) //Casse à la hausse la MM100//Comptabiliser le nombre de période depuis que le RSI est valideIF c2 AND c3 THENFigeMaPeriodeRSI = barindexGRAPH FigeMaPeriodeRSI AS "FigeMaPeriodeRSI"ENDIFif FigeMaPeriodeRSI>0 then //SI EVENEMENT CONNUNombrePeriodeDepuisRSI = barindex - FigeMaPeriodeRSIendifGRAPH NombrePeriodeDepuisRSI AS "NombrePeriodeDepuisRSI"//Condition pour vente à découvertIF c3[NombrePeriodeDepuisRSI] AND c2[1] AND c4 AND not daysForbiddenEntry THENSELLSHORT 1 CONTRACT AT MARKETFigeMaPeriodeRSI = 0 // RAZENDIF// Stops et objectifsSET STOP pLOSS 10SET TARGET pPROFIT 10A tester ! 😉
03/09/2020 at 2:00 PM #121564Bonjour,
Merci.
Bon j’ai testé et malheuresement, en plus des bonnes ouvertures d’odres, il y a des ouvertures d’ordres qui ne respect pas ma stratégie et je ne comprend pas pourquoi.
Après avoir affiché sur le graph la valeur de “NombrePeriodeDepuisRSI” je m’apperçoit que suite à l’ouverture d’un ordre la valeur de mon “NombrePeriodeDepuisRSI” n’est pas réinitialisé sur la bougie d’après.
Ce qui veut dire que si mes bougies d’après remplissent la condition c2 et c4 (//Condition de vente à découvert) et bien elles ouvrent un ordre.
Alors que j’aimerai que si un ordre est été ouvert et/ou fermé il faut attendre la prochaine cassure de RSI dans les bonnes conditions pour ouvrir un nouvel ordre, d’où ma demande de réinitialiser ma variable.
Je cherche mais je bloc…
Merci pour votre aide.
03/09/2020 at 3:33 PM #121574Avec cette autre version peut être ? Il y a vraiment trop d’informations sur ton graphique, c’est difficile de bien comprendre. Avec l’instruction GRAPH C2 AND C3 que j’ai ajouté à la fin du code tu pourras voir dans le backtest à quel moment on marque l’événement de ces 2 conditions.
1234567891011121314151617181920212223242526272829303132333435363738// Définition des paramètres du codeDEFPARAM 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 = 060000// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"DEFPARAM FLATAFTER = 173000// Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiésdaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0// Déclaration de Variablesindicator1 = Average[34](close)indicator2 = ExponentialAverage[100](close)indicator3 = RSI[7](close)//c1 = (close > indicator1) //Au dessus de la MM34c2 = (close < indicator2) //En dessous de la MM100c3 = (indicator3 > 70) //RSI au dessus des 70c4 = (close CROSSES UNDER indicator1) //Casse à la baisse la MM34//c5 = (close CROSSES OVER indicator2) //Casse à la hausse la MM100//Comptabiliser le nombre de période depuis que le RSI est valideIF c2 AND c3 THENFigeMaPeriodeRSI = barindex//GRAPH FigeMaPeriodeRSI AS "FigeMaPeriodeRSI"ENDIF//Condition pour vente à découvertIF barindex>FigeMaPeriodeRSI and FigeMaPeriodeRSI>0 and c4 AND not daysForbiddenEntry THENSELLSHORT 1 CONTRACT AT MARKETFigeMaPeriodeRSI = 0 // RAZENDIF// Stops et objectifsSET STOP pLOSS 10SET TARGET pPROFIT 10graph c2 AND c303/09/2020 at 9:04 PM #121609Bonsoir,
Merci pour votre retour.
Je peux indiquer, après vérification, que ça fonctionne 🙂 comme je l’entend.
Merci beaucoup, je vais pouvoir passer à l’optimisation de mon code.
Petite question, si j’ai des questions sur d’autre typologie de problème, mais sur le même code faut-il que j’ouvre un autre topic ou je peux réutiliser celui-ci ?
Merci Nicolas
03/10/2020 at 10:05 AM #12165003/10/2020 at 9:08 PM #121765Bonsoir Nicolas,
Malheuresement via un compte démo et non plus via le backtest j’ai cette erreur (en pièce jointe) et je ne comprend pas pourquoi il me bloc.
Est-ce qu’il y a des indicateurs ou variables que PRT ne prend pas en compte hors du proorder/backtest ?
Merci
03/11/2020 at 11:04 AM #121799 -
AuthorPosts
Find exclusive trading pro-tools on