MQL4 atualizado e código antigo (compartilhamento de experiências de solução de problemas) - página 2

 

O código deste artigo também parou de funcionar. https://forum.mql4.com/ru/3481

Especificamente, ele não vai escrever ou ler arquivos da unidade C.

 
Eu tenho um bild 509. Hoje eu vi que o editor mudou. Eu precisava mudar o lote no código da EA, e durante a compilação recebi erros relacionados a stdlib.mqh e stderror. Eu copiei esses arquivos para /MQL4/Include e o Expert Advisor conseguiu copiar .
 

Overnight ME atualizado tanto em Real em 509 e com posições abertas. O ponto acabou sendo 0,0001 e os dígitos, respectivamente, 4! Tinha que fazer as variáveis com urgência, como indicado na Documentação, mas o StopLoss é, por alguma razão, ajustado com zero no 5º dígito. E o único indicador DailyPivotPoints, que eu uso para "acalmar minha consciência", desapareceu. Tive que recompilá-la.

Na demonstração, o Ponto e os Dígitos atualizados anteriormente eram normais de imediato e os DailyPivotPoints não voaram.

 
Que histórias de horror você conta aqui, isto deve ser contado na hora de dormir, como costumávamos fazer no acampamento dos pioneiros))))
 
evillive:
Que horrores você conta aqui, deve ser contado à noite, como costumava ser no acampamento dos pioneiros ))))

Então, chegaremos à MT0 e somente o lote inteiro. Até agora fiz como descrito na Documentação, e Ponto e Dígitos, não importa como você os pinta, são os mesmos de um lote de 4 dígitos.

  double point = MarketInfo(Symbol(),MODE_POINT);
  int   digits = MarketInfo(Symbol(),MODE_DIGITS);
E a Demo está bem, relativamente, é claro.
 
borilunad:

Então, chegaremos à MT0 e somente o lote inteiro. Até agora fiz como descrito na Documentação, mas Ponto e Dígitos, não importa como você os pinta, são os mesmos de um lote de 4 dígitos.

E a demonstração está bem, relativamente, é claro.

Você já atualizou a referência? Eu entrei e encontrei o seguinte - não estava lá antes.

-----------------------

int _Dígitos

A variável _Digitos armazena o número de casas decimais após o ponto decimal que determina a precisão do preço do símbolo do gráfico atual.

Você também pode usar a função Dígitos().

----------------------

Verificado, esta impressão(_Dígitos, " ", Dígitos()); linha em AUDJPY e EURUSD dá o seguinte

2014.02.07 18:52:54.313 TestFileOpen EURUSD.e,M30: 5 5 5
2014.02.07 18:52:33.317 TestFileOpen AUDJPY.e,M15: 3 3 3

 
VDev:

Você já atualizou a ajuda? Eu entrei e encontrei o seguinte - não estava lá antes.

-----------------------

int _Dígitos

A variável _Digitos armazena o número de casas decimais após o ponto decimal que determina a precisão do preço do símbolo do gráfico atual.

Você também pode usar a função Dígitos().

Isto é provavelmente quando se muda para uma linguagem atualizada, e eu não, tudo se compila! Mas muito estranho que em Demo com o mesmo Expert Advisor em outro terminal atualizado na segunda-feira Ponto e Dígitos sejam normais, cinco dígitos, mas aqui em Real deveria obter cinco dígitos através de MarketInfo() :(((

Aqui, há um cheque no comentário sobre o gráfico:

  "\n\n                                  ",DoubleToStr(Point,Digits), //тут выводится 0.0001
  "\n                                  ",DoubleToStr(point,5),   //а тут с переменной 0.00001
Claro que fiquei "horrorizado" quando o SL foi fixado em 10 vezes seu valor! Mantendo este cheque por enquanto com a esperança de que ele funcione corretamente e eu o guardarei.
 

Haverá outros problemas, é um começo)))) Agora o compilador parece exigir o cumprimento rigoroso de idiomas normais como C/C++, e MQL5, é claro. Ou seja, tais disparates não podem mais ser compilados.

switch(n)
{
case 1: double d=1; break;
case 2: d=2; break;
}
 
VDev:

Haverá outros problemas, é um começo)))) Agora o compilador parece exigir o cumprimento rigoroso de idiomas normais como C/C++, e MQL5, é claro. Ou seja, tais disparates não podem mais ser compilados.

Eu não me entrego a tais disparates! O principal é se....senão - funciona e pronto! É verdade, o interruptor está nas funções emprestado fora do início, e tudo funciona. Talvez comece normalmente na segunda-feira depois de um descanso! ;))
 
borilunad:
Eu não me envolvo nisso! O principal é que se....mais funciona e é isso! A verdadeira chave está nas funções emprestadas fora do início, e tudo funciona. Talvez comece normalmente na segunda-feira depois de um descanso! ;))
Eu só experimentei esta versão por uma hora hoje, não estou ciente disso. Um conhecido meu me fez rir hoje )))) Ele adora colocar pontos em nomes variáveis. Disse-lhe por muito tempo - mudar para sublinhado. Hoje não se compilava bem. Então ele me diz - por que, porque agora as variáveis só têm que se tornar classes!