O futuro da MQL5 é MQL5+ ou mesmo MQL6 - página 8

 
Karputov Vladimir:

Eu não sei o que é teste simultâneo em vários TFs, mas o fato de não se poder mudar para outros TFs pelo menos depois do teste não é bom. Bem, trocar durante os testes visuais seria fantástico.
 

O futuro... bem, bem. "Obrigado, é engraçado" (c).



 
Ao otimizar, gostaria de ver o resultado da corrida como uma porcentagem, em vez dos números exibidos na coluna "Resultado". E no backtest seria bom se o resultado "lucro líquido" tivesse um lucro em %.
 
Rinat Tukaev:
Ao otimizar, gostaria de ver o resultado da corrida como uma porcentagem, em vez dos números exibidos na coluna "Resultado". E no backtest, seria bom se o resultado "lucro líquido" tivesse um lucro em %.
Insira sua fórmula no manipulador de eventos OnTester() e veja o resultado que você precisa.
 
Yury Reshetov:
Insira sua fórmula no manipulador de eventos OnTester() e veja o resultado que você precisa.
Obrigado! Eu não sabia)
 
Sugiro que as variáveis globais do programa não cruzem as variáveis e parâmetros nos plugins MQL4 e MQL5. Declarei um 'ponto' variável em meu consultor especializado e agora estou recebendo muitas mensagens como: "declaração de 'ponto' esconde declaração global no arquivo 'expert.mq4' na linha 153 ChartObject.mqh 154 39". É horrível quando não se pode declarar uma variável em um módulo, programa, que está nos parâmetros de outro módulo. Por que o módulo ChartObject.mqh precisa ver meu Expert Advisor, expert.mq4, se o ChartObject.mqh não o declara explicitamente?
 
Mihail Matkovskij:
Sugiro que as variáveis globais do programa não cruzem as variáveis e parâmetros nos plugins MQL4 e MQL5. Declarei um 'ponto' variável em meu consultor especializado e agora estou recebendo muitas mensagens como: "declaração de 'ponto' esconde declaração global no arquivo 'expert.mq4' na linha 153 ChartObject.mqh 154 39". É horrível quando não se pode declarar uma variável em um módulo, programa, que está nos parâmetros de outro módulo. Por que o módulo ChartObject.mqh precisa ver meu Expert Advisor, expert.mq4, se o ChartObject.mqh não o declara explicitamente?
Obviamente, isso o ajudaria
#property strict
 
Igor Volodin:
Obviamente, isso o ajudará.
Sim, tenho esta linha no meu EA, mas não está no módulo ChartObject.mqh. Não vou reescrever todos os módulos padrão por causa disso.
 
Mihail Matkovskij:
Sim, eu tenho esta linha em meu Expert Advisor, mas não está no módulo ChartObject.mqh. Não vou reescrever todos os módulos padrão por causa disso.


Entendi. Nesse caso, não crie variáveis globais. Você pode passar sem eles. Caso contrário, com qualquer coincidência, por exemplo, um nome muito comum:

int i;

declarado globalmente será sobregravado por declarado localmente. Isto é o que você é avisado.

E o plugin não tem seu próprio escopo, não é um módulo, é apenas um pedaço de código que será inserido onde você escrever incluir.

 
Igor Volodin:


Entendi. Então, não crie variáveis globais. Você pode passar sem eles.

O que você quer dizer com não criá-los? Em qualquer linguagem de programação as variáveis globais são livremente utilizadas e está tudo bem, mas o compilador jura. O erro não é crucial, mas ainda assim é inconveniente.

double point = MarketInfo(EA_Symbol(), MODE_POINT);

O ponto variável informa o preço de 1 ponto e é um substituto para o ponto padrão. A função MarketInfo(EA_Symbol(), MODE_POINT) dá o preço de 1 ponto para qualquer símbolo. Além disso, o ponto variável pode ser usado em qualquer função, no corpo da EA, se for uma variável global, é claro. Concordam que tais casos causam alguns inconvenientes com bastante freqüência (se você certamente tem experiência em programação MQL). E embora eles possam ser evitados, mas a questão é por que, se em outros idiomas modernos tais problemas simplesmente não existem?

Razão: