нужно для каждого бара взять 2 массива с ценами: мувинга и цен открытия, начиная с текущего бара и до CorrPeriod назад, и посчитать между ними корреляцию Пирсона, и так пройтись по всей истории
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Quantum, 2016.12.01 12:48
В таких случаях лучше свою функцию написать, которая хранит суммы и пересчитывает их с учетом ушедшего и добавленного элементов.
ага, так еще и медленно будет.. будем искатьс
ага, так еще и медленно будет.. будем искатьс
Для вычисления корреляционной/ковариационной матриц точно есть рекурентные способы. Наверное, быстрее поиска - самому вывести.
ага, так еще и медленно будет.. будем искатьс
Такая конструкция будет сильно тормозить в тестере, лучше сделайте включаемый файл, в котором считается значение только на текущем баре.
Или Вам нужен индикатор для визуальной оценки, если это так, то можно сделать немного по другому?
К примеру заменить вызов хендла ima, на MovingAverages.mqh.
//------------------------------------------------------------------------------------
for(int i=to_copy+1;i<rates_total && !IsStopped();i++) { int cop1 = ArrayCopy(prices,open,0,i-CorrPeriod,CorrPeriod); int cop2 = ArrayCopy(detrends,dpBuffer,i-CorrPeriod,i-CorrPeriod,CorrPeriod); CopyBuffer(dp_handle,0,i-CorrPeriod,CorrPeriod,dpBuffer); bool corr=MathCorrelationPearson(prices,dpBuffer,pearson); corrBuffer[i]=pearson; }В цикле строку CopyBuffer поставьте в начало, до cop1, cop2.
Для вычисления корреляционной/ковариационной матриц точно есть рекурентные способы. Наверное, быстрее поиска - самому вывести.
Когда-то писал подобное. Потому использовал такой способ ускорения расчетов.

- www.johndcook.com
Такая конструкция будет сильно тормозить в тестере, лучше сделайте включаемый файл, в котором считается значение только на текущем баре.
Или Вам нужен индикатор для визуальной оценки, если это так, то можно сделать немного по другому?
К примеру заменить вызов хендла ima, на MovingAverages.mqh.
да, мне нужно получить сразу по большой глубине истории, делаю предикторы для НС.. думал слету напишу а нет завтык :) как что-то сделаю -скину
Такая конструкция будет сильно тормозить в тестере, лучше сделайте включаемый файл, в котором считается значение только на текущем баре.
Или Вам нужен индикатор для визуальной оценки, если это так, то можно сделать немного по другому?
К примеру заменить вызов хендла ima, на MovingAverages.mqh.
//------------------------------------------------------------------------------------
В цикле строку CopyBuffer поставьте в начало, до cop1, cop2.эта сторка там вообще не нужна, т.к. копируется раньше.. забыл удалить, спешил скинуть на форум и уйти за пивом т.к. пятница :) за неделю это программирование весь мозг окислило
да, мне нужно получить сразу по большой глубине истории, делаю предикторы для НС.. думал слету напишу а нет завтык :) как что-то сделаю -скину
Для корреляции Пирсона на сколько помню, нужно цикл в цикле вызывать, а это само по себе очень затратно. Если только, кто другой способ получения более быстрый знает.
Что-то наподобие значения линейной регрессии при помощи двух скользящих, что в лет считается.
Мне кажется для визуализации лучше индикатор сделать, а для тестера включаемый файл.
Могу попробовать сделать индикатор, но он будет тормозной.?
Для корреляции Пирсона на сколько помню, нужно цикл в цикле вызывать, а это само по себе очень затратно. Если только, кто другой способ получения более быстрый знает.
Что-то наподобие значения линейной регрессии при помощи двух скользящих, что в лет считается.
Мне кажется для визуализации лучше индикатор сделать, а для тестера включаемый файл.
Могу попробовать сделать индикатор, но будет тормозной.?
желательно быстрый что бы был, да я покопаюсь сам, спасибо, кстати индикатор Дмитрия вроде бы быстро считает https://www.mql5.com/ru/code/572
можно переделать под свои нужды

- голосов: 16
- 2011.10.14
- Dmitry Fedoseev
- www.mql5.com
желательно быстрый что бы был, да я покопаюсь сам, спасибо, кстати индикатор Дмитрия вроде бы быстро считает https://www.mql5.com/ru/code/572
можно переделать под свои нужды
Когда сам делал индикатор корреляции Пирсона на MQL4, решил проверить, как раз с iBeta сверял.

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Нужно посчитать корреляцию кастомного индикатора с текущими ценами открытия, и вывести значения за всю историю
какая вообще правильная последовательность должна быть? делаю вот так, а он какую-то шляпу рисует в тестере
т.е. нам нужно для каждого бара взять 2 массива с ценами: мувинга и цен открытия, начиная с текущего бара и до CorrPeriod назад, и посчитать между ними корреляцию Пирсона, и так пройтись по всей истории
я чувствую что почти сделал, но где-то что-то не так :)