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

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

И так… индикаторы —

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

– StoxasticPolzMinTest;

– StoxasticTurnMin;

– WilliamsPolzMaxTest;

– WilliamsTurnMax;

– MaPolzMin;

– MaPolzMax;

– McadPolzMin (включает в себя индикатор MaPolzMin);

– McadPolzMax (включает в себя индикатор MaPolzMax);

– Max-OpenOld (включает в себя индикатор Max);

– OpenOld-Min (включает в себя индикатор Min);

– Max;

– Min;

Индикаторы Max и Min используются также для формирования выборки обучения нейросети.

Я заранее извиняюсь, если код программ на ваш взгляд выглядит не профессионально, так как сам не является профессиональным программистом. Но это является и плюсом, показывая, что с задачами, описываемыми в книге, могут с успехом справляться и трейдеры без специального программистского образования.