Нейросетевая торговая система Meta Trader 4 + MATLAB. Пошаговая разработка. Издание второе. Андрей Дибров
Читать онлайн книгу.так как данную платформу мы в построении нашей системы использовать не будем, а я в данном случае использую ее как пример. Напишем скрипт для получения ценовых данных в 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, будут обучающие примеры закрытия дня для нейросети.
С помощью надстройки NeuroSolutions, выделив столбцы In1-In10, отформатируем их как входы.
А столбец Out как выход нейросети.
Аналогичным образом разобьем нашу матрицу построчно на обучающее множество.
И множество, которое мы будем использовать для анализа.
Теперь мы сформируем файлы для программы NeuroSolutions.
Откроем NeuroSolutions и нажмем кнопку NeuralBuilder.
Выберем модель нейросети