Rechercher une condition sur une période de nbarres
Forums › ProRealTime forum Français › Support ProOrder › Rechercher une condition sur une période de nbarres
- This topic has 5 replies, 2 voices, and was last updated 1 year ago by Bodaris.
-
-
11/21/2023 at 11:39 AM #224028
Bonjour,
Je le précise, même si c’est évident, je suis pas calé du tout :p
Bon, je veux chercher une condition sur une période comprenant les 5 dernières barres. Par exemple, je veux acheter si le RSI croise à la hausse la valeur 30 que si durant les 5 dernières bougies, le + bas et/ou la clôture sont sous la borne inférieure de Bollinger.
J’ai codé ça. Mais j’ai l’impression qu’il teste que la bougie 5 avant la bougie actuelle et chacune des bougies de la période définie.
Mon code est il correct ? sinon, comment faire ?
12345678910111213141516DEFPARAM CumulateOrders = trueperiod = 10indicator2 = RSI[8](close)c2 = (indicator2 CROSSES OVER 30)indicator3 = BollingerDown[20](close)c3 = (DLow(0)[period] <= indicator3[period])c5 = (Close[period] <= indicator3[period])IF (c3 or c5) AND c2 THENBUY 1 CONTRACT AT MARKETENDIFindicator4 = RSI[8](close)c4 = (indicator4 >= 70)IF c4 THENSELL AT MARKETENDIFSET TARGET pPROFIT 50Merci par avance pour vos lumières.
11/21/2023 at 12:24 PM #224032Bonjour, suggestions de modifications pour trouver si la condition “close ou low sous bollinger basse” soit vraie pendant toute la période (non testé) :
12345678910111213141516171819period = 5 //choisir 5 si on veut 4 précédentes + la bougie en cours, 6 si on veut 5 précédentes + la bougie en coursindicator2 = RSI[8](close)c2 = (indicator2 CROSSES OVER 30)c4 = (indicator2 >= 70)indicator3 = BollingerDown[20](close)c3 = (low <= indicator3 or close <= indicator3)c5 = (summation[period](c3) = period)IF c2 and c5 THENBUY 1 CONTRACT AT MARKETENDIFIF longonmarket and c4 THENSELL AT MARKETENDIFSET TARGET pPROFIT 501 user thanked author for this post.
11/21/2023 at 2:33 PM #224048Bonjour,
Merci pour votre réponse. Je crois qu’il calcule la condition uniquement sur la bougie de la période, à dire 3 pour l’exemple. Au moins, je sais ce que je fais.
Ce n’est pas possible de faire vérifier une condition sur plusieurs bougies ? et non une seule ?
L’image 1 c’est nos codes avec période 3 pour chacun. L’image 2, ce sont nos codes avec période 1. Bref, pour ce cas présent, pas la peine de se prendre la tête, c’est période 1 qui donne les meilleurs résultats. Mais j’aurais bien aimé exploiter la totalité des occurrences et ne pas être limité par une aléa technique. Je vais essayer de coder la condition pour chaque bougie de la période que je veux étudier. Ça devrait le faire.
Merci encore, si vous avez une autre solution, je suis ouvert :).
11/21/2023 at 2:47 PM #224053Bon voilà, ça marche comme ça. Si quelqu’un sait comment simplifier le codage, je suis preneur ^^
Merci
1234567891011121314151617181920212223242526272829DEFPARAM CumulateOrders = trueperiod1 = 1period2 = 2period3 = 3period4 = 4period5 = 5period6 = 6period7 = 7indicator2 = RSI[8](close)c2 = (indicator2 CROSSES OVER 30)c4 = (indicator2 >= 70)indicator3 = BollingerDown[20](close)c3 = (DLow(0)[period1] <= indicator3[period1])c6 = (DLow(0)[period2] <= indicator3[period2])c7 = (DLow(0)[period3] <= indicator3[period3])c8 = (DLow(0)[period4] <= indicator3[period4])c9 = (DLow(0)[period5] <= indicator3[period5])c10 = (DLow(0)[period6] <= indicator3[period6])c11 = (DLow(0)[period7] <= indicator3[period7])c5 = (Close[period1] <= indicator3[period1])IF (c3 or c5 or c6 or c7 or c8 or c9 or c10 or c11) AND c2 THENBUY 1 CONTRACT AT MARKETENDIFIF c4 THENSELL AT MARKETENDIFSET TARGET pPROFIT 5011/27/2023 at 8:00 AM #224346Ce n’est pas possible de faire vérifier une condition sur plusieurs bougies ? et non une seule ?
Si, c’est ce qui était fait dans le post précédent avec “summation” dans:
c5 = (summation[period](c3) = period)
mis en mots si on ne connait pas summation, cela a fait la somme sur le nombre de bougies entre crochets [period] de c3 (qui vaut soit 0 soit 1), et si cette somme = period, c’est que chaque c3 valait logiquement 1, si un seul ou plus de ces c3 vaut 0 alors on n’aurait pas pu avoir leur somme égale à period, bref c’est une ligne à la fois dense en contenu et légère en quantité d’instructions par rapport à d’autres façons d’obtenir c5.
Les rapports détaillés de backtests n’aideront pas à débugguer, l’utilisateur qui veut débugguer son code ou vérifier des comportements de variables obtiendra davantage d’informations exploitables avec graph et/ou print
exemple à rajouter en fin de code:
graph c5 as “c5”
qui ouvrira une fenêtre de plus lors du backtest pour voir quand c5 vaut 0 ou 1
12/01/2023 at 9:19 AM #224680Merci beaucoup pour votre réponse. Ca restait un peu abstrait cette notion de summation. Depuis hier, j’ai accès à la formation de programmation avancée. Je comprends mieux vos propos maintenant, même si c’était bien expliqué. Je suis un vrai néophyte en programmation.
-
AuthorPosts
Find exclusive trading pro-tools on