Ordre passé alors que la condition n'est pas remplie
- This topic has 18 replies, 3 voices, and was last updated 4 years ago by .
Similar topics:
Forums › ProRealTime forum Français › Support ProOrder › Ordre passé alors que la condition n'est pas remplie
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 ! 😉
Comme 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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
DEFPARAM CumulateOrders = false MyRsi = Rsi[14](close) IF MyRsi CROSSES OVER 50 THEN HH = high LL = low ENDIF IF MyRsi CROSSES UNDER 50 THEN PrevHH = HH PrevLL = LL HH = 0 LL = 0 ENDIF IF HH > 0 THEN HH = max(HH,high) LL = min(LL,low) ENDIF IF OnMarket OR (StrategyProfit <> StrategyProfit[1]) THEN PrevHH = 0 PrevLL = 0 HH = 0 LL = 0 ENDIF IF Not OnMarket AND (StrategyProfit = StrategyProfit[1]) AND (PrevHH > 0 AND PrevLL > 0) THEN BUY 1 CONTRACT AT PrevHH Stop SELLSHORT 1 CONTRACT AT PrevLL Stop ENDIF SET TARGET pPROFIT 100 SET STOP pLOSS 50 |
J’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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
ONCE Bar1 = 0 ONCE Bar2 = 0 MyRsi = Rsi[14](close) IF MyRsi CROSSES OVER 50 THEN Bar1 = barindex HH = high LL = low ENDIF IF MyRsi CROSSES UNDER 50 THEN Bar2 = barindex - 1 PrevHH = HH PrevLL = LL PrevBAR1 = Bar1 PrevBAR2 = Bar2 HH = 0 LL = 0 Bar1 = 0 Bar2 = 0 ENDIF IF HH > 0 THEN HH = max(HH,high) LL = min(LL,low) ENDIF IF HH = 0 THEN DRAWRECTANGLE(PrevBar1,PrevHH,PrevBar2,PrevLL) ENDIF RETURN |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
ONCE t = 0 MyRsi = Rsi[14](close) IF MyRsi CROSSES OVER 50 THEN t = 255 ENDIF IF MyRsi CROSSES UNDER 50 THEN t = 0 ENDIF IF HH > 0 THEN HH = max(HH,high) LL = min(LL,low) ENDIF BACKGROUNDCOLOR(211,211,211,t) RETURN MyRsi AS "Rsi",70 AS "70",50 AS "50",30 AS "30" |
Merci 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!
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 ! 😉
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.
Find exclusive trading pro-tools on