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

 
SanAlex:

También experimenté: abrí la cámara y no pude cerrarla, hasta que maté el proceso.

https://www.gunsmoker.ru/2015/01/avoid-using-ShellExecuteEx.html

Почему вам не следует использовать ShellExecute(Ex)
  • 2015.01.05
  • GunSmoker
  • www.gunsmoker.ru
В прошлый раз мы узнали, почему вам никогда не следует использовать функцию . В этот раз я расскажу вам о том, почему вам не следует использовать функцию . Заголовки этого и предыдущего постов выбраны крайне тщательно. Предыдущий пост говорил о том, что если вы пишете код в 1995 году или позднее, то вы не должны использовать функцию . Поскольку...
 

¿Podría decirme cuál es el problema?

     if(buy_lots>0||sell_lots>0)
      ChartSetSymbolPeriod(0,Symbol(),PERIOD_M15);
     if(buy_lots==0||sell_lots==0)
      ChartSetSymbolPeriod(0,Symbol(),PERIOD_M5);

Si no hay órdenes abiertas, entonces M5 está activado y todo está bien,

Pero en cuanto se abre una orden, empieza a saltar M5,M15,M5,M15...

 
MakarFX:

¿Podría decirme cuál es el problema?

Si no hay órdenes abiertas, entonces M5 está activado y todo está bien,

Pero en cuanto abro una orden, empieza a rebotar en M5, M15, M5, M15...

Es tal y como dice, así es como sucede.

O sustituir en la parte inferior con AND

 
Valeriy Yastremskiy:

Es tal y como está escrito, así es como funciona.

O sustituir en la parte inferior por E

Gracias, lo hice, pero el resultado es el mismo

     if(buy_lots>0||sell_lots>0)
      ChartSetSymbolPeriod(0,Symbol(),PERIOD_M15);
     if(buy_lots+sell_lots==0)
      ChartSetSymbolPeriod(0,Symbol(),PERIOD_M5);
 
MakarFX:

Gracias, lo he sustituido, pero el resultado es el mismo.

  
      Alert("1 buy_lots ",buy_lots," sell_lots " sell_lots);
    if(buy_lots>0||sell_lots>0)
      ChartSetSymbolPeriod(0,Symbol(),PERIOD_M15);
     Alert("2 buy_lots ",buy_lots," sell_lots " sell_lots);
     if(buy_lots==0 && sell_lots==0)
      ChartSetSymbolPeriod(0,Symbol(),PERIOD_M5);

Así que algo falta. Así que la suma debuy_lots+sell_lots=0

Y mejor que la adición. Alerta o imprime para ayudar.

 
Valeriy Yastremskiy:

Así que algo falta. Así que la suma debuy_lots+sell_lots=0

Y mejor que la adición. Alerta o imprime para ayudar.

¿Cómo es mejor?

(0 == 0 y 1 == 0) - no se cumple la condición

(0 + 1 == 0) - la condición tampoco se cumple

¿Cuál es la diferencia entre Y y suma en este ejemplo concreto?

 
MakarFX:

Gracias, lo he sustituido, pero el resultado es el mismo

Así que comprueba los valores de buy_lots y sell_lots probablemente pierdan sus valores en alguna parte.
 
Alexey Viktorov:
Así que compruebe los valores de buy_lots y sell_lots, probablemente estén perdiendo sus valores en alguna parte.

Imprimir


No está claro por qué cambia a M5

 
MakarFX:

Imprimir


No está claro por qué cambia en M5

Cuando se cambia el TF, el EA se reinicia. Pruebe a poner las impresiones en condición, cambiar e imprimir. O viceversa.

Y definitivamente deberíamos añadir la comprobación del periodo en la condición. Si cambias a M15, ¿por qué cambiar de nuevo?

 
Igor Makanu:

por eso se recomienda tratar de hacer el trabajo de EA exclusivamente con sus magos

Si la tarea es abrir una orden una vez al día a una hora determinada, el algoritmo es el siguiente:

- iniciar el EA, comprueba el número de órdenes abiertas, si la orden con nuestro mago está abierta, entonces sale hasta el siguiente tick

- si no hay órdenes, el EA espera hasta que la hora y los minutos actuales sean mayores que los dados

- ha llegado este momento, EA comprobará el historial de órdenes y si no ha colocado una orden con nuestro magik, entonces establecerá una orden y saldrá - la salida es útil para no procesar los errores del servidor, si la orden no se ha establecido, entonces en el siguiente tick intentaremos hacerlo de nuevo, es decir, no es necesario organizar un ciclo para la apertura de órdenes repetidas en este tick.... pero esto es una cuestión de gustos y objetivos, es la implementación más fácil)))

Por favor, dígame qué significa EA en su contexto. Quiero encontrar y leer más detalles.....
Quiero encontrarlo y saber más sobre él en la siguiente página web: Gracias.