Une variable simple ne donne pas de valeur logique
- This topic has 5 replies, 3 voices, and was last updated 6 years ago by .
Viewing 6 posts - 1 through 6 (of 6 total)
Viewing 6 posts - 1 through 6 (of 6 total)
Similar topics:
Forums › ProRealTime forum Français › Support ProOrder › Une variable simple ne donne pas de valeur logique
Dans le cadre du système que je teste, j’essaie de voir pourquoi une pièce qui est simple en principe ne fonctionne pas pour moi.
Je teste ce code isolé pour voir comment la variable EN fonctionne avec Probacktest. Tout ce que je fais, c’est de lancer une ordre et de commencer à compter lorsque cette ordre est sur le marché.
Comme le montre la première image, la variable EN fonctionne bien. Dans la deuxième bougie, la vente est exécutée et la variable commence à augmenter de 1 en 1.
J’ai pensé que si j’augmente la variable EN quand il n’y a pas d’ordre, le résultat attendu devrait être que la variable passe à 1 dans la première bougie, puisqu’il n’y a pas encore d’ordre passé et elle reste à 1. Mais je vois que la variable au lieu de 1 est 1001. Et honnêtement, je ne comprends pas pourquoi. Le seul changement logique est que si je ne suis pas sur le marché, augmentez la EN de 1 et passez l’ordre.
Quelqu’un peut me dire pourquoi au lieu de 1, il reste à 1001 ?
Le graphique en bougies de 5 minutes
Je vous remercie
Je vous remercie
Je vous remercie de votre réponse.
En principe, je ne comprends pas ce qui devrait arriver. Je n’ai chargé que deux jours et je fais le backtest au début de ces deux jours. Il n’y a pas de bougies chargées avant. Et de toute façon, si c’était le problème, j’aurais dû aussi avoir dans le premier exemple que si ça marchait.
Indépendamment de ce qui précède, j’ai mis la variable et effectivement, ne me donne plus de valeurs supérieures à 1000 mais donne toujours une valeur que je ne comprends pas. Il donne 2 de la première bougie. Devrait-on donner 1, je pense, une autre idée ?
Même si les bougies ne sont pas affichés sur l’écran, il est nécessaire qu’elle soit chargée pour calculer par exemple certaines indicateurs, d’où l’incrément de la variable en question.
Il faut une bougie après un ordre pour constater que l’on est au marché, donc l’incrément me semble correct ici.
Bonjour
Vous voudrez bien m’excuser de m’immiscer dans votre conversation.
Issu d’autres systèmes de programmation, j’ai eu le même problème avec lequel je me suis bagarré.
J’ai trouvé la solution sur le forum (merci à vous) :
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
DEFPARAM CumulateOrders = false once cpt = 0 maxorders = 1 ST = Dopen(0) * 1.015 IF not LongOnMarket and open > ST and cpt < maxorders then buy 2000 cash at market ENDIF if onmarket and lastindex <> tradeindex then cpt = cpt + 1 lastindex = tradeindex endif |
Et ça marche.
En espérant vous avoir fait avancé.
Meilleures salutations.
F.T.
Find exclusive trading pro-tools on 