Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1711

 
Necessidade de remover uma das ordens idênticas no tempo de abertura, lote e preço de abertura (as duas últimas), remover à força uma destas ordens. Obrigado.
 
Vitaly Muzichenko #:

A questão é diferente, para emitir os "parâmetros de entrada" no idioma desejado.

Exatamente.

É possível fazer isso através disso?

#define  LANG(...)
...
#ifdef
...
#else 
...
#endif 
 
Vitaly Muzichenko #:

A questão é diferente, para emitir os "parâmetros de entrada" no idioma desejado.

Somente através da definição da linguagem terminal em tempo de compilação e usando #ifdef -- #else -- #endif para compilação condicional

 
Порт-моне тв tempo aberto, lote e preço aberto (as duas últimas), remover à força uma delas. Obrigado.

Colocar o código de colchete a colchete

{
.....
ticket = OrderSend(Symbol(),OP_BUY, Lot*3, Ask, Slippage, SLbuy, 0, "открыт ордер на покупку", Magic, 0, Blue);
.....
ticket = OrderSend(Symbol(),OP_SELL, Lot*3, Bid, Slippage, SLsell, 0, "открыт ордер на продажу", Magic, 0, Red);
}
Esta seção em particular.
 
Artyom Trishkin #:

Somente através da definição da linguagem terminal em tempo de compilação e usando #ifdef -- #else -- #endif para compilação condicional

Isto é uma omissão na MQL. Infelizmente (
 
Порт-моне тв #:

Eu estou correndo em um testador. Eu mesmo não preciso de médiuns quando sou telepata. E é por isso que eu sei exatamente do que preciso. E você está perdendo seu e meu tempo com conversa fiada sem sentido.

Verifique antes de abrir se há uma posição aberta nesta vela (se houver uma posição por barra), se há uma posição aberta nesta vela a este preço (não confiável por causa do escorregamento), se há uma posição aberta há um certo número de segundos por este sinal....

Há muitas maneiras de se fazer isso. Mas em seu código, você precisa verificar a existência de uma posição com base neste sinal. Você decide como fazer isso, já que não tem um código.

É por causa da falta de código que todos estão adivinhando, o que acaba se revelando uma conversa sem sentido.

 
MakarFX #:

Colocar o código de colchete a colchete

essa seção em particular.
   if(sb1 + sb1/100*LotRisk*(DayMultiplicatorProfit/100/2) > AccountBalance()  && TimeCurrent()>TimeCheck_a && TimeCurrent()<TimeCheck_ac && Ogranichitel > 0)
     {

      if(OrderOfSymbol<1)
         if(signal=="buy")
            if(Close[1]>Open[1])
              {
               ticket = OrderSend(Symbol(),OP_BUY, Lot, Ask, 3, SLbuy, TPbuy, "открыт ордер на покупку", Magic, 0, Green);
               Print("OpenOrderSuccess");
              }


      if(OrderOfSymbol<1)
         if(signal=="sell")
            if(Close[1]>Open[1])
              {
               ticket = OrderSend(Symbol(),OP_SELL, Lot, Bid, 3, SLsell, TPsell, "открыт ордер на продажу", Magic, 0, Red);
               Print("OpenOrderSuccess");
              }

     }
 
Порт-моне тв #:
Estou imediatamente confuso por
OrderOfSymbol
como você define isso?
 
MakarFX #:
Estou imediatamente confuso sobre como você o define?
OrderOfSymbol=CounterOrderTradeType(-1);

............


//+------------------------------------------------------------------+
//| Подсчет ордеров потекущему символу                               |
//+------------------------------------------------------------------+
int CounterOrderTradeType(ENUM_ORDER_TYPE order_type)
  {
   int cnt=0;
//----
   for(int pos=OrdersTotal()-1; pos>=0; pos--)
     {
      if(OrderSelect(pos, SELECT_BY_POS, MODE_TRADES)==false)
         continue;
      if(OrderSymbol()!=_Symbol)
         continue;
      if(order_type == OrderType() || order_type == -1)
         cnt++;
     }
//----
   return(cnt);
  }

//+------------------------------------------------------------------+
você ainda está tentando encontrar o erro, mas há horas venho lhe pedindo para fazer algo mais. Por que isso acontece?
 
Порт-моне тв #:

Tente

   if(sb1 + sb1/100*LotRisk*(DayMultiplicatorProfit/100/2) > AccountBalance()  && TimeCurrent()>TimeCheck_a && TimeCurrent()<TimeCheck_ac && Ogranichitel > 0)
     {
      if(OrderOfSymbol<1)
        {
         if(signal=="buy"&&Close[1]> Open[1])
           {
            if(OrderSend(Symbol(),OP_BUY, Lot, Ask, 3, SLbuy, TPbuy, "открыт ордер на покупку", Magic, 0, Green))
              {Print("OpenOrderSuccess");}
           }
         if(signal=="sell"&&Close[1]> Open[1])
           {
            if(OrderSend(Symbol(),OP_SELL, Lot, Bid, 3, SLsell, TPsell, "открыт ордер на продажу", Magic, 0, Red))
              {Print("OpenOrderSuccess");}
           }
        }
     }
É destacado em amarelo. É suposto ser assim?