Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 382

 
Por favor, dê-me a fórmula para calcular o tamanho de lote de uma nova encomenda para que, com um tp de 10p, possa retirar uma encomenda perdida a 0 e ganhar os 10 pips desejados.
 

Que operador deve ser utilizado para designaro tipo de encomenda?

Combinar 2 algoritmos em um. (Combine-as para que não haja um conflito de "OrdersTotal", acontece que abrirá 1 ordem. e eu preciso de 1 em cada direcção)

Obrigado de antemão))

int start ()

{

se (OrdersTotal() == 0 )

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

}

int start ()

{

se (OrdersTotal() == 0 )

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

}

 
le0nid2014:

Que operador deve ser utilizado para designaro tipo de encomenda?

Combinar 2 algoritmos em um. (Combine-as para que não haja um conflito de "OrdersTotal", acontece que abrirá 1 ordem. e eu preciso de 1 em cada direcção)

Obrigado de antemão))

int start ()

{

se (OrdersTotal() == 0 )

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

}

int start ()

{

se (OrdersTotal() == 0 )

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

}

Abrir um a um.
 
Artyom Trishkin:
Para abrir um a um.

Se eu tiver 0 encomendas, abrirá o que eu preciso.

Quero que abra a compra se não houver ordem de compra e vice-versa (no tempo em que não houver 1 direcção, 2 abrirão e a ordem de compra não começará).

 
le0nid2014:

Não funcionará dessa forma - quando houver 0 encomendas, abrirá o que eu preciso.

Preciso que abra a compra se não houver ordem de compra, e vice-versa (enquanto não houver 1 direcção, haverá 2 e o comando de arranque não será emitido).

Tenho de contar quantos e abri-los se não tiver um.

 
new-rena:

contar quantos são e, se faltar o correcto, abrir

não sei como explicar ao consultor especializado quais as encomendas para comprar e quais as encomendas para 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);
      }
Não caberá nesse post. Já tentei editar duas vezes...
 
le0nid2014:

Não funcionará dessa forma - quando houver 0 encomendas, abrirá o que eu preciso.

Quero que abra a compra se não houver ordem de compra e vice-versa (no tempo em que não houver 1 direcção, 2 abrirão e a ordem de compra não começará).

Não compreendo o que pretende. Haverá alguma forma de o tornar mais claro?
 
Artyom Trishkin:
Não compreendo o que pretende. Há alguma forma de o explicar mais claramente?

Se não houver nenhuma ordem de Venda ou Compra no mercado, abre uma tal ordem, independentemente do número de ordens de Compra existentes.

E vice versa.

 
le0nid2014:

Se não houver nenhuma ordem de Venda ou Compra no mercado, abre uma tal ordem, independentemente do número de ordens de Compra existentes.

E vice versa.

Definimos duas variáveis locais na função OnTick do tipo bool: buyExist = falso e sellExist = falso.

Quando chega um novo tick, verifica se há alguma ordem que pertença à EA em questão. Se houver uma ordem de venda, sellExist = verdadeiro e a mesma coisa com a ordem de compra. E depois verifica se buyExist = true - não abrir uma ordem de compra. O mesmo se aplica à venda. Isto é tudo.

Razão: