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

 
Vikon:

Hola.

Estoy tratando de convertir a cinco, pero todavía no entiendo la lógica de la sintaxis.

Cómo convertir doble i= iHigh(Symbol(),0,1); de indicador cuatro a mql5,

No puedo dar ninguna idea todavía.

Gracias

double i[]; CopyHigh(Symbol(),PERIOD_CURRENT,0,1,i);
 
pronych:
double i[]; CopyHigh(Symbol(),PERIOD_CURRENT,0,1,i);

No, no se puede hacer como mql4, no se puede dar un valor alto a la alerta

double i= iHigh(Symbol(),0,1);

Alerta (i);

Y me ofrece, según entiendo, un array de barras int con valores máximos.

Este es el problema a mi entender, cómo traducir estas dos cadenas, que son claras para cualquier programador de nivel, en mql5

 
Vikon:

No, no se puede hacer como mql4, no se puede dar un valor alto a la alerta

double i= iHigh(Symbol(),0,1);

Alerta (i);

Y me ofrece, según entiendo, un array de barras int con valores máximos.

Esta es la dificultad a mi entender, cómo traducir estas dos cadenas, que son comprensibles para cualquier programador de nivel, a mql5

Esto es de la ayuda
int  CopyHigh(
   string           symbol_name,      // имя символа
   ENUM_TIMEFRAMES  timeframe,        // период
   int              start_pos,        // откуда начнем 
   int              count,            // сколько копируем
   double           high_array[]      // массив для копирования максимальных цен
   );

Todo correctamente te han aconsejado, pero si la barra de la alerta no es cero, tienes que copiar 2 buffers (o los que necesites aplicar).

double i[];
ArraySetAsSeries(i,true); // массив как таймсерия
CopyHigh(Symbol(),PERIOD_CURRENT,0,2,i);
Alert(i[1]);
 
lewvik:
Esto es de la ayuda

Todo lo aconsejado correctamente, sólo si la barra de la alerta no es cero hay que copiar 2 buffers (o los que necesites aplicar)

Funciona bien. Gracias

 

¡Hola!

Pregunta sobre los indicadores, aquí quiero escribir un indicador MACD que utilizará cuatro marcos de tiempo MACD en cualquier marco de tiempo para esto utilizo la manija del indicador MACD que está en OnInit y en el inicio de las funciones de copia y secuenciación de la matriz.

Así que mis preguntas son:

¿Cuántas asas debo declarar, cuatro (para cada marco temporal) o una?

Si es así, ¿qué posibilidad hay de cambiar los parámetros durante la ejecución del código para cuatro plazos?

Tal vez una manija puede ser enrollada en una función y llamada en el código para los plazos dados

 
Me pregunto si hay un artículo en alguna parte como "las razones más comunes de la lentitud de EA". Estoy tratando de entender por qué el EA en el probador sólo vuela al principio, pero cuanto más avanza, más lento se vuelve. No está en la fase de desarrollo para que sea tan crítica (la velocidad es suficiente para el desarrollo de mecanismos y herramientas básicas). Pero sigue siendo incómodo que no tenga sentido tardar más de una semana, porque después la velocidad tiende a cero.
 
Lone_Irbis:
Me pregunto si hay un artículo en alguna parte como "las razones más comunes de la lentitud de EA". Estoy tratando de entender por qué el EA en el probador sólo vuela al principio, pero cuanto más avanza, más lento se vuelve. No está en la fase de desarrollo para que sea crítica (la velocidad es suficiente para el desarrollo de mecanismos y herramientas básicas). Pero sigue siendo un inconveniente que no tiene sentido tomar segmentos de más de una semana, porque después la velocidad ya tiende a cero.
Lo más probable es que utilice indicadores con el cálculo de todo el historial, que aumenta al final de la prueba.
 
Lone_Irbis:
Me pregunto si hay un artículo en alguna parte como "las razones más comunes de la lentitud de EA". Estoy tratando de entender por qué el EA en el probador sólo vuela al principio, pero cuanto más avanza, más lento se vuelve. No está en la fase de desarrollo para que sea tan crítica (la velocidad es suficiente para el desarrollo de mecanismos y herramientas básicas). Pero sigue siendo un inconveniente que no tiene sentido tomar segmentos de más de una semana, porque después la velocidad ya tiende a cero.
Como alternativa: dividir el período de prueba en dos y ejecutarlo en el probador por separado. De esta manera podemos determinar si hay menos señales a la entrada para el período especificado.
 
zfs:
Lo más probable es que utilice indicadores con el cálculo de todo el historial, que aumenta al final de la prueba.

Hasta ahora no utiliza ningún indicador externo. Pero realiza bastantes cálculos basados en la historia, sí. Sin embargo, parece haber un límite en el número máximo de velas analizadas, y si la razón son ellas, no está claro por qué se ralentiza gradualmente, en lugar de ralentizarse desde el principio (parece que el intervalo se toma siempre desde el momento presente).

 
Lone_Irbis:

Hasta ahora no utiliza ningún indicador externo. Pero realiza bastantes cálculos basados en la historia, sí. Sin embargo, parece haber un límite en el número máximo de velas analizadas, y si esa es la razón, no está claro por qué se ralentizaría gradualmente, en lugar de ralentizarse desde el principio (parece que el segmento se toma siempre desde el momento presente).

¿Y "bastantes cálculos basados en la historia" se suman a un conjunto dinámico?