Меню

Статистический анализ отклонений цены на заданных участках

  •    Автор:  TTraders
Cкрипт для анализа распределений отклонения цены на заданных сигналами участках. Возможно кому то покажется полезным. Код "не вылизан", но тем не менее, работает. Меня, главным образом, беспокоит быстродействие скрипта, вернее его медленность. Знающие люди сообщили, что это все результат неоптимальности алгоритма. Что мог, изменил, но скорость сильно не увеличилась. Возможно кто то, просмотрев код, укажет на ошибки- буду признателен.

Алгоритм таков: 1. Определяю события для начала и конца "зоны покупок" и "зоны продаж", например, самое простое- изменение направления OsMA, пересечение MA или появление "молота"/"камня". 2. Внутри зоны нахожу максимальные отклонения цен в пунктах (с учетом спреда): для зоны покупок- положительным отклонением будет движение вверх, отрицательным- вниз, для зоны продаж,соответственно- наоборот. Т.о., для каждой встреченной на истории зоны, получаю два показателя: максимальные положительное и отрицательное отклонение. 3. Строится распределение полученных значений. 4. Считаю: на какое отклонение/просадку могу расчитывать с заданной вероятностью для выбранных сигналов (правил обнаружения зон). В общем, получается некий анализатор состоятельности сигналов на вход и выход. Для себя определил, что если с вероятностью 50% для выбранной зоны положительное отклонение будет не меньше величины Х, а просадка не больше величины Y, и при этом X>Y, то можно считать такой сигнал состоятельным.

Сам скрипт разделен на 3 части: 1. "01_Events.mqh" (в папку Include)- содержит 1) описание базовых (простых) событий (например: возрастание цены на предыдущем баре, изменение направления OsMA и т.д.) и 2) описание функций обнаружения начала/конца зоны покупок/продаж (функция от комбинации базовых событий). 2. "02_Dev.mqh" (в папку Include)- расчет отклонений, сегментирование отклонений и построение распределний, запись полученных значений в файлы, представлено все в виде функции, возвращающей значения X или Y- значения отклонений с заданной вероятностью. 3. "03_Start.mq4"- запускающий скрипт, содержит переменные задающие: 1) бар конца расчета (по умолчанию - 0), 2) глубину расчета (по умолчанию- Bars), 3) номер (код) анализируемого событиия описывющего зоны, 4) заданную вероятность при которой получаем значения X и Y, 5) набор переменных p1-p5, передающих параметры в функции обнаружения сигналов, 6) верхние и нижние границы для этих параметров при необходимости прогонки по множеству параметров (этот элемент- что то вроде оптимизации в тестрере), 7) служебную переменную, определяющую (1) записываем ли файл с исходными данными по полученными отклонениям в заданных зонах или (0) записываем файл со значениями X и Y для заданных вероятности и набора параметров p1-p5.

На выходе получаем: при служебной переменной равной 1: 2 файла с исходными данными по зонам для заданного набора параметров (содержат: начало/конец зоны, положительное отклонение, просадку, длительность зоны, длительность до появления положительного отклонения/просадки), 2 файла с распределениями ценовых и временных отклонений, при служебной переменной равной 0: файл со значениями X и Y для заданных вероятности и набора параметров p1-p5 (при этом первые 4 файла не записываются)

 

01_Events.mqh  02_Dev.mqh  03_Start.mq4

Перейти вверх

Добавить комментарий


Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

C чего начать

Типы

Анализ

Обучение

Инвестиции

«Поделиться»

18+

обновить