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

 
Maxim Dmitrievsky #:

É o Ministério da Defesa

Não faz diferença se o padrão do EA original for o mesmo: ao ver um padrão, abra.

 
fxsaber #:

Na MQL5, os elementos dessa matriz são calculados em aproximadamente 55 horas em minha máquina antiga. O consumo de memória é mínimo.

O comprimento da linha é 100.

Um milhão por um milhão ou 100? Essa é a matriz de entrada?
E a saída é 1000000* 1000000? Isso é um terabyte. Você leu linha por linha e despejou no disco?
Que função você usou? PearsonCorrM, PearsonCorrM2, PearsonCorr2 ou padrão?

 
fxsaber #:

Não faz diferença se o padrão do EA original for o mesmo: ao ver um padrão, abra.

Lá é diferente, o EA gera sinais por si só.

E os conjuntos de padrões devem estar vinculados à lógica. Tentei negociações direcionais e reversão mínima, existem padrões para ambas, relativamente bons.

 
Forester #:

É um milhão vezes um milhão ou é 100? Essa é a matriz de entrada?

A entrada é 100x1000000.

E a saída é 1000000*1000000? Isso é um terabyte. Você contou linha por linha e despejou no disco?

Linha por linha. Eu não despejei nada. No contexto da discussão sobre a busca de padrões, grosso modo, em cada linha precisamos encontrar apenas situações em que Abs(Corr[i]) > 0,9.

Que função você usou para fazer a contagem? PearsonCorrM, PearsonCorrM2, PearsonCorr2 ou a função padrão?

Não consegui encontrar uma função interna para o cálculo linha por linha. O Alglib parecia lento. Estou tentando minha própria versão.

 
Maxim Dmitrievsky #:

É diferente, o NS gera seus próprios sinais.

E os conjuntos de padrões devem estar vinculados à lógica. Tentei negociações direcionais e reversão mínima, há padrões para ambos, relativamente bons

Parece bom.

 
Maxim Dmitrievsky #:

Deixei de lado por enquanto, pois os resultados não são melhores que os do MO, embora o MO também seja ruim em termos de suavidade de equilíbrio

5 minutos, metade do treinamento


É interessante ver mais o risco.
 
fxsaber #:

Linha por linha. Eu não descontei nada. No contexto da discussão da busca por padrões, grosso modo, em cada linha você precisa encontrar apenas situações em que Abs(Corr[i]) > 0,9.

A é exata. Para cada linha, provavelmente haverá de 1 a 5 mil linhas correlacionadas apenas; elas podem ser salvas, se necessário.

fxsaber #: Não encontrei um padrão para o cálculo linha por linha. O Alglib parecia lento. Estou tentando minha própria variante.

Acho que o PearsonCorrM2 funcionará rapidamente. Alimentamos uma matriz completa, a segunda matriz de uma linha a ser verificada. E, se começarmos do final, podemos especificar o tamanho da primeira matriz como o número da próxima linha, para que não recalculemos a correlação repetidamente para as linhas abaixo da linha que está sendo testada.

 
Forester #:

Acho que o PearsonCorrM2 seria um caminho rápido.

No início, duvidei que fosse rápido.

// Считает Pos-строку.
const matrix<double> CorrMatrix( const matrix<double> &Matrix, const int Pos )
{
  matrix<double> Res = {};
  
  const CMatrixDouble MatrixIn(Matrix);
      
  matrix<double> Column;
  Column.Assign(Matrix.Col(Pos));
  Column.Init(Column.Cols(), 1);
  
  const CMatrixDouble Vector(Column);
  CMatrixDouble MatrixOut;  

  if (CBaseStat::PearsonCorrM2(Vector, MatrixIn, MatrixIn.Rows(), 1, MatrixIn.Cols(), MatrixOut))
    Res = MatrixOut.ToMatrix();
  
  return(Res);
}

Experimentei um desses, medindo apenas o destaque. Algo lento, então estou fazendo o meu próprio.

 

Não é que ninguém mais soubesse além de mim.


Pearson é invariante para as ações de multiplicação e adição.

void OnStart()
{
  const double a = 2, b = 7;  
  const vector<double> Vector = {1, 2, 3, 4};
    
  Print(Vector.CorrCoef(Vector * a + b));   // 1
  Print(Vector.CorrCoef((Vector + a) * b)); // 1
}

Não senti a adição, apesar da fórmula simples. E o wiki diz especificamente isso.

Ключевым математическим свойством коэффициента корреляции Пирсона является то, что он инвариант при отдельных изменениях положения и масштаба двух переменных. То есть мы можем преобразовать X в a + bX и преобразовать Y в c + dY, где a, b, c и d - константы с b, d>0, без изменения коэффициента корреляции.

Em particular, essa matriz inicial
[[1,2,3]
 [1,2,3]
 [2,4,4]]

tem uma matriz de correlação unitária (linhas por colunas).

 
fxsaber #:

Pearson é invariável para as ações de multiplicação e adição.

Provavelmente não é muito bom para dados de preços.

Razão: