Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 910

 
Fast528:

Hace tiempo que no optimizo nada.

¿Qué significa la columna de resultados? No lo entiendo.

la prueba con 10k fue


Se trata de un criterio personalizado o simplemente de un criterio de la lista prevista, frente al ajuste denominado "Optimización".

 
Aleksey Vyazmikin:

Se trata de un criterio personalizado o simplemente de un criterio de una lista supuesta, frente al ajuste denominado "Optimización".

nada está claro)

donde hay un pequeño signo negativo en los beneficios y en la columna de resultados ligeramente por debajo del importe inicial

 
Fast528:

nada está claro)

donde hay un ligero menos en los beneficios y en la columna de resultados ligeramente por debajo de la cantidad inicial

 
Aleksey Vyazmikin:

Gracias, mañana echaré un vistazo.

 
Fast528:

Gracias, mañana echaré un vistazo.

Feliz de ayudar.

 
Por favor, indíqueme cómo averiguar el valor superior e inferior del precio en el gráfico, observable visualmente en cualquier momento.
 
Aleksey Vyazmikin:
Por favor, indíqueme cómo averiguar los valores máximos y mínimos del precio del gráfico, observables visualmente en este momento.

PRECIO_GRÁFICO_MÍNIMO

chart_prmin

modificador doble r/o - número de subventana

PRECIO_MÁXIMO_DEL_GRÁFICO

gráfico máximo

modificador doble r/o - número de subventana

 
Vladimir Karputov:

PRECIO_GRÁFICO_MÍNIMO

chart_prmin

modificador doble r/o - número de subventana

PRECIO_MÁXIMO_DEL_GRÁFICO

gráfico máximo

modificador doble r/o - número de subventana

Gracias.

Entiendo que estos valores sólo pueden obtenerse en el gráfico actual, y que para obtener información sobre el historial, debería mover el gráfico paso a paso, barra a barra?

 
Aleksey Vyazmikin:

Gracias.

Entiendo que estos valores sólo se pueden obtener en el gráfico actual, y que para obtener información sobre el histórico, habría que mover el gráfico barra a barra?

Puede utilizar el identificador de eventosOnChartEvent y CHARTEVENT_CHART_CHANGE - cualquier cambio de gráfico. Puede comprobarlo en un temporizador (por ejemplo, una vez por segundo).

Aquí hay un ejemplo basado en OnChartEvent y el identificador de 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);
  }
//+------------------------------------------------------------------+
Archivos adjuntos:
 
Vladimir Karputov:

Puede basarse en el identificador de eventos OnChartEvent y CHARTEVENT_CHART_CHANGE - cualquier cambio de gráfico. Se puede comprobar en un temporizador (por ejemplo, una vez por segundo).

Aquí hay un ejemplo basado en OnChartEvent y el identificador de evento CHARTEVENT_CHART_CHANGE:

Gracias.