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

 

MqlRates rates[];

rates[0].open> rates[0].close

Por favor, indique cómo comprobar esta condición en el marco temporal actual y en varios marcos temporales más a la vez, dos, tres, cinco. ¿Cómo afecta al rendimiento de las pruebas? Me gustaría recibir un enlace a un EA multiframe o a un indicador MT5.

 
Николай К:

MqlRates rates[];

rates[0].open> rates[0].close

Por favor, indique cómo comprobar esta condición en el marco temporal actual y en varios marcos temporales más a la vez, dos, tres, cinco. ¿Cómo afecta al rendimiento de las pruebas? Me gustaría recibir un enlace a un EA multiframe o a un indicador MT5.

Array rates_tf_**[] para cada TF y CopyRates también para cada TF al array de estructura apropiado. Cómo afecta a la velocidad de las pruebas... Esa es otra cuestión. Pero no hay nada más. O tal vez simplemente no sé...
 


EL CÓDIGO

FileWrite(file_handle, Period());

en un plazo de 5 minutos muestra 5

AF 15 min =15

Y en TF 1h =1536

4ч = 16388

¿Por qué?

 
Aleksei Skrypnev:


EL CÓDIGO

en un marco de tiempo de 5 minutos muestra 5

AF 15 min =15

Y en TF 1H =1536.

¿Por qué?

En primer lugar, veremosPeriod()

...El valor puede ser uno de los valoresde la enumeraciónENUM_TIMEFRAMES:

Identificador

Descripción

PERIODO_CURRENTE

Período actual

PERIODISTA_M1

1 minuto

PERIODISTA_M2

2 minutos

PERIOD_M3

3 minutos

PERIOD_M4

4 minutos

PERIODISTA_M5

5 minutos

PERIOD_M6

6 minutos

PERIODISTA_M10

10 minutos

PERIODISTA_M12

12 minutos

PERIODISTA_M15

15 minutos

PERIODISTA_M20

20 minutos

PERIODISTA_M30

30 minutos

PERIOD_H1

1 hora

PERIOD_H2

2 horas

PERIOD_H3

3 horas

PERIOD_H4

4 horas

PERIOD_H6

6 horas

PERIOD_H8

8 horas

PERIOD_H12

12 horas

PERIOD_D1

1 día

PERIODO_W1

1 semana

PERIOD_MN1

1 mes


Nota: "uno de los valores de PERIODO ...". Es decir, puede ser PERIOD_H6 o PERIOD_M1 o cualquier valor de PERIOD. Pero la representación interna de la enumeración no debería interesar a nadie en absoluto. Hoy es "15" y mañana puede ser "15478899662". Pero a usted, como programador, no debería importarle en absoluto - debería trabajar con valores (PERIOD_M4, PERIOD_M15 ...), no con la representación interna.

Документация по MQL5: Проверка состояния / Period
Документация по MQL5: Проверка состояния / Period
  • www.mql5.com
Period - Проверка состояния - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vladimir Karputov:

Primer vistazo aPeriod()

...El valor puede ser uno de los valores dela enumeraciónENUM_TIMEFRAMES:



Nota: "uno de los valores de PERIODO ...". Así que puede ser PERIOD_H6 o PERIOD_M1 o cualquier valor de la enumeración. Pero la representación interna de la enumeración no debería interesar a nadie en absoluto. Hoy es "15" y mañana puede ser "15478899662". Pero a usted, como programador, no debería importarle esto en absoluto - debe trabajar con valores (PERIOD_M4, PERIOD_M15 ...), no con la representación interna.

Pensé que se escribiría algo más claro en el archivo)

¿No puedes escribir algo más claro (como Perod_H1) en un archivo de forma sencilla?

 
Aleksei Skrypnev:

Pensé que se escribiría algo más claro en el archivo)

No se puede escribir algo más comprensible (como Perod_H1) en un archivo de forma sencilla, ¿verdad?

Si necesita que sea muy claro - escríbalo como texto'PERIOD_H1' y similares en el archivo.

 

¡Buenos días a todos! ¡Qué problema! Estaba probando un EA en MT4, lo probé durante todo el día, al final vi que por la noche no quedaba memoria en el disco duro, inmediatamente me di cuenta de que era por las pruebas, decidí limpiarlo, fui a la carpeta MetaQuotes en el Windows , y borré un montón de cosas allí, como resultado se perdieron todas las plataformas, tanto MT4 como MT5, 10 piezas en total, se ejecutan, pero están completamente "limpias" - sin indicadores del mercado, sin EAs, ¡nada! realmente necesitaba un asesor en un terminal mt5, no guardé una copia, no más activaciones, ¿qué debo hacer?

¡Decidí usar el programa para restaurar archivos borrados, logré restaurar el archivo EA poniéndolo en la carpeta de expertos durante la actualización y el terminal simplemente no lo ve, y no puedo descargarlo desde la cuenta de Market, dice que la instalación falló!

Archivos adjuntos:
 

Por favor, ayúdenme con un problema.

Estoy aprendiendo a escribir código, así que por favor, sé indulgente con mi falta de conocimientos.

Necesito ayuda para entender la funciónOnChartEvent, que actualiza los objetos gráficos en el gráfico después de un cambio de marco temporal o de un cambio de la configuración en el menú del indicador. En caso de cierre del indicador, eliminaré completamente todos los objetos gráficos de este indicador del gráfico.

Tengo entendido que primero hay que borrar los objetos gráficos y luego volver a crearlos. Perosi los objetos fueron borrados, no hay acceso a sus propiedades y entonces cómo recrear estos objetos....... ¿O tal vez no lo entiendo? ¿O tal vez haya otra forma de actualizar los objetos gráficos en el gráfico?

Por favor, escriba un ejemplo con comentarios sobre cómo hacerlo.


 
Sprut 185:

Por favor, ayúdenme con un problema.

Estoy aprendiendo a escribir código, así que por favor, sé indulgente con mi falta de conocimientos.

Necesito ayuda para entender la funciónOnChartEvent, que actualiza los objetos gráficos en el gráfico después de un cambio de marco temporal o de un cambio de la configuración en el menú del indicador. En caso de cierre del indicador, eliminaré completamente todos los objetos gráficos de este indicador del gráfico.

Tengo entendido que primero hay que borrar los objetos gráficos y luego volver a crearlos. Perosi los objetos fueron borrados, no hay acceso a sus propiedades y entonces cómo recrear estos objetos....... ¿O tal vez no lo entiendo? ¿O tal vez haya otra forma de actualizar los objetos gráficos en el gráfico?

Por favor, escriba un ejemplo con comentarios sobre cómo hacerlo.


No lo consideres una grosería, pero todos los ejemplos están en la documentación. Sólo hay que prestar atención a las funciones ObjectSet*** que modifican los parámetros de un objeto gráfico.

Документация по MQL5: Графические объекты / ObjectSetDouble
Документация по MQL5: Графические объекты / ObjectSetDouble
  • www.mql5.com
ObjectSetDouble - Графические объекты - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

No quiero ser grosero, pero la documentación tiene todos los ejemplos. Sólo hay que prestar atención a las funciones ObjectSet*** que modifican los parámetros del objeto gráfico.

Gracias por su participación.

Desgraciadamente, la función ObjectSet*** no era adecuada para mi tarea.

Yo mismo resolví el problema utilizando la función OnDeinit().
void OnDeinit(const int reason)
  {
   ObjectsDeleteAll (0, -1, -1);
  }

Ahora todo funciona como debería.