Блог им. DenisVo

Обучение с подкреплением. Торговая среда для агента.

Всем привет.

Продолжаем искать волшебную таблетку :). Так как самим думать не очень хочется, а технологии шагнули довольно далеко вперед и сделали возможным использование нейронных сетей совместно c алгоритмами обучения с подкреплением, решил я попробовать, что же может из этого получиться.

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

Выглядят он так:

Обучение с подкреплением. Торговая среда для агента.



Все начинаеся с того, что агенту доступны певые 10 значений, и у нас есть всего 10 шагов, на которых мы должны получить максимальный результат. 
Агенту так же доступны 4 действия: купить, продать, пропустить шаг и закрыть открытую позицию.

По большому счету, агент просто должен запомнить 10 точек и соответсвующие действия, дабы получить максимальную прибыль.

Далее, взяв простого DQN агента, и два разных варианта среды: одна содержит только один сгенрированный ряд, вторая содержит два:

Обучение с подкреплением. Торговая среда для агента.


Получился вот такой интересный результат:

Обучение с подкреплением. Торговая среда для агента.



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

Если уже кто пробовал, поделитесь опытом?

Ну и конечно, если кто то заинтерисовался, сделал я видюшку с некоторыми подробностями касательно разработки самой среды. Есть русские субтитры.



ну и в описании к видео имеется ссылка на github с кодом.

★2
14 комментариев
баловство ведь
avatar
Куплю сигналы за $2000, Да иногда кажется, что все оно баловство, кроме инсайдерской торговли :)
Но с другой стороны, в игры то людей уже обыгрывают, машины ездят. 
Думать конечно, агенты, прям не могут, но кто знает, вдруг смогут найти некоторую статистическую закономерность 
avatar
CloseToAlgoTrading, имел ввиду ваше баловство
avatar
Куплю сигналы за $2000, Ну дабы понять куда двигаться дальше, имеет смысл начать с того, что можно легко проанализировать и понять как работает. Создать полноценную среду, в целом не составит большого труда, но надо же понимать куда двигаться, а так же сколько времени придется потратить на обучения агента. 
Однако, возможно я не понимаю, что конкретно вы имеете ввиду :)
avatar
CloseToAlgoTrading, дальше некуда, разум человека все равно обыграет робота.
avatar
CloseToAlgoTrading, в играх есть четкие правила, а на рынке их нет. Читали что-нибудь, про эффективность рынка? Грубо говорят — как только Вы найдете «баг в системе», он тут же исправляется системой.
avatar
Sir Dasfig, я более склонен к тому, что рынок все же большую свою часть времени не эффективен.
Что вы подразумеваете под четкими правилами? В играх их тоже может не быть
avatar
CloseToAlgoTrading, Вы написали выше, что «в игры то людей уже обыгрывают». Я правильно понимаю, что имелся в виду ИИ (компьютер)? Так вот обыгрывает людей он в шахматы и го, где правила четко определены. Назовите мне пару игр, где нет правил.
avatar
Sir Dasfig, ну та жа дота. Ясно что есть условия победы и поражения, но количество применяемых действий может быть вполне себе хаотичным. Или например автономные автомобили. Какие уж тут соблюдение правил со стороны других участников движения или пешеходов?
Так, а что рынок то, вы можете купить, вы можете продать, можете ничего не делать, можете хэджить. При малом капитале и большей ликвидности в бумаге, ваше действие вообще не заметно для рынка. 
avatar
CloseToAlgoTrading, у меня всего лишь 1 сомнение, что Ваши роботы будут умнее и быстрее роботов ребят, сидящих в Лондоне, Нью-Йорке и Сингапуре. Но, если Вы квант, имеющий отличное образование и знания в математике, статистике и программировании, то конечно надо этим заниматься. Удачи!
avatar
Sir Dasfig, ну если поставить цель зарабатывать на дневных движениях, то и не нужно соревноваться с ребятами в скорости. 
Ну и да… У меня тут скорее хобби :)
avatar
Куплю сигналы за $2000, это конечно очень спорное заявление :) да и надо ли роботу обыгрывать человека в данном случае тоже вопрос

avatar
Я учил. Писал среду сам под это дело. Оно умеет учиться, если вы скармливаете рабочие предикторы. Чисто на котировках — ничего толкового, во всяком случае у меня — не вышло. На предикторах, которые уже известно, что рабочие, агент смог что-то вытащить стратегию более менее стабильную. Но оптимизацией того же самого можно добиться в разы быстрее, при этом не нагревая воздух видеокартой. Ну может у вас и получится. Удачи.
avatar
day0markets.ru, согласен, чисто на числовых рядах будет ему сложно обучиться. Конечно если обучить на тренде и запускать на тренде, то все будет работать, но реальность более сложна. :)
Я думаю ему создать среду в виде игры, скармливать картинки с четко поставленными временными параметрами.
avatar

теги блога CloseToAlgoTrading

....все тэги



UPDONW
Новый дизайн