Roman Ivanov
Roman Ivanov личный блог
28 мая 2013, 22:41

2.5 года торговли ботом

Прочитал пост smart-lab.ru/blog/121566.php, жизненно, решил тоже поделиться.
Торгую ботом около 2.5 лет большой пакет стратегий на RI и GZ таймфреймы 5, 15, 60. Бот в виде Quik + самописная программа + MySQL. Поскольку это требует скромных ресурсов, то все отлично работает на виртуальном сервере (покупаю за 400р/мес). Скорости от бота не требуется. Алгоритм отлажен так чтобы не требовать контроля.
Сумма сейчас 3 ляма из них 1.5 честнозаработанных. За первые 1.5 года напилил больше 100%. Затем, где-то в мае прошлого года рынок испортился и эквити ушла в горизонталь. Сейчас есть позывы к нормализации рынка, но лето может все испортить. С другой стороны есть новые данные с рынка и на них уже готовы новые стратегии, которые не плохо работали бы если бы да кабы. Будем посмотреть.
Стратегии непосредственно руками не разрабатываю, использую самописный тестер на исторических данных и генетический алгоритм для поиска стратегий. Оптимизатор выбирает несколько правил из набора доступных, а также подбирает параметры каждого правила. Набор доступных правил кодирую сам по мотивам всяких статей и собственным соображениям. Сигналы на вход и выход есть комбинация правил. Плюс также есть варианты выхода по времени и Stop Loss, параметры эти и еще более другие подбираются алгоритмом. В общем руками стратегии не ковыряю, смотрю только эквити из тестера. Иногда смотрю какие правила и какие парамеры используются. Оптимизирую на старых данных, кусок самых свежих использую для отбраковки переоптимизированных. Естественнос стремлюсь уменшать число параметров, так что в последнее время ограничиваюсь двумя правилами, что дает информационную емкость перебираемого пространства 30-40 бит.

Тестер написан так чтобы работать максимально быстро, может быть где-то в ущерб точности. Зато прошел проверку сравнением с реалом, так что доверяю. Одна оптимизация занимает 10-30 часов (генетика требует очень много прогонок). На доступных оптимизаторах наверное результата не дождался бы, но у них и задачи другие.
В процессе оптимизации смотрю эквити лучших стратегий, а также выборочно не самых лучших. Все равно из-за эффекта подгонки максимизация на первой выборке не есть самоцель. Те стратегии, что хорошо себя ведут на основном и проверочном участке откладываю. Накопил уже наверное несколько сотен стратегий. По мере поступления новых данных с рынка смотрю на их поведение и тут самое важное смотреть как торгует на совсем свежих данных. Понравившимся доверяю бабло. Фактически получается 3 набора данных: для оптимизации, для отбора после оптимизации и последний перед принятием решения. По простой логике вроде 2 участка это достаточно: на первом крутая подгонка, а на втором вроде как влияния подгонки нет. Но как-то поймал себя на мысли, что отбор из нескольких вариантов по результатам разглядывания эквити это тоже оптимизация! Ну может и слабенькая, но есть, и от нее не скрыться. Демон подгонки хитер и изворотлив, надо бдить.
Вот в кратце и все.

ЗЫ: для тех кто хочет почитать на тему, советую «Энциклопедию торговых стратегий» 
47 Комментариев
  • SHCHUTUSHCHA
    28 мая 2013, 22:51
    интересно ) не могли бы вы поделиться исходниками?, сами стратегии можете не выкладывать. Интересует процесс объединения квика с MySQL.
      • SHCHUTUSHCHA
        28 мая 2013, 23:17
        ivanovr, да я делфи-паскаль тоже знаю, поделитесь если вам конечно не трудно. Честно говоря мне это надо не совсем для трейдинга, у скоро сессия а курсач по базам данных я еще и не начинал, причем как раз на эту тему :)
          • SHCHUTUSHCHA
            28 мая 2013, 23:38
            ivanovr, схемы бд трейдилки будет достаточно, с самим процессом программирования у меня проблем возникнуть не должно.
  • UpReal
    28 мая 2013, 22:59
    Огромное спасибо за рекомендованную книгу, нашел ее тут если кому интересно тоже
    forex-profi.com/book/221-d-kac-d-makkormik-enciklopediya-torgovyh-strategiy.html
    Сам люблю алгоритмическую торговлю. Ни какого влияния эмоций на трейдинг, правда пока использую режим торгового советника — программа дает рекомендации, а сделку осуществляю сам.
  • siva
    28 мая 2013, 23:04
    Круто, спасибо.

    Парочку правил можно в студию? :)
      • siva
        28 мая 2013, 23:15
        ivanovr, ясно, спасибо!
  • Werner Heisenberg
    28 мая 2013, 23:16
    спасибо за книгу. почитаю.
  • Мой господин
    28 мая 2013, 23:21
    Получается прибыль 1,5 ляма за 2,5 года? в принципе, неплохо, главное, чтобы стабильно
  • Роман Frank_Cowperwood
    28 мая 2013, 23:48
    Дальнейших успехов!
  • Охлократ
    29 мая 2013, 00:02
    Интересно… а генетический алгоритм тут при чем? если вы нужную эквити сами выбираете…
      • Охлократ
        29 мая 2013, 00:28
        ivanovr, понятно. А основной и проверочный блоки истории отбираются по каким критериям? Скажем основной 2005-2011 г. а проверочный- 2012 г.?
          • Охлократ
            29 мая 2013, 00:36
            ivanovr, ну да..2013 это смесь. тут и пилы 2012 и «красота» 2009 )
          • Охлократ
            29 мая 2013, 00:38
            ivanovr, а на других рынках не проверяете? например DAX
            • Охлократ
              29 мая 2013, 00:39
              Ded2012, и вообще как ведут ваши находки себя на других рынках? какие ближе всего к нам?
                • Охлократ
                  29 мая 2013, 00:49
                  ivanovr, диверсификация бы очень помогла мне кажется вам. фьюч на дакс, евростокс, руссел2000 хорошо ходят… тамнет проблемы ликвидности. комиссии как на римке… укладываются в 1 тик… Данные я прямо с демки брал для тестов, предоставленной западным брокером. О форексе конечно несерьезно… там все сложнее.
  • Охлократ
    29 мая 2013, 00:52
    А… чуть не забыл. А сколько примерно живет «свежая» эквити? По моему опыту- 10 лет считаешь живет год, считаешь год- живет месяц. Если оптимизировать.
  • k4rv
    29 мая 2013, 01:10
    подскажите, каким сервером пользуетесь?
  • Андрей Кучумов
    29 мая 2013, 11:03
    Почему MySQL? Были эксперименты с Postgree?
    Сам пока не использую БД, внутри алгоритма достаточно
    массивов, а статистику собираю в текстовики.
    Определённые неудобства есть, плэтому рассматриваю
    комбинацию C#+Postgree. Но у меня вопрос по потенциальной
    производительности такой комбинации, если БД уходит за гиг.
      • Андрей Кучумов
        29 мая 2013, 11:52
        ivanovr, пока в раздумьях. С одной стороны собственно
        «трейдилка» работает быстро и нагружать её не вижу смысла,
        скорее ещё бы много повыкидывал. Но при этом сделать 2-х
        компонентную систему: «трейдилка»+«анализатор».
        И вот «анализатор» я бы нагрузил.
          • Андрей Кучумов
            29 мая 2013, 14:51
            ivanovr, мне хочется в «анализатор» завести все графики,
            чтобы можно было ручками повертеть историю, посмотреть,
            но чтобы параллельно он делал обсчёт и выдавал «разжёванную»
            статистику в «трейдилку». Что-то вроде терминала,
            но с моими индикаторами.
              • Андрей Кучумов
                29 мая 2013, 22:45
                ivanovr, вопрос в «готовности». Понять насколько решение
                тебе подходит иногда по времени столько же, сколько
                создать своё. Пока не вижу решения под свои наработки.
      • Chipmunk
        29 мая 2013, 12:53
        ivanovr, ivanovr, Не подскажите а в какой конторе виртуальный сервер покупали за 400р/мес?
        Хочу с домашней машины робота на удаленный сервер посадить. Спасибо.
  • facevalue
    29 мая 2013, 18:59
    Как часто прогоняете генетик? И не пробовали фитнес-функцию брать не деньги, а что-то другое? Или у Вас не так много параметров для бридинга?
      • facevalue
        29 мая 2013, 22:49
        ivanovr, По первому вопросу: мы периодически перегоняем генетик, и получаются новые данные, которые работают какое-то время. Как только они ломаются (характерные резкие отклонения от PNL), прогоняем и получаем новые для работы алгоритма. По поводу фитнес-функции — спасибо за мысль, попробуем. Хотя опыты с Шарпи на других негенетических роботах положительных результатов не дали, не смотря на то, что Шарпи, собсно, сложный показатель прибыльности. Пока что используем для фитнеса сухую доходность поколений.

        Бридинг — от англ «to breed», у генетиков дословно подразумевается как разведение/производство поколений. Продукт генетического алгоритма — продукт бридинга. )
  • TT
    31 мая 2013, 20:14
    «Оптимизатор выбирает несколько правил из набора доступных, а также подбирает параметры каждого правила.»

    Фантастика! Блестящая идея!
  • Artemunak
    01 ноября 2015, 15:13
    Интересный подход. Напишите про успехи в последние 2 года статью? Я так понял что в итоге получаются достаточно простые стратегии которые приносят доход? Сколько лет в периоде для оптимизации?

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

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