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

 
DC2008:

Lee con atención:

Valor de retorno

La función devuelve el índice del elemento encontrado, teniendo en cuenta la serialidad del array. Si falla, la función devuelve -1.

Por lo tanto, debería ser así:

1. Corrígeme si lo he entendido mal.

Han encontrado todos los mínimos en el intervalo:

double Low[];
CopyLow(_Symbol,_Period,tss,tspp,Low);

Como hay un array con mínimos, buscamos con la función ArrayMinimum sólo el mínimo del array, sin enumerar el intervalo en el tiempo(tss,tspp)

double min= Low[ArrayMinimum(Low)];  
Alert("min=",min);

2. En el script, el código se coloca en la función:

void OnDeinit(const int reason)

todos los parámetros de tiempo se muestran correctamente, pero la variable min=0,0, aunque cuando se estaba pujando mostraba el mínimo del intervalo especificado. ¿Cuál puede ser el problema?

 
forexman77:

1. Corrígeme si lo he entendido mal.

Hemos encontrado todos los mínimos en el intervalo:

Como hay un array con mínimos, utilizamos la función ArrayMinimum para encontrar sólo el mínimo del array, sin enumerar el intervalo en el tiempo(tss,tspp)

2. En el script, puse el código en una función:

todos los parámetros de tiempo se muestran correctamente, pero la variable min=0,0, aunque cuando se estaba pujando mostraba el mínimo del intervalo especificado. ¿Cuál puede ser el problema?

En el ámbito de la variable. Hazlo global.
Документация по MQL5: Основы языка / Переменные / Локальные переменные
Документация по MQL5: Основы языка / Переменные / Локальные переменные
  • www.mql5.com
Основы языка / Переменные / Локальные переменные - Документация по MQL5
 
zfs:
En el ámbito de la variable. Hazlo global.
Se ha movido la variable "double min;" a global todavía =0,0.
 
forexman77:
Movida la variable "double min;" a global todavía =0.0

Guión:

void OnStart()
  {
   double Low[];
   CopyLow(_Symbol,_Period,0,10,Low);
   double min=Low[ArrayMinimum(Low)];
   Alert("min=",min);
  }
No hay OnInit y OnDeinit en los scripts.
 

Tiene un error en su documentación https://www.mql5.com/ru/docs/constants/chartconstants/charts_samples

int ChartFirstVisibleBar(constlong chart_ID=0)
{
//--- preparar una variable para obtener el valor de la propiedad
resultado largo=-1;
//--- restablecer el valor del error
ResetLastError();
//--- obtener el valor de la propiedad
¡si(!ChartGetInteger(chart_ID,CHART_WINDOW_YD ISTANCE,0,result)) debería ser CHART_FIRST_VISIBLE_BAR
{
//--- imprimir el mensaje de error en el diario "Expertos"
Print(__FUNCTION__+", Código de error = ",GetLastError());
}
//--- devuelve el valor de la propiedad del gráfico
return((int)resultado);
}

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы графиков / Примеры работы с графиком
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы графиков / Примеры работы с графиком - Документация по MQL5
 
DC2008:

Guión:

No hay OnInit y OnDeinit en los scripts.

¡¡¡Muchas gracias!!!

¡¡¡A mí me ha funcionado!!!

 

Por favor, díganme qué programas utilizar para proteger el EA y limitar el tiempo de trabajo, por ejemplo necesito proteger el EA de la descompilación, para que funcione sólo durante 5 días.

Necesito un programa en el que pueda limitar permanentemente el tiempo de ejecución del EA para dárselo a otras personas para que lo prueben.

 

Al probar un EA, me he encontrado con la siguiente dificultad.

El Asesor Experto no opera (tiene que hacerlo) si:

 if(Stop <=Start) { return;}

Al hacer las pruebas, he establecido los parámetros de parada de 1 a 33, y de inicio de 1 a 33.

Por supuesto, el probador produce alrededor de 2/3 de resultados nulos porque Stop > Start en el probador a veces se produce durante la sobrecarga.

Estas pruebas nulas llevan mucho tiempo.

Pregunta: ¿Cómo se puede desactivar la comprobación de las pruebas nulas en el código del Asesor Experto?

Lógicamente, el tiempo de prueba debería reducirse después de la prohibición?

 
forexman77:

Al probar un EA, me he encontrado con la siguiente dificultad.

El Asesor Experto no opera (tiene que hacerlo) si:

Al hacer las pruebas, he establecido los parámetros de parada de 1 a 33, y de inicio de 1 a 33.

Por supuesto, el probador produce alrededor de 2/3 de resultados nulos porque Stop > Start en el probador a veces se produce durante la sobrecarga.

Estas pruebas nulas llevan mucho tiempo.

La pregunta es cómo desactivar las pruebas nulas en el código de EA.

https://www.mql5.com/ru/docs/common/expertremove

Esto funciona en el tester. // Al menos funcionaba en la build anterior a la última. Hace tiempo que no lo compruebo.

Документация по MQL5: Общие функции / ExpertRemove
Документация по MQL5: Общие функции / ExpertRemove
  • www.mql5.com
Общие функции / ExpertRemove - Документация по MQL5
 
MetaDriver:

https://www.mql5.com/ru/docs/common/expertremove

funciona en el tester. // al menos funcionaba en la anteúltima compilación. hace tiempo que no lo compruebo.

Necesito un pase de prueba. El EA no opera si:

if(Stop <=Start) { return;}

Quiero hacer esto para reducir el tiempo de las pruebas.

¿Tal vez hay una función en el Probador de Estrategias específicamente para los parámetros de entrada que tiene el Asesor Experto?

Si obtenemosStop <=Start, nos saltamos esta pasada.

Razón de la queja: