Erreurs, bugs, questions - page 134

 
EQU:

Assis... Je regarde...

Je ne croirai jamais que MQL5 et MQL4 ont été écrits par la même équipe.(((

MQ4 - volant...

MQ5 est un jeu d'enfant. Sans vouloir vous offenser, mais...((()


Combien de temps s'est écoulé depuis la sortie de MT4 ? Dans 2 ans et MT5 sera considéré comme un "système de trading parfait"...
 
Dmitriy2:

Je n'ai pas vu ce fil... même chose...

Le truc, c'est que je ne vais pas faire bêtement des vérifications sur chaque ligne pour toutes les occasions de confusion et d'encombrement du code. Si c'est hors de question, alors... des béquilles sont ajoutées, un projet assez important est finalement entièrement refait et fonctionne...

Et en général, je suis juste étonné de cette approche... Il s'avère que ce n'est pas la première fois qu'une telle question se pose (et je suis sûr que plus d'une fois à l'avenir se posera dans d'autres personnes), et chaque fois "pour la première fois" de passer beaucoup de votre temps de travail et d'autres pour expliquer ce que vous devez faire pour contourner ce bug ...

La seule chose à faire est d'ajouter dans TESTER ce qui est recommandé dans ce fil de discussion seulement UN Sleep(1000) au début de l'Expert Advisor.

Il ne doit pas être tel que le shell implique des pépins, et ces pépins doivent être évités dans le code. Et le TERMINAL fonctionne bien et correctement, il n'y a PAS D'ERREURS (dans cette situation). Mais le fonctionnement du testeur est DIFFÉRENT de celui du terminal.

ps EQU bonjour :)

Encore une fois, je répète. Nous avons recommandé à l'avance comment travailler avec les indicateurs, nous l'avons décrit dans la documentation (quelqu'un ne lit tout simplement pas la documentation).

Juste après avoir créé une poignée d' indicateur, il n'y a pas encore de données. Ils doivent être calculés dans un autre fil. Le fait que vous obteniez immédiatement des données dans le terminal du client, considérez cela comme une chance. Une fois encore, vous risquez de ne pas obtenir les données.

Le testeur est plus déterministe que le terminal - tout y est beaucoup plus synchrone. Et immédiatement après avoir créé une poignée, vous n'obtiendrez jamais de données. Dans ce cas, "jamais" est équivalent à "parfois". Pour "parfois", vous devez toujours prévoir une sorte de contrôle. Donc, mettez une boucle de contrôle avec une glissière. Et tout sera comme dans la vie.

PS : ne créez pas un nouveau handle à chaque itération - c'est une erreur à tout point de vue.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Типы индикаторов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Типы индикаторов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Типы индикаторов - Документация по MQL5
 
stringo:

Encore une fois, je répète. Nous avons recommandé à l'avance la manière dont les indicateurs doivent être traités et l'avons décrite dans la documentation (quelqu'un ne lit tout simplement pas la documentation).

Juste après la création de la poignée de l'indicateur, il n'y a pas encore de données. Ils doivent être calculés dans un autre fil. Le fait que vous obteniez immédiatement des données dans le terminal du client, considérez cela comme une chance. Une fois encore, vous risquez de ne pas obtenir les données.

Le testeur est plus déterministe que le terminal - tout y est beaucoup plus synchrone. Et immédiatement après avoir créé une poignée, vous n'obtiendrez jamais de données. Dans ce cas, "jamais" est équivalent à "parfois". Pour "parfois", vous devez toujours prévoir une sorte de contrôle. Donc, mettez une boucle de contrôle avec une glissière. Et tout sera comme dans la vie.

PS Eh bien, vous ne devriez pas créer une nouvelle poignée à chaque itération - c'est faux à tout point de vue.

Nous avons alors besoin de deux fonctions (temps supplémentaire...). Ceci en tenant compte du fait que les données de l'indicateur dans le code sont toujours différentes. Est-ce que ça ira ?

   if(ХендлПараболик(ТФОткрытияпоSAR,SAR_stepОткрытияпоSAR,SAR_maximumОткрытияпоSAR,2)==true)
      ЗначениеПараболик=Параболик(ТФОткрытияпоSAR,SAR_stepОткрытияпоSAR,SAR_maximumОткрытияпоSAR,1);

//+----------------------------------------------------------------------------+
//Функция создания и проверки хендла Parabolic SAR                    MQL5     |
//+----------------------------------------------------------------------------+
bool ХендлПараболик(ENUM_TIMEFRAMES период,double step,double maximum,int бар)
  {
   Parabolic=iSAR(СИМВОЛ,период,step,maximum);
   for(int i=0;i<100;i=i+1)
     {
      if(BarsCalculated(Parabolic)>бар)
         return(true);
      Sleep(50);
     }
   return(false);
  }
//+------------------------------------------------------------------+


//+----------------------------------------------------------------------------+
//Функция Parabolic SAR                                               MQL5     |
//+----------------------------------------------------------------------------+
double Параболик(ENUM_TIMEFRAMES период,double step,double maximum,int бар)
  {
   double ЗначениеParabolic[1];
   CopyBuffer(Parabolic,0,бар,1,ЗначениеParabolic);
   return(ЗначениеParabolic[0]);
  }
 
Est-ce que quelqu'un sait comment obtenir l'indice de la session de négociation en cours pour la fonction SymbolInfoSessionTrade() . L'aide indique seulement lenuméro de la session pour laquelle je veux obtenir l'heure de début et l'heure de fin. L'indexation des sessions commence à partir de 0.
Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
  • www.mql5.com
Получение рыночной информации / SymbolInfoSessionQuote - Документация по MQL5
 
Merci pour le conseil.
 

Veuillez me conseiller. Cette ligne au début de l'EE est-elle nécessaire ?

void OnTick()
{
   if(!MQL5InfoInteger(MQL5_TRADE_ALLOWED)) return;
Si non, quand en a-t-on besoin ?
 
gpwr:

Veuillez me conseiller. Cette ligne au début de l'EE est-elle nécessaire ?

Si non, quand en a-t-on besoin ?

Cette fonction vérifie si cette case à cocher est activée :


 
gpwr:

Veuillez me conseiller. Cette ligne au début de l'EE est-elle nécessaire ?

Si non, dans quels cas est-il nécessaire ?

Si la négociation dans le programme mql5 est interdite (par exemple, si vous avez décoché la case permettant la négociation dans cet EA lorsque vous le démarrez), alors aucune négociation ne sera effectuée. Le conseiller expert lui-même fonctionnera comme d'habitude. Vérifiez par vous-même.
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Типы торговых операций - Документация по MQL5
 
Urain:

Cette fonction vérifie si cette case à cocher est activée :

Non, il s'agit d'un message concernant une autre case à cocher qui est cochée au démarrage de l'expert ou du script.


Raison: