En CodeBase encontrará cientos de ejemplos: https://www.mql5.com/es/code/mt4/experts

- www.mql5.com
Tengo creada una estrategia pero cada vez que la ejecuto me saltan muchas operaciones en la misma dirección debido a que se recalcula cada vez (esto ya es normal, el problema es que la estrategia lo detecta todo el rato como una compra o venta y por esto siempre ejecuta la orden de compra/venta).
Lo he intentado solucionar de muchas formas pero no encuentro como hacerlo. Una de las maneras que lo he intentado solucionar ha sido de la siguiente forma:
Básicamente quiero que después de una compra solo pueda haber una venta o al reves.
Lo estás haciendo incorrectamente, Te doy un ejemplo a detalle de cómo se debería verificar si ya existe una posición abierta en el símbolo y con el número mágico especificado. Si no hay posiciones abiertas, se colocará una orden de compra o venta:
El código comienza estableciendo una variable booleana "BuyorSell" en falso. Luego, un bucle for se ejecuta desde i = 0 hasta el número total de posiciones abiertas. Para cada posición, el código verifica si el símbolo es el mismo que el actualmente seleccionado (Symbol()) y si el número mágico de la posición es igual al valor especificado (MagicNumber). Si se cumple esta condición, el código verifica si la posición es una posición de compra o venta. Si la posición es una de ellas, la variable "BuyorSell" se establece en verdadero.
Después de que se hayan verificado todas las posiciones abiertas, el código verifica si "BuyorSell" es falso, lo que significa que no hay posiciones de compra o venta abiertas en el símbolo y con el número mágico especificado. Si esto es cierto, se ejecutará el código para colocar una orden de compra o venta en el mercado.
Espero que te ayude.
bool BuyorSell = false; for(int i=0; i<=PositionsTotal(); i++) { if(PositionGetSymbol(i)== Symbol()) { if(PositionGetInteger(POSITION_MAGIC) == MagicNumber) { if(PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_BUY || PositionGetInteger(POSITION_TYPE) == POSITION_TYPE_SELL) BuyorSell = true; } } } if(!BuyorSell) { // PLACE BUY OR SELL ORDER }

- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Tengo creada una estrategia pero cada vez que la ejecuto me saltan muchas operaciones en la misma dirección debido a que se recalcula cada vez (esto ya es normal, el problema es que la estrategia lo detecta todo el rato como una compra o venta y por esto siempre ejecuta la orden de compra/venta).
Lo he intentado solucionar de muchas formas pero no encuentro como hacerlo. Una de las maneras que lo he intentado solucionar ha sido de la siguiente forma:
Básicamente quiero que después de una compra solo pueda haber una venta o al reves.