Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 910

 
Fast528:

Ich habe schon lange nichts mehr optimiert.

Was bedeutet die Spalte "Ergebnis"? Ich kann sie nicht entziffern.

der Test mit 10k war


Dabei handelt es sich entweder um ein benutzerdefiniertes Kriterium oder um ein Kriterium aus der erwarteten Liste, die sich gegenüber der Einstellung mit der Bezeichnung "Optimierung" befindet.

 
Aleksey Vyazmikin:

Dabei handelt es sich entweder um ein benutzerdefiniertes Kriterium oder um ein Kriterium aus einer angenommenen Liste, die sich gegenüber der Einstellung mit der Bezeichnung "Optimierung" befindet.

nichts ist klar)

wo es ein kleines Minus in den Gewinnen gibt und in der Spalte Ergebnis etwas unter dem Ausgangsbetrag liegt

 
Fast528:

nichts ist klar)

mit einem leichten Minus bei den Gewinnen und in der Spalte Ergebnis leicht unter dem Ausgangsbetrag

 
Aleksey Vyazmikin:

Danke, ich werde morgen mal nachsehen.

 
Fast528:

Danke, ich werde morgen mal nachsehen.

Ich helfe gern.

 
Wie kann ich den oberen und unteren Wert des Preises auf dem Diagramm herausfinden, der zu einem bestimmten Zeitpunkt visuell sichtbar ist?
 
Aleksey Vyazmikin:
Wie kann ich die Höchst- und Tiefstwerte des Chartpreises herausfinden, die im Moment visuell sichtbar sind?

CHART_PREIS_MIN

Karte_prmin

doppelter r/o-Modifikator - Teilfensternummer

CHART_PREIS_MAX

Diagramm max

doppelter r/o-Modifikator - Teilfensternummer

 
Vladimir Karputov:

CHART_PREIS_MIN

Karte_prmin

doppelter r/o-Modifikator - Teilfensternummer

CHART_PREIS_MAX

Diagramm max

doppelter r/o-Modifikator - Teilfensternummer

Ich danke Ihnen!

Ich verstehe, dass diese Werte nur im aktuellen Diagramm abgerufen werden können. Um die Informationen im Verlauf zu erhalten, muss das Diagramm um einen Balken nach dem anderen verschoben werden?

 
Aleksey Vyazmikin:

Ich danke Ihnen!

Soweit ich weiß, können diese Werte nur im aktuellen Diagramm abgerufen werden, und um Informationen über die Historie zu erhalten, müssten Sie das Diagramm um jeweils einen Balken verschieben?

Sie könnenOnChartEvent und den Ereignisbezeichner CHARTEVENT_CHART_CHANGE verwenden - jede Änderung des Diagramms. Sie können dies in einem Timer überprüfen (z. B. einmal pro Sekunde).

Das folgende Beispiel basiert auf OnChartEvent und dem Ereignisbezeichner 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);
  }
//+------------------------------------------------------------------+
Dateien:
 
Vladimir Karputov:

Kann auf OnChartEvent und der Ereigniskennung CHARTEVENT_CHART_CHANGE basieren - jede Diagrammänderung. Kann in einem Timer überprüft werden (z. B. einmal pro Sekunde).

Das folgende Beispiel basiert auf OnChartEvent und dem Ereignisbezeichner CHARTEVENT_CHART_CHANGE:

Ich danke Ihnen!

Grund der Beschwerde: