Помогите написать линейную регрессию - страница 7

 

Согласен. Проверил ошибка накапливается и в моем варианте при огромном массиве минуток. Поэтому перед использованием и этого алгоритма я смещаю X в 0. Из-за отсутствия квадратов ошибка накапливается медленнее.

Хотя что я Вас убеждаю :). Можете использовать любой алгоритм, главное нашли грабли и знаем что туда не стоит наступать.

 

Наиболее простой и весьма быстрый способ, который можно реализовать в MQL4, это провести прямую через две точки, вычисленные по формуле LRMA = 3*LWMA - 2*SMA.


В общем нужно просчитать


1. Обычную MA

2. Прямую LWMA

3. Обратную LWMA


С первыми двумя никаких проблем, т.е. последнее значение для 0-го бара по заданному количеству баров, вычислить, как два пальца об асфальт с помощью iMA(), чтобы получить значение последней точки по вышеуказанной формуле.


А вот для расчета значения третьей - обратной LWMA, нужно массив ценового ряда перевернуть в обратном направлении и натравить на него iMAOnArray() со значением MODE_LWMA. Подставляем полученное таким макаром значение в вышеприведенную формулу вместо LWMA и получаем начальную (первую) точку.


Соединяем две точки отрезком и получаем линейную регрессию, но без коэффициентов корреляции.


Примечание: обычную MA не надо пересчитывать в обратном направлении для начальной точки, т.к. ее значение независимо от того, в какую сторону считать.

 
Reshetov >>:

Наиболее простой и весьма быстрый способ, который можно реализовать в MQL4, это провести прямую через две точки, вычисленные по формуле LRMA = 3*LWMA - 2*MA.


В общем нужно просчитать


1. Обычную MA

2. Прямую LWMA

3. Обратную LWMA


С первыми двумя никаких проблем, т.е. последнее значение для 0-го бара по заданному количеству баров, вычислить, как два пальца об асфальт с помощью iMA(), чтобы получить значение последней точки по вышеуказанной формуле.


А вот для расчета значения третьей - обратной LWMA, нужно массив ценового ряда перевернуть в обратном направлении и натравить на него iMAOnArray со значением MODE_LWMA. Подставляем полученное таким макаром значение в вышеприведенную формулу вместо LWMA и получаем начальную (первую) точку.


Соединяем две точки отрезком и получаем линейную регрессию, но без коэффициентов корреляции.


Примечание: обычную MA не надо пересчитывать в обратном направлении для начальной точки, т.к. ее значение независимо от того, в какую сторону считать.


А с каким лагом взяты точки, или это без разницы?

ТЕ я так понял что если провести прямую описаным вами способом она должна совпасть с лин.регресией выложенной в этой веткой (только расчёт быстрее)?

 
Urain >>:


1. А с каким лагом взяты точки, или это без разницы?

2. ТЕ я так понял что если провести прямую описаным вами способом она должна совпасть с лин.регресией выложенной в этой веткой (только расчёт быстрее)?

1. Не понял юмора в первом вопросе, т.к. расчет выполняется по количеству баров, т.е. точек ценового ряда

2. По второму вопросу Вы правильно поняли, т.к. есть математическое доказательство LRMA.

 
Reshetov >>:

1. Не понял юмора в первом вопросе, т.к. расчет выполняется по количеству баров, т.е. точек ценового ряда

Тогда я совсем не понял формулу,( по поводу что при отнимании из LWMA-SMA=обратная LWMA я знал давно)

Те начальное значение считается через LWMA, конечное через обратная LWMA и я так предполагаю что лаг равен периоду ???

 
Urain >>:

Тогда я совсем не понял формулу,( по поводу что при отнимании из LWMA-SMA=обратная LWMA я знал давно)

Впервые об этом слышу. Но, если это действительно так, то тогда значение первой точки (начало периода) можно найти по формуле: LRMA_BEGIN = 3*LWMA - 5*SMA


Надо проверить.

 
Reshetov >>:

Впервые об этом слышу. Если это действительно так, то тогда значение первой точки (начало периода) можно найти по формуле: LRMA = 3*LWMA - 5*SMA


Надо проверить.

Ну так у LWMA коэф убывает,у обратной LWMA коэф возростает в сумме что они дадут = SMA

(в смысле среднеарифметическая сумма (LWMA+обратной LWMA)*0,5).

 
Urain >>:

( по поводу что при отнимании из LWMA-SMA=обратная LWMA )

обратная LWMA= LWMA-2*(LWMA-SMA); вот так будет точнее.

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

упрощённо получается обратная LWMA=2*SMA-LWMA;

Причина обращения: