Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 382

 
Por favor, díganme la fórmula para calcular el tamaño del lote de una nueva orden para que con tp de 10p pueda retirar una orden perdedora a 0 y ganar los 10 pips deseados.
 

¿Qué operador debe utilizarse para designarel tipo de pedido?

Combina 2 algoritmos en uno. (Combínalos para que no haya conflicto de "OrdersTotal", resulta que abrirá 1 orden. y necesito 1 en cada dirección)

Gracias de antemano))

int inicio ()

{

si (OrdersTotal() == 0 )

OrderSend("EURUSD",OP_BUY,Lots,Ask,0,0, "11",MagicNumb,0,Red);

}

int inicio ()

{

si (OrdersTotal() == 0 )

OrderSend("EURUSD",OP_SELL,Lots,Bid,0,0, "11",MagicNumb,0,Red);

}

 
le0nid2014:

¿Qué operador debe utilizarse para designarel tipo de pedido?

Combina 2 algoritmos en uno. (Combínalos para que no haya conflicto de "OrdersTotal", resulta que abrirá 1 orden. y necesito 1 en cada dirección)

Gracias de antemano))

int inicio ()

{

si (OrdersTotal() == 0 )

OrderSend("EURUSD",OP_BUY,Lots,Ask,0,0, "11",MagicNumb,0,Red);

}

int inicio ()

{

si (OrdersTotal() == 0 )

OrderSend("EURUSD",OP_SELL,Lots,Bid,0,0, "11",MagicNumb,0,Red);

}

Abre uno por uno.
 
Artyom Trishkin:
Para abrir uno por uno.

Si tengo 0 pedidos se abrirá lo que necesito.

Quiero que se abra la compra si no hay orden de compra y viceversa (en el momento en que no haya dirección 1, se abrirá la 2 y no se iniciará la orden de compra).

 
le0nid2014:

Si tengo 0 pedidos se abrirá lo que necesito.

Necesito que abra compra si no hay orden de compra, y viceversa (mientras no haya 1 dirección, habrá 2 y no se emitirá la orden de inicio).

Tengo que contar cuántas y abrirlas si no tengo ninguna.

 
new-rena:

contar cuántas hay y, si falta la correcta, abrir

no sé cómo explicar al Asesor Experto qué órdenes comprar y cuáles vender
 
//+------------------------------------------------------------------+
//| --- ФУНКЦИЯ РАСЧЕТА КОЛИЧЕСТВА ОРДЕРОВ
//+------------------------------------------------------------------+
   int Calc_Orders(string Symbols,string TYPE)
      {
         int Res=0; int calc;       
         for (calc=OrdersTotal()-1; calc>=0; calc--)
            {
               if (OrderSelect(calc,SELECT_BY_POS,MODE_TRADES))
                  {
                     if (TYPE=="BUY" && OrderType()==OP_BUY && OrderSymbol()==Symbols)
                        {
                           Res=Res+1;
                        }                        
                     if (TYPE=="SELL" && OrderType()==OP_SELL && OrderSymbol()==Symbols)
                        {
                           Res=Res+1;
                        }
                  }
            }
         return(Res);
      }
No cabe en ese post. Intenté editarlo dos veces...
 
le0nid2014:

No funcionará así, cuando haya 0 pedidos se abrirá lo que necesito.

Quiero que abra compra si no hay orden de compra y viceversa (en el momento en que no haya 1 dirección, habrá 2 y no se iniciará la orden de compra).

No entiendo lo que quieres. ¿Hay alguna forma de hacerlo más claro?
 
Artyom Trishkin:
No entiendo lo que quieres. ¿Hay alguna manera de explicarlo más claramente?

Si no hay una orden de venta o de compra en el mercado, abre una orden de este tipo sin importar cuántas órdenes de compra haya.

Y viceversa.

 
le0nid2014:

Si no hay una orden de venta o de compra en el mercado, abre una orden de este tipo sin importar cuántas órdenes de compra haya.

Y viceversa.

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 al EA dado. 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.

Razón de la queja: