Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 620

 
Anatolii Zainchkovskii:

Por exemplo, se eu analisar apenas 10 barras da história para prever 1 barra no futuro, uma rede neural encontrará centenas de padrões a partir dessas 10 barras, mas sugiro 1 padrão e treinar a rede neural para a frente.


A NS dificilmente encontrará algo por si só, primeiro tem de fazer uma análise estatística de qualquer forma, ou pode encontrar algo que não esteja claro. Ainda estou a tentar adaptar o NS ao TS existente, só para evitar ter de escrever todas as regras manualmente.

Você pode usar algibeira em qualquer caso, você pode tentar, você aprende NS em 5 linhas

 
Maxim Dmitrievsky:

É improvável que a NS encontre algo por si só, você tem que fazer uma análise estatística primeiro de qualquer maneira... ou pode encontrar algo que não está claro. Eu ainda tento adaptar o NS ao TS existente, só para evitar ter que escrever todas as regras manualmente.

Em qualquer caso, você pode pegar algibeira e experimentá-la, ela ensina o NS em 5 linhas


Quando o procuro vejo que veio a uma Floresta Aleatória, há muito tempo que me falam.... e sobre a análise estatística que acabei de dizer que era 50/50, continuei a tocar o robô e escrevi resultados num ficheiro... Não consigo ver que sinais podem mudar ou importar para o resultado, então decidi deixar a rede neural reconhecer algo que não consigo ver...

 
Anatolii Zainchkovskii:

Nunca vi um exemplo de como usar Algleb NS, procurei e vim a este tópico e vi que você tentou implementá-lo. Lendo mais, vejo que você veio a Random Forest, da qual me falaram por muito tempo.... e sobre a análise estatística que acabei de dizer 50/50, corri o robô e escrevi os resultados em um arquivo... Tentei usar um neurónio para reconhecer algo que não consigo ver...

Aqui está um exemplo de Random Forest, usando exemplos da tabela de multiplicação para aprender e depois um treinado conta exemplos (dá respostas no tronco)
#include <Math\Alglib\dataanalysis.mqh>
//+------------------------------------------------------------------+
#define _rand(min,max) ((rand()/(double)SHORT_MAX)*((max)-(min))+min)
//+------------------------------------------------------------------+
void OnStart()
{
   MathSrand(1600);
   CDecisionForest      Trf;
   //CDecisionForestShell RFshell;
   CMatrixDouble        PatternsMatrix;
   CDFReport            RF_report;
   int RFinfo;
   double vector[2], out[1];
   
   // подготовка данных
   PatternsMatrix.Resize(100,3);
   int m=0;     // first pattern
   for(int i=1; i<=10; i++)
      for(int j=1; j<=10; j++)
      {
         PatternsMatrix[m].Set(0,i/10.0);       // input 1
         PatternsMatrix[m].Set(1,j/10.0);       // input 2
         PatternsMatrix[m].Set(2,(i*j)/100.0);  // target
         m++; //next pattern
      }
   // создание RF
   CDForest::DFBuildRandomDecisionForest(PatternsMatrix,100,2,1,500,0.95,RFinfo,Trf,RF_report);
   Print("Info=",RFinfo,"   RMSE Error=",DoubleToString(CDForest::DFRMSError(Trf,PatternsMatrix,100),5));  
   // проверка сети на целочисленных данных
   string s="Тест 1 >> ";
   for(int i=1; i<=10; i++)
   {
      int d1=(int)_rand(1,10), d2=(int)_rand(1,10);
      vector[0]=d1/10.0;
      vector[1]=d2/10.0;
      CDForest::DFProcess(Trf,vector,out);
      s+=(string)d1+"*"+(string)d2+"="+DoubleToString(out[0]*100,0)+" // ";
   }
   Print(s);
   // проверка сети на дробныx данных
   s="Тест 2 >> ";
   for(int i=1; i<=5; i++)
   {
      double d1=NormalizeDouble(_rand(1,10),1), d2=NormalizeDouble(_rand(1,10),1);
      vector[0]=d1/10.0;
      vector[1]=d2/10.0;
       CDForest::DFProcess(Trf,vector,out);
      s+=DoubleToString(d1,1)+"*"+DoubleToString(d2,1)+"="+DoubleToString(out[0]*100,2)+
         "("+DoubleToString(d1*d2,2)+") // ";
   }
   Print(s);
}
e aqui está um exemplo para o MLP https://www.mql5.com/ru/forum/8265/page2#comment_333746
Библиотеки: ALGLIB - библиотека численного анализа
Библиотеки: ALGLIB - библиотека численного анализа
  • 2012.10.12
  • www.mql5.com
Статьи и техническая библиотека по автоматическому трейдингу: Библиотеки: ALGLIB - библиотека численного анализа
 
Maxim Dmitrievsky:

Bem, o portfólio não é estacionário, não passa de sigma para sigma, mas racha periodicamente... e depois recalcula e racha novamente

Não deve passar de sigma para sigma, deve viver enquanto a cointegração entre as fileiras estiver viva.


PS. A co-integração é quando duas séries não estacionárias são adicionadas de uma forma especial e uma série estacionária é obtida em virtude desta adição especial. Há um teste especial para isto. Esta ideia é amplamente utilizada pelos criadores de carteiras.

Há muitos testes que garantem um "crash".

 
SanSanych Fomenko:

Não deve passar de sigma para sigma, mas deve viver enquanto a cointegração entre as filas estiver viva.


PS. Co-integração é quando você adiciona duas séries não estacionárias de uma forma especial e obtém uma série estacionária em virtude desta adição especial. Há um teste especial para isto. Esta ideia é amplamente utilizada pelos criadores de carteiras.

Muitos testes que garantem contra um "crash".


Eu não sabia :) existem outras "variações sobre o tema".

e sem os testes você pode ver tudo no testador.

https://www.mql5.com/ru/code/19630

Cointegration
Cointegration
  • votos: 18
  • 2017.12.26
  • Maxim Dmitrievsky
  • www.mql5.com
Индикатор находит коэффициенты линейной регрессии для каждого из выбранных инструментов со всеми остальными, и выводит на график в виде стандартных отклонений. Сумма всех кривых...
 
Maxim Dmitrievsky:
Aqui está um exemplo de Floresta Aleatória, usando exemplos da tabela de multiplicação e depois um treinado conta exemplos (gera respostas no tronco)
e aqui está um exemplo para o MLP https://www.mql5.com/ru/forum/8265/page2#comment_333746

Que presente. Obrigado Max!!!

 
Maxim Dmitrievsky:

Eu não sabia :) existem outras "variações sobre o tema".

e sem testes você pode ver tudo no testador.

https://www.mql5.com/ru/code/19630

Não vi nenhuma prova de que o seu indicador esteja relacionado com a palavra "cointegração". A linha laranja parece ser uma série claramente não estacionária, embora deva ser estacionária, embora a amostra seja pequena, por isso a cointegração deve ser provada.
 
SanSanych Fomenko:
Não vi nenhuma prova de que o seu indicador tenha algo a ver com a palavra "cointegração". Um pedaço de gráfico - linha laranja aparentemente, parece claramente não estacionário, e deve ser estacionário, embora a amostra seja pequena, então a cointegração tem que ser provada.

cointegração é uma relação linear entre séries temporais tendo uma série estacionária, tudo verdade

os símbolos precisam de ser combinados... pode contar regressão linear para muitos símbolos, não apenas 2. Pior ainda, pois 2 não contará corretamente, pois recalcula a regressão linear 2 vezes, potmou que originalmente fazia multicurrency. Há um robô, os resultados se derramaram em outro tópico. Eu tenho alguns índices que têm dependência explícita, mas o meu lucro é pequeno, cerca de 100% ao ano.

Há a mesma merda, mas através do modelo não linear, mas é baseado em incrementos e não nos preços nus

P.s. Eu não vi uma única pessoa que negocia com sucesso instrumentos cointegrados em forex (porque não há quase nenhum). Porque não importa como você se mexe, se não há dependência fundamental, não há nenhuma.
 
SanSanych Fomenko:
Não vi nenhuma prova de que o seu indicador tenha algo a ver com a palavra "cointegração". Um pedaço de gráfico - linha laranja parece obviamente não estacionária, enquanto que deve ser estacionário, embora a amostra seja pequena, por isso a cointegração tem de ser provada.

Aqui está uma cointegração no primeiro, e o canal é construído, e no segundo, como essa mesma cointegração chega ao fim...

Aqui está outro exemplo de como a cointegração colapsa...
Arquivos anexados:
g7p4.png  47 kb
0zz22.PNG  56 kb
 
Maxim Dmitrievsky:

cointegração é uma relação linear entre séries temporais tendo uma série estacionária, tudo verdade

os símbolos precisam de ser combinados... pode contar regressão linear para muitos símbolos, não apenas 2. Pior ainda, para 2, não vai contar corretamente, porque recalcular a regressão linear 2 vezes, potmou que originalmente fez multicurrency. Há um robô, os resultados se derramaram em outro tópico. Faz dinheiro em alguns índices, que têm dependência explícita, mas o meu lucro é pequeno, cerca de 100% ao ano.

Há a mesma merda, mas através de um modelo não linear, mas é baseado em incrementos e não em preços brutos.

p.s. Eu não vi uma única pessoa negociar com sucesso instrumentos cointegrados em forex (porque não há quase nenhum)

Não há pessoas sérias em forex - é um mercado de apostas de um centavo. É por isso que não é um indicador.

Eu tenho esse modelo, mas ele é limitado pelo spread, que é variável.

Os modelos de autoregressão vectorial são amplamente utilizados em outros mercados, bastantes ferramentas prontas a usar. O Granger está a florescer.