Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Привет, dennisj2,
вы уверены, что вам действительно нужна ваша формула?
Может быть, сначала попробуйте поискать другие фильтры, такие как Kalman, Ehlers, Gauss, Jurik (JMA), DEMA. Большинство из них происходит от низкочастотных (физических) частотных фильтров и большинство из них нашли свой путь в mt4-код.
Может быть, JMA (есть много вариаций) с более длинным периодом делает то, что вы ищете?
Есть ли у вас какие-нибудь ссылки, которые я могу изучить?
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-й степенью.
Я прочитаю ваши ссылки и посмотрю, смогу ли я чему-то научиться,
Я закодировал линейную регрессию некоторое время назад, вот ссылка на мой код: Линейная регрессия Я не гарантирую, что он на 100% правильный, хотя, я думаю, что я выявил проблему с использованием нулевого индекса x в расчетах, которую я исправил некоторое время спустя.
Я также закодировал скользящую версию этого метода, скользящая версия создает параболу, похожую на сглаженную скользящую среднюю, потому что на каждом баре она рисует только последнюю координату линейной регрессии.
Я пытался узнать, как использовать полиноминал 2-й степени для вашей линии. Я подумал, что если мы можем сделать это с квадратиком, то мы можем расширить это с 6-й степенью.
Я прочитаю ваши ссылки и посмотрю, смогу ли я чему-то научиться,
SDC: Я согласен - квадратичного может быть недостаточно, но я склоняюсь к тому, что кубического может быть достаточно для расширения на более высокие степени.
Есть ли у вас какие-нибудь ссылки, которые я могу изучить?
и затем одно из названий...
Может быть, вы добавляете (низкочастотный) фильтр.
Некоторые из них находятся в кодовой базе mt4 - некоторые нет, и мы не должны размещать внешние ссылки...
Просто помните, что регрессия - это подгонка кривых, и, как кто-то уже отметил, регрессии перекрашивают. Я не уверен, какую предсказательную ценность имеют чистые подгонки кривых. Из моих собственных экспериментов их предсказательная ценность была не очень хорошей.
Ракетчик,
Я частично согласен с вами в том, что регрессионные модели склонны перерисовывать исторические тренды и не очень надежны. Это явно относится к индикатору 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-й степени. Я также уверяю, что как только мы получим надежную полиномиальную регрессию, результаты будут впечатляющими.
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.
http://rosettacode.org/wiki/Polynomial_regression
Решение регрессии P6 (полином 6-й степени) - это решение системы из 6 уравнений с 6 переменными на дискретной числовой функции, что, возможно, не просто, но не невозможно.
Я могу позже посмотреть, какой именно метод используется в i_regr.mq4.
Должен согласиться, именно об этом и шла речь в моем первом комментарии. Потому что... что мы делаем? Мы подгоняем часть случайной кривой (фактический PA (Price Action)) к P6, в данном случае. И затем мы ожидаем, что следующая точка PA будет действовать как продолжение этой кривой?
Хорошо, похоже, что Деннис использует эту кривую как функцию преобразования PA с малой задержкой, и это имеет некоторый смысл, но насколько это может быть хорошо? Это должно быть сделано на более высоких ТФ из-за фильтрации шума, и я не думаю, что это будет возможно избежать потерь, когда PA попадет в диапазон, что является проблемой для такого типа торговой стратегии.
Что ж, i-regr работает не так уж плохо. Чтобы увидеть его в действии, просто используйте визуальный режим бэктеста e-regr.mq4 и бросьте индикатор на тестовое окно.
Я предполагаю, что он использует что-то вроде быстрой регрессии или интерполяции, но его результат не так уж плох. Он следует за PA и адаптируется к кривой.
Ваши пункты:
1) все индикаторы такие. это обычно решается добавлением другого типа индикатора в качестве фильтра, или более высоким TF.
2) ну, с лучшей подгонкой кривой задержка улучшится. но основная проблема не в задержке, а в критериях входа в e-regr. срабатывание против тренда на краях канала постоянного размера? без адекватного восстановления при смене тренда? без истинного управления капиталом? смешно.
моей основной идеей был бы вход/выход по изменению направления кривой регрессии, но я все еще не уверен, насколько полный индикатор перерисовки был бы хорош для этого.
В любом случае, у меня сложилось впечатление, что вы используете для входа/выхода пересечение двух кривых регрессии с разными коэффициентами детерминации.
Да, как сказал Грациани, мы можем написать в 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?