Скачать MetaTrader 5

подскажите как сделать лучше

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Roman Kutemov
1866
Roman Kutemov  
Добрый день.
Подскажите как лучше сделать.
задача в советнике отмотать историю по барам назад, найти
10 максимальных отклонений цены от мувинга, которые больше delta и затем найти среднее этих отклонений.
Dmitry Fedoseev
47507
Dmitry Fedoseev  

Лучше не отматывать, а то слишком далеко придется отматывать. Можно сделать в индикаторе так, чтобы досчитывать только нулевой бар.

Для каждого бара вычисляем отклонение, если оно больше чем зафиксированное, то фиксируем новое. На баре пересечения цены и МА, если зафиксированное отклонение больше дельты, складируем его в отдельный буфер, обнуляем  максимальное отклонение, чтобы новое отслеживать. 

Для складирования максимальных отклонений используем  два буфера, в одном значения, в другом количество (типа указателя на последний занятый элемент).

Вместо буферов для отслеживания текущего максимального отклонения и для счетчика количества найденных отклонений модно использовать по паре переменных.

Остается только посчитать среднее. При желании и его можно сделать максимально оптимально, так, что бы старое значение вычесть, новое добавить. Но даже если среднее в цикле считать, будет достаточно быстро работать.

Думаю вряд ли написанное будет понятно, но тем не менее сделать возможно и написано как.

Roman Kutemov
1866
Roman Kutemov  

Дмитрий, добрый день.

в советнике этого не сделать ?

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

думал еще лучше разделить на отклонения вверх и вниз

Dmitry Fedoseev
47507
Dmitry Fedoseev  

При большом желании можно сделать что угодно и как угодно, но будет или ненадежно или тормознуто. Не предназначены советники для таких расчетов. Нет в советниках индикаторных буферов, и нет контроля обновления данных типа функции IndicatorCounted().

Roman Kutemov
1866
Roman Kutemov  

мне конечно индикатор такой не написать самому,

вы можете сделать, если вам не сложно и время есть ?

khorosh
10089
khorosh  
Stells:

мне конечно индикатор такой не написать самому,

вы можете сделать, если вам не сложно и время есть ?

Конечно сделает, но не бесплатно.)
Dmitry Fedoseev
47507
Dmitry Fedoseev  
Бесплатно что ли сделать... :) Сейчас попробую.
Roman Kutemov
1866
Roman Kutemov  
Integer:
Бесплатно что ли сделать... :) Сейчас попробую.
было бы здорово
Dmitry Fedoseev
47507
Dmitry Fedoseev  

Уфф....

Здесь. При желании можно сократить количество буферов, но тогда код будет непонятней. Еще можно расчет средних ускороить, но и так очень приемлемо.

Файлы:
iaverdiv.mq4 10 kb
Dmitry Fedoseev
47507
Dmitry Fedoseev  
Среднее отклонение вверх сверху (со знаком +), среднее отклонение вниз снизу (со знаком - ), средне в обе стороны сверху (со знаком +).
Roman Kutemov
1866
Roman Kutemov  

))

дело мастера боится !!!

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий