Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 3264

 
Maxim Dmitrievsky #:

5-минутки

Длина строки? Сколько времени ушло на расчеты?
 
fxsaber #:
Длина строки? Сколько времени ушло на расчеты?

Это МО

 
Maxim Dmitrievsky #:

Это МО

Без разницы, если шаблон исходного советника тот же: увидели паттерн - открылись.

 
fxsaber #:

На MQL5 элементы такой матрицы вычисляются за ~55 часов на моей старой машине. Потребление памяти минимальное.

Длина строки 100.

Миллион на миллион или все таки на 100? Это входная матрица?
А выходная 1000000* 1000000 ? Это терабайт. Считали построчно и на диск скидывали?
Какой функцией считали? PearsonCorrM, PearsonCorrM2, PearsonCorr2 или штатной?

 
fxsaber #:

Без разницы, если шаблон исходного советника тот же: увидели паттерн - открылись.

там по-другому, НС сама генерит сигналы

А наборы паттернов надо обвязывать логикой. Попробовал направленные сделки и мин реверс, под те и те находятся паттерны, относительно неплохие

 
Forester #:

Миллион на миллион или все таки на 100? Это входная матрица?

Входная 100x1000000.

А выходная 1000000* 1000000 ? Это терабайт. Считали построчно и на диск скидывали?

Построчно. Ничего не скидывал. В контексте обсуждения поиска паттернов, грубо говоря, в каждой строке нужно найти только ситуации, где Abs(Corr[i]) > 0.9. Для этого записывать матрицу не нужно, только посчитать ее строки.

Какой функцией считали? PearsonCorrM, PearsonCorrM2, PearsonCorr2 или штатной?

Штатной не нашел для построчного расчета. Alglib показался медленным. Пробую свой вариант.

 
Maxim Dmitrievsky #:

там по-другому, НС сама генерит сигналы

А наборы паттернов надо обвязывать логикой. Попробовал направленные сделки и мин реверс, под те и те находятся паттерны, относительно неплохие

Хорошо звучит.

 
Maxim Dmitrievsky #:

Пока отложил, результаты не лучше чем МО, хотя МО тоже хромает в плане плавности баланса

5-минутки, половина обучение


  интересно посмотреть риск побольше.
 
fxsaber #:

Построчно. Ничего не скидывал. В контексте обсуждения поиска паттернов, грубо говоря, в каждой строке нужно найти только ситуации, где Abs(Corr[i]) > 0.9. Для этого записывать матрицу не нужно, только посчитать ее строки.

А - точно. К каждой строке наверное 1-5 тыс коррелируемых строк только будет, их то и можно сохранить, если надо.

fxsaber #:Штатной не нашел для построчного расчета. Alglib показался медленным. Пробую свой вариант.

Думаю, что PearsonCorrM2 будет быстро работать. Подаем 1 матрицу полную, 2-ю матрицу из одной проверяемой строки. И если идти с конца, то можно размер первой матрицы указывать, как номер очередной строки, чтобы не пересчитывать корреляцию повторно, строкам ниже проверяемой.

 
Forester #:

Думаю, что PearsonCorrM2 будет быстро работать.

Сомневался изначально, что будет быстро работать.

// Считает 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);
}

Пробовал такую, замеряя только выделенное. Что-то медленно, поэтому свое варганю.

Причина обращения: