Ordre passé alors que la condition n'est pas remplie
Forums › ProRealTime forum Français › Support ProOrder › Ordre passé alors que la condition n'est pas remplie
- This topic has 18 replies, 3 voices, and was last updated 5 years ago by Stef1618.
-
-
01/21/2020 at 10:35 AM #117368
Il faut penser à GRAPHER ses variables, c’est la seule façon de débugger et de pouvoir comprendre certains comportements ne nous saute pas aux yeux à prime abord. Il n’y a pas de magie, moi et Roberto c’est ce que l’on fait ! 😉
01/21/2020 at 5:43 PM #117420Comme vous pouvez le voir sur l’image ci-jointe, cela semble bien fonctionner.
Voici la stratégie telle que je l’ai codée à partir de zéro:12345678910111213141516171819202122232425262728DEFPARAM CumulateOrders = falseMyRsi = Rsi[14](close)IF MyRsi CROSSES OVER 50 THENHH = highLL = lowENDIFIF MyRsi CROSSES UNDER 50 THENPrevHH = HHPrevLL = LLHH = 0LL = 0ENDIFIF HH > 0 THENHH = max(HH,high)LL = min(LL,low)ENDIFIF OnMarket OR (StrategyProfit <> StrategyProfit[1]) THENPrevHH = 0PrevLL = 0HH = 0LL = 0ENDIFIF Not OnMarket AND (StrategyProfit = StrategyProfit[1]) AND (PrevHH > 0 AND PrevLL > 0) THENBUY 1 CONTRACT AT PrevHH StopSELLSHORT 1 CONTRACT AT PrevLL StopENDIFSET TARGET pPROFIT 100SET STOP pLOSS 50J’attache également deux indicateurs, un à ajouter SUR le tableau des prix et l’autre à ajouter EN DESSOUS du tableau des prix.
Les deux mettent en évidence lorsque RSI> 50:à ajouter SUR le tableau des prix123456789101112131415161718192021222324252627ONCE Bar1 = 0ONCE Bar2 = 0MyRsi = Rsi[14](close)IF MyRsi CROSSES OVER 50 THENBar1 = barindexHH = highLL = lowENDIFIF MyRsi CROSSES UNDER 50 THENBar2 = barindex - 1PrevHH = HHPrevLL = LLPrevBAR1 = Bar1PrevBAR2 = Bar2HH = 0LL = 0Bar1 = 0Bar2 = 0ENDIFIF HH > 0 THENHH = max(HH,high)LL = min(LL,low)ENDIFIF HH = 0 THENDRAWRECTANGLE(PrevBar1,PrevHH,PrevBar2,PrevLL)ENDIFRETURNà ajouter EN DESSOUS du tableau des prix1234567891011121314ONCE t = 0MyRsi = Rsi[14](close)IF MyRsi CROSSES OVER 50 THENt = 255ENDIFIF MyRsi CROSSES UNDER 50 THENt = 0ENDIFIF HH > 0 THENHH = max(HH,high)LL = min(LL,low)ENDIFBACKGROUNDCOLOR(211,211,211,t)RETURN MyRsi AS "Rsi",70 AS "70",50 AS "50",30 AS "30"01/22/2020 at 12:14 PM #117507Merci beaucoup, effectivement l’approche est totalement différente et beaucoup plus carrée. Je ne connaissais pas les instructions MAX et MIN, dans ce contexte c’est bien plus adapté.
Je pensais justement aussi le faire sous forme d’indicateur, donc c’est parfait.
Je travaille souvent avec des breakout donc je pourrais également adapter cette structure de code dans d’autres conditions.
Merci encore pour le temps passé et le résultat obtenu!
01/22/2020 at 12:23 PM #117509Il faut penser à GRAPHER ses variables, c’est la seule façon de débugger et de pouvoir comprendre certains comportements ne nous saute pas aux yeux à prime abord. Il n’y a pas de magie, moi et Roberto c’est ce que l’on fait ! 😉
Oui c’est vrai, je ne pense pas à grapher. D’habitude je lance directement en réel pour observer le comportement et j’analyse à partir de ça.
-
AuthorPosts