Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 3255
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
согласен
иди ютуб смотри ))
БО - это что?
мне так казалось что на сайте это уже устоявшееся сокращение : БО - бинарные опционы. Кривые/косые/производные но именно они про дискретные отсчёты времени и + - в них. Часть вводных бизнес-правил берётся от опционов. А часть нет и от этого получается петрушка, которая вообще не работает ни там ни тут.
сразу отвечая тёзке: я обоими руками за МО и любую движуху. Но просто если очень долго нет результата, надо искать - может изначально что-то не так заложено. Что-то ни разу не видел графика в теме даже демки "сделано с использованием Мachine Learning". Методический поиск подразумевает ещё и критику (вопросы/замечания к)основы.
На малых ТФ переполняться память. Забивается 16 озу и файл подкачки (своп на маке) 30гиг. Ну там матрица корреляционная 50к на 50к размером, например.
Видимо, какие-то особенности Питона, т.к. на MQL алгоритм такой.
Это лобовой вариант. С решетом еще быстрее.
Допустим один миллион баров. Длина строки 10. Тогда 1d-массив на 10 миллионов double-значений - 80 Mb. п.3. - ну пусть будет 500 Mb по расходу памяти. Что не учел?
Видимо, какие-то особенности Питона, т.к. на MQL алгоритм такой.
Это лобовой вариант. С решетом еще быстрее.
Допустим один миллион баров. Длина строки 10. Тогда 1d-массив на 10 миллионов double-значений - 80 Mb. п.3. - ну пусть будет 500 Mb по расходу памяти. Что не учел?
Корреляция матрицы всех строк ко всем считается в разы быстрее, чем циклы (1 строка к каждой другой строке) и даже цикл (1 строка ко всем строкам). Там какое-то ускорение за счет алгоритма. Проверял на алглибовской версии расчета корреляции.
Давайте код, проверим.
MathAbs() мне кажеться лишним
Видимо, какие-то особенности Питона, т.к. на MQL алгоритм такой.
Это лобовой вариант. С решетом еще быстрее.
Допустим один миллион баров. Длина строки 10. Тогда 1d-массив на 10 миллионов double-значений - 80 Mb. п.3. - ну пусть будет 500 Mb по расходу памяти. Что не учел?
сам офигел, что ни одна библиотека в питоне не может посчитать, в итоге запутался
Пандас переполняет оперативку, оверхед гигантский
Нампай вообще тупо вылетает и убивает сеанс интерпретатора :) не выводя никаких ошибокДавайте код, проверим.
функции
PearsonCorrM - Корреляция всех строк ко всем - самая быстрая.
//+------------------------------------------------------------------+
//| Pearson product-moment correlation matrix |
//| INPUT PARAMETERS: |
//| X - array[N,M], sample matrix: |
//| * J-th column corresponds to J-th variable |
//| * I-th row corresponds to I-th observation |
//| N - N>=0, number of observations: |
//| * if given, only leading N rows of X are used |
//| * if not given, automatically determined from input |
//| size |
//| M - M>0, number of variables: |
//| * if given, only leading M columns of X are used |
//| * if not given, automatically determined from input |
//| size |
//| OUTPUT PARAMETERS: |
//| C - array[M,M], correlation matrix (zero if N=0 or N=1) |
//+------------------------------------------------------------------+
static bool CBaseStat::PearsonCorrM(const CMatrixDouble &cx,const int n,
const int m,CMatrixDouble &c)
PearsonCorr2 - Корреляция строка к строке. Для полной матрицы: 1 строку проверяем со всеми после 1, 2-ю со всеми после 2й и т.д.
//| Pearson product-moment correlation coefficient |
//| Input parameters: |
//| X - sample 1 (array indexes: [0..N-1]) |
//| Y - sample 2 (array indexes: [0..N-1]) |
//| N - N>=0, sample size: |
//| * if given, only N leading elements of X/Y are |
//| processed |
//| * if not given, automatically determined from |
//| input sizes |
//| Result: |
//| Pearson product-moment correlation coefficient |
//| (zero for N=0 or N=1) |
//+------------------------------------------------------------------+
static double CBaseStat::PearsonCorr2(const double &cx[],const double &cy[],
const int n)
И через PearsonCorrM2 можно в 1 матрицу записать полную матрицу и в другую проверяемую строку. Так можно проверить 1 строку сразу ко всем строкам.Но тут очевидная лишняя работа, т.к. для 10-й строки корреляция со строками выше 10 уже посчитана.
const int n,const int m1,const int m2,
CMatrixDouble &c)
Numpy матрица 20к*20к весит 2гб
400 миллионов double-чисел весят 3 гига.