Mercado: sem operações comerciais

 

Alguém pode explicar por que o mercado retorna este erro? Todos os cheques na EA estão no lugar...

Entendo a essência, é claro - não há negócios, mas qual é a razão?

Ограничения и проверки в экспертах
Ограничения и проверки в экспертах
  • www.mql5.com
При создании алгоритма для автоматической торговли необходимо не только уметь обрабатывать цены с целью выработки торговых сигналов, но и зачастую требуется получать множество вспомогательной информации об ограничениях, накладываемых на работу эксперта.  В этой статье будет рассказано о том как: получить информацию о торговых сессиях...
 
  • por exemplo - lote comercial em configurações = 0, EA não pode abrir uma negociação porque lote = 0 .
  • Limitação da propagação no Expert Advisor, não abre posições.
  • Não há realmente sinais de abertura de posições no período de testes.

E as verificações que só você vê, seu código não está anexado.

Exemplos aos milhares....

 
Vladislav Andruschenko:
  • por exemplo - lote comercial em configurações = 0, EA não pode abrir uma negociação porque lote = 0 .
  • Limitação da propagação no Expert Advisor, não abre posições.
  • Não há realmente sinais de abertura de posições no período de testes.

E as verificações que só você vê, seu código não está anexado.

Exemplos aos milhares....

A validação do lote está lá, os sinais estão definitivamente lá - é uma rede, sem limites de propagação...
 
Vladislav Andruschenko:
  • por exemplo - lote comercial em configurações = 0, EA não pode abrir uma negociação porque lote = 0 .
  • Limitação da propagação no Expert Advisor, não abre posições.
  • Não há realmente sinais de abertura de posições no período de testes.

E as verificações que só você vê, seu código não está anexado.

Exemplos aos milhares....

As verificações para a correção do lote estão lá, os sinais estão definitivamente lá - é uma rede, sem limites de espalhamento... Eu não entendo nada...
 
Maksim Neimerik:
A validação do lote está lá, os sinais estão definitivamente lá - é uma rede, sem limitações de propagação...

bem, então há mais 100500 opções.

a nettler está passando tranquilamente o teste de mercado.

 
Vladislav Andruschenko:

bem, então há mais 100500 opções.

a nettler está passando tranquilamente o teste de mercado.

De acordo, mas de alguma forma não este:)
 
Maksim Neimerik:
Eu concordo, mas por alguma razão não esta:)


É proibido discutir aqui os bots do mercado. E você não vai colocá-lo no domínio público. E já existem 100500 tópicos com esse nome, assim como as razões para tal tópico.

 
Maksim Neimerik:

Alguém pode explicar por que o mercado retorna este erro? Todos os cheques na EA estão no lugar...

Entendo a essência, é claro - sem negócios, mas por que razão?

É tão difícil usar a busca no site e criar uma cópia da filial 100500!

https://www.mql5.com/ru/search#!keyword=no%20trading%20operations&method=2&module=mql5_module_forum

Поиск - MQL5.community
Поиск - MQL5.community
  • www.mql5.com
Поиск выполняется с учетом морфологии и без учета регистра. Все буквы, независимо от того, как они введены, будут рассматриваться как строчные. По умолчанию наш поиск показывает страницы...
 

Só quero discutir o código:

double CheckVolumeValue(double volume)
{
   double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
   if(volume<min_volume)
   {
      Print("Volume is less than the minimum");
      return(min_volume);
   }

   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
   if(volume>max_volume)
   {
      Print("Volume is greater than the maximum");
      return(max_volume);
   }

   double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);

   int ratio=(int)MathRound(volume/volume_step);
   if(MathAbs(ratio*volume_step-volume)>0.0000001)
   {
      Print("Wrong lot size");
      return(min_volume);
   }
     
   if(volume<MarketInfo(Symbol(),MODE_MINLOT))
   {
      Print("Trade stop invalid lot size");
      Comment("Trade stop invalid lot size"); 
      return(MarketInfo(Symbol(),MODE_MINLOT));
   }
   return(volume);
}

Eu afinei o cheque padrão para devolver o lote correto em vez de um erro.

Aqui chamamos esta função:

   if(!OrderSend(Symbol(),cmd,CheckVolumeValue(Lot),NormalizeDouble(priceStep,Digits()),Slippage,0,0,"",magic,0))

Em meu testador e em minha conta real, este robô funciona bem! Mesmo quando um lote incorreto é inserido, ele ainda retorna o correto e trabalha mais...

E você sabe de onde vem o erro 4051! Isto é em geral...!

 
Maksim Neimerik:

Só quero discutir o código:

Eu afinei o cheque padrão para devolver o lote correto em vez de um erro.

Aqui chamamos esta função:

Em meu testador e em minha conta real, este robô funciona bem! Mesmo quando um lote incorreto é inserido, ele ainda retorna o correto e trabalha mais...

E você sabe de onde vem o erro 4051! Isto é em geral...!

O lote não está normalizado?
 
Maksim Neimerik:

Só quero discutir o código:

Eu afinei o cheque padrão para devolver o lote correto em vez de um erro.

Aqui chamamos esta função:

Em meu testador e em minha conta real, este robô funciona bem! Mesmo quando um lote incorreto é inserido, ele ainda retorna o correto e trabalha mais...

E você sabe de onde vem o erro 4051! Isto é em geral...!

double CheckVolumeValue(double volume)
{
   double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
   if(volume<min_volume)
   {
      Print("Volume is less than the minimum");
      return(min_volume);
   }

   double max_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MAX);
   if(volume>max_volume)
   {
      Print("Volume is greater than the maximum");
      return(max_volume);
   }

   double volume_step=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_STEP);

   int ratio=(int)MathRound(volume/volume_step);
   if(MathAbs(ratio*volume_step-volume)>0.0000001)
   {
      Print("Wrong lot size");
      return(min_volume);
   }
     
   if(volume<MarketInfo(Symbol(),MODE_MINLOT))
   {
      Print("Trade stop invalid lot size");
      Comment("Trade stop invalid lot size"); 
      return(MarketInfo(Symbol(),MODE_MINLOT));
   }
   return(volume);
}
E nunca chegará a este ponto