Discussão do artigo "Usando algoritmos de otimização para configurar parâmetros de EA em tempo real"

 

Novo artigo Usando algoritmos de otimização para configurar parâmetros de EA em tempo real foi publicado:

O artigo discute os aspectos práticos do uso de algoritmos de otimização para encontrar os melhores parâmetros de EA em tempo real, bem como a virtualização das operações de negociação e da lógica do EA. O artigo pode ser usado como instrução para implementar algoritmos de otimização em um EA.

Frequentemente recebo perguntas sobre como aplicar algoritmos de otimização ao trabalhar com EAs e estratégias em geral. Neste artigo, gostaria de abordar os aspectos práticos do uso de algoritmos de otimização. 

No mundo financeiro de hoje, onde cada milissegundo pode fazer uma grande diferença, a negociação algorítmica está se tornando cada vez mais necessária. Os algoritmos de otimização desempenham um papel crucial na criação de estratégias de negociação eficientes. Talvez alguns céticos acreditem que os algoritmos de otimização e a negociação não têm terreno comum. No entanto, neste artigo, mostrarei como essas duas áreas podem interagir e quais benefícios podem ser obtidos dessa interação.

Para traders novatos, entender os princípios básicos dos algoritmos de otimização pode ser uma ferramenta poderosa para encontrar negociações lucrativas e minimizar riscos. Para profissionais experientes, um conhecimento profundo nessa área pode abrir novos horizontes e ajudar a criar estratégias de negociação sofisticadas que superem as expectativas.

Auto-otimização em um EA é um processo que envolve o EA adaptando seus parâmetros de estratégia de negociação para alcançar um melhor desempenho com base em dados históricos e nas condições atuais do mercado.

Autor: Andrey Dik

 
Isso é incrível. Diga-me, esse algoritmo é possível em Python?
 

input string   InpKPeriod_P        = "18|9|3|24";  //STO K period:      it is necessary to optimize
input string   InpUpperLevel_P  = "96|88|2|98"; //STO upper level: it is necessary to optimize

Observe que os parâmetros são declarados com o tipo de cadeia de caracteres, os parâmetros são compostos e incluem valorespadrão, valorinicial da otimização ,etapa e valor final da otimização .

Eu recomendaria usar o formato MQ dessa cadeia de caracteres.
input string   InpKPeriod_P     = "18||9||3||24||N";  //Período STO K: é necessário otimizar
input string   InpUpperLevel_P  = "96||88||2||98||Y"; //STO nível superior: é necessário otimizar
 
Yevgeniy Koshtenko #:
Isso é incrível. Diga-me, esse algoritmo é possível em Python?
Sim, claro que sim.
 
fxsaber #:
Eu recomendaria usar o formato MQ para essa cadeia.
Sim, é possível fazer isso dessa forma, basta adicionar uma verificação de sinalizadores no registro da cadeia de parâmetros, que fica a critério do proprietário.
 

Parece errado ter duas implementações diferentes da negociação - em ambiente real e virtual -, pois é fácil presumir a não identidade. Idealmente, deveria ser o mesmo método chamado diretamente do OnTick com o ambiente real ou do otimizador com o ambiente virtual.

E o paralelismo da otimização ainda está faltando. É lógico executar cada grupo/roy/e-outros-agentes-analógicos-independentes em uma cópia separada do Expert Advisor, ou seja, em um thread dedicado(por exemplo).

 
Stanislav Korotky #:

Parece errado ter duas implementações diferentes de negociação - real e virtual - é fácil permitir a não identidade. O ideal é que seja o mesmo método chamado diretamente do OnTick com ambiente real ou do otimizador com ambiente virtual.

E o paralelismo da otimização ainda está faltando. É lógico executar cada grupo/roy/e-outros-agentes-analógicos-independentes em uma cópia separada do Expert Advisor, ou seja, em um thread dedicado(por exemplo).

Sim, é claro, concordo com tudo.

Mas a tarefa era mostrar um exemplo realmente muito simples disponível para uma ampla gama de usuários, incluindo aqueles que não estão familiarizados com programação.

E assim, é claro, o ideal é que você precise de total identidade entre o virtual e o real, e você pode paralelizar tudo facilmente se tiver toda a lógica no virtual.

 

Finalmente, um bom exemplo de aplicação de seus artigos sobre otimização.

Muito obrigado.

 
Aleksandr Slavskii #:

Finalmente, um bom exemplo de aplicação de seus artigos de otimização.

Obrigado.

Obrigado por sua atenção aos meus artigos.
 
A obtenção do design correto é um ótimo ponto de partida para mostrar onde a inteligência artificial (que, embora não tenha nada a ver com a EA, porque não são redes neurais e não é autoaprendizagem) deve ir, com uma estratégia lógica, e adicionamos isso, e é realmente benéfico, a auto-otimização, isso é o que nos aproximará do modo de inteligência humana, porque nos permite tomar decisões a curto prazo e com base no que está acontecendo no momento. no momento, tendo as melhores condições instantâneas.
 

Artigo interessante, que deve despertar interesse na série de artigos publicados por você!

Obviamente, a desvantagem da implementação proposta é a falta de universalidade da abordagem, ou seja, é necessário reescrever completamente o Expert Advisor existente e introduzir um testador virtual com muitas funções. Obviamente, a vantagem da abordagem é a velocidade aceitável de trabalho devido aos indicadores virtuais.

Você já tentou usar não intervalos de gráficos para otimização, mas conjuntos de configurações previamente selecionadas para cada indicador/previsor? Essa abordagem reduz significativamente a área de pesquisa, mas entendo que nem todos os algoritmos funcionarão corretamente, pois não há uma mudança suave de parâmetro para parâmetro, ou isso não é crucial?

Há algum artigo planejado sobre outras possibilidades de aplicação de algoritmos, de acordo com as linhas descritas neste artigo:

  • Gerenciamento de portfólio. Os algoritmos de otimização podem ajudar a determinar a alocação ideal de ativos em um portfólio para atingir determinados objetivos. Por exemplo, as técnicas de otimização, como a otimização de média-variância (matriz de média-variância), podem ser usadas para encontrar o conjunto mais eficiente de ativos, considerando os retornos e os riscos esperados. Isso pode incluir a determinação da combinação ideal de ações, títulos e outros ativos, bem como a otimização do tamanho das posições e a diversificação do portfólio.
  • Selecionar os melhores instrumentos de negociação. Os algoritmos de otimização podem ajudar a selecionar os melhores instrumentos de negociação ou ativos a serem negociados. Por exemplo, os algoritmos de otimização podem ser usados para classificar os ativos com base em vários critérios, como retorno, volatilidade ou liquidez.