Блог им. iddqd3n

Решил диверсифицироваться алготрейдингом

Пока смартлаб соревнуется в медицинских познаниях, я решил монетизировать старые навыки. Я почти 20 лет (сам офигел, как подумал!) занимаюсь программированием, от php до с++, от мелких сайтов до игровых движков и ИИ компьютерных противников. А тут нарисовалась свободная неделя как раз. С 2017-го хотел этим заняться, внеплановые каникулы наконец-то позволили.

В прошлое воскресенье прочитал мануалы по Lua/QLua (+1 ЯП в базу знаний) и спецификации по Квику, полистал форумы, глянул пару примеров, 10-12 часов работы… и простенький бот готов. Первое впечатление — это мало отличимо от программирования ИИ персонажей компьютерных игр :) Те же циклы, коллбэки, статусы, принятие решений, отслеживание их выполнения и т.п.

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

Был забавный момент, когда подвис инет, и бот выставил пару лишних сделок, т.к. не получил инфу о старых заявках и не смог их вовремя снять. Но что-то подобное я и ожидал, поэтому и начал сразу на реальном счету, чтобы знать, где затыкать реальные дыры с минимальным ущербом. А в остальном всё заработало с первого раза, можно сказать. Причём даже так, как надо. Что странно :D

Что ещё более странно — я даже денег заработал.

Зачем мне это?

1) Диверсификация, как ни странно, можно 5-10% денег выделить. У меня уже есть аналогичный счёт для краткосрочных спекуляций (трейды от пары дней до пары месяцев) и хеджа основного инвестсчёта, теперь будут ещё и роботы.

2) Этот же движок я адаптирую под ИИС, но не для спекуляции, а для ловли шпилек вниз на нужных мне тикерах. Вечером часто вижу, что нужные мне инструменты днём просаживали куда ниже той цены, что меня устраивает, а каждое утро ставить десятки лимиток как-то не айс, тем более лимитки блокируют деньги на счету, на всё сразу я вряд ли смогу их наставить.

3) Это прикольно, в конце концов! Я будто вернулся в ~2006-й, когда сидел ночами и отлаживал поведение виртуальных болванчиков.
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
4.5К | ★3
33 комментария
Круто!

Трейдер с сильными скиллами по программированию рано или поздно должен «сойтись» в алготрейдера). Странно, что ещё не). 
avatar
Replikant_mih, ну я как бы и не трейдер вовсе :) У меня есть основной доход вне биржи, в основном я полупассивно инвестирую, а тут выдалось время, и я решил сделать то, насчёт чего руки давно чесались.

Сомнительно, что я выделю какой-то внятный лимит под это дело, но даже если эти 5-10% будут показывать динамику не ниже инвестиций — я всё равно в плюсе чисто математически :)
avatar
Денис Г., А, ну ясн. Ну тогда это вопрос не только скиллов, но и предпочтений, предрасположенности. Те, кому подходят инвестиции и те, кому более активный трейдинг — обычно разные люди, да. Ну удачи в новом начинании в любом случае! :)
avatar
А что архитектуру сразу взяли помойную? На метаке 5 быстрее все можно сделать.
ну хоть так
avatar
Зачем мне это?
Я бы спросил о другом — почему через 20 лет программирования?
Ведь можно было и через 30! ))
avatar
Бэк тесты зря игнорируете. Я не говорю о десятках лет, но несколько месяцев бэктеста не повредит, а уж потом на виртуальные сделки с ловлей багов- хотя бы неделя. Ну, а дальше уже и на реал можно.
Ну, а неск дней реала — эт пока ни о чем.
avatar
В бэк тесты не верите- сольете в итоге, имхо. Бек тесты обязательны. Только по ним можно найти закономерности и никак иначе. Написать робота по задумке много времени не надо. А вот стабильного и профитного без бек тестов, увы, не выйдет. Рынок меняется все время и только бек тестами его можно быстро подкрутить. Кто говорит, что в бек тесты не верит или это подгон, просто не умеет готовить:) бек тесты надо не на индикаторах делать, а только логикой без всяких индюков, имхо, и тогда не будет никаких переоптимизаций. Но подкручивать придется любого Со временем. Нет таких граалей навсегда
avatar
GoodBargains, у меня есть несколько ботов, которые я несколько лет подкручивал, а сейчас они уже пару лет без подкрутки и не подвели на текущей сверхвысокой воле, а наоборот, заработали сверх прибыли, тк был там и анализ 2008 года… Как то так. Без бектестов ваще нереально
avatar
GoodBargains, я не использую индикаторы и не пытаюсь угадать движение цены :) Я использую примерно ту же стратегию, что и на ручных спекуляциях, просто робот может позволить:

1) Почти неограниченное внимание за неограниченным количеством инструментов.
2) Куда бОльшую частоту сделок, чего я никогда не буду делать руками, хотя и робот за неделю даже сотни не сделал :)

Это не совсем классический трейдинг, это скорее попытка делать то, что я делаю будучи инвестором, только в более мелком масштабе и в сотни раз чаще :)
avatar
Денис Г., тем более нужен бек тест, тк 99 кажущихся рабочими логик не рабочие:) Вы руками ещё и в плюс торгуете интрадей, особенно на текущем рынке?
avatar
GoodBargains, 
Вы руками ещё и в плюс торгуете интрадей, особенно на текущем рынке?

Нет конечно :) Интрадей я не торгую вообще и никогда не собирался. Как-то не прельщает :) Для «рук» у меня, грубо, два счёта (точнее, два пула счетов) — примерно 95/5 долгосрок/краткосрок. Причём мой краткосрок — это до пары месяцев.
avatar
GoodBargains, все верно. А еще как минимум бектесты помогают выявить какую-нибудь тупую ошибку в коде. И это уже совсем тупо ставить алгоритм с таким дефектом на реал… Часто логика стратегий такая сложная (хотя бы из-за того, что нужно обрабатывать большое число исключительных ситуаций, каждая из которых в себе тоже может нести по нескольку новых таких), что без тестирования ошибку никак не найдешь.
avatar
А какой у вас основной метод инвестиций?
avatar
dendisa, на основе asset allocation. Есть и отдельные акции/облигации, и фонды. Есть полностью пассивная часть, есть немного более активная, но в целом сделки месяцами не совершаю.
avatar
Бэктэсты — фигня, деньги — наживное. Главное, чтобы мана росла и скилы прокачивались! 
avatar
bocha, странно от вас это слышать про бектесты
avatar
GoodBargains, да я-то как раз бэктестирую, но кто я, чтобы советовать настоящим сталеварам  ))
avatar
Т.к. я не верю в бэктесты и демо-счета
А это не вопрос веры) Это способ проверить, ваш робот работал бы раньше или нет. И если он раньше работал, то шансы что он в принципе работает выше. Особенно если вы используете закономерности, которые существуют уже лет 10.
avatar
а почему Lua именно? а не Python к примеру
avatar
Alex Yeskov, конкретно мне нет смысла. Lua встроен, не надо ничего городить. Возможно, придётся что-то запилить отдельно для уведомлений на телефон, но это мелочи.
avatar
Денис Г., встроен куда? как sdk/api в какую-то систему? извините, я не в теме… трейдингом занимался и программированием по отдельности, тоже только начал интересоваться
avatar
Alex Yeskov, в самом квике встроена виртуальная машина Lua, поэтому там эти скрипты «как родные». Всё остальное по факту цепляется через неё же по схеме quik <-> lua <-> внешний мир.
avatar
Денис Г., понял, спасибо! с Lua я сталкивался в универе в Германии, его для моделирования разных временных процессов используют активно, а также потом узнал что и в геймдеве… видимо рынок в ту же категорию попадает :)
avatar
Alex Yeskov, ага, Lua — быстрый и мощный скриптовой ЯП со свободной лицензией, для встраивания самое то.
avatar
 Что выходит квик до сих пор не исправили этот баг, когда при зависании теряется id и идет черть е че с задвоением, затроем сделок и тд???? Неужели? Я эту ерунду ещё лет 5-6 назад заметил. Ну вот это квиковцы)))
avatar
GoodBargains, id не совсем потерялись… События просто пришли не по порядку — сначала сделка сработала, а потом уже пришли статусы транзакций :) Что немного снизило смысл дефолтных коллбэков и заставило написать свою очередь с перепроверками.

Ну а множественные коллбэки на одни и те же сделки — это как я понял фича :) Каждый реконнект срабатывает по коллбэку на каждую сделку (даже давно выполненную) на каждое открытое окно сделок. Изврат конечно, непонятно применение на практике, ну т.е. о чём разработчики думали в этом случае.
avatar
Денис Г., колбэки — ненадежная конструкция, хотя и удобная. Надежнее анализировать таблицы лимитов по деньгам, и бумагам. Там косяки гораздо реже (если не считать задержки при нагрузке). 
avatar
SergeyJu, ага, понял это в первый же день на реальном сервере :)
avatar
SergeyJu, как раз наоборот. Надежнее отслеживать колбэки по ордерам и сделкам. Лимиты могут не обновляться часами, когда сервера начинают тупить.
avatar
Денис Г., 
То что колбэки на транзакции, ордера и сделки приходят асинхронно — это технология биржи, а не кривые разрабы. Да, сделки могут приходить раньше отчета о транзакций и могут приходить повторно при переподписке. Это надо учитывать в коде.
avatar
yurikon, а иногда колбеки вообще не приходят. И я видел такие жуткие про… бы на этой почве, что не дай Бог. 
avatar
SergeyJu, такое бывает очень редко против обновления лимитов. Для безопасности можно сравнивать две временные метки — время последнего колбэка и время последнего апдейта по лимиту. Если после апдейта по ордеру лимит не изменился, то он не валидный.
avatar

Читайте на SMART-LAB:
Обновление кредитных рейтингов в ВДО и розничных облигациях (АО «Эффективные технологии» понижен до ruC, ООО МФК «Джой Мани» повышен ruBB)
🔴АО «Эффективные технологии» « Эксперт РА» понизил рейтинг кредитоспособности до уровня ruC и изменил прогноз на развивающийся. По рейтингу...
Сигнал Банка России оказался жестче, чем ожидалось
Банк России 19 июня ожидаемо снизил ключевую ставку, но шаг снижения вместо уже ставших привычными 0,5 процентного пункта (п.п.) был сужен до 0,25...
Фото
От базового до продвинутого: выбираем свой план TradingView
TradingView предлагает пять уровней подписки: бесплатный Basic и четыре платных — Essential, Plus, Premium и Ultimate. Tickmill делает...
Фото
Заседание ЦБ, какие прогнозы и какие возможности?

теги блога iddqd3n

....все тэги



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