Блог им. Artemunak

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

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

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

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

А пока спасибо за то что есть.
  • обсудить на форуме:
  • TSLab
★4
47 комментариев
Маленькое предупреждение, дружище

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

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

С уважением

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

счас у тслаба идеология все на лимитках… маркет ордера не работают в реальности с 2.1
avatar
ves2010, не только

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

С уважением

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

память жрет как не в себя… я видел 48гиг как то
стабильность ок… если не ставить ночные сборки а только релиз… и если во время работы не лезть перисывать код… работаю под тслабом с 2010 г… техподдержке респект
avatar
ves2010, тут такое дело, бро...

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

Это раз

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

С уважением
avatar
Мальчик buybuy, внутри дня O(t) мало чем отличается от С(t-1). Это только для междневных гэпов по O(t)+проскальзывание совершить сделку нереально, а внутри дня — запросто.
avatar
А. Г., представляют как бесятся маркетмейкеры, когда им по открытию очередной 5-минтуной свечи массово заливать начинают 
Мальчик buybuy, 
Любой тестер, который позволяет открыться/закрыться по Open — это мусор

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

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

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

С уважением
avatar
Мальчик buybuy, 
Точное значение Open известно только после поступления первого тика на следующем бсаре.

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

До открытия сессии ставится ордер MOO (market on open) или просто маркет ордер и он исполнится по цене открытия сессии. Где тут подглядывание? :)
JC-trader ☮, ну Ок

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

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

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

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

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

С уважением

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

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

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

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

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

С уважением
avatar
Мальчик buybuy, вообще то в ценах не так уж редка ситуация, когда Open равна либо High, либо Low. И как быть тогда?
avatar
ves2010, не напишешь потом подробней что там с маркет и лимит ордерами?
Всё равно когда-то придётся переходить на 2.2, стрёмно конечно.
avatar
Artemunak, там проблемы с донабором по рыночной цене — фигачит по маркету… если включено автооткрытие — автозакрытие
avatar
ves2010, фигасе, звучит стрёмно. никак не добрать?
avatar
Artemunak, лимитники ок… т.е донабор лимитниками работает ок
avatar
ves2010, слушай а ты настройку проскальзывание использовал для лимитников?
чё-то мне кажется что она криво работает для лонгов\шортов, вроде в каком-то случае проскальзывание в обратную сторону ставится.
avatar
Artemunak, у мя проскальзывание = 0… т.е цена ордера = опен… была...

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

счас для моекс идеально прям
avatar
ves2010, а Book-or-Cancel он поддерживает? Подпирать bid/ask не всегда помогает от тейков, и к-во тейкерских сделок при таком подходе в декабре изрядно выросло. За январь не скажу, внедрил BoC и биржевая комса теперь строго 0.
avatar
Мальчик buybuy, спасибо дружище, я лимитки не использую, да и открываюсь на клозе. С лимитками в любом софте лучше не тестить, с ними везде свои примочки ;)
avatar
Artemunak, там надо контролировать однобарные сделки...
вообще делаешь тест...
обин и тот же бот… вариант по маркету и вариант лимитниками… у меня получается однокуйственно… разница 3-5%
avatar
ves2010, так это маркетное исполнение)

Я же писал исключительно про работу лимитками

С уважением

P.S. Чтобы открываться/закрываться по маркету — надо быть очень щедрым и/или богатым человеком )))
avatar
Мальчик buybuy, смотри… вот только для тебя… потом сотру нах...

берешь и тестишь варианты исполнения ордеров и наборов позы...

avatar
чо такое «портфельное тестирование»?

avatar
 В текущем виде можно выбрать пачку скриптов и для них:1. покажется общая эквити2. покажется окно с общими результатами.

То есть у них портфельное тестирование имеется в виду тестировать портфель скриптов (стратегий) на одном инструменте? Не портфель инструментов на одном скрипте?
JC-trader ☮, 
первое,
кстати даже сейчас уже поддерживается и просчитывается пачка скриптов с разными тикерами, не обязательно на одном,  это хорошо.
avatar
JC-trader ☮, кстати, тут на смартлабе опять грааль нашли.
smart-lab.ru/blog/875553.php
я предсказал 12% годовых.
А ваше мнение? Не хотите протестить, вы вроде такие страты любите? У меня даже дневок нет, я их не люблю.
avatar
Artemunak, так условие системы отсутствует. «По закрытию дня ставить на продолжение движения» — компьютер не поймет :)
JC-trader ☮, я думаю имеется в виду просто закрытие больше открытия (и меньше для шортов), там всё дело в стопах имхо.
бывают системы где пофиг вход а всё от стопов зависит.
ну или просто скажите что система фигня тогда и я поверю)
avatar
Artemunak, система фигня :)
JC-trader ☮, smart-lab.ru/blog/886887.php
недавно добавили перебор тикеров
avatar
Портфельное тестирование я просил лет 7+ назад
с ностальгией читаю такие топики. Получается так что 7-8-9 лет назад я был активной писакой у них на форуме. Потом даже стали иногда работу там предлагать не безизвестные форумчане
avatar
Андрей К, вы тслаб хорошо знаете? сегодня все еще пользуетесь?
avatar
Артур, не пользуюсь за ненадобностью, если только может пару раз в год, что нибудь визуализировать, но в этом плане плавно перешел на питон. В связи с этим, знания устарели.

раньше его юзал больше как c# платформу, чем кубики. оптимизировал код, чтоб тесты шибко быстрее летали
avatar
не очень понял, до этого в тслабе не было режима портфеля? А как без него жили-то?
Несколько лет тестировал и выдавал веса стратегиям в велслабе именно в портфельном режиме, т.к. помогает уменьшить просадку уменьшением совокупного веса скоррелированных страт
avatar
krolix, не было, так считай и сейчас нет.
Тслабовцы настаивали что он не нужен. Ну я писал посты как выгружал стату скриптов в эксель и там сшивал макросами и что-то ещё делал, как-то обходились, велс параллельно использовали наверно.
avatar
Artemunak, какая ужасть, десятки облаков параметров сшивать в экселе?
И получим просто ряд дневных клоузов эквити. А как играть весами онлайн и смотреть, кто подосрал на крупных просадках? Как решать задачу максимизации рикавери, кроме как многократным изменением и  подгонкой весов за пару секунд в GUI? А то так можно напихать плюсовых систем с си, ри, брентом, а потом удивляться черным лебедям, когда всё это дело резко одновременно против позы прёт на всю котлету)
avatar
krolix, имхо попахивает переподгонкой, даже стало интересно что бы тслабовцы ответили )

avatar
Artemunak, они могут ответить так же)
имхо, переподгонка — это оптимальные значения параметров для конкретной тс. Определение весов ТС — это скорее не про перфоманс, а про уменьшение рисков, и эту задачу надо решать)
avatar
У меня результаты при портфельном тестировании отличаются от результатов скриптов по отдельности. Короче, данные сильно отличаются. Кто-то сталкивался с таким?
avatar

теги блога Artemunak

....все тэги



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