Artemunak
Artemunak личный блог
03 февраля 2023, 22:02

портфельное тестирование в тслабе

Ради портфельного тестирования попробовал установить тслаб 2.2.
Скрипты перенеслись в 2.2, добрые люди пересобрали и выложили кастомные индикаторы под 2.2, тоже заработало.
Портфельное тестирование я просил лет 7+ назад
Пока ещё нормально оно не работает, но хоть что-то уже есть.

В текущем виде можно выбрать пачку скриптов и для них:
1. покажется общая эквити
2. покажется окно с общими результатами.
3. покажется окно с общими сделками, которые можно выгрузить в эксель.
а это уже хорошо, дальше уже в экселе можно шаманить кому не терпится.
4. ещё можно размер депозита менять для каждого скрипта в портфеле, но без оптимизации.
Пока это всё, не густо. Я бегло проверил, вроде как просадка у портфеля меньше, коэффициенты шарпа итд лучше, вроде что-то там считается.
Понятно что всё надо проверять ещё.

Надеюсь функционал будет ещё допиливаться, а пока у меня есть пожелания.
1. Сейчас нельзя добавить скрипты с несколькими источниками, имхо это важнейший момент, у меня например почти все скрипты такие.
Для начала хоть бы сделали возможность добавлять с одним торгуемым источником и с несколькими неторгуемыми, если тяжело сразу с несколькими торгуемыми.
2. Не считается строка с итоговыми цифрами портфеля (только чистый ПУ считается), хотя данные для неё есть в результатах.
3. Нет оптимизации по колонке депозит например, хочется перебрать разные веса у скриптов.
4. Для скриптов нужно показывать коэффициент корреляции с общей эквити в строчке скрипта.

А пока спасибо за то что есть.
47 Комментариев
  • Мальчик buybuy
    03 февраля 2023, 22:10
    Маленькое предупреждение, дружище

    Если вдруг твои системы построены на лимитных ордерах (и их соответствующем исполнении) — имей в виду, что в этом вопросе тестер ТСЛаб косячит (дает неверный результат, причем в пользу клиента ))) )

    Я, как старый клиент, писал об этом в поддержку еще весной 2019. Без шанса. Так что результат в реале вполне может оказаться хуже тестов....

    С уважением

    P.S. Тестер ТСЛаб до сих пор обрабатывает значение Open на баре, по которому нельзя ни открыться, ни закрыться без заглядывания в будущее. Правильный тестер должен оперировать исключительно High, Low, Close
    • ves2010
      03 февраля 2023, 22:14
      Мальчик buybuy, там криво считает (завышает) на сделках длительностью 1-2 бара...
      если их не иметь то все ок

      счас у тслаба идеология все на лимитках… маркет ордера не работают в реальности с 2.1
      • Мальчик buybuy
        03 февраля 2023, 22:14
        ves2010, не только

        Любой тестер, который позволяет открыться/закрыться по Open — это мусор, IMHO

        С уважением

        P.S. А так да — ТСЛаб приятная энжина. Но сильно жрущая память и крайне нестабильная. Лично я переехал на Quantower )))
        • ves2010
          03 февраля 2023, 22:19
          Мальчик buybuy, да лана… цена опен и клос мы хоть знаем что была… все осталные цены = наша фантазия на тему цен

          память жрет как не в себя… я видел 48гиг как то
          стабильность ок… если не ставить ночные сборки а только релиз… и если во время работы не лезть перисывать код… работаю под тслабом с 2010 г… техподдержке респект
          • Мальчик buybuy
            03 февраля 2023, 22:18
            ves2010, тут такое дело, бро...

            Если мы умеем гарантированно открываться по Open — я тебе нарисую ТС с доходностью 100500 годовых )))

            Это раз

            А два — показывать клиенту в тестере более высокую доходность, нежели она окажется в реале — это классный маркетинговый ход. Но впоследствии можно сильно удивиться...

            С уважением
            • А. Г.
              04 февраля 2023, 02:02
              Мальчик buybuy, внутри дня O(t) мало чем отличается от С(t-1). Это только для междневных гэпов по O(t)+проскальзывание совершить сделку нереально, а внутри дня — запросто.
              • Дмитрий Ворожцов
                04 февраля 2023, 11:13
                А. Г., представляют как бесятся маркетмейкеры, когда им по открытию очередной 5-минтуной свечи массово заливать начинают 
        • Тимофей Мартынов
          03 февраля 2023, 23:01
          Мальчик buybuy, 
          Любой тестер, который позволяет открыться/закрыться по Open — это мусор

          Интересно. А что не так с опеном? Я всю жизнь в основном только по опену сделки открываю/закрываю на акциях. 
          • Мальчик buybuy
            03 февраля 2023, 23:03
            JC-trader ☮, элементарно

            Точное значение Open известно только после поступления первого тика на следующем бсаре.
            Т.е. открытие/закрытие по Open — это подглядывание в будущее на 1 тик

            Дальше объяснять надо?

            С уважением
            • Тимофей Мартынов
              03 февраля 2023, 23:07
              Мальчик buybuy, 
              Точное значение Open известно только после поступления первого тика на следующем бсаре.

              Так и значение Клоуз точно так же, как и все цены — узнаем только после того как они состоялись :)

              До открытия сессии ставится ордер MOO (market on open) или просто маркет ордер и он исполнится по цене открытия сессии. Где тут подглядывание? :)
              • Мальчик buybuy
                03 февраля 2023, 23:10
                JC-trader ☮, ну Ок

                А почему он исполнится по цене открытия сессии?
                М.б. в первом тике объем был всего на штуку баксов?

                С уважением
                • Тимофей Мартынов
                  03 февраля 2023, 23:16
                  Мальчик buybuy, до открытия сессии проводится аукцион, поэтому, обычно, в первом тике в 9:30 по Нью-Йорку собирается самый большой объем. В ликвидных акциях почти всегда сделка по маркет ордеру, выставленному до открытия сессии, проходит по официальной цене открытия.
                  • Мальчик buybuy
                    03 февраля 2023, 23:20
                    JC-trader ☮, это очень хорошо

                    Но я писал про косяк тестера ТСЛаб при работе лимитными ордерами
                    В частности, открыться по Open лимитным ордером физически невозможно в-принципе

                    При работе по маркету формула для эквити элементарна, так что накосячить в ней сложнее

                    Ну и цена Open нам никогда не известна заранее — неважно, как она формируется — аукционом или первым рыночным тиком. Тогда какой смысл учитывать ее в расчетах?

                    С уважением

                    P.S. Дополню, что я имел в виду Open каждого бара, а не сессии. Перед началом любого бара, кроме первого, аукцион не проводится
                    • Тимофей Мартынов
                      03 февраля 2023, 23:34
                      Мальчик buybuy, если не имели в виду открытие сессии, тогда вообще все просто. Опен, точно такая же точка для привязки к графику как и все остальные (Клоуз, Хай, Лоу) — они точно так же становится известны только в следующее мгновение после их появления. 
                      А открыться лимитным ордером по хаю и лоу разве не невозможно? :)
                      • Мальчик buybuy
                        04 февраля 2023, 00:00
                        JC-trader ☮, конечно невозможно

                        Просто числа HLC позволяют точно определить, исполнится ордер на баре или нет
                        O — не несет никакой полезной инфоримации

                        С уважением
                        • Тимофей Мартынов
                          04 февраля 2023, 00:09
                          Мальчик buybuy, 
                          Просто числа HLC позволяют точно определить, исполнится ордер на баре или нетO — не несет никакой полезной инфоримации

                          Тогда уж Хай и Лоу позволяют определить исполнится ли ордер на баре. Клоуз тоже тут не несет полезной информации :)
                          • Мальчик buybuy
                            04 февраля 2023, 00:12
                            JC-trader ☮, Я немного косноязычен

                            Традиционно ордер отправляется по цене закрытия предыдущего бара
                            Так что в упомянутой мной тройке HLC HL относятся к текущему бару, а C — к предыдущему
                            O по прежнему ни на что не влияет

                            С уважением
        • А. Г.
          04 февраля 2023, 01:59
          Мальчик buybuy, вообще то в ценах не так уж редка ситуация, когда Open равна либо High, либо Low. И как быть тогда?
        • ves2010
          03 февраля 2023, 22:26
          Artemunak, там проблемы с донабором по рыночной цене — фигачит по маркету… если включено автооткрытие — автозакрытие
            • ves2010
              03 февраля 2023, 22:35
              Artemunak, лимитники ок… т.е донабор лимитниками работает ок
            • ves2010
              03 февраля 2023, 22:46
              Artemunak, у мя проскальзывание = 0… т.е цена ордера = опен… была...

              счас ставлю по стакану… лучшая цена — специальный блок есть в 2.2 ствыит заявку в бид-аск

              счас для моекс идеально прям
              • Кирилл Гудков
                04 февраля 2023, 13:27
                ves2010, а Book-or-Cancel он поддерживает? Подпирать bid/ask не всегда помогает от тейков, и к-во тейкерских сделок при таком подходе в декабре изрядно выросло. За январь не скажу, внедрил BoC и биржевая комса теперь строго 0.
      • ves2010
        03 февраля 2023, 22:40
        Artemunak, там надо контролировать однобарные сделки...
        вообще делаешь тест...
        обин и тот же бот… вариант по маркету и вариант лимитниками… у меня получается однокуйственно… разница 3-5%
  • GOLD
    03 февраля 2023, 22:31
    чо такое «портфельное тестирование»?

  • Тимофей Мартынов
    03 февраля 2023, 23:03
     В текущем виде можно выбрать пачку скриптов и для них:1. покажется общая эквити2. покажется окно с общими результатами.

    То есть у них портфельное тестирование имеется в виду тестировать портфель скриптов (стратегий) на одном инструменте? Не портфель инструментов на одном скрипте?
      • Тимофей Мартынов
        03 февраля 2023, 23:42
        Artemunak, так условие системы отсутствует. «По закрытию дня ставить на продолжение движения» — компьютер не поймет :)
  • Андрей К
    04 февраля 2023, 09:56
    Портфельное тестирование я просил лет 7+ назад
    с ностальгией читаю такие топики. Получается так что 7-8-9 лет назад я был активной писакой у них на форуме. Потом даже стали иногда работу там предлагать не безизвестные форумчане
    • Артур
      06 февраля 2023, 08:37
      Андрей К, вы тслаб хорошо знаете? сегодня все еще пользуетесь?
      • Андрей К
        06 февраля 2023, 08:47
        Артур, не пользуюсь за ненадобностью, если только может пару раз в год, что нибудь визуализировать, но в этом плане плавно перешел на питон. В связи с этим, знания устарели.

        раньше его юзал больше как c# платформу, чем кубики. оптимизировал код, чтоб тесты шибко быстрее летали
  • krolix
    05 февраля 2023, 09:16
    не очень понял, до этого в тслабе не было режима портфеля? А как без него жили-то?
    Несколько лет тестировал и выдавал веса стратегиям в велслабе именно в портфельном режиме, т.к. помогает уменьшить просадку уменьшением совокупного веса скоррелированных страт
      • krolix
        05 февраля 2023, 09:29
        Artemunak, какая ужасть, десятки облаков параметров сшивать в экселе?
        И получим просто ряд дневных клоузов эквити. А как играть весами онлайн и смотреть, кто подосрал на крупных просадках? Как решать задачу максимизации рикавери, кроме как многократным изменением и  подгонкой весов за пару секунд в GUI? А то так можно напихать плюсовых систем с си, ри, брентом, а потом удивляться черным лебедям, когда всё это дело резко одновременно против позы прёт на всю котлету)
          • krolix
            05 февраля 2023, 09:40
            Artemunak, они могут ответить так же)
            имхо, переподгонка — это оптимальные значения параметров для конкретной тс. Определение весов ТС — это скорее не про перфоманс, а про уменьшение рисков, и эту задачу надо решать)
  • realuse algo
    22 сентября 2023, 15:16
    У меня результаты при портфельном тестировании отличаются от результатов скриптов по отдельности. Короче, данные сильно отличаются. Кто-то сталкивался с таким?

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

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