Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 684

 
Sprut112:
Cómo explicar al Asesor Experto (ma estándar) que debemos comprar (vender) sólo en el momento del cruce de las medias, y no en general, cuando ma_1>ma_2. Y compra constantemente, no puede parar

Tienes que recordar en la variable que el cruce ya ha ocurrido, y cuando vuelva a cruzar, reescribir la variable que ya ha cruzado de nuevo. Esta es la variante №1.

Mire el historial de transacciones, si la última compra, entonces espere la señal de venta, y luego alterne así, esta manera es más confiable

 
Vitaly Muzichenko:

Hay que recordar en la variable que el cruce ya ha ocurrido, y cuando vuelva a cruzar, reescribir la variable que ya ha cruzado de nuevo. Esta es la variante №1.

Mira el historial de operaciones, si la última compra, entonces espera la señal de venta, y luego alternar en un círculo, esta forma es más fiable

Algo muy sabio, ¿no puedes añadir algo a la condición?
 
Sprut112:
¿No es complicado añadir algo a la propia condición?

¿Cuál es el problema? No es difícil trabajar con la historia, y es aún más fácil escribir la intersección en una variable.

 
Vitaly Muzichenko:

Tienes que recordar en la variable que el cruce ya ha ocurrido, y cuando vuelva a cruzar, reescribir la variable que ya ha cruzado de nuevo. Esta es la variante №1.

Mira el historial de transacciones, si la última Compra, esperaremos la señal de Venta, y así iremos alternando, este método es más fiable

Si hablamos del último cruce de la MA, el comercio a lo largo de la MA suele ser más fácil:

1. controlar la nueva barra

2. en el nuevo bar comprobamos el estado:

ma_1[1] >ma_2[1] && ma_1[2]<ma_2[2] - cruce descendente

o ma_1[1]<ma_2[1] && ma_1[2]>ma_2[2] - cruce descendente

si no hay ninguna diferencia con la MA que cruza desde arriba, entonces se utilizarán ambas condiciones:

if((ma_1[1]>ma_2[1]  && ma_1[2]<ma_2[2]) || (ma_1[1]<ma_2[1]  && ma_1[2]>ma_2[2])) // пересечение!!!
 
Vitaly Muzichenko:

¿Cuál es el problema? No es difícil trabajar con la historia, y es aún más fácil escribir la intersección en una variable.

Muy bien, gracias.
 
Igor Makanu:

Cuando se trata del último cruce de la MA, operar sobre ella suele ser más fácil:

1. controlar el nuevo bar

2. En el nuevo bar comprobamos el estado:

ma_1[1] >ma_2[1] && ma_1[2]<ma_2[2] - cruce descendente

o ma_1[1]<ma_2[1] && ma_1[2]>ma_2[2] - cruce descendente

si no hay ninguna diferencia con la MA que cruza desde arriba, entonces se utilizarán ambas condiciones:

Bueno, eso sigue teniendo sentido.
 

Amigos, podrían decirme por qué al optimizar un EA, la carpeta \Terminal\tester\logs acumula enormes archivos de registro del siguiente contenido:

2 00:00:01.796 2014.04.01 10:57:30 Comprobador: #102 eliminado por expiración

2 00:00:02.221 2014.04.24 08:59:59 Comprobador: #103 borrado por expiració n

2 00:00:02.326 2014.04.30 12:57:30 Comprobador: #104 borrado por expiración

2 00:00:02.852 2014.05.29 10:20:00 Probador: la orden #105, vender 0.10 EURUSD se abre a 1.35871

0 00:00:02.852 2014.05.29 10:22:30 Probador: stop loss #105 a 1.35910 (1.35876 / 1.35926)

2 00:00:02.941 2014.06.04 01:20:00 Probador: la orden #106, comprar 0.10 EURUSD se abre a 1.36306

0 00:00:02.941 2014.06.04 01:22:30 Probador: stop loss #106 a 1.36259 (1.36253 / 1.36303)

2 00:00:03.133 2014.06.13 14:03:20 Probador: la orden #107, vender 0.10 EURUSD se abre a 1.35382

Y algunos de mis EAs escriben esos registros y otros no. No puedo hacerlo.

 


¿Cómo es posible?

 
¿Cómo puedo hacer que las variables de entrada en el código del EA sean inmutables? Por ejemplo p, estoy usando un EA en un Macd y no quiero que se muestren sus variables en la ventana de ajustes
 
Sprut112:
¿Cómo hacer que las variables de entrada sean inmutables en el código de EA? Por ejemplo p, estoy usando un EA en Macd y no quiero que se muestren sus variables en la ventana de ajustes

leer la ayuda pulsando F1 en el código fuente en "comandos" en la entrada o externa ;)