Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе - стр. 2
Важно! Данная книга ориентирована на 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);
}
//+-+
Запустив данный скрипт – в папке …MQL4/Files каталога данных терминала, получим файл “history”.
Откроем этот файл и добавим в начале десять столбцов In1-10 и один столбец Out.
Заполним эти столбцы Данными из столбца CloseD. Как Вы уже поняли, это данные дневных закрытий.
Далее мы сдвинем эти данные в наших столбцах последовательно на одну ячейку вверх.
Таким образом, мы получим в каждой строке вектор из дневных цен закрытия с глубиной в десять дней – это будут входы нейросети. А в столбце Out, который также сдвинут на один день вперед по отношению к In10, будут обучающие примеры закрытия дня для нейросети.