Симулятор трейдера. Шаг 2.

Путь к автоматизации торговли акциями на российском фондовом рынке начался медленно и в горочку. Сразу со старта оказался тернист и каменист.От возникновения желания до мало-мальского прогресса прошло не мало времени. Ни какого прототипа за недельку не получилось. Приходила в гости демотивация, а я забивал и бросал проект.

Подробнее об этом в предыдущих записях:
Симулятор трейдера. Шаг 0.
Симулятор трейдера. Шаг 1.

robot

1. Как я торговал ДО.

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

Чтобы купить или продать акцию, мне нужно было найти эту акцию в терминале и заполнить следующую форму:

buy
Форма создания заявки на покупку или продажу

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

После того как я входил в позицию, не важно – длинную или короткую, на сервере брокера я создавал стоп-заявку. Форма создания стоп-заявки ничем не проще формы создания заявки на покупку/продажу. В эту форму надо было ввести условие выхода из позиции, рассчитанное каким-нибудь метафизическим способом на основе уровней или погоды. И потом еще каждый день обновлять значения в стоп-заявке, так как ситуация меняется.

stop-order
Форма создания стоп-заявки

Всю информацию об очередной сделке я заносил в таблицу excel-документа: что купил, когда купил, по какой цене, когда потом продал, по какой цене и в каких всё это объемах происходило. Какую прибыль или убыток получил. Логи и отчетики, только вручную. Информация нужная. Необходимо регулярно анализировать принятые решения и понимать как вся система работает.

Когда я еще учился базовым вещам меня не напрягал этот процесс. Было интересно, новый опыт. Но после того как освоился, выполнять рутинные действия,  где каждый раз значения в большинстве полях – одни и те же или вычисляются одним и тем же способом, стало скучно. Хотелось только принимать решения (пока ещё хотелось) и по нажатию на одну кнопку приводить эти решения в силу.

wizard_mickey_mouse-med

2. Разработка первой версии.

Наконец-то я приступил к разработке!

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

Клиент с теми самыми вожделенными кнопочками, автоматизирующими и упрощающими всё и вся, был разработан на WPF – на очередной знакомой мне технологии. И так же не доставившей мне никаких трудностей в процессе реализации задуманного.

А весь связующий функционал поместился в отдельном модуле, который изначально я хотел поместить в сервис windows для постоянной работы, но позже передумал и просто поместил в проект как отдельную библиотеку.

sceme
Как-то так

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

client_robot_tab
Приложение на WPF

3. Как я торговал ПОСЛЕ.

Торговать продолжал вручную. Теперь заполнял не огромные и неудобные формы в терминале Quik, а в своём собственном ламповом приложении. Нажимал на кнопки и отправлял команды, объединяющие в себе логические последовательности операций. Все действия записывались в хранилище.

При этом я сам продолжал принимать решения – когда какую акцию купить или продать. Нужно было следить за ситуацией, определять текущие уровни акций и выставлять значения стоп-заявок. Благодаря автоматизации я смог увеличить количество акций за которыми следил одновременно с 4 до 9 штук, продолжая укладываться в выделенное на хобби время.

Многие действия всё еще требовали моего участия.

automatisationCat
Ура!

 

4. Статистика.

Теперь любая операция писалась в хранилище, и можно было строить отчеты для анализа и рефлексии. С октября по декабрь 2015-го года я продолжал вручную принимать решения и отдавать команды, используя своё приложение, и копил статистику.

oct-dec-months2015
В основном убытки, что ожидаемо.

Ниже список всех сделок за три месяца. Зеленый ряд – сделка была прибыльная. Красный ряд – сделка была убыточной.

trading_oct_dec_2015
Список всех сделок с октября по декабрь 2015-го года

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

Я считаю, что количество красных рядов даже в прибыльной системе всё равно будет больше. Просто красные ряды будут давать маленькие убытки – быстрое определение убыточного тренда. А зеленые ряды пусть будут и реже, но будут давать большую прибыль – вхождение в прибыльную позицию и долгое движение по ней.

Как там будет на самом деле, покажет время. Есть большая вероятность, что я во всём ошибаюсь.

5. Заключение.

Приложения было не достаточно. Я не мог конкурировать с трейдерами, торгующими весь день. Происходили различные события и на них надо был своевременно реагировать. Были ложные пробои стоп-заявок. Я регулярно пропускал торговые дни. Всё это приводило к убыткам.

Нужно было как-то исправлять сложившуюся ситуацию – создавать полноценного конкурента full-time трейдерам.

Leave a Reply

avatar
  Subscribe  
Notify of