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

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




Для лучшей визуализации расширим окно Average Cost и нажмем кнопку Start. Подождем, пока закончится обучение.



Жмем кнопку Testing, Next и в выпадающем окне выбираем Production. С помощью кнопки Browse находим файл ProductionInput.



Двигаемся далее и в следующем окне активируем радиокнопку Export to a File. И находим заранее созданный нами текстовой файл с, допустим, выбранным нами именем Prod. txt.



Нажимаем кнопки Next и Finish. Таким образом, мы экспортировали отклик нейросети для тестирования в файл Prod. txt. С помощью кнопки Save, сохраним нейросеть.



Данные из файла Prod. txt подставим в файл history. csv рядом с Tag Data «Production». В соседнюю ячейку вставим формулу условия совершения сделок на покупку.



В соседнюю ячейку вставим формулу условия совершения сделок на продажу.



В соседнюю ячейку вставим формулу суммирования сделок.



В соседнюю ячейку вставим формулу суммирования и заполним этими формулами ячейки до конца истории.



Далее вставим график нашей условной прибыли.



Как мы видим – график прибыльности у нас идеальный. Хотя мы в процессе обучения и тестирования допустили некоторые ошибки и обучали нейросеть всего на одном входе. Далее мы протестируем, обученную нейросеть на данных, которые будут к нам поступать реально. Т.е. в формуле ячеек колонки «In» мы будем использовать локальные максимумы и минимумы, которые мы записали в файл «history. csv» с помощью индикаторов «Max» и «Min».



Введем формулу, подставив вместо High и Low дня, локальные максимумы и минимумы.



Еще раз воспользуемся надстройкой NeuroSolutions для создания Production Input File.



Запустим программу NS6 и в ее среде откроем сохраненную ранее нейросеть. Протестируем теперь измененные данные.



Изменим формулы условий совершения сделок. Сделки будем открывать по открытию следующего часа после достижения локальных максимумов и минимумов. Закрывать будем по закрытию дня.



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

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

Индикаторы, используемые для обучения НС, являются пользовательскими, т.е. написанными на языке MQL автором этой книги, но в тоже время они являются производным от классических. Это сделано исходя из логики обучения НС. Нам необходимо готовить нейросеть для принятия решения на открытие позиции внутри дня – по достижению максимума или минимума периода. Для повышения качества нам необходимо заглянуть на несколько периодов назад и математически описать уровни исследуемых торговых дней. А так же использовать движение цены внутри дня. Исходя из вышесказанного, индикаторы являются двухуровневыми, т.е. используют два периода графиков – дневной и часовой (хотя предусмотрена возможность использовать и другие периоды). Еще одной особенностью является то, что для обучения нейросети на покупку и продажу используются модифицированные индикаторы. Далее будут предоставлены описания индикаторов и их коды.