Desejos para MQL5 - página 51

 
Há algum plano para usar gráficos "tic-tac-toe" no Metatrader? Agora eu tenho que usar Omega com todos os inconvenientes que isso implica. Seria bom ver este tipo de gráfico em MT.
 
kombat писал (а) >>

A solução é bem simples...

Renomeando DeclaraçãoDetailed.htm para statement.htm

Obrigado! Eu teria lutado de outra forma...

 
Pharaon писал (а) >>
Você planeja algum "tic-tac-toe" em Metatrader? Agora tenho que usar o Omega com todos os inconvenientes que ele causa. Seria bom ver este tipo de gráfico no MetaTrader.

Você poderia me mostrar uma captura de tela? Como você gostaria de ver o tic-tac-toe?

 

pelo menos estruturar, enumerar, datilografar

 

No MT4, desde algum tempo, o preço das ordens de negociação pode não ser normalizado - a normalização é feita automaticamente pelo terminal.

Isto, por si só, é bom e correto. O problema vem se você testar tal programa - no testador a normalização automática não é realizada. As falhas do servidor virtual ocorrem com tudo o que elas causam.

A uniformidade é um desejo indesejável. Seria bom usar um bloco comum no MT5 para os cálculos no testador e no terminal.

 
Saudações!
Encontrei um problema ao escrever um EA: aparece um erro
ERR_ZERO_DIVIDE 4013 Divisão por 0
O código é o seguinte:
//30мин------------------Волчок ----------------------------------------------2
  if(High[1]-Open[1]!=0 && Open[1]-Close[1]!=0 && Close[1]-Low[1]!=0 && 
  Open[1]>Close[1] && (High[1]-Open[1])/(Close[1]-Low[1])>=0.85 && (Open[1]-Close[1])/(High[1]-Open[1])>=0.85 
   && (Open[1]-Close[1])/(Close[1]-Low[1])>=0.85 )
  {
  persent_sell=persent_sell+2;
  Print("Волчок 30мин sell+2");
  }
Ou seja, verifiquei a ausência de divisão por zero na condição, mas infelizmente, o erro ocorre, embora eu entenda que esta é apenas uma condição, ou seja, nenhuma ação é tomada, && está em toda parte, e portanto, em caso de não cumprimento pelo menos da primeira condição, o trabalho adicional desta parte do código já é ineficaz.
Você tem que fazer isso:
//30мин------------------Волчок ----------------------------------------------2
  if(High[1]-Open[1]!=0 && Open[1]-Close[1]!=0 && Close[1]-Low[1]!=0)
  if(Open[1]>Close[1] && (High[1]-Open[1])/(Close[1]-Low[1])>=0.85 
   && (Open[1]-Close[1])/(High[1]-Open[1])>=0.85 
   && (Open[1]-Close[1])/(Close[1]-Low[1])>=0.85)
  {
  persent_sell=persent_sell+2;
  Print("Волчок 30мин sell+2");
  }
Com esta condição adicional, o erro já está ausente. Mas, por exemplo, nesta forma com uma condição (sem divisão por zero)
//30мин------------------Проникающие линии -----------------------------------3
  if(High[2]-Low[2]!=0 && Open[1]>Close[1] && Open[2]<Close[2] && Close[1]<Open[2]
   && Open[1]>=(Low[2]+(High[2]-Low[2])/3) && High[1]<=(High[2]-(High[2]-Low[2])/3))
  {
  persent_sell=persent_sell+3;
  Print("Проникающие линии 30мин sell+3");
  }
o erro não ocorre - ou seja, a verificação prossegue normalmente.
Não entendo qual é o problema porque entendo que o primeiro caso é correto e livre de erros.
 
A CAPACIDADE DE REGISTRAR E CORRIGIR COMENTÁRIOS QUANDO E APÓS A ABERTURA DE UM PEDIDO É MUITO INSUFICIENTE!!!
 
z_e_e_d писал (а) >>
Saudações!
Encontrei um problema ao escrever um EA: aparece um erro
ERR_ZERO_DIVIDE 4013 Divisão por 0.
...

Assustador, nem sequer quero lidar com as prioridades das operações em tal entrada...

Para começar, aconselho a colocar subexpressões gerais na frente do se...

 
z_e_e_d писал (а) >>
Saudações!
Encontrei um problema ao escrever um EA: aparece um erro
ERR_ZERO_DIVIDE 4013 Divisão por 0

Você tem 3 divisões no if-e. Se (Close[1]-Low[1])==0 OU (High[1]-Open[1])==0 OU (Close[1]-Low[1])==0 - concordar - é bem possível, então será uma divisão por 0.

 
SK. писал (а) >>

Você poderia me mostrar uma captura de tela? Como você gostaria de ver o tic-tac-toe?

Tela do gráfico "tic-tac-toe" da Omega

Razão: