Михаил Понамаренко
Михаил Понамаренко личный блог
30 октября 2019, 11:07

Почему я ушёл от бектестинга и стал виртуальным трейдером

Почти 7 лет (из 14-ти) не пользуюсь бектестингом. Семь лет назад, я полтора года тестировал системы в бектесте и на реальном рынке одновременно. Результаты оказались неожиданными. Моя система, с бектестовой прибыльностью = 1.2, превратилась в убыточную = 0.85. При этом система продолжала быть прибыльной на бектесте. Я сравнивал результаты бектеста и реальной торговли и отмечал, что я делал неправильно. Делюсь многолетним опытом.

— Если мы заложили комиссии правильно, это только часть издержек. Основная часть убытка спред. Откройте любой инструмент, купите и сразу продайте его по рыночным ценам. Увидите, что позиция оказалась убыточна. А большая доля убытка из-за спреда.

— Если закладывать 2-3 спреда в издержки и результаты будут более реалистичными. Но, всё ещё, могут остаться оптимистичными. Точно об этом знать мы не сможем.

— Важное правило: если есть на графике сделка, то это не значит, что она может быть вашей. Это правило напрочь отбивает точность тестов.

Реальный рынок. У Вас цель войти на пробой в покупку. Кто-то из участников выкинул большой объём на покупку в стакан и перенёс его за 1мс на 10 пт. выше вашего условия на вход. Ваш робот среагировал на этот сигнал и через 600мс. заявка оказалась на рынке. Робот вошёл на 10 пт. (на 6 спредов) хуже, а тестер вошёл по цене условия.

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

Гепы – ещё один вид сбивающий тестер с толку. Но его можно обойти, обозначив в роботе, чтобы он не входил в сделки внутри гэпа, на пустом пространстве между барами.

Проскальзывание – если у Вас большой объём (>1), то результаты будут ещё хуже. Например, вы работаете 10-ю лотами. Цель войти на пробое цены 100,10.

Представьте стакан:

Тип     Цена   К-во

Аск 100,20    8

Аск 100,15    1

Аск 100,12    2

Аск 100,10    3

Бид …

Мы вошли в покупку по цене: (100,10*3+100,12*2+100,15*1+100,20*4) / 10 = 100,149

Если бы мы торговали 1 контрактом, то смогли бы войти по 100.10-100.12, среднее 100.11

Заметили разницу: 100.11 vs 100,149?.. А у тестера будет 100.10!

Чем больше собственный торговый объём, тем больше нужно закладывать спредов в издержки.

 

Какие альтернативы?

Тестировать на демо-счетах.

— Котировки на демо-счетах сильно отличаются от реальных. У меня есть контртрендовые роботы, которые стабильно зарабатывают 5-10% от ГО в день на демо-счёте, но стабильно сливают на реальном счёте.

— На демо-счёте Ваше присутствие никого не волнует. Если Вы выставили заявку на демо, её никто не будет фронтранить (выставляться впереди), если Вы на реальном рынке – ждите конкурентов в стакане, которые будут стараться обойти вашу заявку.

Тестировать на реальном рынке с виртуальными позициями. Пожалуй, лучший способ тестирования. Почти все системы становятся убыточными. Реально спускает с небес после тестеров типа MetaTrader, TS LAB, AmiBroker, WelthLab и т.д. Вы входите именно по тем ценам, которые даёт рынок. Все тормоза брокера, робота — Ваши, т.к. это тот же робот, со всеми недостатками и рыночными ценами. Тормознутый, ленивый и совершенно бестолковый в моменты сильных движений на рынке. Недостаток только в том, что здесь отсутствует эффект присутствия на рынке. Если Вы, к примеру, активно используете фронтранниг или выкидываете другие фокусы в стакане, то такие системы не подлежат тестированию без реального рынка от слова «совсем».

Не спешите зарабатывать, точнее сливать. Сделайте аналогичную виртуальную систему, которая будет выкидывать Ваши сделки не на рынок, а в файл. Такую «песочницу» можно сделать на базе вашей любимой системы технического анализа (я не помогу, если думаете, что это намёк). Вы можете продолжать пользоваться бэктестом, это может помочь найти прибыльные торговые системы. Но тестировать их нужно ВИРТУАЛЬНО, прежде, чем выпускать на реальный рынок. Уважаемые коллеги трейдеры, этот совет много стоит (реальных Ваших съэкономленных рублей). Я перестал сливать и ищу прибыльные торговые системы бесплатно, хотя ранее успел слить до 70т.р.

73 Комментария
  • TihiyDon
    30 октября 2019, 11:37
    И систему span тоже не учитываем…
    • Андрей К
      30 октября 2019, 13:43
      TihiyDon, а что из нее можно учитывать?
      • TihiyDon
        30 октября 2019, 13:58
        Андрей К, да ничего. Так как это закрытая система, которая позволяет крупным участникам контролировать биржевые риски.
        • Андрей К
          30 октября 2019, 14:40
          TihiyDon, я примерно так и подумал. в эти сказки, про которые рассказывает Активный инвестор, лучше не верить, сбивают с пути
  • Aleksey Smirnoff
    30 октября 2019, 11:43
    У меня самодельный тестер, использует тиковые данные и стакан. Может легко учесть проскальзывание, потому как видит встречные цены-объёмы. Да и вообще, на 99% тесты соответствуют реальной торговле.
    Вместо «виртуальной торговли» лучше запустить минимально возможный сайз, больше ясности принесёт
    • Laguna
      30 октября 2019, 11:59
      Aleksey Smirnoff, Если не секрет, в каком формате храните стаканы?
      • Aleksey Smirnoff
        30 октября 2019, 12:09
        dealgate, в своём формате, бинарный. Хранится разница между снимками и периодически весь снимок, получается относительно компактно. Стакан RIU9 — 443Мб, например. При современных ценах на диски — вообще не заморачиваюсь.
        • Laguna
          30 октября 2019, 12:16
          Aleksey Smirnoff, Надеюсь 443Мб не за один день, меня вот на *.qsh формат потянуло от Qscalp
          • Aleksey Smirnoff
            30 октября 2019, 12:20
            dealgate, нет, это за всё время
    • shprots
      30 октября 2019, 12:47
      Aleksey Smirnoff, автор говорит о тслаб велслаб и тп. По отношению к этим системам автор прав. Там много нюансов, которые надо учитывать.
      А вот ваш бектестер по тикам — это лютая пять. Если 99% — то это прямо круто.
      Если опишите основную архитектуру — то плюс в карму :)
      • Aleksey Smirnoff
        30 октября 2019, 13:10

        shprots, ну так я это и имел в виду, что бэктестер у автора фиговый. Я и сам когда-то тестил во всяких метастоках и вэлзлабах.
        А тестер по тикам — это суровая необходимость, легче разобраться откуда разница между тестом и реалом.
        Архитектуры особо нет, есть терминалы, которые выдают маркетдату роботам и сохраняют её в файлы. Есть роботы, которые берут маркетдату у терминалов и торгуют опять же через эти терминалы.
        И есть тестер, который берёт данные из файлов и тестит по ним. Для тестера собран сервачёк на двух процах — 24 физических ядра. Тестер умеет по списку инструментов тестить стратегию, потому как у меня есть убеждение что если грааль нормальный, то он работает на многих инструментах. За пару суток тестер может всю русфонду прогнать по исследуемой стратегии, вполне приемлемо, я считаю.

        • shprots
          30 октября 2019, 14:13
          Aleksey Smirnoff, хороший подход, основательный. 24 ядра не так уж и мало :))
          По граалю… Ну в целом да, основные стратегии работают на большинстве инструментах. Есть нюансы всегда, и часто эти нюансы приносят основные деньги.
          • Aleksey Smirnoff
            30 октября 2019, 14:22
            shprots, согласен, но я торгую несколько тысяч инструментами и просто физически не могу вникать в каждый нюанс. В моём случае проще получить основные деньги с общего правила, чем с исключений.
            • iuiu
              30 октября 2019, 22:32
              Aleksey Smirnoff, несколько тысяч инструментов, это вы на Западе торгуете?
              • Aleksey Smirnoff
                30 октября 2019, 22:48
                iuiu, в том числе и на западе
                • GoodBargains
                  31 октября 2019, 01:48
                  Aleksey Smirnoff, а рабочий ТФ секунда у Вас?
            • GoodBargains
              31 октября 2019, 01:11
              Aleksey Smirnoff, сколько сделок по активу в день примерно по вашим стратегиям?
        • GoodBargains
          31 октября 2019, 01:09
          Aleksey Smirnoff, а оптимизацию делаете? врядли есть такие системы, которые одинаково хорошо работают на разных активах, кроме ХФТ. 
          • Aleksey Smirnoff
            31 октября 2019, 11:14

            GoodBargains, есть системы и с оптимизацией, есть вообще без параметров. Больше двух параметров не использую, обычно один параметр.

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

            Количество сделок сильно зависит от ситуации на рынке, специально не считаю их, десятки-сотни тысяч, наверное.

            • GoodBargains
              01 ноября 2019, 09:24
              Aleksey Smirnoff, десятки-сотни тысяч по одному активу в день? И какой же это рабочий ТФ, если не секундный?)
              • Aleksey Smirnoff
                01 ноября 2019, 09:39
                GoodBargains, не по одному инструменту столько сделок, а по всем инструментам
                • GoodBargains
                  02 ноября 2019, 01:20
                  Aleksey Smirnoff, а средняя сделка сколько у вас выходит по нефти, например? 
                  • Aleksey Smirnoff
                    02 ноября 2019, 10:24
                    GoodBargains, не знаю, не считал. Думается мне, что сильно по-разному и среднее ни о чём не скажет. Пока по-пути, то держит позу, а нефть вон как летает порой, потом сменяется долгим штилем. Сильно разный рынок чтобы считать средние. 
                    • GoodBargains
                      04 ноября 2019, 10:17
                      Aleksey Smirnoff, на тестере то по истории какие могут быть проблемы с подсчетом, не пойму? все данные для расчета имеются
                      • Aleksey Smirnoff
                        04 ноября 2019, 10:22
                        GoodBargains, да никаких проблем с подсчётом нету, просто мне не нужна эта цифра, вот её и не считаю
      • Aleksey Smirnoff
        31 октября 2019, 11:15
        Михаил Понамаренко, не, никакой одержимости. Чисто технические задачки, мне такие нравятся.
  • chizhan
    30 октября 2019, 11:50
    ну наконец то омерику открыл 
  • MetaQuotes Software
    30 октября 2019, 11:56

    Попробуйте использовать в MetaTrader 5 режим «Задержки» в мс, что дает очень близкий к реальности результат со всеми проскальзываниями.



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

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

    Достаточно поставить 50-100 мс задержки, чтобы увидеть как меняется результат вплоть до убытков. Это быстро отрезвляет и дает возможность сделать более робастого робота.

    Тестер у MetaTrader 5 постоянно развивается и вот как выглядит выбор вариантов сейчас:

    На видное место вынесен раздел «Стресс-тест с задержками», чтобы показать трейдерам правильное направление исследований.

  • Scroooge
    30 октября 2019, 12:01
    Мои ТС проходят много инстанций — от бектеста до реальной торговой среды на реальных счетах. Вцелом норм, но хотелось бы лучше… на реале все равно случаются нештантные ситуации, которые ни на демо ни на бектесте не удастся повторить
  • Replikant_mih
    30 октября 2019, 12:21

    Ну это же вопрос реалистичности тестирования, если вы контролируете инструментарий, то можете влиять на реалистичность. Доводите реалистичность до хорошего уровня и тестирование становится… реалистичным)).

     

    А так, реальная торговля тоже реальной торговле рознь, в смысле она никогда не повторяется одинаково, всегда какая-то вариативность, так что затестить виртуальной торговлей тоже ничего не гарантирует по сути.

  • П М
    30 октября 2019, 12:30
    получилось насобирать неубиваемых систем?
    и что делаешь если есть супер система, а потом придумываешь другую супер систему еще лучше? всё равно включаешь обе?
  • ves2010
    30 октября 2019, 12:37
    торгуй ликвид
    имей среднюю сделку в районе 0.5%


      • ves2010
        01 ноября 2019, 14:25
        Михаил Понамаренко, прочти спецификацию контракта… он пересчитывается в рубли 2 раза в день… посмотри курс пересчета… там проепывается овердокуя денег т.к курс отстает
  • Antishort
    30 октября 2019, 13:32
    А у моих алго вообще нет таких проблем, и спред и всё остальное по барабану. Потому что вход и выход только лимитками. Исключение — стоп по рынку. Но стопы  — редкая птица. И если он 1-1,5 дневного ATR, то и на проскальзывание можно забить, если не фигачить откровенно большой объём. В среднем внутри дня очень легко пропихнуть средний объём за 5 минут. Ну прокатят HFT на стопе в одной из десяти сделок с 1 до 1,05 первоначального размера. Тесты совпадают с реальностью где-то тоже на 96%. Просто потому что не знаешь сколько нальют в прибыльную заявку, а вот убыточная будет исполнена на 100%  — гарантированно.
  • Тарас Громницкий
    30 октября 2019, 13:43

    Следующим шагом будет переход на бОльшие фреймы(это важно) и возврат к бектестингу.

    А там может и до сбора портфелей дойдёт.

     

    Альтернатив бектестингу нет.

    В нём можно смоделировать поведение вашей системы на сотнях инструментов за десятки лет.

    Смоделировать и отбросить за несостоятельностью.

    В виртуальном тестировании вам придётся прожить эти годы, чтобы понять, что стратегия не работает.

    Одной жизни точно не хватит.

    Короче без вариантов.

  • Андрей Керш
    30 октября 2019, 15:15
     Тest на демо в 90% такие же как на реале .

      • Андрей Керш
        01 ноября 2019, 19:13
        Михаил Понамаренко, согласен  что нет такой  стратегии  каторая не слила .  10- 15 зделок подряд в плюс на 1 стоп лос. Потратил 2 года  что бы это зделать . 
  • Eduard
    30 октября 2019, 15:27
    Проверил свой самописный тестер. Около 500 строк кода. Уникальных под стратегию от силы 150. Какая бы стратегия ни была, тестируется на тиках. Время старта и клиринга — в параметрах (чтобы не торговать например до 10:15). Так же в вариативных парамметрах проскальзывания по времени и  тип ордера — market или limit. В итоговых результатх — учет комиссии биржи и максимальной комиссии брокера. Если используются market, то еще добавляется шаг цены с минусом на количество сделок на ликвидных инструментах.
    Далее каждая сделка тестера добавяется в поток вывода ежесекундных данных и отправляется в эксель для разглядывания на графике. Дает возможность наложить на график цены инструмента свои параметры и поразглядывать на адекватность и удачность.
    Сколько я этим тестером стратегий на свалку выбросил — не пересчитать.
    Результатам тестера верю. Он даже немного занижает результат.
    Боюсь представить если бы мне пришлось устраивать виртуальное тестирование для каждой из них...
    Самое смешное, что на написание такого тестера с ноля уйдет не очень много времени. Может быть часа 4, если еще и на кофе отвлекаться. Ну ок, еще на макрсосы в экселе минут 30. И при этом колоссальное доверие результатам.
    • iuiu
      30 октября 2019, 22:35
      Eduard, енто на каком языке?
      • Eduard
        31 октября 2019, 13:47
        iuiu, тестер на C#. Данные тиковые и по стаканам берет из MS SQL.
        Какие-то грубые предрасчеты тоже могут быть на MS SQL переложены. А там дальше целый колхоз у меня. Так как сам ни разу не профессиональный разработчик даже близко, делаю на чем умею )
        • iuiu
          31 октября 2019, 15:06
          Eduard, надо тоже погуглить sql…
      • Eduard
        31 октября 2019, 13:51
        Михаил Понамаренко, у меня в зависимости от стратегии. Недавно двух роботов запускал, они по Si и Ri тестировались на спреде. В реальной торговле по факту половина спреда получилась на сделку, так как входы у обоих в спокойное время. То есть для теста лучше создать условия хуже и если бэктест показал положительный результат, можно расчитывать на результат не хуже в реальной торговле. Но нужно понимать особенности стратегий.
  • Атласов Михаил
    30 октября 2019, 15:42
    70 т р это осень мало, надо от миллиона тогда можно и поверить в прибыльные системные тс
  • Алексей Никитин
    30 октября 2019, 16:50
    Тестировать нужно по ордерлогу а не на минутках -)) и все будет хорошо.
  • ves2010
    30 октября 2019, 17:03
    кстати можно проще… смотришь в стакане сколько денег стоит обычно в спреде… вот эту сумму и торгуешь... 

  • day0markets.ru
    30 октября 2019, 18:29
    Это ты еще америку не тестировал:) там вообще свечкам верить нельзя, а тики оч сильно фильтровать надо
  • Врач-бондиатОр
    30 октября 2019, 19:55
    будущее неизвестно, поэтому эффективность бэктеста всегда была под вопросом
  • Дмитрий Овчинников
    30 октября 2019, 22:19
    Почти 7 лет (из 14-ти) не пользуюсь бектестингом. Семь лет назад, я полтора года тестировал системы в бектесте и на реальном рынке одновременно. Результаты оказались неожиданными.

    Напомнило старый анекдот:
    " После десяти лет напряженных исследований чукотские микробиологи сделали удивительное открытие: если покрутить колесико микроскопа-становится видно намного лучше!!!!".

    По теме топика даже и сказать нечего, автор вроде понимает, что реальный рынок будет активно противодействовать его стратегиям, но почему-то предпочитает прятать голову в песок «виртуальных сделок».
  • GoodBargains
    31 октября 2019, 01:31
    Если средняя сделка 0,01+- на тестере ТС Лаб и проскальзование не учтено, то, конечно, работать не будет.  стратегия должна быть рабочей, а не сплошной подгон параметров под график слева
  • Денис Михайлов
    31 октября 2019, 11:21
    Для новичка это новость.
    А так, при тесте чем меньше сделок, тем лучше. Т.е. если есть система которая показывает 100% за год и при этом делает 1000 сделок и есть скажем, которая делает 70%, но при 500 сделках. Я выберу вторую. Это не принимая во внимание другие показатели.
    Ну а в целом, я запомнил старое изречение одного из гуру алго (не помню кто это точно, может даже АГ), что все показатели теста надо ухудшить в 2 раза  и тогда это то, что можно ожидать в реале)
    • GoodBargains
      02 ноября 2019, 09:45
      Денис Михайлов, почему? Чем меньше сделок, тем больше непонятно, что будет ли вообще устойчиво работать.
  • Dmitryy
    31 октября 2019, 11:26
    Есть верный способ заработка на роботах — это продажа роботов :)
    • ves2010
      31 октября 2019, 13:09
      Dmitryy, нее… надо продавать роботов которые пишут роботов
      • Dmitryy
        31 октября 2019, 13:11
        ves2010, да, причем там нормальный арбитраж, у нас роботы в среднем за 20 в час пишут, а на мировом рынке 35-50 платят :)

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

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