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

Нейросетевой советник - эксперт для MetaTrader 4

Просмотров:
23103
Рейтинг:
(9)
Опубликован:
2009.12.09 12:48
Обновлен:
2015.05.12 12:53
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу


Советник построен на базе нейросети Fast Artificial Neural Network Library

Используется библиотека fann2mql (c) Mariusz Woloszyn.

Подготовка

Для работы советника необходимо проинсталлировать эту самую библиотеку. Инсталляцию и ее описание можно найти в статье: Используем нейронные сети в MetaTrader (c) Mariusz Woloszyn.

В корневом каталоге диска С: создайте папку с названием "ANN", в которой будут храниться настроенные нейросети.

Для того, чтобы библиотека подключилась, также необходимо в терминале Меню "Сервис" > Вкладка "Советники" включить режим: "Разрешить импорт DLL"

Оптимизация (обучение сети)

Оптимизацию необходимо проводить при включенном генетическом алгоритме.

У советника всего два входных параметра для оптимизации (обучения нейросети):

StopLoss - уровень стопов. Настраивается значениями от 10 с шагом 1 до 100 для четырехзначных котировок (или от 100 с шагом 10 до 1000 для пятизначных).

x - настраивается значениями от 0 с шагом 1 до 1000000

На самом деле, в советнике используется только один входной параметр: StopLoss - уровень стопов.

Второй параметр x - фиктивный (после оптимизации его значение не имеет никакого смысла и может быть задано любым). Его задача - заставить генетический алгоритм советника прогнать как можно больше сеансов обучения (эпох) для наиболее оптимального уровня стопов (того уровня, на котором советник лучше всего обучаем). Генетический алгоритм все равно при оптимизации будет перебирать только 10000 вариантов, но при этом наибольшее количество из них придется на наиболее оптимальный уровень стопов.

Далее, необходимо в тестере стратегий выбрать инструмент (например, EURUSD), таймфрейм (например, Н1), установить режим "Оптимизация", модель "По ценам открытия", настроить и включить оптимизируемые параметры StopLoss и x (с вышеуказанными параметрами) и нажать кнопку "Старт".

По завершении оптимизации, мы получим в списке лучших "Результатов оптимизации" значение StopLoss при котором нейросеть лучше всего обучалась. Это самое значение и необходимо выставить в советнике для автотрейдинга.

Тестирование советника

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


Примечания относительно форвардных тестов

Если прогнать форвардные тесты, то видно, что участок вне выборки, на котором советник продолжает торговать профитно, не очень продолжительный. Тому есть разумное объяснение: для обучения сети в оптимизаторе терминала понадобилось несколько тысяч эпох - сеансов обучения. А в режиме теста, адаптация происходит всего на одной единственной эпохе.

Советник просто не в состоянии адаптироваться под нестационарность рынка, скорость обучения сети слишком медленная. Может показаться, что ражим адаптации в режиме теста необходимо зациклить? Нет, этого делать нельзя, т.к. если многократно гонять один и тот же паттерн в режиме обучения, то нейросеть обучается этому самому паттерну, но при этом постепенно "забывает" про остальные паттерны (разучивается).

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

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

P.S.

В советнике используется модель по ценам открытия баров. Гонять в режиме оптимизации по другим моделям нет никакого смысла - пустая трата времени и ресурсов компьютера. Можно только проверить на вшивость результаты оптимизации по модели эмуляции всех тиков.


Примечание: на некоторых процессорах можно ускорить процесс оптимизации, если включить параллельный режим. Для этого нужно в строке 29 исправить:

static bool Parallel = true;

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

Drag Trade v. 0.60 Drag Trade v. 0.60

Советник для торговли мышкой.

IBS_RSI_CCI_v3 IBS_RSI_CCI_v3

Модификация индикатора WKBIBS

Индикатор OrderBalans. Визуализация торговли Индикатор OrderBalans. Визуализация торговли

Данный индикатор поможет как при ручной торговле так и при тестровании торговых роботов.

JS.Уровни JS.Уровни

Уровни поддержки и сопротивления