[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 593

 
Dimka-novitsek:
Desculpe, quais delimitadores?


uma parada completa e uma vírgula. Bem, os delimitadores da lista são diferentes, vírgula e ponto-e-vírgula.

Tente importar com os delimitadores corretos. Ou refazer os cenários regionais com os delimitadores certos. Boa sorte.

 
Obrigado!!!! Sim, há ali um ponto. E como você muda as configurações regionais para os delimitadores certos?
 
Em que ordem você deve instalar o software Ganzilla? Ou devo postar na linha apropriada?
 
Dimka-novitsek:
Obrigado!!!! Sim, há ali um ponto. E como você muda as configurações regionais para os delimitadores corretos?
Por que tocar os cenários regionais? É por isso que eles são regionais, porque só são criados uma vez. As configurações estão em EXCEL. Você também pode dar uma olhada na FAC. Há um dos últimos posts sobre esses separadores.
 

Obrigado!!!

Desculpe, você pode me dar um link para um dos últimos posts sobre estes delimitadores!

Googled, Yandexed - tentou aplicar o formato numérico através do formato home-number-number, nada aconteceu. Não sobrescreva manualmente quatrocentos pontos em zapatye! Poderosos e espertos que se destacam, mas burros!

Ugh, eu minerei!

 
Dimka-novitsek:

Obrigado!!!

Desculpe, você pode me dar um link para um dos últimos posts sobre essas divisórias!

https://www.mql5.com/ru/forum/131853/page5
 
Obrigado!!!
 

eu tenho uma pergunta simples, mas ainda não entendo a essência do fechamento de várias encomendas)

Por favor me explique porque a primeira variante do código funciona da mesma forma que a segunda (na primeira variante via select_by_pos, todas as 4 negociações abertas foram fechadas via 0th index, mas na segunda, 1stand 2nd 3rd e 4th)

preciso de algum manual útil ou algo para ver como as pessoas fecham os pedidos para não perdê-los, ou um manual sobre como fechá-los corretamente e como o select_by_pos funciona) porque todos os exemplos são alguns truncados, e o manual não tem nenhum exemplo de seu uso)

Posso lhe dar um bom tutorial em vídeo sobre programação em MQL4).

OPÇÃO 1 (nesta variante todas as 4 ordens abertas foram fechadas durante o teste, embora todas as 4 ordens tenham sido selecionadas com índice 0 quando foram fechadas):

OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL);
OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL);
OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL);

OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL);

if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);

}

2ª OPÇÃO (todas as 4 negociações foram fechadas aqui também, mas os índices 1,2,3 e 4):

OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL);
OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL);
OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL);

OrderSend(Symbol(),OP_BUY,1,Bid,5,NULL,NULL);

if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);
}
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
OrderClose(OrderTicket(),OrderLots(),Bid,5);

}


 

Boa noite, estou pedindo ajuda com um consultor especialista em MACD com várias moedas. A EA segue os critérios de abertura de posição corretamente, mas o fechamento "em condição" não funciona. Certamente comecei a usar uma parada de trilha, mas o fechamento correto não me dá uma pausa.

//+------------------------------------------------------------------+
string lSymbol;
int init ()
{ 
 lSymbol = Symbol();
 return (0);
}
int deinit()
{return(0);}
int start()
  {
   double MacdCurrent, MacdPrevious, SignalCurrent;
   double SignalPrevious, MaCurrent, MaPrevious;
   double bid, ask, point, digits;
   int cnt, ticket, total;
   
  total = SymbolOrdersTotal (lSymbol);
  
  if (total<1);
  {
    bid   = MarketInfo(lSymbol,MODE_BID);
    ask   = MarketInfo(lSymbol,MODE_ASK);
    point = MarketInfo(lSymbol,MODE_POINT);
    digits= MarketInfo(lSymbol,MODE_DIGITS);

Esta é a parte principal

 for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&   // check for opened position 
         OrderSymbol()==lSymbol())  // check for symbol
        {
         if(OrderType()==OP_BUY)   // long position is opened
           {
            // should it be closed?
            if(MacdCurrent>0 && MacdCurrent<SignalCurrent && MacdPrevious>SignalPrevious &&
               MacdCurrent>(MACDCloseLevel*point))
                {
                 OrderClose(OrderTicket(),OrderLots(),bid,3,Violet); // close position
                 return(0); // exit
                }
            // check for trailing stop
            if(TrailingStop>0)  
              {                 
               if(bid-OrderOpenPrice()>point*TrailingStop)
                 {
                  if(OrderStopLoss()<bid-point*TrailingStop)
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),bid-point*TrailingStop,OrderTakeProfit(),0,Green);
                     return(0);
                    }
                 }
              }
           }
         else // go to short position
           {
            // should it be closed?
            if(MacdCurrent<0 && MacdCurrent>SignalCurrent &&
               MacdPrevious<SignalPrevious && MathAbs(MacdCurrent)>(MACDCloseLevel*point))
              {
               OrderClose(OrderTicket(),OrderLots(),ask,3,Violet); // close position
               return(0); // exit
              }
            // check for trailing stop
            if(TrailingStop>0)  
              {                 
               if((OrderOpenPrice()-ask)>(point*TrailingStop))
                 {
                  if((OrderStopLoss()>(ask+point*TrailingStop)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),ask+point*TrailingStop,OrderTakeProfit(),0,Red);
                     return(0);
                    }
                }
              }
           }
        }
     }
   return(0);
  }
  
   
  int SymbolOrdersTotal(string lSymbol)
{
   int Res=0;
   int total=OrdersTotal();
   for (int i=0;i<total;i++) 
   {
      if (OrderSelect(i, SELECT_BY_POS))
      {
         if (OrderSymbol()==lSymbol)
         {
            Res++;
         }
      }
   }
   return(Res);
}
// the end.

E este é um bloqueio próximo. Por favor, ajude-me a encontrar o erro!

 
Vinin:

O diretório existe?


Sim, ambos na pasta Expert... e na pasta de teste.

mas a captura de tela ainda não funciona.

Razão: