Хочу немного рассказать о своем [скорее негативном] опыте работы с TSLab.
Как-то раз услышал я про Welthlab и TSLab и решил посмотреть чего это такое. Решил остановиться на последнем, поскольку слышал что это почти аналог первого, разве что приспособленный еще и к торговле на российском рынке… и бесплатный для разработки и тестирования.
Имея некоторый опыт программирования, с блок-схемами разбираться не стал, а начал сразу с изучения и переделки нескольких скачанных примеров на C#. Разобравшись немного с API методом научного тыка. Вернее с основными понятиями — как сделать вход, как сделать выход. И как протестить то что получилось на истории. Больше, как мне казалось, ничего и не надо.
Оказалось однако что не все так просто. Имеющийся API оказывается позволяет в тестере покупать на уже прошедших барах и заглядывать в будущие бары. То есть допускает написание торгового алгоритма, который будет тестере (работая по открытиям баров) вести себя одним образом, а в реальной торговле — совершенно другим. То есть подход изначально порочный и большого доверия не вызывающий. Тем не менее, покопавшись в интернете я узнал, что соблюдая некоторые «the rule of thumb» правила работы с индексами баров, то в принципе можно быть уверенным что алгоритм в будущее заглядывать не будет, и на прошлых баров тоже не станет покупать… так что вздохнув и утерев пот со лба я продолжил ковырять код, пока не получил нечто, что мне захотелось проверить на реале.
Итак, я воткул робота на реал и начал ждать… и вот тут собственно началось… Сначала оказалось что робот не торгует. Выяснилось что программе при запуске контейнера(так называется запущенный алгоритм) есть несколько настроек исполнения ордеров. Как конкретно эти настройки влияют на работу функций CloseAtProfit, CloseAtStop, BuyIfLess, SellIfLess и т.п., при помощи которых происходит вход и выход из позиций, для меня в итоге так и осталось загадкой. Но как грицца — подобным мелочам наш бух было не сломить, и я оставил алгоритм бегать на реале, надеясь разобраться с настройками опытным путем...
А дальше начался какой-то кромешный ад. Алгорим(робот) то пропускал вход, то пропускал выход… то внезапно решал закрыть какую-то виртуальную позицию, которая не пойми по какой причине у него там где-то образовалась. Иногда оживить контейнер получалось, но раз в несколько дней он настолько запутывался в своих ордерах, что проще было запустить контейнер заново. В результате за ~3 недели ковыряний не получилось собрать даже статистику работы алгоритма чтобы сравнить ее с бектестом.
В общем итог получился такой — рабочий(на тестере) алгоритм иногда пропускает входы. Но хрен бы с ними с входами, но иногда он пропускает и выходы по стопу! Ну не совсем стопу, но условию, что если на текущем баре убытки превышают разумные пределы, то нужно, хоть кровь из жопы, — закрываться. Игры с настройками (в попытке добиться чтобы вход в позицию не осуществлялся с большим проскальзыванием, а вот выход осуществлялся с проскальзыванием любым) особых успехов не принесли.
В итоге через месяц я окончательно озверел, и решил что всё — лично мне хватит этих экспериментов на реале, и отложил программу в сторонку.
Какова мораль данной истории?
Мораль такая, что если бы я начал работать с TSLab так, как это изначально задумывалось его авторами, то есть через кубики, результат возможно был бы иной( хотя бы потому что на смартлабе я наблюдаю товарищей, которые давно уже работают с TSLab и причем, по их словам, вполне успешно)… Но когда человек решает работать через API и обнаруживает что не может контролировать ньюансы исполнения — это звездец.
Внезапно я осознал( все познается в сравнении) насколько хорош mt4 с точки зрения программиста.
Да и отношение к людям, преподающим курсы по TSLab у меня немного изменилось. Раньше я считал их полной фигней и впариванием за деньги того, что любой желающий сам может изучить по свободным источникам. Однако после ковыряния в документации и форумах я пришел к мнению что там содержится очень мало того, что могло бы помочь в написании реальных боевых роботов. Так что если вы собираетесь реально программировать на TSLab то, разобравшись с азами, реально имеет смысл пойти в обучение к кому-нибудь у кого есть опыт создания реально работающих и исползующихся на этой платформе роботов.
Скажу сразу: мне ни разу не пришлось лезть в API, и все мои задачи решались имеющимися средствами (кубиками).
Моя задумчивость в текущий момент и желание написать этот комментарий связаны с тем, что плата за продукт выросла до 2600 рублей (а 3 года назад 1 тыс. рублей).
Это означает, что все мои клиенты ежемесячно теперь в сумме отдают около 40 тыс. рублей. Это уже навевает на некоторые мысли и расчёты о том, окупится ли у меня собственная разработка такого продукта…