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

 
barabashkakvn:
Todos los cálculos se realizan en OnCalculate (es decir, aquí se define un nuevo evento de barra)
Gracias, le echaré un vistazo. Tal vez no entienda algo, pero parece que en Five no es posible especificar el índice del buffer para obtener el valor del indicador personalizado.
 
forexman77:
Gracias, voy a echar un vistazo. Tal vez no entienda algo, pero parece que no hay posibilidad de especificar el índice del buffer para obtener el valor del indicador personalizado.
iCustom da el mango del indicador personalizado. Luego CopyBuffer, en el que el segundo parámetro es el número del buffer.
 
¿Puede decirme si existe una función que detenga la optimización de un EA por completo, en lugar de una ejecución de optimización independiente?
 
barabashkakvn:
iCustom da el mango del indicador personalizado. Luego CopyBuffer, en el que el segundo parámetro es el número del buffer.

Dime, ¿es posible obtener el valor de un indicador en el script?

Lo intenté de esta manera:

input int MA_Period=21;
input int MA_Shift=0;
input ENUM_MA_METHOD MA_Method=MODE_SMA;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
double MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",
                     MA_Period,
                     MA_Shift,
                     MA_Method,
                     PRICE_CLOSE // считаем по ценам закрытия
                     );  
Alert("MA_handle=",MA_handle);
  }

Obtengo el valor en cualquier indicador 10.

Yo también lo he probado así (sale el error 4807):

input int MA_Period=21;
input int MA_Shift=0;
input ENUM_MA_METHOD MA_Method=MODE_SMA;
int MA_handle;
double ma1Val[]; 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {

//--- массив значений индикатора MA
   ArraySetAsSeries(ma1Val,true);
//--- копируем значения индикаторов из индикаторных буферов
   if(CopyBuffer(MA_handle,0,0,3,ma1Val)<0)
     {
      Alert("Ошибка копирования буферов индикатора Moving Average - номер ошибки:",GetLastError(),"!!");
      return;
     }
MA_handle=iCustom(NULL,0,"Examples\\Custom Moving Average",
                     MA_Period,
                     MA_Shift,
                     MA_Method,
                     PRICE_CLOSE // считаем по ценам закрытия
                     );  
Alert("ma1Val[0]=",ma1Val[0]);
  }
 
forexman77:
Se utilizará el siguiente procedimiento:
iCustom le da el manejo del indicador personalizado. A continuación, CopyBuffer, en el que el segundo parámetro es el número de búfer.

Dime, ¿es posible obtener el valor de un indicador en el script?

Lo intenté de esta manera:

Obtengo el valor en cualquier indicador 10.

Intentado de otra manera (sale el error 4807):

1.Lee la ayuda de iCustom.
2. Para obtener el valor del búfer del indicador: obtenga el mango del indicador, luego copie el búfer del indicador requerido usando CopyBuffer.
 
barabashkakvn:
1.Lee la ayuda de iCustom.
2. Orden de obtención del valor del buffer del indicador: obtener el handle del indicador, y luego usar CopyBuffer para copiar el buffer del indicador requerido por este handle.
Lo entiendo, lo estudiaré. He preguntado por el script porque no tiene "OnInit" y se queda con el mango. ¿Así que el script pide el mango antes de "OnStart"?
 
forexman77:
Ya veo, lo investigaré. He preguntado por el script porque no tiene "OnInit" y se queda con el mango. ¿Significa esto que el script solicita el mango antes de "OnStart"?
OnInit está presente en los Asesores Expertos y en los indicadores.
 
barabashkakvn:
OnInit está en expertos e indicadores.
¡¡Todo funcionó!! ¡¡¡Gracias!!!
 
forexman77:
¡Todo salió bien! ¡¡¡Gracias!!!
De nada.
 
Fleder:
Los productos del Mercado tienen entre 5 y 20 activaciones (a criterio del vendedor). Si no has agotado tus intentos de activación, no te preocupes, no te cobrarán dinero extra.
Gracias por la respuesta, voy a pulsar el botón de compra. No hay otra :-)
Razón de la queja: