Нейросетевая торговая система. Пошаговая разработка для платформы Meta Trader 4 в среде MATLAB. Сокращенное издание - страница 3

Шрифт
Интервал



if (file> 0)

{

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

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

{


FileWrite (file,


iOpen (NULL,1440,i),

iHigh (NULL,1440,i),

iLow (NULL,1440,i),

iClose (NULL,1440,i),

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

}

}

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

FileClose (file);

}

//+ – — – — – — – — – — – — – — – — – — – — – — – — – — – +


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




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



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



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





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


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



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



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



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



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




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



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



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



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




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




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

Жмем кнопку Next до тех пор, пока не сформируется нейросеть.









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




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




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



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




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



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




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



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




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



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



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