Caractéristiques du langage mql5, subtilités et techniques - page 192

 
traveller00:

D'après les statistiques : environ 200 à 300 transactions par jour. Même avec des contrôles normaux, mais sans contrôles vraiment délicats, en moyenne 2 à 3 fois par semaine j'ai attrapé une ouverture de lot double. Calculez la probabilité et évaluez si vous avez besoin ou êtes prêt à accepter cette probabilité. Personnellement, j'ai fait mes chèques au maximum.

Merci. Quel est votre ping ?
 
Vasiliy_Saharov:
Merci. Et quel est votre ping ?

Il saute dans la fourchette 55-60ms. Mais ce n'est pas une question de ping. Comme je l'ai dit, c'est même avec des contrôles normaux. C'est là que l'attente était déjà, juste adéquate, comme attendre 1 seconde. Mais c'est là qu'il s'envolait, même pour des portées qui dépassent le ping de plusieurs ordres de grandeur.

P.S. Test intéressant pour les ordres fantômes au sujet https://www.mql5.com/ru/forum/1111/page2220#comment_7834585
Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2018.06.20
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
Vasiliy_Saharov:
Si vous avez un algorithme qui permet de conclure à 0,1 lot, alors il y a une probabilité de commettre deux fois 0,1, et comme je pense que cette probabilité tend vers zéro, et trois fois, je pense que c'est impossible. Encore moins 20 fois. Après tout, nous parlons d'applications. En règle générale, le serveur répond probablement dans la limite de 10minsec (est-ce exact ? Je n'en suis pas sûr). Quelle est la probabilité de saisir une deuxième transaction, à votre avis ? Faites-vous ce contrôle vous-même ? Est-il possible que le serveur mette du temps à répondre ?

La réponse du serveur avec le résultat de la transaction peut être retardée pour des raisons très différentes, et vous ne pouvez pas compter sur 10 ms dans tous les cas (même si le ping est de 1 ms).

Bien sûr, je fais ce contrôle. Plus précisément, j'utilise le prêt MT4Orders qui tient compte de cela (et de bien d'autres choses).

 
const int a=2;

void OnStart()
{
  int b[a];  //'[' - invalid index value
}

Ce comportement différent de celui de C++ est-il une fonctionnalité ou un bogue ?

 
Igor Makanu:

dans l'indicateur n'attendra pas le résultat de CopyXXX

comme option dans la minuterie de l'indicateur pour traiter CopyXXX et appeler cet indicateur depuis EA

Ça a marché, merci pour l'idée !

 

Comment le changement d'heure été/hiver peut casser MT5-Tester.

Le moyen le plus simple d'expliquer le problème est de donner un exemple. Il y a un symbole avec ces restrictions sur les sessions de cotation.

Cependant, dans l'historique des prix, il y a des prix entre 22h15 et 23h15, qui sont valables bien qu'ils soient en dehors de la session de cotation.


Le fait est qu'avant le passage à l'heure d'hiver, la session était : 03:00 - 23:15. L'explication est simple. Le serveur de négociation change l'heure, mais pas le symbole de cotation. Par exemple, l'indice. De ce fait, le serveur de négociation modifie l'heure de la session pour le symbole correspondant.


Cette circonstance entraîne des conséquences très désagréables dans le MT5-Tester. Vous ne pouvez pas négocier à des prix valides entre 22:15 et 23:15 et obtenir un rejet sous la forme [Marché fermé]. C'est-à-dire que le commerce se déroulait réellement à cet endroit, mais le Testeur ne vous permet pas de le faire.


En fait, le Testeur fausse le commerce en donnant des résultats sciemment faux. Il est assez problématique de remarquer cette particularité. Pour remédier à cette situation, vous devez corriger vous-même l'heure de la session.


Oubliez ce problème (et quelques autres), vous pouvez passer à un symbole personnalisé, qui calcule/écrit automatiquement les temps de session appropriés.


Sur la capture d'écran supérieure des paramètres du symbole, il y a une ligne inférieure "Utiliser la limite de temps". Peut-être que lorsqu'elle entrera en vigueur, vous pourrez encore contourner ce problème grâce à elle.


Pour l'instant, la règle est valable - les symboles personnalisés peuvent augmenter considérablement la probabilité que les résultats du testeur MT5 soient corrects.


Rappelez-vous, lorsque vous faites des demandes pour l'historique des prix (CopyRates/CopyTicks) dans le terminal, ne vous concentrez pas sur les sessions de cotation.

 
fxsaber:

Comment le changement d'heure été/hiver peut casser MT5-Tester.

Merci de partager des observations intéressantes - j'ai également soulevé le problème du temps plus tôt, mais j'ai remarqué une majoration incorrecte à l'avenir lorsque le prix sur les barres est inférieur à 0.

La question qui se pose est la suivante : existe-t-il des situations où il est correct d'interdire totalement la négociation sur le testeur, ou du moins où il existe une cotation d'un instrument avec une interdiction de négocier sur celui-ci en réalité à certaines heures ? Je comprends qu'il y a différents indices et qu'il n'est pas clair comment compter le profit sur ceux-ci, mais dans ce cas vous pouvez le compter de manière forcée en points et juste écrire un message dans le journal que l'instrument n'est pas négocié, mais que vous pouvez vérifier le TS.

 
Aleksey Vyazmikin:

il existe des cotations pour un instrument avec une interdiction de le négocier en réalité à certaines heures ?

La première minute après minuit est interdite. Lorsque cela peut être important, je mets un chèque.

// true - торговые сессии совпадают с котировочными, false - иначе.
bool IsSessionsQuoteEqualTrade( const string Symb )
{
  bool Res = true;
  
  for (int i = 0; (i < 7) && Res; i++)
  {
    datetime FromQuote;
    datetime ToQuote;

    datetime FromTrade;
    datetime ToTrade;
    
    if (SymbolInfoSessionQuote(Symb, (ENUM_DAY_OF_WEEK)i, 0, FromQuote, ToQuote) && (FromQuote != ToQuote))
      Res = SymbolInfoSessionTrade(Symb, (ENUM_DAY_OF_WEEK)i, 0, FromTrade, ToTrade) &&
            (FromQuote == FromTrade) && (ToQuote == ToTrade);
  }
  
  return(Res);
}

Lorsqu'il y a plusieurs sessions dans une journée, je ne le vérifie pas.

 
fxsaber:

La première minute après minuit est interdite. Lorsque cela peut être important, je le vérifie.

Je ne vérifie pas s'il y a plusieurs sessions dans une journée.

Il s'agit d'une situation artificielle créée par les sociétés de courtage. Supposons qu'il y ait des transactions sur une vente aux enchères fermée, mais qu'elles soient cotées.

 
Aleksey Vyazmikin:

Il s'agit d'une situation artificielle créée par le DC, mais existe-t-il des exemples réels ? Disons qu'il y a des transactions dans une enchère fermée et qu'elles sont pourtant cotées.

Absolument toutes les règles sont artificielles.

Raison: