Смотри, как бесплатно скачать роботов
Ищи нас в Twitter!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Скрипты

Статистический анализ отклонений цены на заданных участках - скрипт для MetaTrader 4

Просмотров:
3022
Рейтинг:
(1)
Опубликован:
2009.06.13 11:46
Обновлен:
2014.04.21 14:53
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

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 файла не записываются)

JS_Signal_Baes JS_Signal_Baes

Эксперт на основе индекатора Signal_Baes

JS_SISTEM_2.1 JS_SISTEM_2.1

Эксперт переделан под дц с 5 знаками

w35260 w35260

за гранью перерисовки Slope Direction Line, взгляд по другому...

Предсказатель на основе самообучающейся нейронной сети Предсказатель на основе самообучающейся нейронной сети

Индикатор, использующий нейронную сеть прямого распространения, которая самообучается методом обратного распространения ошибки.