Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 910

 
Fast528:

È da un po' che non ottimizzo nulla.

Cosa significa la colonna Risultato? Non riesco a capirlo.

il test con 10k era


Questo è un criterio personalizzato o semplicemente un criterio della lista prevista, di fronte all'impostazione etichettata "Ottimizzazione".

 
Aleksey Vyazmikin:

Questo è un criterio personalizzato o semplicemente un criterio da una lista presunta, di fronte all'impostazione etichettata "Ottimizzazione".

niente è chiaro)

dove c'è un piccolo meno nei profitti e nella colonna Risultato leggermente al di sotto dell'importo iniziale

 
Fast528:

niente è chiaro)

dove c'è un leggero meno nei profitti e nella colonna Risultato leggermente al di sotto dell'importo iniziale

 
Aleksey Vyazmikin:

Grazie, darò un'occhiata domani.

 
Fast528:

Grazie, domani darò un'occhiata.

Felice di aiutare.

 
Per favore consigliate come trovare il valore superiore e inferiore del prezzo sul grafico, osservabile visivamente in qualsiasi momento?
 
Aleksey Vyazmikin:
Per favore, consigliatemi come trovare i valori massimi e minimi del prezzo del grafico, osservabili visivamente al momento?

GRAFICO_PREZZO_MIN

grafico_prmin

doppio modificatore r/o - numero di sottofinestra

GRAFICO_PREZZO_MAX

grafico max

doppio modificatore r/o - numero di sottofinestra

 
Vladimir Karputov:

GRAFICO_PREZZO_MIN

grafico_prmin

doppio modificatore r/o - numero di sottofinestra

GRAFICO_PREZZO_MAX

grafico max

doppio modificatore r/o - numero di sottofinestra

Grazie!

Ho capito che questi valori possono essere ottenuti solo sul grafico corrente. Per ottenere le informazioni sullo storico, sarà necessario spostare il grafico una barra alla volta?

 
Aleksey Vyazmikin:

Grazie!

Mi sembra di capire che questi valori possono essere ottenuti solo sul grafico corrente, e che per ottenere informazioni sullo storico, bisognerebbe spostare il grafico una barra alla volta?

Potete usareOnChartEvent e l'identificatore di eventi CHARTEVENT_CHART_CHANGE - qualsiasi cambiamento di grafico. Potete controllarlo in un timer (per esempio una volta al secondo).

Ecco un esempio basato su OnChartEvent e sull'identificatore di evento 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);
  }
//+------------------------------------------------------------------+
File:
 
Vladimir Karputov:

Può essere basato su OnChartEvent e sull'identificatore di evento CHARTEVENT_CHART_CHANGE - qualsiasi cambiamento del grafico. Potete controllarlo in un timer (per esempio una volta al secondo).

Ecco un esempio basato su OnChartEvent e sull'identificatore di evento CHARTEVENT_CHART_CHANGE:

Grazie!