Discussão do artigo "Uso Prático das Redes Neurais de Kohonen na Negociação Algorítmica. Parte II. Otimização e previsão"

 

Novo artigo Uso Prático das Redes Neurais de Kohonen na Negociação Algorítmica. Parte II. Otimização e previsão foi publicado:

Com base nas ferramentas universais projetadas para trabalhar com as redes de Kohonen, nós construímos o sistema de análise e seleção dos parâmetros ótimos do EA e consideramos a previsão das séries temporais. Na Parte I, nós corrigimos e melhoramos as classes das redes neurais publicamente disponíveis, adicionando os algoritmos necessários. Agora é hora de colocá-los em prática.

É assim que os testes aparecem no período de 1 de julho de 2018 até 1 de dezembro de 2018.

Unity-Forecast: Previsão dos movimentos da prata no Forex e cluster de ouro no Testador da MetaTrader 5

Unity-Forecast: Previsão dos movimentos da prata no Forex e cluster de ouro no Testador da MetaTrader 5

Às vezes, a precisão chega a 60%. Nós podemos concluir que, basicamente, o método funciona, mesmo que seja necessário selecionar fundamentalmente o objeto de previsão, preparar entradas, períodos prolongados, configurar de forma meticulosa.

Autor: Stanislav Korotky

 
Obrigado pelo material interessante e de qualidade. Dois artigos em um, na verdade.
 
Dei uma olhada no artigo - a segunda parte é bastante original, mas não há nada de útil na primeira parte sobre a análise dos resultados da otimização. Embora o tópico da análise dos resultados da otimização seja muito importante para a seleção de parâmetros que garantirão o trabalho estável do Expert Advisor. Uma hipótese bastante conhecida aqui é a suposição de que, se você escolher um máximo de lucratividade local, em torno do qual a lucratividade diminui suavemente com desvios nos valores dos parâmetros de entrada, ou seja, em torno do qual a função gradiente diminui suavemente, então, mesmo quando as condições de mercado mudarem, o desempenho real resultante do Consultor Especialista se deteriorará suavemente em relação à referência e aos valores esperados determinados durante o teste. Em um caso mais avançado, é necessário incluir na função-alvo não apenas a lucratividade, mas também uma avaliação da estabilidade de outros indicadores de resultado. Ou seja, é necessário procurar não por platôs, mas por colinas no espaço das variáveis de output, mas localizadas em áreas adjacentes às outras áreas das variáveis de input.
Infelizmente, não vi que o autor tenha resolvido esse problema usando mapas de Kohonen.
Além disso, a própria abordagem em que o autor remove os pontos não lucrativos é fundamentalmente errada - esses podem ser apenas pontos vizinhos no espaço das variáveis de entrada, cujas quedas de lucratividade indicam instabilidade da combinação lucrativa.
 

O trabalho é certamente de alta qualidade. Um bom tutorial sobre o uso de redes neurais em análise e negociação.

Como discussão, eu gostaria de acrescentar o seguinte (na seção "Otimização"):

O autor afirma que "o experimento não revelou configurações ideais". Em minha opinião, os motivos são os seguintes:

1. parâmetros de indicadores tradicionais(RSI, MA. Parabólico) foram usados como os que estavam sendo estudados (durante a otimização). Em geral, essas são ferramentas analíticas muito grosseiras, de modo que os traders experientes, em geral, não as utilizam para negociações reais. O resultado deve melhorar se a análise de candlestick, mas modelos não clássicos, for usada em vez desses indicadores (minha experiência de testar os "clássicos" mostrou sua ineficiência). Ou seja, os parâmetros do candlestick (amplitude, tamanho do corpo do candlestick, tamanho das sombras) podem ser usados como parâmetros otimizados. A alteração desses parâmetros no tempo é uma ferramenta analítica muito mais precisa do que os sinais dos indicadores tradicionais.

2. falta de multiescala ( apenas uma escala é usada), o que reduz seriamente a precisão da análise. Portanto, é melhor usar a análise simultânea de candlesticks de 3 a 4 períodos de tempo (é claro, do mesmo instrumento financeiro).

3. o autor escolhe o ouro e a prata como instrumentos financeiros analisados (ativos de proteção, na opinião do autor, menos dependentes de fatores fundamentais). Acho que, para uma análise completa, pelo contrário, é necessário usar os instrumentos mais negociados e, em primeiro lugar, o EURUSD como o instrumento financeiro mais característico (em termos de dinâmica). Além disso (na análise), não se deve ter medo da volatilidade e do chamado "ruído" do mercado (movimentos em intervalos de tempo pequenos), pois essas são manifestações da natureza do mercado, seus elementos naturais.

 
Concordo com os comentários. Alguns pontos do artigo foram explicados (por exemplo, o uso de resultados de otimização genética, a necessidade de adicionar outras escalas/indicadores, etc.). Um dos objetivos era fornecer ferramentas e abordagens gerais para pesquisas sobre robôs de combate. Compartilhe seus resultados.
 
Stanislav Korotky:
Concordo com os comentários. Alguns pontos do artigo foram explicados (por exemplo, o uso de resultados de otimização genética, a necessidade de adicionar outras escalas/indicadores, etc.). Um dos objetivos era fornecer ferramentas e abordagens gerais para a pesquisa sobre robôs de combate. Compartilhe suas descobertas.

Não se trata de comentários, apenas sugestões, pois o artigo é excelente.

 

A pesquisa no espaço de parâmetros de dimensionalidade muito grande é realizada pelo algoritmo genético e, para que ele não "entre em colapso" em áreas lucrativas, você pode usar um parâmetro de otimização sintético, como este:

TesterStatistics(STAT_PROFIT_TRADES)/TesterStatistics(STAT_LOSS_TRADES). Ou como TesterStatistics(STAT_MAX_CONPROFIT_TRADES)/TesterStatistics(STAT_MAX_CONLOSS_TRADES). Na realidade, você precisa vincular mais parâmetros.

 

Fiquei interessado na parte do artigo referente à seleção de platô nos resultados da otimização. Não entendo bem como é possível fazer qualquer análise dos mapas se eles são derivados de um CSV aleatório? O artigo diz explicitamente sobre isso, que um GA simples foi feito com o descarte do lixo depois.


Como podemos nos aproximar da prática? Aqui está um EA e preciso encontrar um platô.


E também. Que princípio é usado para selecionar células ao criar mapas? Provavelmente perdi algo na descrição, mas é muito difícil de entender.

 
fxsaber:

Fiquei interessado na parte do artigo referente à seleção de platô nos resultados da otimização. Não entendo bem como é possível fazer qualquer análise dos mapas se eles são derivados de um CSV aleatório? O artigo diz explicitamente sobre isso, que um GA simples foi feito com o descarte do lixo depois.

Como podemos nos aproximar da prática? Aqui está um EA e precisamos encontrar um platô.

E outra coisa. Qual é o princípio da seleção de células ao criar mapas? Provavelmente perdi algo na descrição, mas é muito difícil de entender.

No artigo - mais sobre a ferramenta em si e como os dados são obtidos para análise - embora isso seja dito, mas nenhuma pesquisa foi feita. Essa é uma frente para mais de um artigo - em particular, comparando os espaços de solução de otimizações convencionais e genéticas. A ultrapassagem completa não gera nenhuma tendência - se você puder, use-a. No entanto, o termo "CSV aleatório" não é apropriado ou foi escolhido incorretamente - caso contrário, você poderia dizer que todos os resultados de otimização no MT são aleatórios. Descartar outliers explícitos é uma prática normal, na minha opinião.

Com relação à seleção de células ao criar mapas, não entendi a pergunta.

 
Stanislav Korotky:

O artigo trata mais da ferramenta em si e de como os dados para análise são obtidos, embora isso seja mencionado, mas nenhuma pesquisa foi feita. Essa é uma frente para mais de um artigo - em particular, comparando espaços de solução de otimizações convencionais e genéticas. O overshoot completo não gera nenhuma tendência - se você puder, use-o. No entanto, o termo "CSV aleatório" não é apropriado ou foi escolhido incorretamente - caso contrário, você poderia dizer que todos os resultados de otimização no MT são aleatórios. Descartar os outliers óbvios é uma prática normal, na minha opinião.

A aleatoriedade do GA é o deslizamento para um extremo local, que pode ocorrer de forma diferente a cada vez. Ou seja, a imagem do AG e da pesquisa completa pode ser muito diferente (depois de descartar o lixo em ambas as variantes).

Encontrei esse tipo de absurdo no GA

Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação

Nova versão do MetaTrader 5 build 1930: janelas de gráficos flutuantes e bibliotecas .Net na MQL5

fxsaber, 2019.02.02 09:54 AM

Registro de otimização genética
PH      0       11:40:35.073    Tester  genetic optimization finished on pass 9216 (of 30240000)
FI      0       11:40:35.563    Statistics      optimization done in 1 minutes 51 seconds
JP      0       11:40:35.563    Statistics      shortest pass 0:00:00.014, longest pass 0:00:01.329, average pass 0:00:00.177
II      0       11:40:35.563    Statistics      local 3891 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

De 30 milhões de variantes, menos de 4K foram feitas, o que durou menos de dois minutos. Como aumentar a precisão do GA? Seria melhor levar 2 horas para contar, mas produzir um resultado mais objetivo.

O mesmo não acontece no MT4.

Acontece que, para ter mais ou menos objetividade, preciso executar o GA pelo menos uma dúzia de vezes com o mesmo OnTester. Vi que você recomenda critérios diferentes para abordagens diferentes de otimização. Mas ainda assim o GA padrão é um pouco estranho. Por isso, decidi fazer isso de forma diferente - veja abaixo.

Com relação à seleção de células ao criar mapas, não entendi a pergunta.

No artigo, durante a análise de diferentes mapas, é usada a propriedade de que, em dois mapas, uma célula com coordenadas correspondentes (X; Y) corresponde ao mesmo conjunto de parâmetros de entrada TC. Como essa regra é formada?


Muito obrigado por seu trabalho na forma de artigos e postagens de blog! O material é muito diferente da média.

Com base em sua implementação do MHR, quero fazer uma alternativa ao GA padrão e fazer uma análise comparativa. O GA padrão tem uma variação muito grande de corrida para corrida. E a limitação de 10 mil passagens não coincide com o GA do MT4. Vi sua implementação da virtualização, quero usar uma abordagem semelhante, mas usar a GUI do testador.

[Excluído]  

O GA nunca convergirá para um ótimo global, pois é um método evolutivo que visa à diversidade. Ele não precisa convergir para nada.

https://www.monographies.ru/en/book/view?id=707