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

 
Fast528:

Je n'ai rien optimisé depuis un moment.

Je n'arrive pas à comprendre ce que signifie la colonne Résultat.

le test avec 10k était


Il s'agit soit d'un critère personnalisé, soit d'un critère de la liste prévue, en face du paramètre intitulé "Optimisation".

 
Aleksey Vyazmikin:

Il s'agit soit d'un critère personnalisé, soit d'un critère issu d'une liste présumée, en face du paramètre intitulé "Optimisation".

rien n'est clair)

où il y a un petit moins dans les bénéfices et dans la colonne Résultat légèrement en dessous du montant de départ

 
Fast528:

rien n'est clair)

où il y a un léger moins dans les bénéfices et dans la colonne Résultat légèrement en dessous du montant de départ

 
Aleksey Vyazmikin:

Merci, j'y jetterai un coup d'œil demain.

 
Fast528:

Merci, j'y jetterai un coup d'œil demain.

Heureux d'aider.

 
Veuillez m'indiquer comment trouver la valeur supérieure et inférieure du prix sur le graphique, observable visuellement à tout moment ?
 
Aleksey Vyazmikin:
Veuillez m'indiquer comment trouver les valeurs maximales et minimales du prix du graphique, observables visuellement à l'heure actuelle ?

CHART_PRICE_MIN

chart_prmin

double modificateur r/o - numéro de sous-fenêtre

CHART_PRICE_MAX

graphique max

double modificateur r/o - numéro de sous-fenêtre

 
Vladimir Karputov:

CHART_PRICE_MIN

chart_prmin

double modificateur r/o - numéro de sous-fenêtre

CHART_PRICE_MAX

graphique max

double modificateur r/o - numéro de sous-fenêtre

Merci !

Je comprends que ces valeurs ne peuvent être obtenues que sur le graphique actuel. Pour obtenir les informations sur l'historique, il faudra déplacer le graphique d'une barre à la fois ?

 
Aleksey Vyazmikin:

Merci !

Je comprends que ces valeurs ne peuvent être obtenues que sur le graphique actuel, et que pour obtenir des informations sur l'historique, il faudrait déplacer le graphique une barre à la fois ?

Vous pouvez utiliser l'identificateur d'événementOnChartEvent et CHARTEVENT_CHART_CHANGE - tout changement de graphique. Vous pouvez le vérifier dans une minuterie (par exemple, une fois par seconde).

Voici un exemple basé sur l'identifiant d'événement OnChartEvent et CHARTEVENT_CHART_CHANGE :

//+------------------------------------------------------------------+
//|                                             CHART_PRICE_xxxx.mq5 |
//|                              Copyright © 2018, Vladimir Karputov |
//|                                           http://wmua.ru/slesar/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2018, Vladimir Karputov"
#property link      "http://wmua.ru/slesar/"
#property version   "1.00"
#property indicator_chart_window
#property indicator_plots 0
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const int begin,
                const double &price[])
  {
//---

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---
   if(id==CHARTEVENT_CHART_CHANGE)
     {
      string text=(DoubleToString(ChartPriceMax(0,0),Digits())+"\n"+
                   DoubleToString(ChartPriceMin(0,0),Digits()));
      Comment(text);
     }
  }
//+----------------------------------------------------------------------+ 
//| Gets the value of chart minimum in the main window or in a subwindow | 
//+----------------------------------------------------------------------+ 
double ChartPriceMin(const long chart_ID=0,const int sub_window=0)
  {
//--- prepare the variable to get the result 
   double result=EMPTY_VALUE;
//--- reset the error value 
   ResetLastError();
//--- receive the property value 
   if(!ChartGetDouble(chart_ID,CHART_PRICE_MIN,sub_window,result))
     {
      //--- display the error message in Experts journal 
      Print(__FUNCTION__+", Error Code = ",GetLastError());
     }
//--- return the value of the chart property 
   return(result);
  }
//+----------------------------------------------------------------------+ 
//| Gets the value of chart maximum in the main window or in a subwindow | 
//+----------------------------------------------------------------------+ 
double ChartPriceMax(const long chart_ID=0,const int sub_window=0)
  {
//--- prepare the variable to get the result 
   double result=EMPTY_VALUE;
//--- reset the error value 
   ResetLastError();
//--- receive the property value 
   if(!ChartGetDouble(chart_ID,CHART_PRICE_MAX,sub_window,result))
     {
      //--- display the error message in Experts journal 
      Print(__FUNCTION__+", Error Code = ",GetLastError());
     }
//--- return the value of the chart property 
   return(result);
  }
//+------------------------------------------------------------------+
Dossiers :
 
Vladimir Karputov:

Peut être basé sur l'identifiant d'événement OnChartEvent et CHARTEVENT_CHART_CHANGE - tout changement de graphique. Vous pouvez le vérifier dans une minuterie (par exemple, une fois par seconde).

Voici un exemple basé sur l'identifiant d'événement OnChartEvent et CHARTEVENT_CHART_CHANGE :

Merci !

Raison: