Una pregunta para los expertos en MQL - página 11

 

Señores codificadores, por favor ayuden con un trozo de código.

Tengo un Asesor Experto que funciona. Necesito insertar en él una condición para prohibir la apertura de operaciones.

Condición: Si el histograma AO es > 0, entonces no permita la apertura de operaciones hasta que el histograma AO sea igual o mayor que 0. Gracias.

 
Voice:

Señores codificadores, por favor ayuden con un trozo de código.

Tengo un Asesor Experto que funciona. Necesito insertar en él una condición para prohibir la apertura de operaciones.

Condición: Si el histograma AO es > 0, entonces no permita la apertura de operaciones hasta que el histograma AO sea igual o mayor que 0. Gracias.


Que la variable double Gist almacene el valor de AO y la variable bool Torg almacene la bandera para permitir la negociación.

La condición es borrosa. "Si el histograma AO>0, entonces prohíbe que el EA abra operaciones en absoluto" - en el código esto sería if(Gist>0){Torg=false;}. Ahora, la segunda parte de la condición "Hasta que el histograma AO sea igual o mayor que 0" se puede escribir en el código en su caso de la siguiente manera if(Gist>=0){Torg=false;}

Esto significa que (siempre que AO >= 0) en la primera línea de código se eliminará el permiso para comerciar if(Gist>0){Torg=false;}, y en la segunda línea de código se restaurará inmediatamente if( Gist>=0){Torg=true;}. Si AO > 0, la variable Torg será primero falsa y luego inmediatamente verdadera. No puedes hacer eso: es una violación de la ley de la lógica "Si a, entonces a".

 

Lo siento, este es mi error. Si es más de 0, no se abre, si es menos de 0, se abre. Me puedes decir, ¿debo poner esto al principio del código? Intentaré construirlo.

¿Podría decirme cómo asignar valores AO a Gist?

 
Voice:

Lo siento, este es mi error. Si es más de 0, no se abre, si es menos de 0, se abre. Me puedes decir, ¿debo poner esto al principio del código? Intentaré construirlo.

¿Podría decirme, por favor, cómo puedo obtener los valores de AO de Gist?

doble iAO( string symbol, int timeframe, int shift)
Cálculo del oscilador Awesome.
Parámetros:
símbolo - Nombre del símbolo, sobre cuyos datos se calculará el indicador. NULL significa símbolo actual.
marco temporal - Período. Puede ser uno de los períodos del gráfico. 0 significa el período del gráfico actual.
turno - Índice del valor obtenido del búfer del indicador (desplazamiento relativo a la barra actual en el número de períodos especificado hacia atrás).
Ejemplo:
 double val=iAO(NULL, 0, 2);
 
zetveis@mail.ru
 
Skif_7:
zetveis@mail.ru

Aquí está el enlace https://www.mql5.com/ru/job
 
sergeev:

Aquí está el enlace https://www.mql5.com/ru/job
¡Es una genialidad! No se nota mucho. En fin... Te diré un secreto, yo mismo podría haber mirado hacia arriba y hacia la derecha, cosa que hice hace mucho tiempo.
 
Skif_7:
Te diré un secreto, yo mismo podría haber mirado hacia arriba y hacia la derecha. Lo que hice hace mucho tiempo.
No le diré a nadie tu secreto.
 

¡Hola profesionales! ¿Podría decirme cómo eliminar un BUY_STOP en una nueva orden pendiente colocada por un EA, y cómo eliminar un SELL_STOP anterior en un nuevo SELL_STOP colocado por un EA?

Gracias.

 

Para BUY_STOP : (1) encontrar el BUY_STOP activo anterior (2) borrarlo.

Para un SELL_STOP, es lo mismo que para un BUY_STOP.

Si la respuesta es molesta, vaya aquí : https://www.mql5.com/ru/job

Por favor.