iddqd3n
iddqd3n личный блог
29 марта 2020, 10:20

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

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

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

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

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

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

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

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

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

3) Это прикольно, в конце концов! Я будто вернулся в ~2006-й, когда сидел ночами и отлаживал поведение виртуальных болванчиков.
33 Комментария
  • Replikant_mih
    29 марта 2020, 10:33
    Круто!

    Трейдер с сильными скиллами по программированию рано или поздно должен «сойтись» в алготрейдера). Странно, что ещё не). 
      • Replikant_mih
        29 марта 2020, 13:54
        Денис Г., А, ну ясн. Ну тогда это вопрос не только скиллов, но и предпочтений, предрасположенности. Те, кому подходят инвестиции и те, кому более активный трейдинг — обычно разные люди, да. Ну удачи в новом начинании в любом случае! :)
  • А что архитектуру сразу взяли помойную? На метаке 5 быстрее все можно сделать.
  • astray
    29 марта 2020, 10:47
    ну хоть так
  • VladMih
    29 марта 2020, 11:04
    Зачем мне это?
    Я бы спросил о другом — почему через 20 лет программирования?
    Ведь можно было и через 30! ))
  • 3Qu
    29 марта 2020, 11:10
    Бэк тесты зря игнорируете. Я не говорю о десятках лет, но несколько месяцев бэктеста не повредит, а уж потом на виртуальные сделки с ловлей багов- хотя бы неделя. Ну, а дальше уже и на реал можно.
    Ну, а неск дней реала — эт пока ни о чем.
  • GoodBargains
    29 марта 2020, 11:22
    В бэк тесты не верите- сольете в итоге, имхо. Бек тесты обязательны. Только по ним можно найти закономерности и никак иначе. Написать робота по задумке много времени не надо. А вот стабильного и профитного без бек тестов, увы, не выйдет. Рынок меняется все время и только бек тестами его можно быстро подкрутить. Кто говорит, что в бек тесты не верит или это подгон, просто не умеет готовить:) бек тесты надо не на индикаторах делать, а только логикой без всяких индюков, имхо, и тогда не будет никаких переоптимизаций. Но подкручивать придется любого Со временем. Нет таких граалей навсегда
    • GoodBargains
      29 марта 2020, 11:26
      GoodBargains, у меня есть несколько ботов, которые я несколько лет подкручивал, а сейчас они уже пару лет без подкрутки и не подвели на текущей сверхвысокой воле, а наоборот, заработали сверх прибыли, тк был там и анализ 2008 года… Как то так. Без бектестов ваще нереально
      • GoodBargains
        29 марта 2020, 14:27
        Денис Г., тем более нужен бек тест, тк 99 кажущихся рабочими логик не рабочие:) Вы руками ещё и в плюс торгуете интрадей, особенно на текущем рынке?
    • tranquility
      29 марта 2020, 19:56
      GoodBargains, все верно. А еще как минимум бектесты помогают выявить какую-нибудь тупую ошибку в коде. И это уже совсем тупо ставить алгоритм с таким дефектом на реал… Часто логика стратегий такая сложная (хотя бы из-за того, что нужно обрабатывать большое число исключительных ситуаций, каждая из которых в себе тоже может нести по нескольку новых таких), что без тестирования ошибку никак не найдешь.
  • dendisa
    29 марта 2020, 11:36
    А какой у вас основной метод инвестиций?
  • bocha
    29 марта 2020, 11:40
    Бэктэсты — фигня, деньги — наживное. Главное, чтобы мана росла и скилы прокачивались! 
    • GoodBargains
      29 марта 2020, 12:18
      bocha, странно от вас это слышать про бектесты
      • bocha
        29 марта 2020, 12:27
        GoodBargains, да я-то как раз бэктестирую, но кто я, чтобы советовать настоящим сталеварам  ))
  • elektroyar
    29 марта 2020, 13:22
    Т.к. я не верю в бэктесты и демо-счета
    А это не вопрос веры) Это способ проверить, ваш робот работал бы раньше или нет. И если он раньше работал, то шансы что он в принципе работает выше. Особенно если вы используете закономерности, которые существуют уже лет 10.
  • Alex Yeskov
    29 марта 2020, 13:23
    а почему Lua именно? а не Python к примеру
      • Alex Yeskov
        29 марта 2020, 14:35
        Денис Г., встроен куда? как sdk/api в какую-то систему? извините, я не в теме… трейдингом занимался и программированием по отдельности, тоже только начал интересоваться
          • Alex Yeskov
            29 марта 2020, 15:39
            Денис Г., понял, спасибо! с Lua я сталкивался в универе в Германии, его для моделирования разных временных процессов используют активно, а также потом узнал что и в геймдеве… видимо рынок в ту же категорию попадает :)
  • GoodBargains
    29 марта 2020, 14:30
     Что выходит квик до сих пор не исправили этот баг, когда при зависании теряется id и идет черть е че с задвоением, затроем сделок и тд???? Неужели? Я эту ерунду ещё лет 5-6 назад заметил. Ну вот это квиковцы)))
      • SergeyJu
        29 марта 2020, 16:27
        Денис Г., колбэки — ненадежная конструкция, хотя и удобная. Надежнее анализировать таблицы лимитов по деньгам, и бумагам. Там косяки гораздо реже (если не считать задержки при нагрузке). 
        • yurikon
          30 марта 2020, 09:22
          SergeyJu, как раз наоборот. Надежнее отслеживать колбэки по ордерам и сделкам. Лимиты могут не обновляться часами, когда сервера начинают тупить.
      • yurikon
        30 марта 2020, 09:25
        Денис Г., 
        То что колбэки на транзакции, ордера и сделки приходят асинхронно — это технология биржи, а не кривые разрабы. Да, сделки могут приходить раньше отчета о транзакций и могут приходить повторно при переподписке. Это надо учитывать в коде.
        • SergeyJu
          30 марта 2020, 10:20
          yurikon, а иногда колбеки вообще не приходят. И я видел такие жуткие про… бы на этой почве, что не дай Бог. 
          • yurikon
            30 марта 2020, 12:23
            SergeyJu, такое бывает очень редко против обновления лимитов. Для безопасности можно сравнивать две временные метки — время последнего колбэка и время последнего апдейта по лимиту. Если после апдейта по ордеру лимит не изменился, то он не валидный.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн