ProRealTime
Pour partager sur le trading automatique, nos algorithmes, nos backtests

Attendre la bougie d'aprés

par DarkPoule » 11 Jan 2018 11:12

Bonjour,

Je fais un peu de programmation sur ProOrder. C'est simple... je suis en démo.
Mais j'ai remarque que lorsque mon système enchaine deux actions à la suite, on dirait qu'il n'a pas le temps de lire tout le code.

Exemple:
Grosso modo en fonction de certains paramètres, mon système prend plus ou moins de lots.
Mais lorsque j'enregistre une perte 09h57m17s (stop), il reprend une position a 9h57m19s avec les même paramètres qu'avant et pas les nouveaux qu'il devrait.

Comment dans proorder, je peux lui dire d'attendre la bougie d’après ?

D'autre chose mais ça j'avais lu, mes stops ne sont pas tout le temps respectés. Aujourd'hui de 9h a 10h, mes stops à 4.5pts se sont vues exécutés à 6.70pts, 7.70pts, 8.50pts, 6.70pts. Hier nickel...

Est ce que ces due au flux de démo, je peux comprendre qu'il y ait des glissements... mais la c'est vraiment souvent. L'ironie du truc c'est que les limites gagnantes, sont toujours bien exécutés :) pas une miette a grignoter.

Merci

Re: Attendre la bougie d'aprés

par David » 11 Jan 2018 12:40

Salut DarkPoule,

je n'ai jamais codé sur ProOrder, mais sur d'autres plateformes et à chaque fois la gestion des bougies est faite par un index.

https://www.prorealtime.com/fr/pdf/probacktest_c1504281788c.pdf#breakout
PDF en français bien détaillé avec de nombreux exemples et un glossaire à la fin pour les fonctions types du langage propriétaire ...

BarIndex : Nombre de barres depuis la première barre de données chargée


Pour le reste sans voir ton code ça va être difficile de te répondre.

Re: Attendre la bougie d'aprés

par David » 11 Jan 2018 12:59

Code: Tout sélectionner

ONCE EnterIndex  = 0

EnterIndex = BarIndex
// quand une bougie remplit les conditions souhaitées tu enregistres son index

IF Barindex = EnterIndex + 1 THEN
   EnterIndex = 0

// ton code d'exécution d'ordre...

ENDIF

Re: Attendre la bougie d'aprés

par David » 11 Jan 2018 16:34

Rectification, tu initialises à zéro si tu as un flag (booléen ou autres) en plus dans la condition. Sinon tu initialises à -2 pour éviter tout problème dans les premières itérations.

Code: Tout sélectionner
ONCE EnterIndex  = -2

IF Condition1 = Critère1 THEN
 IF Condition2 = Critère2 THEN
  EnterIndex = BarIndex
  // quand une bougie remplit les conditions souhaitées tu enregistres son index
 ENDIF
ENDIF

IF BarIndex = EnterIndex + 1 THEN
 EnterIndex = 0
 // ton code d'exécution d'ordre...
ENDIF


Re: Attendre la bougie d'aprés

par DarkPoule » 11 Jan 2018 17:24

Bonjour David,
Ah, c'est peut être l'instruction 'ONCE' qui me manquais, le code s'effectuant d'une barre sur l'autre, je me demandais comment mémoriser une variable de l'une sur l'autre et les comparer.

Je vais tester ça et je te tiens au courant.
Merci pour tout.

Re: Attendre la bougie d'aprés

par David » 11 Jan 2018 17:29

Une erreur courante et de ne pas initialiser ses variables au début alors qu'elles sont utilisées dans deux blocs différents.

Re: Attendre la bougie d'aprés

par BearIsDead » 12 Jan 2018 03:17

DarkPoule a écrit:Comment dans proorder, je peux lui dire d'attendre la bougie d’après ?


Salut DarkPoule, en complément de David: j'utilise PRT en full auto, mais je n'ai pas compris ta question désolé. PRT exécute l'ensemble des instructions à chaque fin de bougie, pour la bougie suivante.

Re: Attendre la bougie d'aprés

par DarkPoule » 12 Jan 2018 10:53

Oui c'est vrai, ça n'est pas très clair.

En fait comme je suis sur des temps assez court, je souhaiterais que le système lors d'une perte, ne s’exécute pas à la bougie directement après, mais celle encore d’après. Comme je dis plus haut, lorsque les temps sont très rapproché, j'ai des souci.
Mais lorsque j'enregistre une perte 09h57m17s (stop), il reprend une position a 9h57m19s avec les même paramètres qu'avant et pas les nouveaux qu'il devrait.


Est ce que je suis plus limpide ?

Re: Attendre la bougie d'aprés

par BearIsDead » 13 Jan 2018 16:10

Oui c'est plus clair. As-tu essayé en utilisant la variable TRADEINDEX ? Quand ta dernière action est une fermeture de position, ça te donne le BARINDEX où a eu lieu la fermeture.

Re: Attendre la bougie d'aprés

par Camilo » 14 Jan 2018 22:28

Bonsoir,
je pense que la formule suivante pourait t'aider, à adapter en fonction de ton code perso :

//Parametre

distancederniertrade=barindex-tradeindex(1)

// Condition,( tu dois remplacer n par le nombre de bougies que le programme doit attendre avant qu'il ce relance)

c1 = distancederniertrade >= n

//Programme

if c1 then
buy 1 contract at market
endif

Articles en relation
Un seul trade par bougie - mql4
par Gacanga » 24 Mar 2017 12:31 (3 Réponses)
Code pour prendre un ordre à l'open de la bougie suivante?
par GOLDENBOY » 24 Nov 2016 00:43 (8 Réponses)

ProRealTime

Alors partagez-le 5 fois c'est bon pour la santé