[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 563

 
intente realizar una operación no válida, por ejemplo, dividir por 0.
 
sergeev:
intente realizar una operación no válida, por ejemplo, dividir por 0.
tonterías.
 
ditrader:
tonterías.

tonterías.
 
sss2019:

Dígame por qué puede haber un error 130

ticket1 = OrderSend(Symbol(),OP_BUYLIMIT,Lot,Level,Slippage,0,0,0,MagicNumber,0,Green);

Definitivamente, el nivel. Compruebe la corrección del precio y su normalización.

Para un Límite de Compra, el Nivel debe ser más bajo que el precio de Venta, y a una distancia no menor que el StopLevel de su compañía de corretaje.

Es decir, si (Ask - StopLevel*Point < Level) Level = NormalizeDouble(Ask - StopLevel*Point, Digits);

El nivel debe ser normalizado a Dígitos antes de pasarlo como parámetro a OrderSend();

 
takeda:

¿Cómo terminar un Asesor Experto programáticamente - algo como terminate(0)?

¿Tiene MQL4 esta posibilidad, o sólo es posible terminar un Asesor Experto manualmente?

Gracias de antemano.


Cierra tu ventana, date una orden de borrar...

PostMessageA(WindowHandle(Symbol(),Period()), WM_COMMAND, 33050, 0);
 
FAQ:


Cierra la ventana, date una orden para borrarla...


Esto también está torcido.

En primer lugar, la ventana del gráfico se cerrará (y puede haber indicadores útiles en ella en ese momento).

En segundo lugar, ¿qué ocurrirá si se abren varias ventanas con el mismo periodo para un símbolo? ¿Se cerrará la ventana en la que se ha lanzado el Asesor Experto?

 
Di un ejemplo de un comando para borrarme como EA. Puede cerrar la ventana, y sólo se cerrará la ventana sobre la que está el exp. Pero este es otro código.
 
takeda:

¿Cómo terminar un Asesor Experto programáticamente - algo como terminate(0)?

¿Tiene MQL4 esta posibilidad, o sólo es posible terminar un Asesor Experto manualmente?

Muchas gracias.


Por lo tanto, dibuje su variante: "programáticamente":

"La terminación de la sesión actual de la función especial start() para programas de todo tipo puede deberse a Es posible terminar el programa a partir de un gráfico, del cambio de un símbolo y/o de un período del gráfico, del cambio de cuenta, del cierre de un gráfico o como resultado de la terminación del terminal del cliente. Si la función especial start() se estaba ejecutando cuando se dio la orden de salida, el tiempo permitido por el terminal para terminar la función es de 2,5 segundos. Si la función especial start() continúa ejecutándose por más del tiempo especificado después de recibir el comando exit, será forzada a detenerse por la terminal del cliente.

Función especial deinit().


Una función especial deinit() tiene su propia propiedad - se ejecuta cuando el programa se cierra (desinicializa). Si la función especial deinit() se describe en un programa, será llamada (y ejecutada) cuando el programa se cierre. Si no hay una función especial deinit() en el programa, no se realiza ninguna acción cuando se cierra el programa.

La función especial deinit() es llamada para su ejecución por el terminal del cliente también al cerrar el terminal del cliente, al cerrar la ventana del instrumento financiero, justo antes del cambio de un instrumento financiero y/o periodo de un gráfico, al recompilar con éxito el programa en el MetaEditor, al cambiar los parámetros de entrada y también al cambiar una cuenta.

En los Asesores Expertos y en los scripts, el cierre del programa con la necesidad de llamar a la función especial deinit() también se produce debido a la unión de un nuevo programa del mismo tipo a la ventana del instrumento financiero, sustituyendo al anterior.

 
Roman.:



La función especial deinit().


Llamar a deinit() no hará que el programa termine. El EA/indicador permanecerá en el gráfico y continuará procesando ticks.
 
PapaYozh:

Una llamada a la función deinit() no provoca la terminación del programa. El Asesor Experto/indicador permanecerá en el gráfico y continuará procesando ticks.


Y si llamas a otro búho para que trabaje programáticamente:

"En los EAs y scripts, el cierre del programa con la necesidad de llamar a la función especial deinit() también se produce porque se ha adjuntado un nuevo programa del mismo tipo a la ventana de la herramienta financiera, sustituyendo al anterior."

Razón de la queja: