Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 383
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
Si no es externo - hay PositionClose
También puede abrir una posición con el mismo volumen en la dirección opuesta, lo que dará lugar a un cierre.
Establecemos dos variables locales en la función OnTick de tipo bool: buyExist = false y sellExist = false.
Cuando llega un nuevo tick, se comprueba si hay alguna orden que pertenezca a este EA. Si hay una orden de venta, sellExist = true y lo mismo con la orden de compra. Y luego se comprueba si buyExist = true - no se abre una orden de compra. Lo mismo ocurre con la venta. Eso es todo.
¿Para qué necesitamos variables innecesarias si vamos a comprobar de todos modos si hay puestos vacantes?
Hemos comprobado si hay posiciones de compra - no hay compras abiertas, hemos abierto una. ¿Por qué necesitamos variables?
¿Por qué necesitamos variables adicionales si de todos modos estamos comprobando las posiciones abiertas?
Comprobamos la compra - no hay compra abierta - abrimos una, comprobamos la venta - no hay venta abierta - abrimos una. ¿Por qué necesitamos variables?
¿Por qué necesitamos variables adicionales si de todos modos estamos comprobando las posiciones abiertas?
Comprobamos la compra - no hay compra abierta - abrimos una, comprobamos la venta - no hay venta abierta - abrimos una. ¿Por qué necesitamos variables?
Pensé que sería algo como OrderTotal, pero aquí hay que hacer el rebote y escribir la función para reconocer los pedidos?
Podrías hacerlo. Lo imaginé en mi cabeza como una función de comprobación separada, donde las banderas se pasan por referencia. En este caso, mi variante, realiza una sola función - comprobar las órdenes, no comprobar+abrir. Sería más fácil ampliar el programa. En resumen: una función, una acción.
Bueno, la comprobación es una llamada a una función que devuelve una bandera:
if(!Function_check_open_position(symbol, OP_BUY,magic)) function_open_position(symbol,OP_BUY,Lots,stop_loss,take_profit,magic,comment);
if(!Function_check_open_position(symbol,OP_SELL,magic)) Function_open_position(símbolo,OP_SELL,Lotes,stop_loss,take_profit,magic,comentario);
Pensé que sería algo así como OrderTotal.
¿no hay tal función?
¿Cómo puede hacerlo sin esforzarse demasiado? Puede tener un montón de órdenes de un montón de Asesores Expertos en un montón de símbolos al mismo tiempo. Y usted quiere que su EA procese sólo sus órdenes, ¿no es así?
es una adición inicial al robot principal . el robot principal siempre tiene dos órdenes abiertas en ambas direcciones (el robot principal las recoge, pero el propio robot principal no puede arrancar . Cuando el robot principal termina una de las direcciones la cierra) y entonces este EA debe abrir de nuevo una orden en la dirección del mercado donde no hay orden.
sólo tenemos que añadirle las condiciones de apertura de la orden
extern double Lots = 1.00;
extern int MagicNumb = 698541; //Magic
int inicio ()
{
if(OrdersTotal() == 0 && ********** )
OrderSend("USDCHF",OP_BUY,Lots,Ask,0,0,0, "5891",MagicNumb,0,Red);
if (OrdersTotal() == 0 && ***********)
OrderSend("USDCHF",OP_SELL,Lots,Bid,0,0,0, "58892",MagicNumb,0,Red);
}
es una adición inicial al robot principal . el robot principal siempre tiene dos órdenes abiertas en ambas direcciones (el robot principal las recoge, pero el propio robot principal no puede arrancar . Cuando el robot principal termina una de las direcciones la cierra) y entonces este EA debe abrir de nuevo una orden en la dirección del mercado en la que no hay ninguna orden.