Conseiller multi-devises. De préférence, l'avis des développeurs.

 
Il existe un conseiller multi-devises. En bref, le point est le suivant. Tous les calculs sont effectués pour un symbole, tandis que la négociation est effectuée pour un autre symbole. L'Expert Advisor travaille avec le contrôle explicite de l'ouverture d'une nouvelle barre. De cette façon, la prochaine chose désagréable arrive. Le conseiller expert peut ne pas ouvrir (sauter) une transaction sur un compte réel, mais lorsqu'il est vérifié dans le testeur de stratégie, cette transaction est présente. Ou encore, le conseiller expert peut ouvrir une transaction réelle une barre plus tard que nécessaire, mais, là encore, lorsque l'on vérifie dans le testeur de stratégie, la transaction est là. A quoi peut-il être lié ?
 
LeoV:
Il existe un EA multi-devises. L'idée générale est la suivante. Pour un symbole, tous les calculs sont effectués, et la négociation est effectuée pour un autre symbole. L'Expert Advisor travaille avec le contrôle explicite de l'ouverture d'une nouvelle barre. De cette façon, la prochaine chose désagréable arrive. Le conseiller expert peut ne pas ouvrir (sauter) une transaction sur un compte réel, mais lorsqu'il est vérifié dans le testeur de stratégie, cette transaction est présente. Ou encore, le conseiller expert peut ouvrir une transaction réelle une barre plus tard que nécessaire, mais, là encore, lorsque l'on vérifie dans le testeur de stratégie, la transaction est là. A quoi peut-il être lié ?

Une position peut ne pas s'ouvrir si de nouvelles cotations arrivent et que vous ouvrez avec les anciennes...

 
kharko:

Une position peut ne pas s'ouvrir si de nouvelles cotations arrivent, mais vous ouvrez avec les anciennes...

Je vois ce que vous voulez dire, mais l'EA gère cette situation. Juste en regardant le journal, il n'y a pas de signal du tout. Cela signifie que l'EA ne s'est pas déclenché (ne donne pas de demande d'ouverture de position). Ou ça ne fonctionnait que sur la barre suivante. Et cela n'arrive pas toujours. Mais seulement parfois. Et ce qui s'y rapporte n'est pas du tout clair ....... Bien que dans le testeur, tout va bien et tout est ouvert et fermé correctement.

 
Sur quel graphique l'EA analyse-t-il ou trade-t-il ? Est-ce que iBarShift() est utilisé, avec quel drapeau, ou pas du tout ?
 
LeoV:
Il existe un EA multi-devises. En bref, la signification est la suivante. Tous les calculs sont effectués pour un symbole, tandis que la négociation est effectuée pour un autre symbole. L'Expert Advisor travaille avec le contrôle explicite de l'ouverture d'une nouvelle barre. De cette façon, la prochaine chose désagréable arrive. Le conseiller expert peut ne pas ouvrir (sauter) une transaction sur un compte réel, mais lorsqu'il est vérifié dans le testeur de stratégie, cette transaction est présente. Ou encore, le conseiller expert peut ouvrir une transaction réelle une barre plus tard que nécessaire, mais, là encore, lorsque l'on vérifie dans le testeur de stratégie, la transaction est là. A quoi peut-il être lié ?

Essayez d'imprimer...

Imprimer(.



avant le signal, après le signal, à l'ouverture, après l'ouverture

imprimer des conditions explicites

comme



// Print( " wait for MyOPEN == 1 " + MyOPEN ) ;


si ( MyOPEN == 1 )

{

Print( " entré par MyOPEN == 1 " ) ;
.


...


}



---

Oh, et plus sur l'ouverture de nouveaux BARs ! !!

Notez qu'il y a des barres sautées ! Et le Testeur ne génère pas de barres manquées

ne cherche pas seulement un bar, cherche un nouveau bar

---

en ce moment même, dans mon temps réel

sur le graphique EURUSD M5 depuis le début de la journée 140 barres se sont formées, mais dans le CHF 137 barres, soit 3 barres perdues :-)

si vous cherchez simplement la barre correspondant à l'EUR en CHF, vous pouvez manquer une barre.

---


et puis il y a les requêtes



Si vous avez eu un SIGNAL et que vous ne pouvez pas le manquer, utilisez simplement la condition pour entrer ou sortir du marché!

et vérifiez si votre signal est REMPLI !

et jusqu'à ce qu'il soit fait - exécuter le code à exécuter - pour ne pas entrer dans une boucle, faire un compteur

après avoir quitté le comptoir - vérifiez si vous devez entrer - sortez

et s'il est nécessaire d'y entrer, recommencez.



----

de plus, le code de commerce

de plus, ce code ne peut être simple !


( il y a un code qui est responsable du travail mécanique - ouverture du chalut sans perte fermeture c'est à dire travail avec les ordres après réception des signaux )

 
LeoV:
Il existe un conseiller expert multi-devises. L'idée générale est la suivante. Tous les calculs sont effectués pour un symbole, tandis que la négociation est effectuée pour un autre symbole. L'Expert Advisor travaille avec un contrôle explicite de l'ouverture d'une nouvelle barre. De cette façon, la prochaine chose désagréable arrive. Le conseiller expert peut ne pas ouvrir (sauter) une transaction sur un compte réel, mais lorsqu'il est vérifié dans le testeur de stratégie, cette transaction est présente. Ou encore, le conseiller expert peut ouvrir une transaction réelle une barre plus tard que nécessaire, mais, là encore, lorsque l'on vérifie dans le testeur de stratégie, la transaction est là. A quoi peut-il être lié ?

C'est ce qu'on appelle des requêtes. Dans le testeur, les transactions ne sont pas des requêtes. Par conséquent, si le ticket de la transaction ouverte est négatif, il est nécessaire de réinitialiser le drapeau de la barre formée.




static int prevtime = 0 ; // Heure de début de barre



...


int start() {


if (Time[0] == prevtime) return(0) ; // la barre est la même, donc exit

prevtime = Time[0] ; // nouvelle barre, garder le temps


...


int ticket = -1 ;


...


ticket = OrderSend(...) ; // essaie d'ouvrir la position

if (ticket < 0) { // la position n'a pas été ouverte pour une raison quelconque.

Sleep(30000) ;

// Ici, nous réinitialisons le drapeau de la barre formée, de sorte que nous répétons l'opération au prochain tick, et non à la prochaine barre.

prevtime = Time[1] ;

}


}

 

L'EA fonctionne sur des barres horaires. Il ne s'agit pas de requêtes - l'EA surveille cela et enverra une nouvelle requête si nécessaire. J'ai écrit sur le fait que l'EA ne se déclenche même pas pour qu'il essaie au moins de commencer à ouvrir un ordre. C'est-à-dire que 2 ou 3 commandes, il ouvre bien (comme il se doit), et la quatrième (ou la troisième) peut ne même pas commencer à l'ouvrir ou l'ouvrir une heure plus tard. Cependant, si vous vérifiez ce moment dans le testeur, cette commande sera au bon endroit.

Le problème, tel que je le comprends, est que les tics pour les instruments ne sont pas uniformes. Et le tick d'ouverture d'une nouvelle barre pour le symbole sur lequel le calcul est effectué peut arriver beaucoup plus tard que pour le symbole sur lequel nous opérons. Ou vice versa. Et c'est là qu'une divergence peut se produire. Mais comment éviter cela ?

 
Votre conseiller expert suppose que les bougies horaires de différents instruments s'ouvrent de manière synchrone. En d'autres termes, lorsqu'un nouveau chandelier horaire apparaît sur l'EURUSD, le conseiller expert démarre, qui vérifie les valeurs sur l'échelle horaire du GBPUSD. Mais si, à ce moment-là, la nouvelle heure de la livre n'a pas commencé, tout s'écroule. En général, nous devons réorganiser un peu la logique de l'EA.
 
Rosh:
Votre Expert Advisor implique que les bougies d'une heure sur différents symboles s'ouvrent de manière synchrone. C'est-à-dire que lorsqu'un nouveau chandelier d'une heure apparaît sur l'EURUSD, le conseiller expert commencera à vérifier les valeurs sur l'échelle horaire de la GBPUSD. Mais si, à ce moment-là, la nouvelle heure de la livre n'a pas commencé, tout s'écroule. En général, nous devons réorganiser un peu la logique de l'EA.

Merci pour la réponse, je pensais que c'était la raison. S'il vous plaît, pouvez-vous me dire comment ? Parce que c'est un gros problème. Voici une capture d'écran, de la vraie. Nous pouvons voir que dans le Strategy Tester la pose a été ouverte à 15.00 et dans le compte réel elle a été ouverte seulement à 16.00. Bien que nous ayons les mêmes paramètres dans le testeur de stratégie et sur le compte réel.

 
LeoV:

L'EA fonctionne sur des barres horaires. Il ne s'agit pas de requêtes - l'EA surveille cela et enverra une nouvelle requête si nécessaire. J'ai écrit sur le fait que l'EA ne se déclenche même pas pour qu'il essaie au moins de commencer à ouvrir un ordre. C'est-à-dire que 2 ou 3 commandes, il ouvre bien (comme il se doit), et la quatrième (ou la troisième) peut ne même pas commencer à l'ouvrir ou l'ouvrir une heure plus tard. Cependant, si vous vérifiez ce moment dans le testeur, cette commande sera au bon endroit.

Le problème, tel que je le comprends, est que les tics pour les instruments ne sont pas uniformes. Et le tick d'ouverture d'une nouvelle barre pour le symbole sur lequel le calcul est effectué peut arriver beaucoup plus tard que pour le symbole sur lequel nous opérons. Ou vice versa. Et c'est là qu'une divergence peut se produire. Mais comment l'éviter ?

Considérez qu'un nouveau tick de N'IMPORTE QUELLE barre horaire (pour n'importe quel instrument) est le début de l'heure.

---

corriger la logique dans cette veine...

dès l'ouverture de la barre des heures sur n'importe quel instrument

recalculer l'autre instrument, en supposant que la barre a déjà été fermée, même si elle n'a pas formé une nouvelle barre.

parce que dans quelques tics ou quelques secondes, il apparaîtra là...


---

disons que vous comptez 2 ou 3 instruments

vous pouvez capter le début de l'heure sur au moins 20 symboles - de préférence les instruments en yens car ils sont très rapides



 
// ---  практически гарантия ловли начала часа двумя БОДРЫМИ парами
   if ( TimeSaveBehchH1 == iTime("GBJJPY",PERIOD_H1,0) )
   {
       TimeSaveBehchH1 = iTime("GBJJPY",PERIOD_H1,0); // новый бар  
   }
   if ( TimeSaveBehchH1 == iTime("USDJPY",PERIOD_H1,0) )
   {
       TimeSaveBehchH1 = iTime("USDJPY",PERIOD_H1,0); // новый бар  
   }
//---
   if ( TimeSaveBehchH1 == iTime("EURUSD",PERIOD_H1,0) ) // в довершении ловим на своей рабоче паре
   {
       TimeSaveBehchH1 = iTime("EURUSD",PERIOD_H1,0); // новый бар  
   }
   if ( TimeSaveBehchH1 == iTime("USDCHF",PERIOD_H1,0) ) // ловим на второй паре 
   {
       TimeSaveBehchH1 = iTime("USDCHF",PERIOD_H1,0); // новый бар 
   }


pour être honnête et ce n'est pas très gentil... la tique n'est pas venue à ces paires et vous passerez encore à côté

si vous montrez un morceau de code qui génère une entrée, vous pourrez trouver plus rapidement l'erreur dans la logique.

 
LeoV:
Rosh:
Votre Expert Advisor suppose que les chandeliers horaires de différents symboles s'ouvrent de manière synchrone. C'est-à-dire que lorsqu'un nouveau chandelier d'une heure apparaît sur l'EURUSD, le conseiller expert commencera à vérifier les valeurs sur l'échelle horaire de la GBPUSD. Mais si, à ce moment-là, la nouvelle heure de la livre n'a pas commencé, tout s'écroule. En général, nous devons réorganiser un peu la logique de l'EA.

Merci pour la réponse, je pensais que c'était la raison. S'il vous plaît, pouvez-vous me dire comment ? Parce que c'est un gros problème. Voici une capture d'écran, de la vraie. Nous pouvons voir que dans le Strategy Tester la pose a été ouverte à 15.00 et dans le compte réel elle a été ouverte seulement à 16.00. Bien que dans le testeur et sur le réel les paramètres soient les mêmes.

...

Pour le symbole négocié, le tick de la nouvelle barre est arrivé plus tôt, c'est pourquoi les anciennes barres du symbole analysé ont pris part à l'analyse, le début a fonctionné et attend l'heure suivante. C'est amusant de deviner sans voir un morceau de code.