Discussão do artigo "Aplicando o método de Monte Carlo no aprendizado por reforço"

 

Novo artigo Aplicando o método de Monte Carlo no aprendizado por reforço foi publicado:

O uso de aprendizado por reforço para desenvolver EAs de autoaprendizagem. No artigo anterior, vimos o algoritmo Random Decision Forest e escrevemos um EA simples de autoaprendizagem baseado no aprendizado por reforço. Observamos que a principal vantagem desta abordagem era a fácil escrita do algoritmo de negociação e a alta velocidade de aprendizagem. O aprendizado por reforço (doravante simplesmente AR) é facilmente incorporado a qualquer EA e acelera sua otimização.

Após parar a otimização, basta ativar o modo de teste único (já que o melhor modelo é gravado no arquivo e somente ele será carregado):


Voltemos atrás no histórico dois meses e vejamos como o modelo funciona durante quatro meses:


Pode ser visto que o modelo resultante dura mais um mês (quase todo o mês de setembro), mas em agosto ele quebra.

Autor: Maxim Dmitrievsky

 

Gostaria de contribuir com as observações:

Benefícios desta versão:

*************************************

1. Ao contrário das versões anteriores, esta versão não opera o tempo todo. Ela negocia seletivamente quando o sinal é bom. Essa é uma grande vantagem para atender às suas necessidades. Caso contrário, é uma coisa boa.))) ..

2. Ele pode ser otimizado de forma rápida e fácil.

3. O tamanho do modelo do treinador é pequeno, portanto, podemos treinar grandes volumes de dados

As desvantagens dessa versão:

*******************************************

1. Muitas vezes, leva muito tempo para passagens futuras e, portanto, temos de interromper manualmente o processo de otimização.

2. Por alguns motivos, não é tão fácil executar os testes. Tenho que reiniciar meu terminal MT5 e, às vezes, ele ainda não funciona.


Minhas sugestões de aprimoramento:

*************************************

1. Tente usar pelo menos 4 a 5 funções de entrada para treinamento, como abertura, fechamento, alta e baixa.

2. tente usar corretamente as funções "MathMoments ()" ao otimizar a obtenção de sinais de negociação:

h ttps:// www.mql5.com/en/docs/standardlibrary/mathematics/stat/mathsubfunctions/statmathmoments

3. Tente implementar um curso de treinamento iterativo diariamente ou semanalmente.

Esse é um resultado aleatório.

4. Tente vários períodos de tempo.

Preciso fazer isso. Como podemos fazer isso melhor :))))

Documentation on MQL5: Standard Library / Mathematics / Statistics / Subfunctions / MathMoments
Documentation on MQL5: Standard Library / Mathematics / Statistics / Subfunctions / MathMoments
  • www.mql5.com
Standard Library / Mathematics / Statistics / Subfunctions / MathMoments - Reference on algorithmic/automated trading language for MetaTrader 5
 

O método de Monte Carlo é certamente um método eficaz para estudar processos aleatórios. Entretanto, a aplicação desse método (assim como de qualquer outro) deve levar em conta a natureza do processo (para nós, são os mercados financeiros).

O problema da análise moderna é que, até o momento, nem a AT tradicional nem outros métodos conseguiram revelar a estrutura elementar dos movimentos de preços do mercado (como um átomo na física), e as estruturas disponíveis (padrões de AT, ondas de Elliott e outros) não são elementares, pois não são contínuas para análise (aparecem de forma ambígua ou raramente). Portanto, o uso de métodos modernos é quase uma busca cega pelo chamado "melhor modelo" pelo método de força bruta (neste caso, pelo método de Monte Carlo).

Mas esse é um problema para o setor de análise como um todo. E o autor, dentro da estrutura do método, mostrou soluções originais - obrigado pelo trabalho!

 

Respeito ao autor, por mais um artigo interessante, por uma abordagem aberta e construtiva do MO, apesar do segredo, da brincadeira de rato de outros participantes do tópico e do zugunder da administração:)

Especificamente sobre o assunto, não entendo muito bem a utilidade do tiro de Monte Carlo para encontrar alvos, porque eles são quase inequivocamente determinísticos e podem ser encontrados em uma ordem de magnitude mais rápida, de acordo com os vértices do ziguezague ou os valores dos mesmos retornos.

Na minha opinião, seria mais racional aplicar esse método a um problema muito mais incerto e multidimensional, como a seleção e a classificação de preditores. Idealmente, ao resolver esse problema, os preditores devem ser avaliados em um complexo, e a busca e o treinamento alternativo em cada um deles, descritos separadamente no artigo, parecem um sistema de equações com uma incógnita.

[Excluído]  
Ivan Negreshniy:

Respeito ao autor, por mais um artigo interessante, por uma abordagem aberta e construtiva do MO, apesar do segredo, da brincadeira de rato de outros participantes do tópico e do zugunder da administração:)

Especificamente sobre o assunto, não entendo muito bem o objetivo do tiro de Monte Carlo para encontrar alvos, porque eles são quase inequivocamente determinísticos e podem ser encontrados em uma ordem de magnitude mais rápida, de acordo com os vértices do ziguezague ou os valores dos mesmos retornos.

Na minha opinião, seria mais racional aplicar esse método a um problema muito mais incerto e multidimensional, como a seleção e a classificação de preditores. Idealmente, ao resolver esse problema, os preditores devem ser avaliados em um complexo, e a busca e o treinamento alternativo em cada um deles separadamente descritos no artigo parecem sistemas de equações com uma incógnita.

Olá, por meio do Monte Carlo, há uma busca de força bruta do alvo aleatoriamente, de acordo com todos os cânones da RL. Ou seja, há muitas estratégias (etapas), e o agente busca a melhor delas, por meio do erro mínimo nos oos. A construção de novos recursos também é implementada em uma das bibliotecas via MSUA (consulte a base de código). Este documento implementa apenas uma pesquisa de força bruta das fichas existentes, sem construir novas. Consulte Método de eliminação recursiva. Ou seja, tanto as fichas quanto os alvos são eliminados recursivamente. Mais tarde, posso sugerir outras variantes, pois há muitas delas. Mas os testes comparativos levam muito tempo.
 
Ivan Negreshniy:

Respeito ao autor, por mais um artigo interessante, por uma abordagem aberta e construtiva do MO, apesar do segredo, da brincadeira de rato de outros participantes do tópico e do zugunder da administração:)

Especificamente sobre o assunto, não entendo muito bem o objetivo do tiro de Monte Carlo para encontrar alvos, porque eles são quase inequivocamente determinísticos e podem ser encontrados em uma ordem de magnitude mais rápida, de acordo com os vértices do ziguezague ou os valores dos mesmos retornos.

Na minha opinião, seria mais racional aplicar esse método a um problema muito mais incerto e multidimensional, como a seleção e a classificação de preditores. Idealmente, ao resolver esse problema, os preditores devem ser avaliados em um complexo, e a busca e o treinamento alternativo em cada um deles, descritos separadamente no artigo, parecem sistemas de equações com uma incógnita.

Quanto a "inequivocamente determinista", isso é incorreto, pois os números de TA e os "retornos" são coisas muito ambíguas e pouco confiáveis para se analisar.

Portanto, o autor não os utiliza, mas faz experimentos com o método Monte Carlo.

 

Oi Maxim.

Uma pergunta.

"shift_probab" e "regularisation" Os valores usados são apenas para otimização e NÃO no curso da negociação ao vivo. Estou certo?

Ou é necessário definir os valores otimizados de shift_probab e regularização no gráfico após a conclusão de cada otimização para a negociação em tempo real?

Obrigado.

 
Maxim Dmitrievsky:
Olá, por meio do Monte Carlo, há uma enumeração aleatória de alvos, de acordo com todos os cânones da RL. Ou seja, há muitas estratégias (etapas), e o agente busca a melhor, por meio do erro mínimo nos alvos. A construção de novos recursos também é implementada em uma das bibliotecas via MSUA (consulte a base de código). Este documento implementa apenas uma pesquisa de força bruta das fichas existentes, sem construir novas. Consulte Método de eliminação recursiva. Ou seja, tanto as fichas quanto os alvos são eliminados recursivamente. Mais tarde, posso sugerir outras variantes, pois há muitas delas. Mas os testes comparativos levam muito tempo.

Além disso, isso pode ser necessário porque diferentes ações do agente podem alterar o ambiente, o que gera um número de variantes que tende ao infinito, e é claro que o Monte Carlo pode muito bem ser aplicado para otimizar a sequência dessas ações.

Mas, em nosso caso, o ambiente - as cotações de mercado - não dependem das ações do agente, especialmente na implementação considerada, em que são usados dados históricos, conhecidos antecipadamente, e, portanto, a escolha da sequência de ações (negociações) do agente pode ser feita sem métodos estocásticos.

P.S. Por exemplo, é possível encontrar a sequência-alvo de negociações com o lucro máximo possível por meio de cotações https://www.mql5.com/pt/code/9234.

ReverseSystem
ReverseSystem
  • www.mql5.com
Простая и короткая система, работающая неплохо в тестере на любых парах и таймфрэймах. Можно видеть закономерность: чем меньше таймфрэйм - тем выше прибыль. ReverseSystem можно запускать, как по ценам открытия, так и по всем тикам. ReverseSystemBEST (работает только на модели: Все тики) показывает максимальную прибыль, которую можно было...
[Excluído]  
FxTrader562 :

Oi Maxim.

Uma pergunta.

"shift_probab" e "regularisation" Os valores usados são apenas para otimização e NÃO no curso da negociação ao vivo. Estou certo?

Ou é necessário definir os valores otimizados de shift_probab e regularização no gráfico após a conclusão de cada otimização para a negociação em tempo real?

Obrigado.

Olá, sim, apenas para otimização e, em seguida, você tem um modelo separado que é carregado de um arquivo em um teste para teste ou teste de negociação ao vivo
[Excluído]  
Ivan Negreshniy:

Além disso, pode ser necessário porque diferentes ações do agente podem alterar o ambiente, o que gera um número de opções que tende ao infinito, e é claro que Monte Carlo pode muito bem ser aplicado para otimizar a sequência dessas ações.

Mas, em nosso caso, o ambiente - cotações de mercado - não depende das ações do agente, especialmente na implementação considerada, em que são usados dados históricos, conhecidos antecipadamente, e, portanto, a escolha da sequência de ações (negociações) do agente pode ser feita sem métodos estocásticos.

P.S. Por exemplo, é possível encontrar a sequência-alvo de negociações com o lucro máximo possível por meio das cotações https://www.mql5.com/pt/code/9234.

Sim, o mercado não muda com as ações do agente, mas o erro no oob é muito uniforme, você pode ver a dispersão no gráfico de otimização. E estamos procurando um modelo que seja ótimo de acordo com um critério externo, que é o teste sabset. Os saltos de erro chegam a 0,3 ou mais, é uma diferença muito grande entre modelos diferentes. É possível acelerar consideravelmente cada passagem individual, isso já está implementado, mas precisamos finalizá-lo. E então centenas de passagens levarão minutos. Pelo menos, ainda não pensei em nenhuma outra maneira de aperfeiçoar os agentes. Sobre o exemplo do fxsaber - não entendi muito bem pelo telefone. Entendi que ele se ajusta ao histórico, e esse basicamente faz a mesma coisa - abre negociações aleatórias e, em seguida, corrige todas as negociações perdidas por meio do TD - diferença temporal. Em outras palavras, é possível obter negociações quase perfeitas na linha de base, em cada barra. É suficiente colocar 1 < shift_prob >=0,5. Com os ticks, ainda não me arrisco a colocar andaimes, pois os modelos serão muito pesados.
[Excluído]  
Aleksandr Masterskikh:

O fato de ser "inequivocamente determinista" está errado, pois os números de TA e os "retornos" são coisas muito ambíguas e pouco confiáveis para se analisar.

Portanto, o autor não os utiliza, mas faz experimentos com o método Monte Carlo.

Em geral, nessa versão, os retornos são inseridos dessa forma :) mas isso é feito como um exemplo básico, você pode alterá-lo de acordo com seu humor.