Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 114
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
¡Por ejemplo necesito esta condición if(iClose(NULL,HTF,4)<BlueLine) si se ejecuta DayDown = 1 ! P: ¿Cómo se puede dejar el DayDown en 1 y no ser consultado hasta el día siguiente?
Tengo otros objetos unidos a 1 objeto, y cuando se elimina este objeto, el resto se queda colgado en el gráfico
Lo tengo así:
if(DayNext!= Day()) // Si se trata de un nuevo día, hay que sondear
{
// Encuesta
if(iClose(NULL,1440,2)<BlueLine)
if(iOpen(NULL,1440,1)<BlueLine && iClose(NULL,HTF,1)>BlueLine)
PROBOI1 = 1;Print("Cerrado sobre BlueLine = ",iClose(NULL,HTF,1));
if(iClose(NULL,1440,2)>RedLine)
if(iOpen(NULL,1440,1)>RedLine && iClose(NULL,HTF,1)<RedLine)
PROBOI1 = -1;Print("Cerrado por debajo de RedLine = ",iClose(NULL,HTF,1));
DayNext = Day(); // Recordar el día
}
¡Corregir si algo está mal! Además, si quiero seguir lo que ocurre ahora en una TF inferior, ¿tengo que escribir Día fuera de la Encuesta? Derecho -STARIJ:
if(iClose(NULL,60,1)>RedLine&&iClose(NULL,1440,2)>RedLine) ) Venta = 1
https://www.mql5.com/ru/forum/226620#comment_6481536
Establezca el número mágico +1 para la condición 1, el número mágico +2 para la condición 2 y así sucesivamente. De este modo, podrá ver si esta posición se ha abierto con la condición 1 o con la condición 2...
Por la tarde. Sólo he tenido éxito para una posición BAY. El set de magik para vender no funciona por alguna razón. Todo es absolutamente idéntico, excepto el propio magik, por supuesto. ¿Qué he hecho mal?
¿Qué he hecho mal?
Me disculpo por no encontrar el principio de la correspondencia, pero me gustaría aconsejarle inmediatamente que evite condiciones y cálculos complejos en ellos - esto hace que el código sea ilegible y por lo tanto complica la búsqueda de errores lógicos, yo escribiría su código así:
Si entiendes lo que quiero decir, puedes modificar un poco más el código que te he dado, me refiero a ponerlo en una condición aparteif(OrderType()==OP_BUY....
Entonces será mucho más fácil encontrar errores lógicos, imho
Me disculpo por no encontrar el principio de la correspondencia, pero me gustaría aconsejarle inmediatamente que evite condiciones y cálculos complejos en ellos - esto hace que el código sea ilegible y como resultado complica la búsqueda de errores lógicos, yo escribiría su código así:
Si entiendes lo que quiero decir, puedes modificar un poco más el código que te he dado, me refiero a ponerlo en una condición aparteif(OrderType()==OP_BUY....
Entonces será mucho más fácil encontrar errores lógicos, imho
Entendido, gracias, pero por lo que entiendo no hay diferencia para la comprensión del código por parte de la plataforma, mientras que para mí, dividir una condición en varias más cortas me parece más complicado a la hora de buscar errores porque aumenta el número de ocurrencias de sentencias unas dentro de otras. Pero tal vez tengas razón y pronto me pase a tu lado. En cuanto a la lógica del código, no he encontrado ninguna diferencia entre el mío y el tuyo y sigo sin ver el error.
En cuanto a la lógica del código, no he encontrado ninguna diferencia entre el mío y el tuyo y sigo sin ver el error.
Exactamente así - la lógica del código es la misma, pero si divides las condiciones, es más rápido encontrar dónde está el error lógico, y en tu caso, si lo quitas:
en una condición separada, obtenemos una optimización del código - la condición se comprobará una vez en lugar de 4 veces como en su ejemplo.
Compruebe la salida en el diario del Asesor Experto utilizando el
Print()
para el registro para ver qué fragmento de código se ejecuta y con qué parámetros
Chicos,
¿Cómo puedo leer el indicador Morning Flat en el código del Asesor Experto?
Lo estoy intentando de esta manera y no funciona.
El propio indicador