Discussão do artigo "Otimização. Algumas idéias simples"

 

Novo artigo Otimização. Algumas idéias simples foi publicado:

O processo de otimização pode exigir recursos significativos de seu computador ou mesmo dos agentes de teste da MQL5 Cloud Network. Este artigo compreende algumas idéias simples que eu uso para a facilitação do trabalho e a melhoria do Strategy Tester do MetaTrader 5. Eu tive essas idéias a partir da documentação, fórum e artigos.

Tendo encontrado uma estratégia coerente para o EA negociar, nós lançamos ele no gráfico EURUSD, certo? Pode a estratégia ser mais rentável em outros pares de moedas? Há outros pares de moedas em que a estratégia dará melhores resultados, sem necessidade de aumentar o lote em progressão geométrica?

O que vai acontecer se nós escolhermos EURUSD e o período padrão H1 e, em seguida, se não estamos satisfeitos com o resultado, alteramos para EURJPY em H4?

Além disso, se temos um sistema de operação de 64 bits, o que nos permite parar de se preocupar com a velocidade de testar o sistema, podemos esquecer combinações absurdas dos parâmetros de entrada do sistema de negociação, que tomam parte na enumeração completa durante a otimização e que resulta que nós temos que negligenciar nos relatórios finais?

Eu resolvi esses "pequenos problemas" sozinho e neste artigo vou partilhar as soluções eficazes. Eu aprecio no entanto, que pode haver outras soluções mais ideais.

Autor: Jose Miguel Soriano

 

Meu Deus, que pesadelo de tradução!

Será que as retrotraduções para o espanhol são as mesmas?

Algo precisa ser feito a respeito disso.

 
A tradução foi adaptada. Obrigado pelo comentário!
 
É um prazer ler um artigo em um desenvolvedor espanhol.
Sua proposta também se aplicaria a uma otimização dos tempos de entrada ... Se eu entendi bem o artigo. É que sou relativamente novato em programação eletrônica.
Uma saudação e agradecimentos
 
decolimper:
É um prazer ler um artigo em um desenvolvedor espanhol.
Sua proposta também se aplicaria a uma otimização dos tempos de entrada ... Se eu entendi bem o artigo. É que sou relativamente novato em programação eletrônica.
Uma saudação e um agradecimento

Se você é espanhol... nós falamos espanhol.

Entendo que esteja perguntando se posso otimizar os períodos de entrada.

O problema é que todas as funções no código devem ter um parâmetro que informe o período de tempo em que o EA trabalha. Não basta deixar PERIOD_CURRENT por padrão, é preciso passar para todas as funções que usam o período de tempo uma variável global (marcoTF, por exemplo) que armazena o período de tempo em que o EA trabalha.

Para o meu código, não importa em qual gráfico você carrega o EA. Ele sempre funciona no período de tempo que eu indico no parâmetro de entrada que reporta posteriormente a "marcoTF".

Se você é espanhol... fale em espanhol.

Entendo que as perguntas se eu otimizar os períodos de entrada.

O problema é que todas as funções do código devem ter um parâmetro para informar o período de tempo no qual o EA trabalha. Você não pode usar o padrão PERIOD_CURRENT, passe todas as funções que usam o tempo para uma variável global (marcoTF, por exemplo) que armazena o período de tempo em que o EA funciona.

Para o meu código é indiferente em qual gráfico carregar o EA. Sempre trabalho dentro da estrutura que indica o parâmetro de entrada que posteriormente informa "marcoTF".

[Excluído]  

De fato, interessante... Mas não é muito diferente da otimização usual de acordo com os parâmetros escolhidos pelo trader em sua experiência....

Estou muito mais interessado na questão de saber se é possível transferir automaticamente os parâmetros otimizados para as configurações do EA...

Ou seja, é possível otimizar e reotimizar automaticamente o Expert Advisor após um período de tempo definido pelo operador?

 
josemiguel1812:

Se você é espanhol... nós falamos espanhol.

Entendo que esteja perguntando se posso otimizar os períodos de entrada.

O problema é que todas as funções no código devem ter um parâmetro que informe o período de tempo em que o EA trabalha. Não basta deixar PERIOD_CURRENT por padrão, é preciso passar para todas as funções que usam o período de tempo uma variável global (marcoTF, por exemplo) que armazena o período de tempo em que o EA trabalha.

Para o meu código, não importa em qual gráfico você carrega o EA. Ele sempre funciona no período que eu indico no parâmetro de entrada que reporta posteriormente a "marcoTF".

Se você é espanhol... fale em espanhol.

Entendo que as perguntas se eu otimizar os períodos de entrada.

O problema é que todas as funções do código devem ter um parâmetro para informar o período de tempo no qual o EA trabalha. Você não pode usar o padrão PERIOD_CURRENT, passe todas as funções que usam o tempo para uma variável global (marcoTF, por exemplo) que armazena o período de tempo em que o EA funciona.

Para o meu código é indiferente em qual gráfico carregar o EA. Sempre trabalho dentro da estrutura que indica o parâmetro de entrada que posteriormente informa "marcoTF".

 
Olá, José Miguel, gostaria de entrar em contato com você por e-mail, é possível?
 
Muito bom o seu artigo José! A tempos estava procurando uma maneira de otimizar não só por timeframe, mas também por ativos. Parabéns pela iniciativa!!!

Caso tenha interesse, tenho uma sugestão que poderia lhe ser útil. Seria interessante otimizar desta maneira?

Parâmetros externos para otimizar:

Numero de ativos: 1
Ativos: EURUSD

Ou

Numero de ativos: 2
Ativos: EURUSD; USDJPY
ou
Ativo1: EURUSD
Ativo2: USDJPY

Etc.

Otimizando assim a quantidade de Numero de ativos e Ativos. No seu caso a otimização é feita individualmente para cada ativo ou um setup para todos os ativos ao mesmo tempo?

Uma outra maneira seria automatizar a otimização assim que colocar o EA para rodar em algum gráfico. Para EAs que só operam por fechamento de vela (no meu caso por exemplo), seria possível otimizar pelas velas do gráfico, sem ser pelo Strategy Tester?
 

Um bom artigo. Acho curioso o fato de eu também ter enfrentado esse problema com soluções muito semelhantes às suas. Outra linha interessante é a otimização "virtual" apresentada neste artigo:

https://www.mql5.com/en/articles/143

De qualquer forma, obrigado por lutar contra a solidão do programador :)

Adaptive Trading Systems and Their Use in the MetaTrader 5 Client Terminal
Adaptive Trading Systems and Their Use in the MetaTrader 5 Client Terminal
  • 2010.09.14
  • MetaQuotes Software Corp.
  • www.mql5.com
This article suggests a variant of an adaptive system that consists of many strategies, each of which performs its own "virtual" trade operations. Real trading is performed in accordance with the signals of a most profitable strategy at the moment. Thanks to using of the object-oriented approach, classes for working with data and trade classes of the Standard library, the architecture of the system appeared to be simple and scalable; now you can easily create and analyze the adaptive systems that include hundreds of trade strategies.
 
Jose:

Um bom artigo. Acho curioso o fato de eu também ter enfrentado esse problema com soluções muito semelhantes às suas. Outra linha interessante é a otimização "virtual" apresentada neste artigo:

https://www.mql5.com/en/articles/143

De qualquer forma, obrigado por lutar contra a solidão do programador :)

Eu faço programação estruturada e não "leio" bem a programação orientada a objetos.

Não entendo a estratégia em si porque não vejo como ela obtém o resultado virtual de todas as estratégias no candle 1 para escolher o que eu faço ao abrir o candle 0. No candle 100 (numeração do presente para o passado), por exemplo, se eu puder estimar o resultado no candle 98 "movendo-me" para o futuro com o histórico conhecido e o priceBID que o sistema de teste MT5 me dará.... mas no candle1, como posso estimar o resultado virtual?