NewBee путь к написанию торгового бота
И была у меня одна мечта: грести деньги лопатами, не работая на дядю. И из всех видимых в астрале путей, первый который я решился описать — механизированная торговля на финансовых рынках.
Вот только есть один нюанс — когда у тебя нет таланта ни в программировании, ни в финансах … придется вспомнить о том, что путь в тысячу ли начинается с первого шага … и первое, что следует при этом понять — в первую очередь при этом следует разобраться с затяжными депрессиями … ибо в отсутствии таланта гипоманиакальное состоянии только укажет тебе пути, ни один из которых не успеешь зарашить за Один месяц просветления, до очередных нескольких лет упадка сил.
Теория игр:
Несмотря на то, что ТИ в первую очередь использовали для решения экономических вопросов, сейчас на сайтах обучающих трейдингу ей практически не уделяется внимания. Единственное место рунета, где обсуждают ТИ и торговые стратегии это Хабр.
Я думаю, здесь крайне критичен недостаточный уровень интеллекта у большинства желающих обучиться торгам, чтобы извлеть от изучения ТИ практическую пользу. Все что я почерпнул из советов бывалых: для обдумывания экономической стратегии из всей ТИ важно уяснить 2 вещи:
Положительная сумма побед к поражениям:
Все игры с ненулевой суммой можно разделить на 2 группы: кухни — где основатели и возможно небольшая прослойка самых успешных игроков кормяться за счет основной массы участников. Простой пример форекс — в стабильном выигрыше те, кто имеет стабильный процент со сделок: Я как то создал виртуальный счет на форексе — в первые 3 дня сделал 8%, на что в те времена на банковском вкладе ушел бы год, а через пару недель уже обнулил счет.
Обратный пример биткойн времен роста криптовалюты — как то торгового бота подключили к игровой площадке хомячка — который решал: что, когда покупать, продавать. И грызун показывал стабильные прибыли не один месяц торгов…
Теорема о минимаксе:
Чтобы максимально увеличить шанс выигрыша, играя против намного более способных и опытных игроков — нужно в основе любой торговой стратегии в первую очередь стремиться к минимизации убытков.
Это чем то напоминает размен денег на опыт — чем медленнее промотаешь первый стартовый капитал — тем больше наберешься на этом опыта … будет опыт — будут и деньги.
Отсюда мораль — кухни лесом, играть нужно хотя бы на немного растущем рынке, короткие позиции перво наперво не рассматривать — если ты купил что-то упавшее в цене — то максимум ты потеряешь цену купленного, если ты продал что-то растущее в цене — то ты можешь потерять все.
No pain, no gain:
Казалось бы, чтобы ничего не потерять кроме времени, лучше всего играть на виртуальном счете… Но для чего вы думаете его вам заводят на кухнях? И за счет чего живут вам его сделавшие?
С другой стороны, почти бесплатно предоставляющие реальные счета говорят, что можно начинать с 1 тысячи рублей на реальном счете… скажем так с учетом диверсификации, крайне желательно иметь на нем минимум раз в 10 больше и придется учитывать, что акции по стоимости одной штуки сопоставимые с яндексом вам будут малодоступны.
Запоздавшее введение:
Итак ты можешь быть отличным программистом, способным написать бота за пару часов, в свою очередь способного спустить целое состоянии на неправильных позициях на неправильной бирже зайдя в нее в неправильный момент. А одна моя знакомая неудавшаяся медсестра, обучаясь в медицинском колледже, подрабатывавшая обучением торговле криптовалютой в студенческие годы … открыла свой частный медицинский центр, просто зафиксировав все прибыли перед падением криптобиржи …
Но с другой стороны если ты хороший программист, то число стартовых капиталов которые ты можешь потерять обучая бота торговле у тебя будет неисчерпаемо … и вспоминая мои старые добрые времена, еще тех времен, когда ив онлайн еще не оказуалили … найдя правильный торговый хаб, выбрав стабильные (казалось бы при чем тут стандартное отклонение способное оценить некоторые финансовые риски?) и пользующиеся спросом позиции, подкопив немного деньжат — можно вполне существовать в игре за счет торговли …, но без особого ума, удачи и связей … будут упущены реально более интересные источники доходов.
Так и хорошему программисту скорее всего гораздо прибыльней будет работать над интересным проектом, или пиша для кого-то торговых ботов …, но все-таки если есть мечта, то почему-бы не попробовать понять как движуться с прибылями финансовые потоки.
Что для этого потребуется — нулевым циклом можно попробовать обнулить виртуальный капитал на форексе, потом будет нужен стартовый капитал, который будет не жалко потерять … в современных реалиях скорее всего от 10 тысяч рублей, теоретически растущая биржа, удобный клиент для экспериментов — в современных реалиях мне пришлось остановить выбор на квик и понимание того, что перед тем как начать обучать бота, нужно в минимальной степени вначале обучиться самому, тому как не спустить на бирже целое состояние, работая ручками …, а потом обучить бота тому как давать сигналы, чтобы понять чем отличается машинное обучение от работы ручками … Если конечно ты не призер каггл, способный сразу пропустить первую пару тройку этих нубских этапов … который если еще не понимает как работает машинное обучение, но оно у него уже почему-то стабильно работает.
Итерация первая:
Кто-то более способный после обнуления на форексе, сразу бы залез за программирование, но я предпочел пролистать пару тройку книг по техническому анализу, поискал что-то по фундаментальному анализу — и понял, что я в нем ничего не понял.
Набрался смелости открыл счет на Московской бирже и постепенно закинул туда до 10 тыс рублей. В качестве брокера рекомендую поискать среди банков вменяемую Broker fee. Так как ее оплата оказалась вполне сопоставима с прибылями первой итерации и в несколько раз больше уплаченных государству налогов и комиссий бирже.
Торговая стратегия заключалась в том, чтобы покупать и держать в тех случаях, когда неправильное понимание технического анализа превращало меня из спекулянта в инвестора.
Take profit, stop losses.
Я думаю как только придет понимание, что технический анализ оказывается чуть более понятен чем фундаментальный, да еще вдобавок нагрянет небольшая депрессия, то главный навык который следует извлечь из первой итерации игры на бирже это постановка отложенных ордеров, которые будут фиксировать прибыли без истечения срока давности — так как вам вероятно быстро надоест смотреть на то, как очередной день вгоняет вас во все большие убытки, каждый день обновляя с началом торгов закрытие позиций по нужной вам цене… да и мало у кого из новичков найдется время каждое утро, с началом торгов изучать изменение ситуации на бирже.
А если отступит депрессия, то можно будет открытым на недельку другую ордером, попытаться организовать себе новые убытки, естественно по нужной нам цене… которую биржа может как достичь, так и не достичь. А самое главное когда окончательно надоест торговать, можно будет оставить бессрочные ордера на закрытие всех позиций с небольшой прибылью
Завершение первой итерации:
До вычета налогов, я на торговле акциями заработал около 68 рублей прибыли за 2 месяца, когда примерно закрылись с прибылью все убыточные с позиции годовых процентов позиции. Если посчитать за вычетом налогов годовой процент — получилось если не ошибаюсь около 3.6% годовых — что на том момент было чуть более чем в 2 раза менее выгоднее, чем процент даваемый по банковскому вкладу.
Все вялые попытки написать софт на голом питоне для оценки ситуации на бирже провалились.
Самое полезное, что я извлек из первой итерации — если освоить take profit, то торговать на бирже можно будет в любое удобное для вас время, необходимое время на торги уменьшается на порядок, как и нервозность в принятии решений на эмоциях — когда ставишь однодневные ордера ручками постоянно сверяясь с курсами акций.
Итерация вторая: торговля облигациями.
Конечно же процент прибылей более низкий чем по вкладу в банке никак не связан с опытом и образованностью банковских специалистов в отличие от меня, как и превращение из спекулянта в инвестора с длительным депресняком. Все что при следующем просветлении я подумал: на тот момент на рынке акций сложилась очень плохая ситуация с дивидендами … и как следствие, я попал в очень невыгодную ситуацию играя против профессиональных инвесторов, без амортизации моих решений массивными выплатами дивидендов.
И тут у меня родился второй бизнес план … казалось бы чем отличаются акции от облигаций? Первое что мне пришло в голову: что в трудной экономической ситуации выплаты дивидендов совсем не обязательны, а вот не выплаты купонов будут грозить банкротством. И я решил попробовать проинвестировать в облигации, казалось бы особого роста в их цене не должно ожидаться, но я буду получать более длительно чуть более высокий процент чем по вкладу в банке.
Скажу сразу — не стоит лезть в массивную торговлю облигациями без четкого понимания что такое дюрация, особенно на растущей ключевой ставке или растущих процентах по вкладам.
No pain, no gain v2:
Итак первые мои впечатления о дюрации были: если высокий процент по вкладу банки будут выплачивать от силы 3 месяца, то при высокой дюрации чуть более низкий процент по облигациям отобьется уже через 3–6 месяцев после снижения ставки по вкладам в банках. Поэтому я решив, что с акциями у меня для новичка получилось довольно неплохо, решил постепенно нарастить объем портфеля который не жалко потерять с 10 до 20 тыс рублей и вложиться в облигации
Казалось бы стоило лишь прикинуть когда пойдут проценты по вкладам вниз. А пойдут они вниз при подъеме экономики. И я большой нелюбитель путешествий, огляделся по своему району: недвижимость строится, ощущается дефицит коммерческой недвижимости на первых этажах, полки полны и оборот товаров хороший … и вложился в облигации в дюрацией по 2038 год.
Но тут появился небольшой ньюанс: рост ключевой ставки, а потом рост процентов по вкладам, вследствии чего большинство инвесторов стали более интенсивно избавляться от облигаций с большей дюрацией. И оказалось, что купоны покроют такое падение стоимости где-то через год … если конечно это падение остановиться.
Поняв, что в инвестициях я ничего не смыслю, остановил рост инвестиционного портфеля на 12 тыс рублей. В итоге инвестиционный счет с 68 рублей прибылей с прошлой итерации показал 450–500 рублей убытков (цены на облигации все таки колеблются).
Итерация третья: предтеча сигнального бота.
Если ранее я пытался писать на питоне всякую хрень, совершенно не дававшую мне понимания финансовых рынков. То после прошедшего психоза с гипоманиакальным состоянием, я почему-то за 5 дней в минимальном объеме разобрался с библиотекой pandas, до этого мне казавшейся совершенно неподъемной. И после третьего просветления у меня появились некоторые циферки, давшие мне чуть более полное понимание дюрации, чем оно объясняется на сайтах обучающих торговле:
В левой колонке облигации с небольшой дюрацией, в правой те, в которые я максимально вложился, пытаясь отыграть проигрыш. Последняя колонка показывает падение стоимости указанное в процентах годовых, произошедшее за количество дней, указанных в предпоследней колонке, исходя из предположения, что темпы падения будут сохраняться на протяжении всего года.
Если оценивать эту колонку с позиции убытков, то при меньшей дюрации у нас имеется примерно 4.5 периода из 15 когда падение стоимости облигаций было сопоставимо с с выплачиваемым купоном и в 1 периоде из 15 падение стоимости в 2 раза превысило размер купона. То в плане облигаций которыми я закупился, те теми у которых высокая дюрация 10 периодов из 15 падение стоимости было в 2–3 раза больше выплачиваемого купона и еще 2 периода из 15 сопоставимо с купоном.
Это так сказать небольшая отсылочка к теории игр, к той ее части, когда большинство игроков от игры с выбранными неправильными облигациями оказывается в серьезном минусе.
Советы и выводы:
Если вы не призер Kaggle, то перед обучением бота желательно самому разобраться как играть на бирже.
На низких скилах кодинга использование питона без pandas не принесет вам никакой полезной информации.
Прежде чем начать обучение игре на финансовых рынках следует найти растущую часть рынка и в соответствии с теоремой о минимаксе построить стратегию с основой на минимизации проигрыша.
Без понимания дюрации не стоит соваться на рынок облигаций с суммами которые вам будет жалко потерять.
Да и вообще, обучение торговле лучше начинать с минимальной суммы, которую вам не жалко потерять, и которая позволит провести диверсификацию вложений.
Эксперименты с ботами, лучше всего начать с сигнальных ботов, которые лишь подсказывают вам выгодные позиции для вложений.
Начало экспериментов лучше всего начать с Kaggle Learning, чуйка шепчет мне, что уже DecissionTreeRegression из первого туториала посвященного машинному обучению должна будет дать интересные сигналы.