Блог им. Artemunak

про выбор платформы и свой софт

Я тут перечитал статью Антона Кротова которую упомянул недавно smart-lab.ru/blog/122223.php
И меня часто спрашивают на чём крутятся мои роботы. Интересно, кто меня часто читает тот уже знает как я увяжу два этих пункта?
Я пользуюсь тслабом. Ок, я знаю что я нуб, и после этой фразы дальше можно не читать, и ваши самописные решения лучше в миллион раз.


1. Скорость прогона тестов, в тслабе она значительно выше чем в другом софте который я пробовал или про который слышал.
Никакой мудрёж с генной, нейросетевой, видеокартной, облачной, итд, оптимизацией с такой скоростью нафиг не нужен. Те тесты которые я обычно гоняю проводятся за минуту или чуть больше. Конечно с ростом количества параметров время прогона сильно увеличивается, но перебор кучи параметров в один заход это довольно глупо, с таким подходом никакого софта не хватит, а если делать оптимизацию поэтапно и грамотно то в принципе любой софт подойдёт.

2. Стабильность. Помню как страдал первое время, было много глюков, потом сменил брокера, коннектор (имхо Алор самый стабильный брокер с их коннектором алор-трейд), вышла 64 бит версия тслаба, до конца разобрался со всеми настройками и спорными моментами, философия трейдинга эволюционировала.
В итоге уже года 2 как вообще нет ни одного глюка который бы меня волновал, и когда прихожу домой то теперь первым делом не проверяю ботов а занимаюсь своими делами.
За 2 года из глюков было всего 2 перерыва на час-два в торговле по разным причинам,  но такие сбои уже никак не сказываются на моей торговле, ведь среднее время удержания позиций выше, а низкие плечи позволят пережить всё что угодно.
И вопрос на засыпку, что будет делать твой софт когда биржа будет присылать стаканы вверх ногами, с перепутанными бидами и асками? А такое было на ммвб не так давно.

3. Доступность индикаторов. Из коробки в тслабе один из самых бедных наборов индикаторов. На благодаря сборке от Vito тслаб тут вырывается в лидирующие позиции. Кто-то скажет что индикаторы нафиг не нужны, но я их обожаю, хотя даже со сборкой от Vito мне их стало не хватать.

4. Бедность функционала. Вообще в тслабе кучи всего не хватает, но с другой стороны лишнее бы только в сторону уводило. То что реально нужно есть, и работает норм.
Ок, про тслаб хватит, почитайте ещё Ves2010, он про него норм писал. Теперь про свой софт.

Тут есть один человек который больше 2х лет выбирает какой софт использовать или написать ли ему свой, и периодически пишет о том какая должна быть архитектура и какие в нём классы. Блин, за это время я уже тысячу разных тестов провёл, уже весь набор ботов в торговле заменился постепенно полностью 2 раза. Такими темпами пока ты свой софт выберешь уже интернет в РФ или мосбиржу прикроют нафиг. 
Блин, какие классы? В софте должна быть функция «пульнуть заявку», и ещё несколько, а их можно хоть на ассемблере написать, хоть в qpile или метатрейдере, если не было бы тслаба то пулял бы заявки хоть из них, а для моих бектестов сгодился бы любой софт из того что видел.
Ещё должна быть кнопка «выводить бабло». Но для этого у брокеров есть личный кабинет, и свой софт для этого не нужен, если кто вдруг не знал.

Тут есть люди которые потратили годы на свой софт. Ну если кого-то прикалывает писать софт бесплатно то почему бы и нет. Продать его вряд ли получится. И лично я бы вообще не рискнул на своём или на малоизвестном софте торговать, одному человеку сложно и долго протестировать всё так чтобы гарантировалась стабильная работа.

Ок, добрались до самого главного на мой взгляд. Если человек потратил годы на свой софт то он ожидает что рынок ему должен заплатить за это. А вот нифига. От этого и разочарование в трейдинге, типа потратил Х лет, а в результате… Частично пост Антона Кротова об этом.
А рынок даёт столько сколько может дать, и ни копейки сверху, и ему пофиг на твой софт и какие в нём классы.
Потом со своим софтом у тебя может появиться ощущение что ты типа самый умный и что у тебя хорошие системы благодаря ему.
А мне кажется что все зарабатывающие системы примерно одинаковые, одинаково фиговые. Когда ты не потратил кучу времени на них то у тебя будет меньше завышенных ожиданий, и плечи соответственно тоже возьмёшь под них низкие. Что и позволит тебе выжить если что-то пойдёт немного не так как ты хотел, т.е. обычным для рынка чередом, и не разочароваться если ты не заработал кучу годовых.
  • обсудить на форуме:
  • TSLab
★17
69 комментариев
а тслаб спасёт от глюков биржи?  от перевёрнутого стакана? 
avatar
Igr, я даже не заметил когда это было и когда были другие глюки, на смарте о них прочитал. По этой причине от тиков и держусь подальше, с тиками больше фигни всякой.
avatar
Artemunak, стаканы перевернулись не во всех источниках данных биржи. Практически все коннекторы не используют эти источники, в которых были проблемы
avatar
Artemunak, а у тебя дома сервер или за деньги снимаешь?
avatar
Oleg Only Algo, обычный комп дома, я почитал отзывы на хостинги и пришёл к выводу что для меня так надёжней, не говоря уж про удобство. Правда зависает иногда если в игрушки шпилить, но тслабу это пофиг, ресет и всё в норме.
avatar
Artemunak, у меня на ноутбуке все крутится вообще. ))Правда на ночь его два Раза в неделю выключаю, а то трещать начинает уже. Вот думаю прикупить системник для него с питанием автономным. Думаю все же памяти нужно поболее взять и помощнее. А то все же оптимизация тормозная у тслаба( ну или я хочу быстрее)
avatar
Oleg Only Algo, сейчас для системника можно кубить блок питания без вентиллятора (полностью бесшумный) + винт ССД, понятное дело. "… И тишина!"
avatar
ch5oh, ++ и малошумящие венты на проц и системник. желательно с большим диапазоном работы, т.е. чтоб на системнике мог включаться совсем на малых оборотах и неслышно прогонять воздух. плюс установить надо куда-то где будет хороший естественный поток воздуха и малая пыльность. 
avatar
ПBМ, у меня один большой вентиллятор на проце. Емнип, Zalman Lucifier. Хватает. Да, боковая крышка системника открыта всегда — но зато вообще непонятно включен комп или нет.
avatar

ch5oh, а, круто. у меня сильно попроще вроде Zalman CNPS8900 Quiet

avatar

Разумно.

Пока вам хватает уровня гибкости и функционала тслаба.

Следующим шагом неизбежно будет свой софт.

Когда стратегии станут более сложными и например потребуется тихо набирать или скидывать позу.

Либо синхронно входить/выходить из нескольких активов.

Когда встанет вопрос диверсификации.

Собрать портфель значит анализировать больше данных и принимать больше торговых решений за меньшее время.

С увеличением средств в управлении даже самые неторопливые стратегии требуют качественно иных технических подходов.

Тарас Громницкий, в ТСЛаб можно тихо набрать и тихо скинуть позу. Можно следить за 10 тикерами. Можно синхронно кинуть заявку в 10 инструментов.

 

ХФТ нельзя делать, кмк. Но не исключено, что просто не умею его нагнуть правильно.

avatar
ch5oh, еще бы работу со списками тикеров сделали…
avatar

Sergey Pavlov, =) Тикет в саппорт с конкретным на пальцах разъяснением, что Вы имеете в виду.

 

Чтобы оптимизатор мог перебирать инструменты как один из параметров оптимизации?

avatar
ch5oh, например, система = портфель из акций. До очередного пересчета система не знает, какое подмножество тикеров будет выбрано для трейдов на очередном шаге. Исходное множество для анализа либо предписанное списком, либо (в случае с мосбиржей) тупо все почти 300 бумаг. 
avatar

Sergey Pavlov, а если Вы уже взяли позицию по Сберу, а на следующем пересчете решили, что Вам Сбер не нужен?

 

Чем-то похожая задача возникает на амерском рынке: там это называется "Предторговый фильтр", но он действует один раз за день в момент начала торгов.

 

А дальше следующий вопрос. Окей, список инструментов сформирован. А дальше что с ним делать? По каждому сгенерировать торговый агент и запустить?

avatar
ch5oh, ага, ну и прибыль пусть на карточку дальше шлёт.
avatar

Sergey Pavlov, =) при всем уважении, запросы в терминах "чего-то хочется, а кого не знаю" получают традиционный ответ «Когда-нибудь… что-нибудь. Возможно. Подумаем...».

 

А когда нарисованы картинки и стрелочки с указанием где именно ш… и* — другое дело.

 

ПС *«ш… и» == «шашечки».

avatar
ch5oh, Антон, при том же уважении, куда точнее? Применяем один и тот же алгоритм, но к разным тикерам. Разница агентов будет лишь в тикерах и сопутствующих деталях (размер лота, шаг цены и т.п.). При одинаковом исходном наборе тикеров возожны два сценария:
1. Мы заранее определили подмножество тикеров из доступных и на них торгуем одно и то же.
2. На каждом такте подмножество тикеров переопределяется.
Второй сценарий в тслабе сейчас в принципе не реализуем. Первый реализуем, но путем дурацкого копипаста агентов. Зачем? А если выбрали торговать 30 тикеров? 30 агентов? Везде руками прописывать шаги цен ипр? Риск ошибиться высок и работа глупая копипастить. Другое дело, что это может быть совсем не актуально для большинства… Но в порядке набрасывания… вот для меня такая тема актуальна.
Ну и для тестирования всё аналогично по множеству тикеров. Разумеется эквити должна быть сводной с возможностью детализации по тикерам.
avatar

Sergey Pavlov, сейчас есть возможность перекинуть значение одного индикатора (или константы) из одного агента в другой.

 

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

+ Общая защита счета с помощью Риск-Менеджера.

 

Пункт 1 сейчас да, решается простым копированием. Суммарное эквити было бы хорошо посмотреть, согласен. Но нужен механизм пересчета всех попугаев в рубли.

 

Пункт 2 я по-прежнему не понимаю. Какое-то извращение ради извращения? Вы мне ответься на вопрос: "что делать с позицией в Сбере, если Вы на следующем пересчете решили, что Сбер Вам уже не нужен?"

 

Соответственно, можно и в обратную сторону: каждый робот считает свою эквити, переводит в рубли и кидает в Глобальный Кеш. Поверх этого крутится некий агрегатор, который эти эквити суммирует.

avatar
ch5oh, нет проблемы с примером в виде сбера. Формально строгое правило на выход (очевидное): если сбер выпал из торгуемого подмножества на очередном шаге — это сигнал на закрытие позиции. Можно и иные правила придумать.

В целом мы же не только за искусство, но и против курвфиттинга? Первый шаг на этом пути — стокпикинг. Чтобы избежать курвфиттинга от стокпикинга — работаем с пулом тикеров. Ну а дальше то, о чем я написал.
avatar
Sergey Pavlov, вообще непонимаю почему не сделают стоить эквити по разным стратегиям. Просили уж 5 лет назад
avatar

Oleg Only Algo, на ФОРТС многие фьючерсы в своей валюте. Конвертация требует определенной ловкости рук.


Вы же захотите складывать брент + СИ + РИ + Сбер и получать результат в рублях, верно? А если симуляция за 10 лет — то курс рубля каждый день должен быть свой. Иначе чушь получится.

avatar
ch5oh, не обязательно так усложнять, это не большая проблема, можно получать результат в пунктах. брент+си+сбер отлично складываются при оптимизации и сейчас. Если в настройке вид имитации ставить «рассчитывать из суммы»  эквити будет показываться нормально. С РИ чуть сложней но многих наверное устроило бы если РИ просто в пунктах считался, без перевода в рубли, например меня бы устроило.
А кто акции гоняет у тех вообще нет таких проблем.
avatar

ch5oh, всему своё время.

Под каждую задачу свой инструмент.

Тарас Громницкий, каждый раз в Эксель строить геморно
avatar

Oleg Only Algo, кстати у экселя довольно сносный API.

С ним вполне удобно работать даже из C#.

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

Тарас Громницкий, автор хотел сказать что он по жизни тяп ляп. Такой подход лишь для тех кому слиться как два пальца. Когда речь пойдет о наборе позы от нескольких лямов тогда бы и говорил. Для автора это казино не более. О наборе позы правильно подмечено. Проверил он, дет сад!
avatar
Вспомнился анекдот, вам шашечки или ехать. 
avatar
скрытая реклама tslab?
avatar
f0xtr0t, скрытая реклама биткойна.
avatar
f0xtr0t, а чего её скрывать?
Я открыто скажу — одна из лучших в мире программ в своём классе. Среди русских однозначно лучшая.
Если б еще разрабы прислушивались к пожеланиям реальных трейдеров и не кидало их так резко по сторонам, вообще было бы шикарно — лучшего и желать не нужно было бы.
avatar
VladMih, уже не очень кидает. Траектория поступательная-эволюционная в последнее время.
avatar
ch5oh, дак еще последний кидок не доделан.
Надеюсь, хотя бы 2.0 долижут, не кинут как 1.2

Да и эволюция замедлилась. Обновлений почти нет.
Ночнухи может и лепят, а где релизы?
Как задолбал один только глюк с копипастом кубиков!
Пока не догадался как его обходить )))
avatar
ch5oh, а можно узнать когда эта траектория выведет на портфельную оптимизацию?
avatar

Artemunak, Уже несколько раз встречал этот термин и что его «очень хотят», но так и не понял чего хочет общественность.
=( Вы извините, что я после многих лет торговли Вас не понимаю с полуслова.

 

А. Жесткий курвфиттинг сразу под 5 тикеров? Так сейчас можно заправить в один алго хоть 10 торговых источников. Или проблема в том, чтобы пересчитать финрез к одной валюте? Так вроде бы есть возможность использовать свою функцию как оптимизируемый параметр.

 

Б. Или чтобы торговый инструмент был одним из параметров оптимизации? Типа, мы оптимизируем пересечение мувинга по параметру "Период", но при этом одновременно смотрим, как эта страта ведет себя на 100 тикерах?


В. Или чтобы можно было взять эквити, условно, 15 роботов (с готовыми параметрами) и подобрать для них наилучшее соотноешние весов? (То есть сделать курвафитинг 2-го порядка ;-) )



Г. Что-то иное? Все вместе А+Б+В?

Киньте здесь или в личку подробное описание что Вам надо из этого. Заметьте, это все совершенно разные вещи.

 

Что лично Вы вкладываете в понятие "портфельная оптимизация"?

avatar
ch5oh, лично мне хочется:
1. Чтобы можно было несколькими кликами увидеть совместную эквити всех 70 ботов. В принципе что-то типа пункта В и курвафитинга второго порядка тоже не помешает.
2. Чтобы можно было оптимизировать параметры бота или сразу нескольких и при этом учитывалась бы совместная эквити этих ботов.
В принципе в этих пунктах никакой экзотики нет, я думаю все примерно этого хотят.

3. А это уже поэкзотичней, но очень хочется.
Чтобы можно было применять кубики которые бы меняли поведение сразу всех ботов в портфеле и таким образом можно было бы тестировать например разные фильтры сделок сразу на всём портфеле ботов.
avatar

Artemunak, фраза "или даже нескольких" отправляет количество оптимизируемых параметров на Луну, а количество точек оптимизации — на Марс.


Ну, то есть "А+Б+В", чтобы можно было сделать совсем хороший фитинг под историю.

 

Сейчас основные усилия сосредоточены на провайдере Rithmic (уже доступен в бета-версии бесплатно) и на криптобиржах.

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

Сразу кучу параметров я например оптимизировать не буду, и что курвафитинг а что нет мне кажется должны решать пользователи, а то так можно сказать что всё курвафитинг.

Если сейчас попытаться объединить несколько ботов в один то приходится переименовывать кучу кубиков и тслаб тупо зависает или глючит когда копируешь\вставляешь и пытаешься что-то делать с большим количеством кубиков внутри скрипта.
avatar

Artemunak, во, это вообще вариант «Г».

Ммм… надо подумать. Может быть, есть вариант решить через механизм типа кастомного индикатора?..

avatar

Artemunak, ПС на днях делал что-то похожее, но пошел от обратного: завел несколько источников и от каждого провел свою торговую логику.

 

И еще добавил константу числовую. Значение этой константы определает, какие из веток логики (какие инструменты) надо включать и торговать. Выбор выполняется побитовыми масками. При полном переборе от 0 до 256 будут включаться в торговлю все возможные комбинации из 8 источников (по одному, все возможные пары, тройки и т.д. вплоть до полной корзины).

 

Плюс собственные параметры в торговой логике (грубо говоря, параметры индикаторв) все становятся доступными для оптимизации (при желании).

avatar
VladMih, Вы текст читали? ничего не имею против тслаба
avatar
f0xtr0t, читал. Вот он весь:
скрытая реклама tslab?
Я в ответ дал рекламу открытую. И что?
Чем это вас задело так, что устраиваете наезд?
avatar
VladMih, во-первых не коммент читать надо, а пост, во-вторых в каком месте я наехал? нервный чтоль?

по теме, автор поста сказал: все что народ сам разрабатывает то говно, юзайте тслаб. поэтому я и сказал что реклама.

VladMih, да ты еще и дерьмецо оказывается, если не нравятся комменты то сразу в ЧС.
Имей мужество отстаивать то что пишешь, а не прятаться сразу к мамке в подол.
avatar
Я считаю, что софт для разработки стратегий и софт для их исполнения должны быть состыкованы, но не должны быть одинаковыми. Потому что они решают совсем разные задачи. Поэтому конструкты типа Велслаба лично меня не устраивают. 
Тем более, что я нигде не видел удачного подхода к управлению портфелем систем на нескольких счетах. 
avatar
SergeyJu, это очень узкая задача с большим количество вопросов для обсуждения (с большой стоимостью разработки). Вряд ли она нужна больше 1% пользователей. Поэтому и софта под нее нет.
avatar
ch5oh, узкая=нужная. 
Автор за два года несколько раз полностью поменял портфель систем. Пока системы просто кубики и нет проблем с емкостью и клиентами, можно обходится тем, что есть. 
avatar

SergeyJu, и что? Поменял == заменил на улучшенные алгоритмы.

Вопрос торговли на 10 разных счетах — это необходимо ДУ-шникам. Либо при некоторых крайне специфических условиях.

 

Если Вы начнете формулировать ТЗ — Вам станет очевидно, что там примерно эшелон подводных камней и нюансов. Либо все выльется в что-то типа автоследования.

avatar
ch5oh, я участвовал в разработке двух действующих частных проектов. Главная проблема — качественная постановка задачи. С этим реально беда. А при неуклюжей постановке трудоёмкость реализации  может быть сколь угодно велика. 
avatar

SergeyJu, системы для создания/тестирования совершенно точно не должны слишком пересекаться с системами для торговли.

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

Тем более, что они функционально различны.

Тарас Громницкий, собственно, я об этом и написал. Одно важное исключение — готовую стратегию надо засунуть в портфель с полпинка. Это требует согласованности на приличном уровне.
avatar
1. Так же делаю — отдельные тесты гоняю для отдельных параметров (если я правильно понял конечно)) ).
avatar
Replikant_mih, по умному этот метод называется "градиентный спуск", кмк. =)
avatar
ch5oh, я не матчу изобретенные мной методы с существующими аналогами))) — возможно)).
avatar
ch5oh, ответ верный только в частном случае. Мы работаем с дискретными задачами, а спуск — непрерывная процедура. Тупая-тупая. 
avatar
мультичартс. кодить просто, датафидов масса, брокеров масса. русский рынок правда малость кривой и коннектор писали на брайтон-бич, но тем не менее все очень даже ничего
avatar

silentbob, $1500 сразу + ежемесячно стоимость датафида и того торгового АПИ, которым Вы будете пользоваться.

 

Для доступа на рынок РФ условия не всем понравится. =D

avatar
ch5oh, пробовал когда-то. Класная программа для ручного анализа, а для программирования годится только программистам, в отличие от универсального ТСЛаба.
Ну и дороговато, да.
avatar
ch5oh, под рождество 1200 сразу
датафид можно из квика загнать, какие проблемы. коннектор да, никуда не годится.
avatar

silentbob, =) "Квик" и "коннектор никуда не годится" уже как бы намекают.

 

Те, кто выбирает Квик для торговли вряд ли захотят вот так запросто отдать хоть 70, хоть 90 тыр. Это считай стартовый депозит для многих.

avatar
Автор, Вы не правы. Тслаб создавали фактически для школьников или домохозяек, если угодно. Его кубиковая архитектура лишь тому доказательство. Такой подход демотивирует понимать рынок, предлагая альтернативу гнать тест за тестом, все ближе и ближе скатываясь к курвфитингу (подгонку под исторические данные).  
Собственный софт во-первых уникален сам по себе, это дает хоть какие-то конкурентные преимущества по сравнению с тслабом, доступному всем. Во-вторых само программирование способствует более глубокому пониманию процессов или, грубо говоря, мозг лучше развивается в достижении цели.

avatar
chizhan, программирование торгового софта мало приближает к цели "заработать на рынке торговлей". Вы будете знать все тонкости протоколов, огребете кучу проблем при разработке тестера/исполнителя/оптимизатора роботов и в итоге, потратив несколько лет и несколько десятков миллионов рублей (в виде своих человеко-часов) вернетесь в начальную точку: "Поиск торговой стратегии. Где деньги, Зин?".
avatar
ch5oh, смотря как Вы строите свой проект, не так ли? ) для начала нужно ядро, заглатывающее входные данные и выдающее на выходе вероятность движения вверх или вниз. Если это работает с приемлемым результатом в полуавтоматическом режиме, то можно приступать к инфраструктурной части. 
avatar
chizhan, =D хрень, которая выдает на выходе (цитирую) "вероятность движения вверх или вниз" (подчеркну "правильно(!)выдает вероятность") — это уже готовый грааль.

Дальше Вы эту штуковину прикручиваете к любому торговому терминалу (хотя бы к Квику даже) — и дело в шляпе.
avatar
ch5oh, есть полно систем с 55% угадыванием. возьмете в граали? а с 80%? Но… где совершенно непонятно насколько глубоко будет проскальзывание
avatar
ch5oh, есть мнение, что приближает хоть как-то? ))
Вот общение на СЛ — это да! Я уже приблизился! )))
avatar
1.2 или 2.0 используете?
avatar

теги блога Artemunak

....все тэги



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