Диалог автора. Александр Смирнов. - страница 40

 
lna01:
Yurixx:

Я же использовал деление суммы на N. В этом случае все перекрестные суммы уходят и формулы получаются очень компактные.

Может быть это и оправдано. Оценка получается смещённая, но если не работать с совсем уж короткими ЛР, точность вполне достаточна.

Смещенная по отношению к чему ? К классическому определению ? Или к нормальному распределению ? По-моему это никакого значения не имеет, ни при малых N, ни при больших.
 
Lord_Shadows:

А это только преданным участникам данной темы или и другим( я о себе ) можно приобщиться...(получить костюмчик).
Заране благодарю.
Ну как может ANG (-ел из галактики M31 - "Туманность Андромеды") отказать Лорду. Адрес в личке, насколько я понял?
 
ANG3110:
Если интересно, вот прикладываю индикатор линейной регрессии без циклов. Считает регрессию из большого количества баров, за считанные доли секунды.
Да, это очень близко к MovingLR_2, цикл по истории (с закомментированной раскраской подъёмов/спусков) получается 1219 мсек, но MovingLR_2 (с добавленным расчётом А) уложился в 1078.
 
ANG3110:
Lord_Shadows:

А это только преданным участникам данной темы или и другим( я о себе ) можно приобщиться...(получить костюмчик).
Заране благодарю.
Ну как может ANG (-ел из галактики M31 - "Туманность Андромеды") отказать Лорду. Адрес в личке, насколько я понял?

Спасибо большое...Реально приятно такое отношение...Уже получил и сижу изучаю.
Ещё раз спасибо ANG -ел.
 
Yurixx:
lna01:
Может быть это и оправдано. Оценка получается смещённая, но если не работать с совсем уж короткими ЛР, точность вполне достаточна.

Смещенная по отношению к чему ? К классическому определению ? Или к нормальному распределению ? По-моему это никакого значения не имеет, ни при малых N, ни при больших.
Смещённая относительно истинной. Конкретно, у вас СКО занижено.

P.S. Но в отношении ценовых графиков это несущественно, поэтому я и согласился выше, что такое упрощение оправдано
 
lna01:
ANG3110:
Если интересно, вот прикладываю индикатор линейной регрессии без циклов. Считает регрессию из большого количества баров, за считанные доли секунды.
Да, это очень близко к MovingLR_2, цикл по истории (с закомментированной раскраской подъёмов/спусков) получается 1219 мсек, но MovingLR_2 (с добавленным расчётом А) уложился в 1078.


Если отключить раскраску, то считает в 1.5 раза быстрее. Обращение к массивам занимает много времени. Ну и если уж нужен типа рекорда по скорости, можно было бы использовать еще кое-какие, приемы. Но мне ж премию за это не дадут.

Кстати наскоро глянув код MovingLR_2 я не увидел расчета коэффициентов линии a и b, а они как раз и являются на мой взгляд наибольшей ценностью, так как в этом случае можно строить функцию угла и измерять скорость тренда. А в at_LR0 они счтаются на каждом баре. Значит и СКО можно считать на каждом баре. И еще MovingLR_2 выдает не чистую линейную регрессию, а что то близкое. Когда рисуется просто положение конца, это не очень принципиально, но есть случаи, когда нужна абсолютно точная линейная регрессия.

 
ANG3110 писал (а): я не увидел расчета коэффициентов линии a и b
К-ты a и b можно считать напрямую с помощью формулы LR = (3*LW - 2*S) MA. Тогда при условии, что бар под номером i - "текущий" бар, т.е. последний в текущей линии регрессии:

LR(Bar i) = a*i + b
LR(Bar i-1) = a*(i-1) + b

Откуда

a = LR(Bar i) - LR(Bar i-1)
b = LR(Bar i) - a*i

Или я чего-то намудрил? Конечно, a и b зависят от i, как и положено.
 
Mathemat:

Или я чего-то намудрил?

Ты ещё не спишь...?
Слушай Алексей, а есть ли практическая польза от Вашей полемики на 40 !!! страниц.
P.S. Давно что-то не общались с тобой...как вообще дела ?
 
Mathemat:

Или я чего-то намудрил? Конечно, a и b зависят от i, как и положено.

Конечно намудрил. Так нельзя считать. a и b являются функцией минимального ср.кв. отклонения вдоль всего периода. a - это угол наклона линии вдоль всего периода. А приращение положения конца LR, даст не угол всей регрессии, а только изменение коэффициента b, который кстати и является координатой положения конца линии.
 
ANG3110:


Если отключить раскраску, то считает в 1.5 раза быстрее. Обращение к массивам занимает много времени.

Именно поэтому для теста я её и отключил - цифры приведены для отключённой раскраски.


Ну и если уж нужен типа рекорда по скорости, можно было бы использовать еще кое-какие, приемы.

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

Кстати наскоро глянув код MovingLR_2 я не увидел расчета коэффициентов линии a и b,

...

И еще MovingLR_2 выдает не чистую линейную регрессию, а что то близкое. Когда рисуется просто положение конца, это не очень принципиально, но есть случаи, когда нужна абсолютно точная линейная регрессия.

Коэффициенты линии a и b рассчитываются вот в этих строчках.
A = (SumXY - N3*SumY)*N4;
B = (N1*SumY - SumXY)*N2;
Для наглядности прилагаю версию MovingLR_2, которая просто рисует текущую линейную регрессию. Тем более, что в предыдущей была помарка при расчёте N4 :)

MovingLR_2 выдает чистую линейную регрессию и убедиться в этом достаточно легко. В at_LR0 неточен переход от периода в часах к периоду в барах. Если в at_LR0 заменить Close на (High+Low)/2 и взять период 1, в MovingLR_2 задать период не 60 а 61 и повесить их на минутный график, результаты полностью совпадут.

P.S. Кстати, Mathemat, at_LR0 как раз хороший пример, как в такого типа алгоритме делать обсчёт нулевого бара
Файлы: