Bibliotecas: Algoritmos RL - página 4

 
mov:

Provavelmente está batendo em uma porta aberta, mas como o original não tinha uma...

Recomenda-se o pré-processamento antes da conversão para o intervalo [0,1]:

1. remoção da periodicidade, eu fiz isso em periodicityArrays() - o perfil composto por dias da semana e hora de um mês é subtraído do intervalo (embora eu tenha feito isso apenas para o período de uma hora em um teste).

2.Remoção da tendência linear em linearTrendArrays(), conforme recomendado a[i]=a[i]-a[i+1].

3) E aqui é onde a verificação de autocorrelação deve estar (ainda não implementada)


A previsibilidade após as ações 1 e 2 aumentou significativamente. O código está anexado.

Obrigado pelo seu trabalho árduo, com certeza darei uma olhada nele hoje e amanhã

Quanto à remoção da tendência linear - isso está usando incrementos, no RF recursivo é feito assim, por exemplo. Mas são usados preços privados, não diferenças, e os incrementos são enumerados com diferentes defasagens. Ou seja, a entrada é simplesmente preços e, em seguida, pré-processamento com seleção dos melhores incrementos (em geral, isso é chamado de seleção de tendência sequencial, na literatura, aqui essa operação não é literal, mas é um análogo). Você usa incrementos com uma única defasagem, ou seja, em essência, todas as informações de longo prazo são perdidas. As principais tendências ainda precisam ser levadas em conta no mercado de alguma forma. Além disso, muitas fontes sobre previsão de BP afirmam explicitamente que uma tendência linear deve necessariamente ser levada em conta, mesmo que seja apenas a dependência do tempo. Há uma pequena confusão nas mentes dos aprendizes de máquinas em termos de normalização e padronização de variáveis para a previsão de processos pseudoestacionários e para a previsão de séries temporais. Eles estão começando a adotar abordagens que não funcionam para problemas de previsão de BP. Na previsão de séries temporais, a tendência é quase a coisa mais importante :) Talvez faça sentido alimentar não a tendência linear em si como entradas, mas as características estatísticas de um período selecionado (momentos de distribuições).

for(int bf=0;bf<features;bf++) {  
     for(int bf2=bf+1;bf2<features;bf2++) {               
      for(int i=0;i<RDFpolicyMatrix.Size();i++) {   
        m[i].Set(0,RDFpolicyMatrix[i][bf]/RDFpolicyMatrix[i][bf2]);         
        m[i].Set(1,RDFpolicyMatrix[i][features]);   
        m[i].Set(2,RDFpolicyMatrix[i][features+1]); 
       }         
      CDForest::DFBuildRandomDecisionForest(m,RDFpolicyMatrix.Size(),1,2,trees,r,RDFinfo,mRDF,mRep);         
      ArrayResize(models1,ArraySize(models1)/3+1);
      models1[modelCounterInitial][0] = mRep.m_oobavgce;   
      models1[modelCounterInitial][1] = bf; 
      models1[modelCounterInitial][2] = bf2;   
      modelCounterInitial++;                     
     }  
    }

Com relação à periodicidade, eu realmente não entendi a ideia.

Não notei nenhum grande aprimoramento no OOS em comparação com a versão básica

 

Maxim Dmitrievsky:

Há uma pequena confusão na mente dos aprendizes de máquinas sobre a normalização e a padronização de variáveis para a previsão de processos pseudoestacionários e para a previsão de séries temporais. Eles estão começando a adotar abordagens que não funcionam para problemas de previsão de BP. Na previsão de séries temporais, a tendência é quase a coisa mais importante :) Talvez faça sentido alimentar não a tendência linear em si como entradas, mas as características estatísticas de um período selecionado (momentos das distribuições).

Com relação à periodicidade, eu realmente não entendi a ideia.

Não notei nenhum grande aprimoramento no OOS em comparação com a versão básica.

A remoção da periodicidade e da tendência linear foi extraída de: Orlov, Osminin Non-stationary time series Forecasting methods with examples of analyses of financial and commodity markets. 3 pontos de preparação de dados são obtidos em sua totalidade. Talvez esse seja um requisito para o algoritmo considerado no livro, mas eu melhorei o resultado.

Vou explicar como fiz o teste. Um ano é obtido com uma mudança de um mês para trás. Treinamento do modelo. Eu testo o modelo no último mês (que não foi incluído no treinamento). Talvez um mês não seja suficiente, mas presumo que o modelo deva funcionar para o período futuro. Não faz sentido olhar para mais de um mês, pois o modelo será superotimizado durante esse período. Com essa abordagem, a lucratividade nos primeiros dias é importante para mim (bem, e a avaliação subjetiva - o período após o qual é necessário re-otimizar). Com as variantes anteriores, consegui obter + negociação por 1-1,5 semanas à frente de forma constante, depois começaram os deslizes. Com o uso do pré-processamento mencionado acima, foi possível obter 2-2,5 semanas em +. Isso é o que chamo de aumento da previsibilidade. Talvez minha abordagem não seja totalmente correta do ponto de vista estatístico, mas, em minha opinião, é prática. 2 semanas de trabalho estável do método já permitem usá-lo em negociações reais com reotimização após uma semana. Naturalmente, o último período será usado para treinamento (sem desvio).

 
mov:

Remoção da periodicidade e da tendência linear extraída de: Orlov, Osminin Non-stationary time series Forecasting methods with examples of analyses of financial and commodity markets. 3 pontos de preparação de dados são tomados em sua totalidade. Talvez esse seja um requisito para o algoritmo discutido no livro, mas eu melhorei o resultado.

Vou explicar como fiz o teste. Um ano é obtido com uma mudança de um mês para trás. Treinamento do modelo. Eu testo o modelo no último mês (que não foi incluído no treinamento). Talvez um mês não seja suficiente, mas presumo que o modelo deva funcionar para o período futuro. Não faz sentido olhar para mais de um mês, pois o modelo será superotimizado durante esse período. Com essa abordagem, a lucratividade nos primeiros dias é importante para mim (e a avaliação subjetiva - o período de tempo após o qual é necessário re-otimizar). Com as variantes anteriores, consegui obter + negociação por 1-1,5 semanas à frente de forma constante, depois começaram os deslizes. Com o uso do pré-processamento mencionado acima, foi possível obter 2-2,5 semanas em +. Isso é o que chamo de aumento da previsibilidade. Talvez minha abordagem não seja totalmente correta do ponto de vista estatístico, mas, em minha opinião, é prática. 2 semanas de trabalho estável do método já permitem usá-lo em negociações reais com reotimização após uma semana. Naturalmente, o último período será usado para treinamento para negociação (sem desvio).

Obrigado, vou dar uma olhada. É certo que estou um pouco confuso sobre qual é a melhor maneira de alimentar o modelo. As várias transformações estão levando o modelo a uma situação completamente não intuitiva

No momento, estou explorando a aplicabilidade de modelos lineares nessa abordagem

s.s. você o tem em formato eletrônico?

 

Maxim Dmitrievsky:

s.s. você não o tem eletronicamente?

Infelizmente, em papel. É uma monografia, não a encontrei na rede, mas há artigos científicos originais (pesquise <family name> non-stationary series), amanhã tentarei filmar o capítulo sobre mercados financeiros.

 
mov:

Infelizmente, o artigo. É uma monografia, não a encontrei na rede, mas há artigos científicos originais sobre ela (pesquise <family name> non-stationary series), amanhã tentarei filmar o capítulo sobre mercados financeiros.

Gostaria de saber exatamente como eles veem o assunto, pois entendo o resto.

 
O algoritmo está na seção 6.4.2, o link vai para o final da seção 5.2.1. Caso eu tenha feito os dois capítulos na íntegra, peço desculpas por não ter processado as digitalizações, mas há pouco tempo livre no trabalho (e o scanner está funcionando).
Arquivos anexados:
im65-6.zip  1452 kb
 
mov:
O algoritmo está na seção 6.4.2, o link vai para o final da seção 5.2.1. Caso eu tenha feito os dois capítulos na íntegra, peço desculpas por não ter processado as digitalizações, mas há pouco tempo livre no trabalho (e o scanner está funcionando).

obrigado! comecei a ler

 
Maxim Dmitrievsky:

obrigado! comecei a ler

Desculpe, mas talvez seja útil: Gaidyshev Data Analysis and Processing Special Reference 2001. ch6 methods of dimensionality reduction (o livro é bom com exemplos em C). Há um pdf na rede, mas só consegui anexar o djvu ( limitação de tamanho do arquivo).
 
Олег:
Desculpe, mas pode ser útil: Gaidyshev Data Analysis and Processing Special Reference 2001. ch6 methods of dimensionality reduction (o livro é bom com exemplos em C). Há um pdf na rede, mas só consegui anexar o djvu (limitação de tamanho do arquivo).

Sim, a PCA é uma das opções para resolver o problema, você pode experimentar. Eu o experimentei em um exemplo de teste simples - pelo menos não piorou, mas ainda não tenho certeza se melhorou

 
Олег:
Desculpe, mas pode ser útil: Gaidyshev Data Analysis and Processing Special Reference 2001. ch6 methods of dimensionality reduction (o livro é bom com exemplos em C). Há um pdf na Internet, mas só consegui anexar o djvu (limitação de tamanho do arquivo).

https://www.mql5.com/ru/forum/86386/page1189#comment_9795331

Машинное обучение в трейдинге: теория и практика (торговля и не только)
Машинное обучение в трейдинге: теория и практика (торговля и не только)
  • 2018.12.06
  • www.mql5.com
Добрый день всем, Знаю, что есть на форуме энтузиасты machine learning и статистики...