Генетический алгоритм. Шаг 20. Нейросеть торгует на виртуальной бирже |
Автор megabax | ||||||||||||||||||||||||||||||||||||||
24.10.2011 г. | ||||||||||||||||||||||||||||||||||||||
Генетический алгоритм. Шаг 20. Нейросеть торгует на виртуальной биржеВ свой программе "Редактор нейросетей" добавил возможность эмуляции торговли на бирже (см. анонс урока). Доработал саму нейронную сеть, создал в ней возможность подавать сигналы на покупку и продажу. В общем, скелет программы готов: она торгует на виртуальной бирже, но пока не ставит ни стоп лоссов, ни тэйк профитов. Так же еще отсутствует контроль маржин колла. И у меня возникла дилемма, в каком направлении двигаться: или "допилить" блок торговли, а уже потом писать модуль обучения, либо сначала написать модуль обучения, а уже потом "допиливать" его совместно с блоком торговли. Решил все таки второе, так как очень уж хочется увидеть, чему же способна научиться нейронная сеть. И так, сначала я протестировать, правильно ли отрабатываются сигналы. Для этого вывел в текстовый файл историю стоимости виртуального портфеля и размера виртуальных денежных средств. И так, открываю файл, смотрю где изменяются денежные средства:
количество денежных средств уменьшилось, следовательно, это была покупка. Далее открываю график котировок, смотрю на данную дату график, есть ли сигнал: Судя по графику, сигнал отработал правильно, как и было задумано: три падающих (у каждой свечи close меньше, чем у предыдущей) свечи, одна растущая, покупаем, если трендовый фильтр на мувингах показывает растущий тренд. Аналогичным образом я проверил и другие сигналы. Программа действительно отрабатывает виртуальные сделки там, где есть сигнал. Можно переходить к следующему этапу - блок обучения. Его я решил построить на генетическом алгоритме, и сейчас я расскажу как он будет работать. И так, все весовые коэффициенты нейрости копируются в специальный массив "особь". Этот массив будет подвергаться мутации и скрещиванию. Для реализации я применю уже готовые алгоритмы, взятые с сайта http://jenyay.net, автор которого любезно разрешил использовать свои наработки. Скрещиваться будет каждый элемент массива с аналогичным (с тем же порядковым номером) элементом другого массива. Приводу цитату из алгоритма jenyay, как будут скрещиваться числа:
Если говорить простым языком, то числа переводятся в наборы битов, затем случайным образом делятся на две части, и новое число получается из "обломков" старых. Мутация происходит аналогичным образом: меняется случайный бит. После каждого цикла мутации и скрещивания происходит естественный отбор: лучшие особи остаются, худшие удаляться из списка. Тоесть, было допустим 200 особей, после мутации и скрещивания появилось еще 100 и стало 300. Массив особей сортируется, последняя сотня обрезается, остается снова 200, но это уже особи с лучшие параметрами. И так, на каждом цикле отбора характеристики особей улучшаются. И так, мой следующий шаг - добавить в редактор нейросетей блок обучения, основанный на генетическом алгоритме. Использованные в данной статье скриншоты, являются цитатами и иллюстрациями программного продукта "Quik", авторское право на который принадлежит "ARQA Technologies"
|
||||||||||||||||||||||||||||||||||||||
Последнее обновление ( 24.10.2011 г. ) |
« След. | Пред. » |
---|