Как обозначить операцию вычисления производной в MQL4 - страница 2

 
Ну вы блин... даете!

Я конечно не в курсе про фракталы, но чем Delta=A(n)-A(n+1) не производная?

Ну можно ещё отнормировать, если у вас время в абсолютных единицах, т.е. шаг не равен 1.


Хотя можно конечно и нейронные сети приплести. Ну типа, исследовать какую сетку применить, 

потом исследовать как её правильно обучить, раз так 5-10 ошибиться и...получить желаемый результат. 

Или не получить. И сразу оправдаться-ну как тут можно что-то получить, Форекс же не Гауссовский и не стационарный.


 

Как я понял производную требуется найти численно, для начала,

как здесь справедливо было сказано, что Производная это отношение

приращения значения функции к приращению значения аргумента:

1.Вычисляем значение функции F0

2.Возмущаем параметр(ы) x поочередно на h

и вычисляем F(x1+h),F(x2+h),....F(xn+h)

3.Находим производные по каждому аргументу-параметру:

dF(x1)=(F(x1+h)-F0)/(2*h),

dF(x2)=(F(x2+h)-F0)/(2*h),

.......................................

dF(Xn)=(F(xn+h)-F0)/(2*h)

 
begemot61 >>:
Ну вы блин... даете!

Я конечно не в курсе про фракталы, но чем Delta=A(n)-A(n+1) не производная?

Ну можно ещё отнормировать, если у вас время в абсолютных единицах, т.е. шаг не равен 1.


Хотя можно конечно и нейронные сети приплести. Ну типа, исследовать какую сетку применить,

потом исследовать как её правильно обучить, раз так 5-10 ошибиться и...получить желаемый результат.

Или не получить. И сразу оправдаться-ну как тут можно что-то получить, Форекс же не Гауссовский и не стационарный.


Это будет неточно. Метод с разностью двух скользящих средних учитывает и СОСЕДНИЕ ТОЧКИ, поэтому намного более точен. Он учитывает поведение функции В ОКРЕСТНОСТИ.

"Ваш" метод строит не касательную (производную), а СЕКУЩУЮ.

 

Здесь получается точность порядка o(h) чтобы считать точнее есть 3-х 4-х 5-ти и т.д. точечные формулы для вычисления производной

как для середины интервала, так и для края интервала.


Например http://www.sitmo.com/eq/455 или https://en.wikipedia.org/wiki/Five-point_stencil

 
AlexEro >>:

Это будет неточно. Метод с разностью двух скользящих средних учитывает и СОСЕДНИЕ ТОЧКИ, поэтому намного более точен. Он учитывает поведение функции В ОКРЕСТНОСТИ.

"Ваш" метод строит не касательную (производную), а СЕКУЩУЮ.

Ну да. Не спорю. А ещё хотелось бы и в будущем поковыряться.

А иначе увы,..."точность" всегда разменивается на скорость.

 
AlexEro писал(а) >>

Вас не очень затруднит дать ссылочку на строгий вывод этого метода? Или хотя-бы дать ориентир?

Глянь в личку.

Что касается оператора производной, то его точная форма представляет собой бесконечную сумму по синусам (по памяти) и в пределе, сводится к известной формуле

(s [n ])' = (s [n+1] -s [n-1 ])/2dt, и для правого края (s [n ])' = (s [n+1] -s [n ])/dt

Нужно помнить, что использование точного выражения должно быть оправдано и я не думаю, что вы сможете корректно это обосновать. Само использование оператора производной для котира бессмыслено, т.к. по определению ВР должен быть гладким в окресностях точки в которой берётся производная. У нас же, ВР не гладкий и даже если искать производную для мувинга, то нужно помнить, что работаем мы на правм его краю и область справа не определена!

В этих условиях лучше не мудорствовать лукаво и использовать двуточечную схему. Она ещё и очень эффективно (по сравнению с точной) подавляет шумы.

 
TheVilkas >>:

Как я понял производную требуется найти численно, для начала,

как здесь справедливо было сказано, что Производная это отношение

приращения значения функции к приращению значения аргумента:

1.Вычисляем значение функции F0

2.Возмущаем параметр(ы) x поочередно на h

и вычисляем F(x1+h),F(x2+h),....F(xn+h)

3.Находим производные по каждому аргументу-параметру:

dF(x1)=(F(x1+h)-F0)/(2*h),

dF(x2)=(F(x2+h)-F0)/(2*h),

.......................................

dF(Xn)=(F(xn+h)-F0)/(2*h)


Поясните, силь ву пле: что такое h? Если это интервал (табличного, или как модно говорить "сеточного") задания функции - то это просто каждая соседняя точка и мы в Вашем пункте 2 просто тупо смотрим в таблицу - чтобы узнать значение функции. Если же это ДРУГОЕ ЧИСЛО, то нам надо сначала проинтерполировать нашу функцию по (внутри) заданным точкам - чтобы узнать (приблизить) её примерное поведение - это опять же будет очередное промежуточное приближение.

Для всех - на всякий случай напоминаю, что производная - это не "приращение функции", а ПРЕДЕЛ ПРИРАЩЕНИЯ функции, если аргумент (у нас это - время) мы устремляем каким-либо образом к нулю. Разница между этими определениями есть и порой бывает существенной. Мы не можем НАПРЯМУЮ наш аргумент "устремлять" к нулю - у нас ведь функция задана ТАБЛИЧНО, в дискретных точках ("на сетке").

 
TorBar >>:

Здесь получается точность порядка o(h) чтобы считать точнее есть 3-х 4-х 5-ти и т.д. точечные формулы для вычисления производной

как для середины интервала, так и для края интервала.


Например http://www.sitmo.com/eq/455 или https://en.wikipedia.org/wiki/Five-point_stencil

Эти формулы мне лично известны. Они выведены исходя из теории разностей и теории интерполирования функции. Обычно подразумевается интерполирование ПОЛИНОМАМИ (или по формуле Тейлора - во второй ссылке). То есть делается гипотеза о том, что функция "ГЛАДКАЯ" и ведёт себя как полином, интерполируется как полином и отсюда выводится ПРОИЗВОДНАЯ ПОЛИНОМА. Из-за погрешностей задания (измерения) функции и погрешности самого метода полиномиальной интерполяции - такой подход работает только на 3- 5 точках. При большем количестве точек полином "уезжает" в сторону (или в бесконечность) и соответственно и его производные.

В отличие от такого ограниченного способа - метод разности двух скользящих средних учитывает МНОГО ТОЧЕК. Фактически он является следствием теоремы Лагранжа о производной-касательной на отрезке гладкой функции.

 
AlexEro писал(а) >>

В отличие от такого ограниченного способа - метод разности двух скользящих средних учитывает МНОГО ТОЧЕК. Фактически он является следствием теоремы Лагранжа о производной-касательной на отрезке гладкой функции.

Да, если бы не ФЗ, неизбежная для сглаживания!

Как следствие, точное значение производной сильно запаздывает и при попытки её экстраполяции, мы возращаемся к тому, от чего стартовали - не гладкости исходного ВР.

 
Neutron >>:

Да, если бы не ФЗ, неизбежная для сглаживания!

Как следствие, точное значение производной сильно запаздывает и при попытки её экстраполяции, мы возращаемся к тому, от чего стартовали - не гладкости исходного ВР.

Да, это так. Фактически указанный Вами метод является СРАЗУ-СГЛАЖИВАНИЕМ ПРОИЗВОДНОЙ, проскакивая через стадию её непосредственного вычисления. Так сказать "вычисление с хвоста". Результатом есть не сама производная, а сразу же СГЛАЖЕННАЯ с интервалом 1 (один) производная. Что для целей теханализа даже более предпочтительно.

Что же до фазовой задержки, то это естественно, поскольку скользящая средняя является ФИЛЬТРОМ НИЗКИХ ЧАСТОТ, и как и ЛЮБОЙ ФИЛЬТР, просто обязана иметь задержку.

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