Блог им. baberbabrob
Хочу немного рассказать о своем [скорее негативном] опыте работы с TSLab.
Как-то раз услышал я про Welthlab и TSLab и решил посмотреть чего это такое. Решил остановиться на последнем, поскольку слышал что это почти аналог первого, разве что приспособленный еще и к торговле на российском рынке… и бесплатный для разработки и тестирования.
Имея некоторый опыт программирования, с блок-схемами разбираться не стал, а начал сразу с изучения и переделки нескольких скачанных примеров на C#. Разобравшись немного с API методом научного тыка. Вернее с основными понятиями — как сделать вход, как сделать выход. И как протестить то что получилось на истории. Больше, как мне казалось, ничего и не надо.
Оказалось однако что не все так просто. Имеющийся API оказывается позволяет в тестере покупать на уже прошедших барах и заглядывать в будущие бары. То есть допускает написание торгового алгоритма, который будет тестере (работая по открытиям баров) вести себя одним образом, а в реальной торговле — совершенно другим. То есть подход изначально порочный и большого доверия не вызывающий. Тем не менее, покопавшись в интернете я узнал, что соблюдая некоторые «the rule of thumb» правила работы с индексами баров, то в принципе можно быть уверенным что алгоритм в будущее заглядывать не будет, и на прошлых баров тоже не станет покупать… так что вздохнув и утерев пот со лба я продолжил ковырять код, пока не получил нечто, что мне захотелось проверить на реале.
Итак, я воткул робота на реал и начал ждать… и вот тут собственно началось… Сначала оказалось что робот не торгует. Выяснилось что программе при запуске контейнера(так называется запущенный алгоритм) есть несколько настроек исполнения ордеров. Как конкретно эти настройки влияют на работу функций CloseAtProfit, CloseAtStop, BuyIfLess, SellIfLess и т.п., при помощи которых происходит вход и выход из позиций, для меня в итоге так и осталось загадкой. Но как грицца — подобным мелочам наш бух было не сломить, и я оставил алгоритм бегать на реале, надеясь разобраться с настройками опытным путем...
А дальше начался какой-то кромешный ад. Алгорим(робот) то пропускал вход, то пропускал выход… то внезапно решал закрыть какую-то виртуальную позицию, которая не пойми по какой причине у него там где-то образовалась. Иногда оживить контейнер получалось, но раз в несколько дней он настолько запутывался в своих ордерах, что проще было запустить контейнер заново. В результате за ~3 недели ковыряний не получилось собрать даже статистику работы алгоритма чтобы сравнить ее с бектестом.
В общем итог получился такой — рабочий(на тестере) алгоритм иногда пропускает входы. Но хрен бы с ними с входами, но иногда он пропускает и выходы по стопу! Ну не совсем стопу, но условию, что если на текущем баре убытки превышают разумные пределы, то нужно, хоть кровь из жопы, — закрываться. Игры с настройками (в попытке добиться чтобы вход в позицию не осуществлялся с большим проскальзыванием, а вот выход осуществлялся с проскальзыванием любым) особых успехов не принесли.
В итоге через месяц я окончательно озверел, и решил что всё — лично мне хватит этих экспериментов на реале, и отложил программу в сторонку.
Какова мораль данной истории?
Мораль такая, что если бы я начал работать с TSLab так, как это изначально задумывалось его авторами, то есть через кубики, результат возможно был бы иной( хотя бы потому что на смартлабе я наблюдаю товарищей, которые давно уже работают с TSLab и причем, по их словам, вполне успешно)… Но когда человек решает работать через API и обнаруживает что не может контролировать ньюансы исполнения — это звездец.
Внезапно я осознал( все познается в сравнении) насколько хорош mt4 с точки зрения программиста.
Да и отношение к людям, преподающим курсы по TSLab у меня немного изменилось. Раньше я считал их полной фигней и впариванием за деньги того, что любой желающий сам может изучить по свободным источникам. Однако после ковыряния в документации и форумах я пришел к мнению что там содержится очень мало того, что могло бы помочь в написании реальных боевых роботов. Так что если вы собираетесь реально программировать на TSLab то, разобравшись с азами, реально имеет смысл пойти в обучение к кому-нибудь у кого есть опыт создания реально работающих и исползующихся на этой платформе роботов.
Да, там есть еще к чему стремиться, если говорить про версию 1.2, но скоро можно будет перейти на версию 2.0, там многое уже доработано.
Для того что-бы правельно исполнялись сделки, TSLab надо подключать напрямую к серверу брокера или к Плазе (это умеет только TSLab). А не к терминалу Квик. Еще не открыт метод нормального взаимодействия с квиком ), с ним глючит любая программа и коннектор, и TSlab тоже.
DMA спасет мир!
Кстати, у этих торговых платформ какой-то отдельный протокол взаимодействия по сети? Он работает поверх TCP? Где об этом почитать?
А каковы условия такого подключения? Где об этом можно почитать?
кстати «прямой провод прокинуть» тоже возможно)) тобишь поставить свой сервер на биржу в колокацию.
А на практике, TSLab не может просто так взять и пропустить вход! Он должен создать виртуальную позицию и как-то там ее учитывать… то есть ее реально нету, а он считает что она есть… и может например либо открыть потом, когда у него что-то в мозгах провернется(когда ты этого не ждешь), либо закрыть эту несуществующую позицию… чего опять же не ждешь.
Я могу ошибаться в деталях, но впечатление сложилось именно такое.
Мы используем и тс лаб. Хорош для простых задач в плане тестирования, кубики помогают. Доверяем ей больше 10 000 рублей, но виртуальных. То, что вы описали, хорошо делается на стокшарпе.
Скажу сразу: мне ни разу не пришлось лезть в API, и все мои задачи решались имеющимися средствами (кубиками).
Моя задумчивость в текущий момент и желание написать этот комментарий связаны с тем, что плата за продукт выросла до 2600 рублей (а 3 года назад 1 тыс. рублей).
Это означает, что все мои клиенты ежемесячно теперь в сумме отдают около 40 тыс. рублей. Это уже навевает на некоторые мысли и расчёты о том, окупится ли у меня собственная разработка такого продукта…
MQL4- супер вещь, жаль нельзя свои данные использовать и распараллеливать тесты, как в MT5.
ужасная программа, помню я ниче не смог делать, поддержка отвратная, никто не помогает, пишут только для таких же как они «прогеров» скриптами и всякими кодами. Правда с того времени утекло много воды, я уже и руками неплохо справляюсь) уже и не надо никаких роботов))
Руки рулят
а в рекламе, у них там «собери своего робота, как в LEGO»
то это вранье, как LEGO собирается в Ninja, и да, там я робота собрал за 5 минут со статистикой и т.п. Другое дело — что это NInja, там свой геморр.
А вообще интерес к алго пропал, как стал видеть, что руками можно больше сделать намного
да есть супер-прогерры, которые делают неплохих ботов, прибыльных. Ну я не они, а роботов нормальных делают только они)
проще им отсыпать, правда нужно ли это, это вопрос)
У меня много примеров глюков тслаб. И кубиками. Никакого доверия нет, легче вручную все считать, глюк на глюке и все неудобно.
Какое там торговать! Он и для тестирования почти непригоден, причем самых простых стратегий, без всяких спрэдов и стаканов.
Зато бесплатно.
Мое печальное мнение — какашка, недопил, скомпрометированная идея. А жаль.
Придется свой тестер на джаве писать…
можно, а как я вам должен пример стратегии, результаты, и глюки показать? Я судиться ни с кем не желаю, не считаю возможным что-либо доказать. Знаю — что многие нормально с ним работают, и рад за них. Сам потратил усилий много, обойти глюки не смог за разумное время. Документацию прочитал.
Увы, сначала я так думал — а потом посмотрел — явная белиберда (проверил на др тестере). Иногда прокатывает, иногда — нет, некоторые вещи никак не обойти, а ведь еще надо понять, т е прокрутить весь график.
www.youtube.com/playlist?list=PLZYekWHmh5oG6iuCQsfA2Rp6ieORpMToo
Библиотека опенсорсная и хорошо покрыта тестами — по сути тесты это небольшие примеры как работают части этой библиотеки, в том числе взаимодействие со SmartCom.
Здесь C# — короткие уроки: www.youtube.com/playlist?list=PLZYekWHmh5oGyvXSaqaXPL9nOCLjGl1SA
я там был, спасибо за помощь.
Глюки случались раз в год где то.
Но в основном все проблемы, исключительно, по моей вине были.
Прога не такая простая, как кажется, но очень удобная. На полное освоение уйдёт не меньше полугода-года. Но зато потом сможете писать алгоритмы любой сложности.
To SECRET: я и раньше подозревал, что вы совсем не торт «секрет» (не тот, что класс на ЛЧИ показывал). Но ваш коммент в начале меня окончательно в этом убедил.
Хотя может и тот, но в этом случае, возможно, ТСЛаб составляет серьёзную конкуренцию продажам ваших поделок…
В любом случае удивлён таким мнением. У программы масса недочётов, но одному самоучке не поднять подобный проект.
когда начинал изучать платформу также было, решилось банально путем запуска 64битной версии тслаба))
PS. Пардон, я имел в виду стокшарп! :) ТсЛаб это вообще наверно нечто… :)
Да, настроек в ТСЛабе много, но они же дают и гибкость использования.
Советую пройти курсы Родиона (не помню ник на смартлабе), ник на форуме ТСЛаба — ra81. Ну и естественно курить сам форум http://forum.tslab.ru/. Потихоньку все освоите. С наскоку вникнуть в эту тему у меня лично не получилось, пришлось ковыряться с месяц.
Единственная проблема ТСЛба это утечки памяти при длительном использовании. Но это спокойно лечится принудительной перезагрузкой по расписанию ночью.
Да, и оптимизация стратегий тоже не фонтан, только монте карло, никаких визуализаций как в MQL5 и Амиброкер. Но оптимизировать можно.
Галимая антиреклама
…но схрена ли вдруг она «голимая», а!!?
После такого наезда я ожидаю от вас не менее, чем скриншота с настройками секции открытия ордеров, которыми вы пользуетесь в вашей безупречной торговле!
Настройка рестарта тслаба это вообще нормальное требование авторов? Зачем?
Пропуск входов, выходов… Необходимость делать это руками, это нормально?
Ну вы меня извините...
А то, что пресловутая защита роботов, которые на продажу, в контейнерах? Дырявая и не рабочая… Это на заметку тем, кто продаёт тслаб роботов..
Я честно пытался работать через тслаб, но, к счастью, мт5 подоспел (и это не реклама мт5, смысла нет)
1 багов много… например из 4ех типов открытия позиции работают только 2… и это в кубиках… а сколько багов в апи...
2 есть баги тестировщика… например баг входа -выхода на одной свече… поэтому обязательно надо смотреть сделки все ли там правильно… ну например ставим лимитник и он на той же свече исполняется… тестиовщик на этом глючит
3 надо понимать что рынок более сложен чем тест… т.е в реальном рынке сигналы пропускаются заявки не исполняются есть клиринги, гэпы, запрет шортов, планки когода не торгуют и почие ньюансы
например в тслаб нельзя корректно реализовать простейший бот пересечение скользящей средней с ценой… будет в реальном рынке глючить и не исполнять сигналы…
имхо зря тслабовцы затеяли версию 2.0 имхо потратили впустую 1.5года… надо было баги править
— Не нужно сравнивать мт5 тот что форекс кухни пользуют и мт5 который используется для биржевой торговли…
PS: правда я не понял, причем тут «всё»…
Через апи не которые вещи нельзя контролировать, т.к. алгоритм это одна часть, а его запуск и контроль это другая часть.
в не зависимости от того как написан робот, когда его запускаешь в торговлю, можно настроить и проскальзывание, и указать, что стопы закрывались по рынку, и профиты отдельно, есть настройки позволяющие роботу зайти на следующем баре если случился пропуск сигнала, основная проблема пропусков, это то что логика скрипта вами написанная не учитывает, что на след баре не будет этой цены или объема.
месяца 3-5 назад вышло обновление 1.2 и после этого огромная куча багов ушла, и главное пропажа баров)
простой робот делается быстро, для запуска надо чучуть разобраться и тоже все будут хорошо.
ну наверное да мт единственный более менее стоящий аналог, возможно еще смарт шарп, но когда я его смотрел он был слишком сырой.