Оценить:
 Рейтинг: 2.67

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

Год написания книги
2018
<< 1 2 3 4 5 >>
На страницу:
3 из 5
Настройки чтения
Размер шрифта
Высота строк
Поля

iOpen (NULL,60,i),

iOpen (NULL,60,iBarShift (NULL,1440,iTime (NULL,60,i))),

iHigh (NULL,60,iBarShift (NULL,1440,iTime (NULL,60,i))),

iLow (NULL,60,iBarShift (NULL,1440,iTime (NULL,60,i))),

iClose (NULL,60,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);

}

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

В результате работы скрипта получим файл. Создадим колонку «In» и заполним ее формулой.

Добавим колонку «Out» и заполним ее формулой.

Воспользуемся программой «NeuroSolutions 6». С помощью ее надстройки колонку «In» обозначим как «Input».

А колонку «Out» как «Desired».

Энное количество строк обозначим, как «Training»

Энное количество строк обозначим, как «Cross Validation».

И последние строки как «Production».

Далее создадим файлы для NS6.

Запустим в рабочей среде NS – NeuralBilder.

Здесь мы можем выбрать нейросеть нужной нам архитектуры. Остановимся на первой сети Multilayer perceptron. Нажимаем кнопку с правыми стрелками. Откроется окно Training Data. С помощью кнопки Browse откроем файл TrainingInput.

Далее перейдем в окно Desired Response и откроем файл TrainingDesire.

Откроем окно Cross Val. & Test Data. По умолчанию активно окошечко для ввода текста % of training data for CV. Введем 10%. Программа автоматически зарезервирует данное количество строк под CV из TD. Активировав радиокнопку Read from Separate File, мы можем выбрать файлы сохраненные, нами ранее.

Далее продвигаемся по окнам ничего в них, не меняя, пока в рабочей среде не сформируется нейросеть.

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

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

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

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

– StoxasticPolzMinTest;

– StoxasticTurnMin;

– WilliamsPolzMaxTest;
<< 1 2 3 4 5 >>
На страницу:
3 из 5