Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Коэффициенты линии 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 и повесить их на минутный график, результаты полностью совпадут.
Ну тогда MovingLR_2 нормальный алгоритм, чуть причесать компоновку кода, и все Ок!
В at_LR0 cмещение на один бар сделано, чтобы соответствовало линейной регрессии из набора стандартных инструментов МТ4. Может этого и не нужно было делать...
2 zigan:
для линейной регрессии формула такая: LRMA = 3*LWMA - 2*MA
для квадратичной:
Quadratic Regression MA = 3 * SMA + QWMA * ( 10 - 15/( N + 2 ) ) - LWMA * ( 12 - 15/( N + 2 ) )
Здесь N - период средних,
QWMA( i; N ) = 6/( N*(N+1)(2*N+1) ) * sum( Close[i] * (N-i)^2; i = 0..N-1 ) (машка с квадратичными весами).
для кубической: ой, все пока не возьмусь вытащить ее из Trading Solutions, больно уж формула у меня там дикая.
2 Candid: ну точно истинный параноик, я бы до такого не додумался...
У меня получились другие формулы.
где
чуть причесать компоновку кода, и все Ок!
2 Yurixx :
Похоже разница в значениях СКО для малых N связана не с коррекцией СКО, а с выбором начала и направления Х. Потому что при их смене моя прежняя формула тоже начинает давать другие результаты, а она точная без всяких оговорок.
2 Yurixx :
Похоже разница в значениях СКО для малых N связана не с коррекцией СКО, а с выбором начала и направления Х. Потому что при их смене моя прежняя формула тоже начинает давать другие результаты, а она точная без всяких оговорок.
Вы безусловно правы в том, что правильный выбор системы координат - мощный прием для упрощения расчетов и вида конечных формул. Для линейной регрессии я этим не пользовался, все и так получилось достаточно красиво. А вот для параболической регрессии при определенном выборе начала отсчета конечные выражения оказываются проще вдвое, а эффективность алгоритма увеличивается на порядок. И, кроме того, полностью снимается проблема ограничений на точность вычислений.
В одном, однако, не могу с вами согласиться. Значения СКО, равно как и собственно значения регрессии, не могут зависеть от выбора начала отсчета оси Х. Возможно не сама формула начинает давать другие результаты, а проявляется эта самая проблема точности вычислений. В связи с тем, что у double сохраняются только 15 значащих цифр (не говоря уже об int), в процессе вычислений довольно быстро накапливается ошибка. Особенно сильно это проявляется в том случае, когда величины X и Y имеют разные порядки. Например, Х - номер бара, может быть порядка сотен тысяч, Y - цена, порядка 1, а изменения цены - порядка 0.0001.
PS
Хотел понять чем "вкуснЕЕ" эта формула. Очевидно тем, что получается гораздо проще - в одну строку. Хотя я не понимаю, почему вы делите на (N-2), а не на (N-1). Должен все же заметить, что, стремясь к максимальному ускорению, вы должны бы использовать другую формулу. Если зафиксировать выбор начала отсчета Х относительно текущего значения цены, то выгоднее использовать формулы без Sum(X*Y). Тогда не придется вычислять свертку на каждом баре. А вот обновлять Sum(Y*Y) или Sum(X*X) на каждом баре - это один оператор.
Подскажите если знать текущее значение коэфициентов A и B в линейной регресии, можно ли расчитать СКО
вот формулы
коэфиц A
коэфиц B
Подскажите если знать текущее значение коэфициентов A и B в линейной регресии, можно ли расчитать СКО
P.S. Вспомнил, что QWMA квадратична по Х, а понадобится член, квадратичный по Y. Так что QWMA не поможет.
Подскажите если знать текущее значение коэфициентов A и B в линейной регресии, можно ли расчитать СКО
Наверное QWMA тоже будет недостаточно, поскольку она не содержит квадратов Y и, поэтому, не определяет дисперсию Y.
В одном, однако, не могу с вами согласиться. Значения СКО, равно как и собственно значения регрессии, не могут зависеть от выбора начала отсчета оси Х. Возможно не сама формула начинает давать другие результаты, а проявляется эта самая проблема точности вычислений.
Хотя я не понимаю, почему вы делите на (N-2), а не на (N-1).
P.S. Для Sum(Y*Y) - у меня тоже три операции, для Sum(X*X) - ни одной.
Quadratic Regression MA = 3 * SMA + QWMA * ( 10 - 15/( N + 2 ) ) - LWMA * ( 12 - 15/( N + 2 ) )
QWMA( i; N ) = 6/( N*(N+1)(2*N+1) ) * sum( Close[i] * (N-i)^2; i = 0..N-1 ) (машка с квадратичными весами).
У меня получились другие формулы.
где