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

 
WinZip:
Você pode me aconselhar sobre este problema? Estou fazendo um Expert Advisor comercial, por conveniência fiz uma cópia do Expert Advisor como um novo, e estou fazendo experiências lá. Mas há uma hora atrás o Expert Advisor para experimentos começou a retornar erro "É proibido negociar para Expert Advisor". Eu tenho dois Expert Advisors quase idênticos, um é comercial e outro não. Perdi o momento em que meu Conselheiro Especialista parou de negociar. Como posso calcular o que é proibido de negociar? Tentei fazer funcionar para fechar negócios, mas quando apago tudo o que acrescentei, ainda não negocia.

Em suas configurações, marque a caixa para permitir que ele possa negociar.

 
Logs e resultados de testes em 0 unidade C cheia, há alguma maneira de mudar a outra unidade para logs nas configurações?
 

Peço desculpas pela pergunta estúpida, que provavelmente já foi discutida um milhão de vezes.

Por que não recebo notificações de respostas ou até mesmo eliminações de linhas? Não no correio ou nas mensagens locais... ?

E como corrigi-lo? Acho que está verificado, mas não está funcionando...

 
//+------------------------------------------------------------------+
int OnInit()
  {
  datetime open_bars_time = iTime(NULL,0,0); 
  Alert("старт ",open_bars_time);
  int i=0;
  while(iTime(NULL,0,0)==open_bars_time && !IsStopped()) 
  {Comment(iTime(NULL,0,0));}
  Alert("Цикл закончен",open_bars_time);
//--- create timer
   EventSetTimer(Period()*60);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+

требуется запускать прогу в начале бара. Почему значение возвращаемое iTime(NULL,0,0) не изменяется?
 
Sergey Guliaev:

Você precisa adicionar Sleep() e RefreshRates() ao laço, caso contrário nada se move.

E em geral, a idéia é fundamentalmente errada. Você não pode fazer isso no OnInit.

Se você tem que esperar pela abertura do bar - você tem que esperar no OnTick. Se você quiser mudar de hora - espere no OnTimer.

 
Maxim Kuznetsov:

Você tem que adicionar Sleep() e RefreshRates() ao laço, caso contrário nada se moverá.

e a idéia é fundamentalmente errada. Você não pode fazer isso no OnInit

Se for necessário esperar pela abertura do bar - isso deve ser feito no OnTick. Se você tem que esperar pela mudança de hora, você tem que esperar no OnTimer.

Obrigado. A tarefa é garantir que o primeiro tique tenha +/- um par de segundos no início do bar. De acordo com minhas observações, os carrapatos não estão sincronizados com o início da barra.

 
Sergey Guliaev:

Obrigado. O objetivo é que o primeiro tique seja +/- um par de segundos no início do bar. De acordo com minhas observações, os carrapatos não estão sincronizados com o início da barra.

Suas observações são estranhas. Você confundiu causa e efeito. Os carrapatos não dependem de barras, mas a abertura de uma nova barra depende da chegada de um novo carrapato. Se não houver carrapato, não há barra. Isto acontece com freqüência nas atas.

 

Boa tarde colegas!

Não consigo entender a razão, tenho o volume (LotSize) calculado com base no risco. Quando retiro o tamanho do lote com a mensagem Alert(LotSize), ela mostra 0,12 por exemplo, mas a função OrderSend reclama sobre o tamanho. Quando eu escrevo LotSixe=0,12 no código; OrderSend funciona bem.

Qual pode ser a razão?

 
Sandjar Ikramov:

Boa tarde colegas!

Não consigo entender a razão, tenho o volume (LotSize) calculado com base no risco. Quando retiro o tamanho do lote com a mensagem Alert(LotSize), ela mostra 0,12 por exemplo, mas a função OrderSend reclama sobre o tamanho. Quando eu escrevo LotSixe=0,12 no código; OrderSend funciona bem.

Qual pode ser a razão?

Nesses casos eles sempre pedem código... quem sabe o que está escrito ali e como está escrito.

 
Sandjar Ikramov:

Boa tarde colegas!

Não consigo entender a razão, tenho o volume (LotSize) calculado com base no risco. Quando retiro o tamanho do lote com a mensagem Alert(LotSize), ela mostra 0,12 por exemplo, mas a função OrderSend reclama sobre o tamanho. Quando eu escrevo LotSixe=0,12 no código; OrderSend funciona bem.

Qual pode ser a razão?

Bem... provavelmente porque são variáveis diferentes... E 0,12 (vírgula) não é igual a 0,12(parada completa) de modo algum