Mémoire d'une variable
Forums › ProRealTime forum Français › Support ProOrder › Mémoire d'une variable
- This topic has 9 replies, 2 voices, and was last updated 4 years ago by Roger.
-
-
04/09/2020 at 12:50 PM #125414
Bonjour,
Je souhaite savoir si PRC peut se souvenir d’une variable d’une itération à l’autre (d’une bougie à l’autre).
Voici ce que je fais :
123456789defparam preloadbars=10000if barindex>=10000 thenfor i=1 to 10000if condition thencount=count+1endifnextendifLe temps de calcul est extrêmement long car à chaque barre je refais des calculs déjà fait avant, et je souhaite raccourcir en faisant :
1234567891011121314151617defparam preloadbars=10000//calcul du count pour les 10 000 barres préchargéesif barindex=10000 thenfor i=1 to 10000if condition thencount=count+1endifnextendif//mise à jour de la valeur de count au fur et à mesure du backtestif barindex>10000 thenif condition thencount=count+1endifendifEst ce que de cette façon, PRC peut retenir la valeur de “count” et l’actualiser ?
L’avantage est aussi que ça me permet d’avoir un historique plus long pour le calcul de count.
Merci d’avance pour votre aide.
04/09/2020 at 1:01 PM #125417Pourquoi ne pas faire une somme des booléens avec SUMMATION, pour éviter les boucles :
1count = summation[10000](condition)La variable count se remplira à chaque nouvelle bougie d’une nouvelle valeur et tu pourras donc accéder à toutes ses valeurs passés avec un offset entre crochet, exemple le count d’il y a 10 barres auparavant :
1var = count[10]1 user thanked author for this post.
04/09/2020 at 1:33 PM #125429Merci beaucoup pour ta réponse Nicolas.
J’ai volontairement simplifié le code pour plus de clarté.
Ma condition ressemble en réalité à ça :
123456789defparam preloadbars=10000if barindex>=10000 thenfor i=1 to 10000if open[i-1-x]/open[i-1]-1>0 thencount=count+1endifnextendifJe cherche à calculer la performance en t+x d’une condition réalisée en t
En gros je fais des calculs forward dans le passé, et je pense que la fonction summation est insuffisante dans ce cas, à moins que je me trompe ?
04/09/2020 at 2:02 PM #12543804/09/2020 at 2:08 PM #12543904/09/2020 at 2:28 PM #125444Bon en fait je bloque encore, il y a un problème de temps.
Je vais préciser :
Je souhaite regarder si ma condition dans le passé s’est avérée rentable en ayant pris position et en étant resté dans le marché pendant x barres.
L’idée est d’ignorer cette condition si elle n’est pas assez rentable.
1234567defparam preloadbars=10000condition=close>close[10]x=5 // nb de barres ou je reste en positionif barindex>=10000 thencompteurOccurences=summation[10000](condition)compteurTradesRentables=compteurOccurences[x] .......Et là je retrouve mon problème de calcul de performance en forward.
04/09/2020 at 3:57 PM #125457En résumé tu veux savoir si lorsque tu détectes ‘condition’, en rentrant au marché et en sortant 5 barres plus loin, cela est rentable ? Si oui, uniquement sur la dernière occurrence ou sur toutes celles rencontrées en faisant une moyenne ?
04/09/2020 at 4:13 PM #12545904/09/2020 at 4:42 PM #125465Ok, mais alors je ne comprends pas pourquoi tu veux faire une boucle dans le passé pour connaître ces résultats, puisque tu ne peux plus y intervenir … dans le passé 🙂
Bref, si on comptabilise les résultats tout en laissant passer le temps, on peut y arriver :
12345678910111213141516condition=close>close[10]x=5 // nb de barres ou je reste en positionif condition and barindex-startbar>x then //si condition et aucun ordre en coursstartbar=barindexstartprice=closeendifif barindex-startbar=x then //gain ou perte après X barif close>startprice thengain=gain+1 //gagné !elseperte=perte+1 //perdu :(endifendifreturn gain coloured(0,255,0), perte coloured(255,0,0)Je pense que c’est l’idée, à tester en tant qu’indicateur pour voir si j’ai bien compris.
04/09/2020 at 5:10 PM #125472 -
AuthorPosts
Find exclusive trading pro-tools on