Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе Дибров Андрей

Предисловие

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

По прочтению этой главы – вы самостоятельно создадите исполняемый файл ExpertPrimer.exe, который представляет собой обученную нейронную сеть. В главе “Нейросети Matlab+MT4” вы найдете инструкцию, как оформить интерфейс этой программы с помощью GUI Matlab. Ниже представлены индикаторы, скрипты и эксперты, которые вы будете использовать при создании своей первой нейронной сети.

Рис.15 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

А здесь вы можете посмотреть пример результата работы с шаблоном https://youtu.be/o9DAvnzCDlU. Как мы видим, после всей подготовительной работы по выстраиванию системы и на ее основе торговой стратегии, весь этот процесс занимает несколько минут. В конце видео показана для сравнения работа автоматической торговой системы готовой к реальной работе. По завершению тестирования на графике выводятся индикаторы, которые используются торговым экспертом. Одним из достоинств данной системы является то, что она кроме двух простейших индикаторов, использует в эксперте только ценовые данные. Все остальное делает нейросеть.

Почему я написал – первой? Эта нейросеть будет для вас шаблоном, который в дальнейшем вы сможете использовать для создания рабочей торговой системы, и на основе которой вы будете разрабатывать различные торговые стратегии. Например, вот какие индикаторы, скрипты и эксперты, я использую в системе, которую так же описываю в главе “Нейросети Matlab+MT4”.

Рис.31 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

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

Рис.5 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

Обратим внимание на тот факт, что тестирование проводилось в динамике. Т.е. в процессе совершенствования торговой стратегии, основанной на нейросистеме и в течение длительного времени примерно четырех лет.

В главе “Критические ошибки при разработке нейросетевой системы” я попытался рассказать о ”подводных камнях” при ее подготовке. И выделить особенно важный аспект – проведения тестов нейронной системы. Некоторую часть главы “Нейросети Matlab+MT4” мне также пришлось посвятить этой проблеме на примере рабочей нейросетевой системы – так как этот процесс неотъемлем от разработки торговой стратегии.

Так же в соответствующих главах книги я поднимаю проблемы логического обоснования обучения нейронных сетей перед принятием решения, что должно нам помочь осознать – какую сеть в результате мы хотим получить. И косвенно связанную с этой проблемой, проблему выбора временного периода исторических данных для обучения нейронной сети я поднимаю в главе “Использование синтетических баров для определения “спектра”.

Видеоуроки, облегчающие понимание обучения, тренировки и тестирования нейросетей и видеоролики примеров работы с пользовательскими индикаторами можно посмотреть на канале https://www.youtube.com/channel/UCScAAn_sRRaKHdNIxl0aI9A?view_as=subscriber

Для приобретения программных кодов индикаторов, скриптов и экспертов данной нейросетевой системы вы можете связаться с автором по адресу электронной почты [email protected].

Книга написана с учетом интересов всех категорий трейдеров, а так же тех читателей, которые готовятся заняться трейдингом. Хочется обратить внимание на тот факт, что в данной книге вы не найдете никакого теоретического материала по проблемам нейросетей и самого трейдинга. В любой литературе посвященной этим двум направлениям есть список трудов различных уважаемых авторов. Мне так же хотелось бы снабдить эту книгу таким же списком. Однако, увы, я этого не могу сделать, так как максимально постарался уйти от какой либо теории и психологии, которым в основном посвящена литература о трейдинге. Однако это не значит, что в свое время я не изучал подобную литературу и, что от нее нет пользы. Вот не полный список авторов, труды которых мною изучались – Чарльз Лебо и Дэвид В. Лукас, Юрий Жваколюк, Д. Ю. Пискулов, В. С. Сафонов, Шерри Де Ковни и Кристин Такки, Анна Эрлих, Александр Элдер, Джон Дж. Мэрфи. Но для понимания и практического применения материала представленного мною, в принципе, достаточно теоретической информации, которая подается на сайтах дилинговых компаний и официального сайта Matlab. То есть, любой читатель имеющий представление о трейдинге может выполнить пошаговую инструкцию из моей книги и получить готовую автоматическую нейросетевую систему торговли. Причем, при кажущейся сложности системы в итоге вы прейдете к пониманию, что конечный результат в плане применения программных кодов поразительно легок, но в тоже время самодостачен и функционален. Ведь основная нагрузка в данной системе происходит при обучении нейросетей. Но и здесь, вникнув в процесс, вы обнаружите, что настроив систему, обучение не занимает много времени, а можно даже сказать, что занимает мало времени. Однако нам все равно придется немного пофилософствовать в следующем разделе на тему логического обоснования обучения нейросетей на принятие решения. От этого обоснования во многом зависит конечный результат.

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

Видео с визуализацией работы исполняемых файлов нейронных сетей совместно с MT4 также можно посмотреть по ссылкам https://youtu.be/5GwhRnSqT78 – при обучении и компиляции использовалась программа Matlab, https://youtu.be/cIegQGJKbhY– при обучении и компиляции использовалась программа NeuroSolutions 6.

Логическое обоснование обучения нейросетей на принятие решения.

Прежде чем приступать к разработке любой торговой системы, мы задаемся вопросом – на каких принципах данная система будет функционировать? У нас есть два основополагающих принципа – использования флэтов и продолжение тенденции. Пока не будем рассматривать более узкие производные от них – внутри дневная торговля или нет, на фундаментальных данных, на новостях, на открытии рынков и т.д. Мне пришлось сталкиваться с описанием нейросетевых продуктов, где их авторы в примерах использования предлагали прогнозирование каких либо курсов – акций, валют и т.д. Приведем пример, используя платформу NeuroSolutions. Весь процесс повторять не обязательно, так как данную платформу мы в построении нашей системы использовать не будем, а я в данном случае использую ее как пример. Напишем скрипт для получения ценовых данных в MT4. Хочется обратить внимание на то, что при копировании программного кода из файла в формате PDF не сохраняется его стиль – все строки при переносе сохраняются без отступов. Так же могут быть скопированы номера страниц. Для текстовых редакторов эта проблема отсутствует.

//+-+

//|History.mq4 |

//| Copyright © 2009, Andrey Dibrov. |

//| "https://www.youtube.com/channel/UCScAAn_sRRaKHdNIxl0aI9A?view_as=subscriber"|

//+-+

#property copyright "Copyright © 2009, Andrey Dibrov."

#property link https://www.youtube.com/channel/UCScAAn_sRRaKHdNIxl0aI9A?view_as=subscriber

#property version "1.00"

#property strict

int file=FileOpen("history.csv",FILE_CSV|FILE_READ|FILE_WRITE,";");

//+–+

//| Script program start function |

//+–+

void OnStart()

{

//–

FileWrite(file,"Open;OpenD;HighD;LowD;CloseD;Max;Min;Date");

if(file>0)

{

Alert("Идет запись файла");

for(int i=iBars(NULL,60)-1; i>=0; i–)

{

FileWrite(file,

iOpen(NULL,60,i),

iOpen(NULL,1440,iBarShift(NULL,1440,iTime(NULL,60,i))),

iHigh(NULL,1440,iBarShift(NULL,1440,iTime(NULL,60,i))),

iLow(NULL,1440,iBarShift(NULL,1440,iTime(NULL,60,i))),

iClose(NULL,1440,iBarShift(NULL,1440,iTime(NULL,60,i))),

iCustom(NULL,60,"Max",0,1440,60,0,i),

iCustom(NULL,60,"Min",0,1440,60,0,i));

TimeToStr(iTime(NULL,60,i)));

}

}

Alert("Файл записан");

FileClose(file);

}

//+-+

Рис.25 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

Запустив данный скрипт – в папке …MQL4/Files каталога данных терминала, получим файл “history”.

Рис.9 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе
Рис.10 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

Откроем этот файл и добавим в начале десять столбцов In1-10 и один столбец Out.

Рис.24 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

Заполним эти столбцы Данными из столбца CloseD. Как Вы уже поняли, это данные дневных закрытий.

Рис.35 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

Далее мы сдвинем эти данные в наших столбцах последовательно на одну ячейку вверх.

Рис.6 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе
Рис.41 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

Таким образом, мы получим в каждой строке вектор из дневных цен закрытия с глубиной в десять дней – это будут входы нейросети. А в столбце Out, который также сдвинут на один день вперед по отношению к In10, будут обучающие примеры закрытия дня для нейросети.

Рис.13 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

С помощью надстройки NeuroSolutions, выделив столбцы In1-In10, отформатируем их как входы.

Рис.0 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

А столбец Out как выход нейросети.

Рис.36 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

Аналогичным образом разобьем нашу матрицу построчно на обучающее множество.

Рис.44 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

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

Рис.37 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

Теперь мы сформируем файлы для программы NeuroSolutions.

Рис.23 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе
Рис.28 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

Откроем NeuroSolutions и нажмем кнопку NeuralBuilder.

Рис.1 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

Выберем модель нейросети Multilayer Perceptron.

Рис.8 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

Нажмем кнопку Browse…

Рис.43 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

И откроем файл с обучающими входами.

Рис.39 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе
Рис.40 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

Далее откроем файл с обучающим выходом.

Рис.33 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе
Рис.14 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

Определим 30% данных из тренировочного множества для перекрестной проверки в процессе обучения нейросети. Жмем кнопку Next до тех пор, пока не сформируется нейросеть.

Рис.38 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе
Рис.27 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе
Рис.16 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе
Рис.17 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе
Рис.42 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе
Рис.26 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе
Рис.29 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

С помощью кнопки Start и запустим процесс обучения.

Рис.20 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе
Рис.11 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

После завершения процесса обучения нажмем кнопку Testing.

Рис.30 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе
Рис.2 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

В выпадающем списке выберем Production.

Рис.4 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

Выберем файл с данными для анализа.

Рис.7 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе
Рис.3 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

Создадим текстовой файл Prod.

Рис.32 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

И экспортируем в него данные с результатами, полученными от нейросети.

Рис.21 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе
Рис.34 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

Откроем файл Prod и скопируем из него отклики нейросети.

Рис.22 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

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

Рис.19 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе
Рис.18 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

Поместим эти данные на график.

Рис.12 Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе

Результат вроде бы нас должен устроить. Кажется, что полученный результат хорошо накладывается на график цен закрытия. Однако, увеличив масштаб, мы обнаружим, что

график отклика нейросети, хоть и повторяет график цен, но на один шаг от него отстает. Причем это не зависит – прогнозируем ли мы ценовые данные или производные от них. Исходя из этого, мы можем вывести какой-то постулат. Например – “То, что для нас – вчера, для нейросети – сегодня”. Согласитесь, что здесь, в принципе, ни о каком прогнозе речи идти не может. Однако, забегая вперед, отмечу, что данный вариант, при определенной доработке мы так же будем использовать. Но, мы бы, конечно, хотели бы использовать постулат – “То, что для нейросети сегодня, для нас – завтра”. Машина времени, какая то. Но мы с Вами ведь понимаем, что все-таки, самая лучшая нейросеть – это наш мозг. И то, мы можем использовать этот постулат максимум с 50% успехом (если мы говорим о вероятности да или нет), а то и хуже. Но ведь есть еще и третий вариант постулата – “То, что для нейросети – вчера, для нас – сегодня”. Разберем, что для нас означают эти постулаты в трейдинге:

Читать бесплатно другие книги:

Книга 1: Крипоть – таинственная игра, к которой нет скриншотов, гайдов и видео с прохождением. Игру ...
«После штиля жди бури», – говорят мудрецы. Наконец-то отданы все долги и раскрыты старые тайны… но п...
Ева Кац – журналист, блогер, интернет-маркетолог, создатель образовательного клуба для предпринимате...
В настоящей методологии содержится описание методов и подходов к планированию, актуализации и контро...
Бестселлер Чарльза Уилана об удивительном мире денег, банков и финансовой системы.Профессор Чарльз У...
Простота и ясность критически важны для выживания в наше время, основная характеристика которого – с...