Répondre

Aide à la définition de l'équipe

4 réponses

eawNewbie

Client, bbp_participant, communauté, 11 réponses.

Visiter le profil

Il y a 9 ans #113451

Je ne comprends pas non plus très bien ce que vous voulez obtenir, mais vous pouvez utiliser le paramètre Shift.

 

Shift = 0 signifie la valeur de la barre actuelle, Shift = 1 signifie la valeur de l'indicateur de la barre précédente et ainsi de suite.

Shift = 9 signifie que la valeur de l'indicateur est de 9e barre en arrière.

J'ai cité ce texte d'un autre fil de discussion. La discussion n'était pas applicable à mon problème, mais ce message l'est, donc j'espère que c'est correct de le citer.

 

 

Je comprends que shift = 0 signifie la barre actuelle (ex : barre en cours), ce qui n'est pas clair c'est "valeur à la barre actuelle" ? ?

 

La dernière phrase "Shift = 0 signifie la valeur à la barre actuelle" signifie-t-elle le prix/la valeur au moment précis de l'événement pendant la période de temps de la barre actuelle ?

 

Depuis, je cherche une définition complète de la notion de shift, ici et sur MQL5.

 

 

J'ai rencontré ce problème en essayant d'ouvrir une position après que la barre actuelle soit au moins 3 pips plus élevée que le haut de la barre précédente.

 

Entre-temps, ce code fonctionnera-t-il comme prévu ?

 

//Var

Décalage=3

 

//Règle

Et (High[0] > (High[1] + ConvertToRealPips(Offset))

 

 

merci

0

eawNewbie

Client, bbp_participant, communauté, 11 réponses.

Visiter le profil

Il y a 9 ans #129243

Je n'ai pas réussi à faire fonctionner la règle de condition ci-dessus, j'ai donc décidé de la supprimer et d'appliquer un "ordre d'entrée à l'arrêt" à la place en utilisant le code suivant

 

      // Action
      sqOpenOrder("NULL", OP_BUYSTOP, getOrderSize(MagicLong, OP_BUYSTOP ), getOrderPrice(MagicLong), "", MagicLong, "OffsetBuy") ;
 

 

Malheureusement, cela ne fonctionne pas non plus, donc je fais quelque chose de mal... ? ?

0

Mark Fric

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

Il y a 9 ans #129245

Oui, en utilisant Shift = 0 dans High, Low ou indicators, vous obtiendrez leurs valeurs au moment spécifié lorsque la fonction a été appelée.

 

Quand je teste ton état

Et (High[0] > (High[1] + ConvertToRealPips(Offset))

 

il fonctionne correctement, qu'est-ce qui ne fonctionne pas pour vous ? S'ouvre-t-il à des heures différentes de celles prévues ?

 

Ou bien il n'ouvre pas de transactions du tout ? Vérifiez alors dans le journal des erreurs s'il n'y a pas d'erreur, les erreurs de taille de transaction sont assez courantes.

Marque
StratégieArchitecte de Quantités

0

eawNewbie

Client, bbp_participant, communauté, 11 réponses.

Visiter le profil

Il y a 9 ans #129287

Merci de votre confirmation sur Shift.

 

Lorsque j'utilise la règle ci-dessus, la condition ne semble pas être remplie car chaque action après le "then" n'est pas analysée. Je n'arrive pas à trouver d'indices sur la raison en lisant les journaux, même avec verbose = 2 comme s'il n'y avait pas d'erreur, mais la condition ne renvoie pas un vrai résultat.

 

J'ai supprimé la condition et les transactions sont ouvertes comme prévu. La condition filtre toutes les opportunités pendant la période de backtesting, je vais devoir vérifier que la condition existe réellement pendant la période de test. Sans la condition, j'obtiens littéralement des centaines de transactions, alors qu'avec la condition, il n'y a aucune transaction.

 

Si vous dites qu'il n'y a pas de problème avec la structure de la condition, je vérifierai manuellement que la condition existe réellement. J'essaierai peut-être de remplacer "est supérieur à" par "est inférieur à"

 

Qu'est-ce qui est le plus rapide, vérifier la condition dans l'instruction If ou vérifier la condition en remplaçant la commande open at market par open at stop et effectuer le test si le stop est atteint dans l'instruction "then" ? J'ai constaté qu'en ajoutant la commande dans la construction "then", l'action n'est pas exécutée avant l'action suivante.

0

eawNewbie

Client, bbp_participant, communauté, 11 réponses.

Visiter le profil

Il y a 9 ans #129288

Ok, j'ai réessayé et la condition fonctionne

 

Je ne sais pas ce qui s'est passé 

merci

0

Affichage de 4 réponses de 1 à 4 (sur un total de 4)