Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 3268
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А почему вам так нравится mql для расчетов? можно dll писать на си и там будет максимально быстро
Я ограничен своей некомпетентностью.
по мне так mql все равно язык для открытия сделок, в основном. И что правильно, по сути.
Так а конечная цель всей этой эпопеи с корреляцией какая?
Смогу считать то, что у других не получится из-за технических ограничений.
Ещё тестирование и визуализация ну и быстро действие наверно
Оптимизация финальная тоже норм, чтобы параметры сделок подобрать
Попробовал сначала сделать лобовой вариант - считать каждый раз все строки. Сложилось впечатление, что в Alglib какая-то ошибка, т.к. у себя не смог найти.
Результат часто совпадает.
Но в некоторых ситуациях - нет.
Если бы всегда так было - моя ошибка точно. Но тут что-то нечистое.
Print(Matrix1);
Print("------------------");
Print(Matrix2);
У Matrix2 первые 5 совпадают, дальше нули.
Матрицы стали похожи но все равно IsEqual не проходят. Что-то еще где-то...Поменял Res.Col(Corr.Row(0), i); на Res.Row(Corr.Row(0), i);
Поменял Res.Col(Corr.Row(0), i); на Res.Row(Corr.Row(0), i);
Вроде, это неправильно.
Сделал
Print(Matrix1);
Print("------------------");
Print(Matrix2);
У Matrix2 первые 5 совпадают, дальше нули.
Матрицы стали похожи но все равно IsEqual не проходят. Что-то еще где-то...Поменял Res.Col(Corr.Row(0), i); на Res.Row(Corr.Row(0), i);
Нашел проблему
Должно быть так
for (int i = 0; i < (int)Matrix.Cols(); i++)
{
if (i)
Vector.SwapCols(0, i);
CBaseStat::PearsonCorrM2(Vector, MatrixIn, MatrixIn.Rows(), 1, MatrixIn.Cols(), Corr);
Res.Col(Corr.Row(0), i);
}
П.С.
А вообще красивый у вас код и лаконичный. Я бы все циклами делал)))
Ну и PearsonCorrM2 можно ускорить в 2 раза, если считать по треугольнику.Т.е. идти с конца. Посчитать 100 строку со всеми, потом 99 со всеми 0-99, 99 и 100я уже посчитаны - можно просто скопировать. ...50ю строку со всеми до 50й и т.д.