Questions des débutants MQL5 MT5 MetaTrader 5 - page 994

 
Kolya32:
Merci à vous aussi. Cela fonctionne aussi)

Je tiens à vous remercier aussi :))))

Celui-là

double Candle = (iClose(_Symbol,PERIOD_H1,1) - iOpen(_Symbol,PERIOD_H1,1)) / _Point;
if(Candle < 0){Candle = Candle * -1;}
string Candle2 =  DoubleToString(Candle, 0);
int Candle3 = StringToInteger(Candle2);

peut être remplacé par ceci et il fonctionnera de la même manière.

int Candle = (int)fabs((iClose(_Symbol,PERIOD_H1,1) - iOpen(_Symbol,PERIOD_H1,1)) / _Point);
Документация по MQL5: Математические функции / MathAbs
Документация по MQL5: Математические функции / MathAbs
  • www.mql5.com
Математические функции / MathAbs - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 


Bonne journée. Question. Comment puis-je associer les données tick aux barres timeframe ? Voici une partie du code. Elle permet de changer la couleur du tampon. J'ai compris

avec des couleurs, mais la façon de créer un lien ici n'est pas claire... ? J'ai quelques idées sur la structure de MqlRates, mais il n'est pas clair quelle valeur prendre... ? J'ai vu comment cela fonctionne (exemple dans la documentation), mais la valeur saute et on ne sait pas pourquoi.

//--- Подготовка данных
   int count=(limit>1 ? rates_total : 2),copied=0;
   copied=CopyBuffer(handle_ma,0,0,count,BufferPrice);
   if(copied!=count) return 0;
//----   
   for(int i=limit; i>=0 && !IsStopped(); i--)
     {
      bp=NormalizeDouble(BufferPrice[i],_Digits);
//--- High signal
   if(bp>iOpen(NULL,PERIOD_CURRENT,i) && bp<iClose(NULL,PERIOD_CURRENT,i))
     {
      ExtOpenBuffer[i]=open[i];
      ExtHighBuffer[i]=high[i];
      ExtLowBuffer[i]=low[i];
      ExtCloseBuffer[i]=close[i];
      ExtColorsBuffer[i]=1;   / уфер изменения цвета
     }
//--- Low signal
   if(bp<iOpen(NULL,PERIOD_CURRENT,i) && bp>iClose(NULL,PERIOD_CURRENT,i))
     {
      ExtOpenBuffer[i]=open[i];
      ExtHighBuffer[i]=high[i];
      ExtLowBuffer[i]=low[i];
      ExtCloseBuffer[i]=close[i];
      ExtColorsBuffer[i]=2;
     }
     }
 
Alexey Viktorov:

Je tiens à vous remercier aussi :))))

int Candle = (int)fabs((iClose(_Symbol,PERIOD_H1,1) - iOpen(_Symbol,PERIOD_H1,1)) / _Point);
Merci à vous aussi. Je n'ai pas essayé ce modèle, mais croyez-moi, il fonctionne).
 
Kolya32:
Merci à vous aussi. Je n'ai pas essayé cette conception, mais je vous prends au mot pour dire que cela fonctionne).

Tu n'aurais pas dû essayer. C'était une blague sur le merci, mais le code est sérieux. Pourquoi convertir un double en int via une chaîne de caractères alors qu'il existe une fonction de valeur absolue...

 
kopeyka2:


Bonne journée. Une question s'est posée. Comment lier les données tick aux barres timeframe. Voici une partie du code. Il s'agit de changer la couleur du tampon. J'ai compris

avec des couleurs, mais la façon de créer un lien ici n'est pas claire... ? J'ai quelques idées sur la structure de MqlRates, mais il n'est pas clair quelle valeur prendre... ? J'ai vu comment cela fonctionne (exemple dans la documentation), mais la valeur saute et on ne sait pas pourquoi.

Vous ne vérifiez pas ce qui est reçu dans

if(bp>iOpen(NULL,PERIOD_CURRENT,i) && bp<iClose(NULL,PERIOD_CURRENT,i))
if(bp<iOpen(NULL,PERIOD_CURRENT,i) && bp>iClose(NULL,PERIOD_CURRENT,i))

Les fonctions renvoient 0 en cas d'erreur. Votre logique fonctionnera également en cas de données erronées provenant de iOpen() dans le premier cas et de iClose() dans le second.

Pour recevoir les données des ticks dans mql5 il y a la structure MqlTick et la fonction CopyTicks(), dans laquelle vous pouvez obtenir les données du nombre nécessaire de derniers ticks dans la structure. Ensuite, afin de le lier à une barre du cadre temporel, vous devez obtenir le numéro de la barre par le temps du tick. iBarShift() et le champ de la structure tick.time

 
Artyom Trishkin:

Vous ne vérifiez pas ce qui est reçu en

Les fonctions renvoient 0 en cas d'erreur. Votre logique fonctionnera également en cas de données d'erreur provenant de iOpen() dans le premier cas et de iClose() dans le deuxième cas.

Pour obtenir les données des ticks dans mql5, il existe une structure MqlTick et la fonction CopyTicks(), dans laquelle vous pouvez obtenir les données pour le nombre nécessaire de derniers ticks dans la structure. Ensuite, afin de le lier à une barre du cadre temporel, vous devez obtenir le numéro de la barre par le temps du tick. iBarShift() et le champ de la structure tick.time

Merci. La difficulté ici (dans ma question) est que les chandeliers sont colorés par des ticks. C'est plus facile par la barre de l'intervalle de temps. Mais... Et c'est pour cela que je suis de nouveau ici)))).
 
kopeyka2:
Merci. La difficulté ici (dans ma question) est que les bougies sont peintes avec des tics. C'est plus facile par la barre de l'intervalle de temps. Mais... Et c'est pour cela que je suis de nouveau ici)))).

S'il vous plaît. Là (dans votre question), je ne comprends rien...

 
Artyom Trishkin:

S'il vous plaît. Je ne comprends rien ici (dans votre question)...

Je pense avoir trouvé un 3LineBreak similaire https://www.mql5.com/ru/code/485.
 
Messieurs, je n'arrive pas à comprendre où se trouve le paramètre nombre continu de trades perdants dans le testeur mt5 ou dois-je le prescrire au robot ? mt4 l'a. Je ne trouve pas comment l'implémenter.
Dossiers :
l9rnznuztu.jpg  73 kb
 
freelancerAntonyan:
Messieurs, je n'arrive pas à comprendre où se trouve le paramètre nombre continu de trades perdants dans le testeur mt5 ou doit-il être prescrit dans le robot ? mt4 l'a. Je ne trouve pas comment l'implémenter.

Vous pouvez faire le calcul vous-même, en choisissant dans les critères personnalisés.