6-я степень Поли Помогите! - страница 2

 
gooly:

Привет, dennisj2,

вы уверены, что вам действительно нужна ваша формула?

Может быть, сначала попробуйте поискать другие фильтры, такие как Kalman, Ehlers, Gauss, Jurik (JMA), DEMA. Большинство из них происходит от низкочастотных (физических) частотных фильтров и большинство из них нашли свой путь в mt4-код.

Может быть, JMA (есть много вариаций) с более длинным периодом делает то, что вы ищете?



Есть ли у вас какие-нибудь ссылки, которые я могу изучить?

 
dennisj2:



SDC - вы сейчас находитесь на том же уровне, что и я - формула линейной регрессии, которую я нашел, работает - и есть две совершенно разные формулы, которые я нашел, которые дают идентичные результаты. Эти формулы хороши, если линейная регрессия (прямая линия тренда) - это то, что нам нужно.

Сначала немного справочного материала:

Microsoft: http://office.microsoft.com/en-us/excel-help/linest-HP005209155.aspx

IntegralCalc: https://www.youtube.com/watch?v=1pawL_5QYxE&noredirect=1


Дано уравнение линейной регрессии y = mx + b:

где y = цена, (например, Close[x])

и x = индекс (например, Bar[x])

и m = Slope (коэффициент, применяемый к каждой паре (x,y))

и b = Y-интерцепт (базовое значение Y-интерцепта, применяемое к каждой паре (x,y)).


Метод A: Из IntegralCalcМетод B: Из Microsoft (где x(overbar) и y(overbar) - средние)


Даже формула линии тренда полиномиальной регрессии в n-й степени относительно проста в применении:

Учитывая формулу: y = m1*x1 + m2*x2 + m3*x3 + ... + b

Где переменные x, y, m и b имеют то же определение, что и в линейном уравнении.

Кажется, у меня есть все, так чего же не хватает?

Чего не хватает, так это расчета m (наклона) и b (перехвата Y) для полиномиальной регрессии; линейное уравнение для вычисления этих значений не применимо к полиномиальной регрессии. Из того, что я узнал, для полиномиальной регрессии требуется формула, которая рассчитывает наименьшие квадраты на основе системы полиномиальных уравнений с использованием матрицы. Посмотрите на примеры графиков выше. На первом графике линии poly(6) абсолютно безупречны - вершины и низы четко обозначены. С такими данными я смогу удерживать сделки дольше, чем сегодня, и в итоге удвоить, а в перспективе и утроить среднее количество пунктов на сделку.

На втором графике я показываю результаты метода poly(6) против метода i-regr, который использует матрицу Гаусса для решения коэффициентов наклона - и, не нужно говорить, что он довольно бесполезен из-за значительной задержки метода. С другой стороны, простая скользящая средняя еще хуже - SMA слишком чувствительна во время промежуточных коррекций рынка, что может вызвать чрезмерную реакцию моего советника.

Я готов заплатить кому-нибудь за разработку настоящего индикатора полиномиальной регрессии - но результаты должны полностью совпадать с результатами, которые выдает Excel. Функция LINEST() - это черный ящик, где для вычисления коэффициентов используется много вуду. Проще говоря, мне нужно понять это "вуду".

Обновление: Я прикрепил файл, показывающий метод, реализованный в Excel.


Я закодировал линейную регрессию некоторое время назад, вот ссылка на мой код: Линейная регрессия Я не гарантирую, что он на 100% правильный, хотя, думаю, я выявил проблему с использованием нулевого индекса x в расчетах, которую я исправил некоторое время спустя.

Я также закодировал скользящую версию этого метода, скользящая версия создает параболу, похожую на сглаженную скользящую среднюю, потому что на каждом баре она рисует только последнюю координату линии линейной регрессии.

Я пытался узнать, как использовать полиноминал 2-й степени для вашей линии. Я подумал, что если мы можем сделать это с квадратиком, то мы можем расширить это с 6-й степенью.

Я прочитаю ваши ссылки и посмотрю, смогу ли я чему-то научиться,

 
SDC:

Я закодировал линейную регрессию некоторое время назад, вот ссылка на мой код: Линейная регрессия Я не гарантирую, что он на 100% правильный, хотя, я думаю, что я выявил проблему с использованием нулевого индекса x в расчетах, которую я исправил некоторое время спустя.

Я также закодировал скользящую версию этого метода, скользящая версия создает параболу, похожую на сглаженную скользящую среднюю, потому что на каждом баре она рисует только последнюю координату линейной регрессии.

Я пытался узнать, как использовать полиноминал 2-й степени для вашей линии. Я подумал, что если мы можем сделать это с квадратиком, то мы можем расширить это с 6-й степенью.

Я прочитаю ваши ссылки и посмотрю, смогу ли я чему-то научиться,


SDC: Я согласен - квадратичного может быть недостаточно, но я склоняюсь к тому, что кубического может быть достаточно для расширения на более высокие степени.
 
dennisj2:


Есть ли у вас какие-нибудь ссылки, которые я могу изучить?

Просто погуглите: индикатор mt4

и затем одно из названий...

Может быть, вы добавляете (низкочастотный) фильтр.

Некоторые из них находятся в кодовой базе mt4 - некоторые нет, и мы не должны размещать внешние ссылки...

 
SDC: У меня есть еще одна ссылка - это может быть именно то, что нам нужно
 
Просто помните, что регрессия - это подгонка кривых, и, как кто-то уже отметил, регрессии перерисовываются. Я не уверен, какую прогностическую ценность имеют чистые подгонки кривых. Из моих собственных экспериментов их предсказательная ценность была не очень хорошей.
 
rocketman99:
Просто помните, что регрессия - это подгонка кривых, и, как кто-то уже отметил, регрессии перекрашивают. Я не уверен, какую предсказательную ценность имеют чистые подгонки кривых. Из моих собственных экспериментов их предсказательная ценность была не очень хорошей.



Ракетчик,

Я частично согласен с вами в том, что регрессионные модели склонны перерисовывать исторические тренды и не очень надежны. Это явно относится к индикатору i-regr - я наблюдал за работой этого индикатора вживую последние несколько дней и могу честно сказать, что этот индикатор не представляет никакой ценности по трем причинам: 1) он сверхчувствителен к краткосрочным коррекциям, 2) его сильная задержка (с советником e-regr) к тому времени, когда индикатор рисует нижнюю границу точки входа для длинных позиций или верхнюю границу для коротких позиций, рынок уже вышел далеко за пределы точек входа и, в большинстве случаев, противоречит рыночному тренду, и 3) только по наблюдениям, когда рынок шел вверх, индикатор указывал вниз, и наоборот, поэтому его использование в качестве индикатора направленного тренда надежно в лучшем случае на 50%.

На прошлой неделе USDJPY болталась в районе 102.35-102.50, i-regr показал тенденцию рынка к снижению (он изогнулся вниз и двигался ниже), e-regr выдал сигнал на продажу, затем индикатор всего через 5 периодов после этого переключился в длинные позиции и перекрасился так, как будто он всегда был длинным, когда USDJPY поднялась до 104.20).

В подтверждение того, что индикаторы типа re-paint не представляют никакой ценности и не являются надежными - учитывая то, что я видел в доступных библиотеках MQL4, уверяю вас, я понимаю разочарование, выраженное теми, кто работал с этими индикаторами - учитывая то, что мы имеем, ничего не работает. Тем не менее, я все еще не видел надежного индикатора полиномиальной регрессии, который бы вычислял до 6-й степени. Я также уверяю, что как только мы получим надежную полиномиальную регрессию, результаты будут впечатляющими.

 
dennisj2:



Rocketman,

Я частично согласен с вами в том, что регрессионные модели склонны перерисовывать исторические тренды и не очень надежны. Это явно относится к индикатору i-regr - я наблюдал за его работой в реальном времени последние несколько дней и могу честно сказать, что этот индикатор не представляет никакой ценности по трем причинам: 1) он сверхчувствителен к краткосрочным коррекциям, 2) его сильная задержка (с советником e-regr) к тому времени, когда индикатор рисует нижнюю границу точки входа для длинных позиций или верхнюю границу для коротких позиций, рынок уже вышел далеко за пределы точек входа и, в большинстве случаев, противоречит рыночному тренду, и 3) только по наблюдениям, когда рынок шел вверх, индикатор указывал вниз, и наоборот, поэтому его использование в качестве индикатора направленного тренда надежно в лучшем случае на 50%.

На прошлой неделе USDJPY болталась в районе 102.35-102.50, i-regr показал тенденцию рынка к снижению (он изогнулся вниз и двигался ниже), e-regr выдал сигнал на продажу, затем индикатор всего через 5 периодов после этого переключился в длинные позиции и перекрасился так, как будто он всегда был длинным, когда USDJPY поднялась до 104.20).

В подтверждение того, что индикаторы типа re-paint не представляют никакой ценности и не являются надежными - учитывая то, что я видел в доступных библиотеках MQL4, уверяю вас, я понимаю разочарование, выраженное теми, кто работал с этими индикаторами - учитывая то, что мы имеем, ничего не работает. Тем не менее, я все еще не видел надежного индикатора полиномиальной регрессии, который бы вычислял до 6-й степени. Я также уверяю, что как только мы получим надежную полиномиальную регрессию, результаты будут впечатляющими.




Я не математик, но мой опыт работы с любой формой регрессии был не очень хорошим. Как вы отметили, существует множество способов проведения регрессии, которые в конечном итоге могут привести к лучшему статистическому соответствию кривой. Но вопрос о предсказательной силе остается открытым.

Если вы действительно хотите серьезно разобраться в этом вопросе, вам нужно изучить R и попробовать некоторые из доступных продвинутых регрессий (наберите в Google ARIMA, ARCH/GARCH и т.д.): http://talksonmarkets.files.wordpress.com/2012/09/time-series-analysis-with-arima-e28093-arch013.pdf.

Я потратил на это несколько недель, а также исследовал коинтеграцию, и мой успех был практически нулевым.

Я не думаю, что кодировка MQL4 подходит для такого продвинутого статистического анализа.

 

ну, хммм хммм.....

I don't think MQL4 coding is up to the task for this advanced statistical analysis.

В MQL можно сделать все, что угодно, это не является ограничивающим фактором. Похоже, что переноса одного из этихисточников будет достаточно:
http://rosettacode.org/wiki/Polynomial_regression

Решение регрессии P6 (полином 6-й степени) - это решение системы из 6 уравнений с 6 переменными на дискретной числовой функции, что, возможно, не просто, но не невозможно.

Я могу позже посмотреть, какой именно метод используется в i_regr.mq4.

мой опыт работы с любой формой регрессии был не очень хорошим

Должен согласиться, именно об этом и шла речь в моем первом комментарии. Потому что... что мы делаем? Мы подгоняем часть случайной кривой (фактический PA (Price Action)) к P6, в данном случае. И затем мы ожидаем, что следующая точка PA будет действовать как продолжение этой кривой?

Хорошо, похоже, что Деннис использует эту кривую как функцию преобразования PA с малой задержкой, и это имеет некоторый смысл, но насколько это может быть хорошо? Это должно быть сделано на более высоких ТФ из-за фильтрации шума, и я не думаю, что это будет возможно избежать потерь, когда PA попадет в диапазон, что является проблемой для такого типа торговой стратегии.


этот индикатор не представляет никакой ценности по трем причинам: 1) он сверхчувствителен к краткосрочным коррекциям, 2) его сильная задержка (с советником e-regr) к тому времени, когда индикатор рисует нижнюю границу точки входа для длинных позиций или верхнюю границу для коротких позиций, рынок уже вышел далеко за пределы точек входа и, в большинстве случаев, противоречит рыночному тренду, и 3) только по наблюдениям, когда рынок шел выше, индикатор указывал вниз, и наоборот, поэтому его использование в качестве индикатора направленного тренда надежно в лучшем случае на 50%.

Что ж, i-regr работает не так уж плохо. Чтобы увидеть его в действии, просто используйте визуальный режим бэктеста e-regr.mq4 и бросьте индикатор на тестовое окно.
Я предполагаю, что он использует что-то вроде быстрой регрессии или интерполяции, но его результат не так уж плох. Он следует за PA и адаптируется к кривой.

Ваши пункты:
1) все индикаторы такие. это обычно решается добавлением другого типа индикатора в качестве фильтра, или более высоким TF.
2) ну, с лучшей подгонкой кривой задержка улучшится. но основная проблема не в задержке, а в критериях входа в e-regr. срабатывание против тренда на краях канала постоянного размера? без адекватного восстановления при смене тренда? без истинного управления капиталом? смешно.
моей основной идеей был бы вход/выход по изменению направления кривой регрессии, но я все еще не уверен, насколько полный индикатор перерисовки был бы хорош для этого.

В любом случае, у меня сложилось впечатление, что вы используете для входа/выхода пересечение двух кривых регрессии с разными коэффициентами детерминации.

 
T

Да, как сказал Грациани, мы можем написать в mql4 что угодно, все сводится к тому, насколько хорошо мы понимаем, как реализовать эту математику.

Что касается перерисовки, это не будет проблемой, единственный бар, о котором мы заботимся, это нулевой бар, текущий бар торговли ценой. Как бы я это закодировал (если мы сможем разобраться с математикой), уравнение будет выполняться на ценах последних n баров, результирующее значение для нулевого бара будет нарисовано, линия на всех предыдущих барах будет оставлена такой, какой она была при предыдущем расчете. Во-первых, нет необходимости подгонять всю линию к любой истории графика, когда мы можем торговать только на нулевом баре, а во-вторых, это покажет реальную историю того, как линия применялась к каждому бару, когда это был бар с живой ценой.

По ссылке Dennis Posted Polynominal Regression я нашел это очень интересным с точки зрения адаптивного индикатора.

"В полиномиальной регрессии к уравнению добавляются различные значения переменной X (X, X2, X3...), чтобы посмотреть, значительно ли они увеличивают r2. Сначала проводится линейная регрессия, подгоняя к данным уравнение вида Y=a+bX. Затем к данным подгоняется уравнение вида Y=a+b1X+b2X2, которое дает параболу. r2 всегда увеличивается при добавлении члена более высокого порядка, но вопрос в том, является ли увеличение r2 значительно большим, чем ожидалось из-за случайности. Далее подгоняется уравнение вида Y=a+b1X+b2X2+b3X3, которое дает S-образную линию, и проверяется увеличение r2. Так можно продолжать до тех пор, пока добавление еще одного члена не приведет к значительному увеличению r2".

Это может быть все, что нам нужно знать, чтобы закодировать его, обратите внимание, как автор пишет y=a+b1X+b2X2 вместо y=ax2+bx+c? Именно это меня и сбивало с толку, я думал, что c должен быть совершенно другим коэффициентом. Из этой статьи следует, что коэффициенты c,d,e,f,g в y=ax6+bx5+cx4+dx3+ex2+fx+g напрямую связаны с b, который, как мы уже знаем из линейной регрессии, является наклоном.

Однако мне трудно поверить, что все действительно так просто. Зачем им писать a,b,c,d,e,f,g, коэффициенты, если это действительно можно записать как y=a+b1X+b2X2+b3X3+b4X4+b5X5+b6X6? Кроме того, как сказал Деннис, в других статьях кажется, что перехват наклона, как в линейной регрессии, не применим к полирегрессии. Иногда я задаюсь вопросом, не придумывают ли они все это на ходу.

Помимо этого, статья, похоже, подразумевает, что r2 можно использовать для измерения того, насколько хорошо линия подходит к кривой данных, пока мы тестируем увеличение уравнения полилинии на степень,

Я думаю, что r2 может иметь какое-то отношение к дисперсии? Может ли кто-нибудь точно сказать, что такое r2?