TSLab позволяет создавать торговые системы любой сложности: от простейших, до профессиональных, что делает продукт интересным как для новичков, так и для профессиональных трейдеров.
В рамках одной программы Вы сможете разработать, протестировать на исторических данных, произвести оптимизацию и, главное, запустить систему на исполнение в режиме реального времени.
Как такое возможно? Сделка, в моменте и в шорт и в лонг...
Кроме того, сейчас прихожу к выводу, что сделки в Квике не совпадают с сделками в ТСлабе. Это я такой исключительный или проблема имеет место быть ?))
п.с. Робот пашет в реале.
А точнее о том, как формализовать тренд в алго торговле на примере ТСЛаб.
Существует масса различных способов для определения тренда. Начиная от готовых индикаторов с “классическими” параметрами и заканчивая “супер навороченными” математическими моделями. Я же решил поделиться своими, относительно простыми, но весьма эффективными (с моей точки зрения) наработками по формализации тренда и созданию тренд-фильтров на их основе.
Итак, как человек, не верящий в систему с одним параметром, всякий раз при разработке нового алгоритма я пытаюсь впихнуть в него какой-нибудь фильтр, который изрядно увеличит количество этих самых параметров, а заодно и профит). Вбил я себе в голову, что нельзя торговать какой-то сетап (паттерн) в отрыве от контекста. Ну вот и фильтрую всё ненужное. Входим на пробой уровня в лонг? Только если глобально рынок растет! Продаем отскок от value area high? Только если глобально снижаемся, или во флете..
Так вот о том, как я в своих стратегиях определяю эти самые глобальные снижения, росты и флеты я и расскажу далее.
Всего у меня есть 2 любимых способа. Каждый обладает своими недостатками и преимуществами. В этой статье расскажу об одном из них, второй оставлю на потом.
Итак, вся суть первого способа заключается в тех буквах… AMA! Или Adaptive Moving Average. Всё до безобразия просто: смотрим на изменение AMA и на основе этого делаем вывод какая тенденция сейчас превалирует.
Теперь немного подробнее и с примерами. Для начала давайте объясню, почему именно AMA, а не какие-нибудь другие буквы (SMA, EMA, ТЬМА). В отличие от других скользящих средних, эта имеет одно замечательное свойство. Если говорить простым языком, то она может менять свой период в зависимости от рыночных условий. Когда на рынке есть направленные и импульсные движения, она ведет себя как быстрая скользящая средняя, когда же на рынке флет, её характер меняется на “медленный”. На практике это означает, что в тренде она будет меняться быстро, а во флете, напротив, даже не пошевелится… Этим и будем пользоваться.
Итак, весь фильтр сводится к одной простой формуле (пример для Ап тренда):
AMA-AMA[-1]>N
Попросту говоря, если за одну свечу значение АМА меняется больше, чем на N пунктов, то мы считаем, что на рынке тренд вверх. Через величину изменения мы по сути дела определяем крутизну скользящей. Чем больше N, тем круче будет расти AMA, тем сильнее тренд.
Ясное дело, таймфрейм AMA, а также величину N мы изменяем в соответствии с поставленными задачами. N мы можем выразить как в абсолютных величинах (пунктах), так и привязать к текущей волатильности (AMA-AMA[-1]>ATR*N), или цене инструмента (AMA-AMA[-1]>CLOSE*N).
Вот, собственно, и весь фильтр. Ниже несколько примеров с отфильтровыванием Ап тренда, Даун тренда и флета.
Что касается недостатков. Хоть и в меньшей степени, но все же AMA, как и все скользящие, запаздывает, что видно на примерах выше. Тем не менее, внедрение подобного фильтра может значительно увеличить эффективность стратегии и даже стать её основой. Проверено как в теории, так и на практике).
P.S. Если статья понравится, то в следующей расскажу про второй способ фильтрования контекста, обладающий некоторыми другими преимуществами. Например, практически полное отсутствие запаздывания ;)
Приветствую!
В данной статье хотелось бы рассказать о недавнем опыте процесса алгоритмизации ручной торговли.
Немного предыстории. Пришел человек с желанием сделать робота из серии, имею желание, но не имею возможности (не могу программировать). Ну это довольно распространенное явление. Суть алгоритма не такая и сложная для трейдера, НО обьяснить программисту, который не имеет опыта трейдинга — довольно таки сложно, имхо.
Собственно обычно, даже «гури» рынка, не всегда могут обьяснить принцип своей торговой системы (ну кроме великих обучателей, которые легко могут обьяснить что покупать нужно дешевле, а продавать дороже!)
С чего же начинать процесс описания системы, в таком случае?
Как мне кажется, необходимо следовать простым правилам
1 не врать самому себе (если данный алгоритм не приносит в ручной торговле 50% в месяц, естественно цифра условная, то и после алгоритмизации не стоит ожидать большого профита)
Лично для меня это самый важный пункт в процессе алгоритмизации.
2 Делать для себя заметки, максимально детализируя принцип принятия решения о входе.
Помимо того, что мы рисуем индикаторы и каналы, на которые ориентируемся в торговле, всегда присутствует множество факторов, особенно если трейдинг активный, внутредневной. Это и время в которое мы торгуем и не торгуем, личные ощущения (ну например цена слишком сильно выросла или слишком сильно упала для данного инструмента и мы приняли решение «ловить падающий нож»), новости, «коррелируемые тикеры (ну например нефть подросла, бакс упал и мы решили срочно пора покупать ртс), плотность в стакане (возможно), накопление кластера (»аля volfix"), усреднение убытка (желание не закрывать своего лося, а тянуть неизбежное) и тд и тп. Реально лучше описывать абсолютно все детали. Чисто теоретически алгоритмизировать можно практически все, от слов, все покупали и я решил купить.
3 Описать личный мани и риск менеджмент (если такой имеется)
После этих довольно не сложных шагов уже начнется выжимка алгоритма. Тут есть два пути. Первый — это все описанное абсолютно все, реализовать, и потом методом проб и ошибок отсекать то, что делает результат только хуже (так как анализом уже совершенных сделок, редко какой трейдер занимается). Второй же путь обратный, начинать реализацию от основного сигнала, и в дальнейшем наращивать дополнительные условия (удобнее всего делать в виде настроек, для того чтобы было проще ту или иную настройку вкл/выкл).
Естественно в дальнейшем будет огромное количество изменений и дополнений в алгоритме потому тут или уж нанимать постоянного программиста себе или упереться и научиться самому(правильнее имхо)
Цель, автоматизации алгоритма, не всегда сводится к тому, что робот торгует, а я кайфую на островах. Нет, это абсолютно не так, и если перестать анализировать рынок то довольно быстро упираемся в отсутствии идей трейдинга. Чаще всего сталкиваюсь с тем, что вроде бы у человека есть алгоритм, но это по большей части «теоретический трейдинг», то есть когда основной заработок только в теории. Далее после алгоритмизации и анализа результата сводится или к разочарованию (что тоже не плохо, ведь лучше разочароваться так, чем после слива денег) или к более правильному выходу — совершенствованию системы, в плоть до полного отказа от первоначального алгоритма и рождению нечто нового!
Понятно что в случае с совершенствованием системы, процесс бесконечен, но что делать если разочаровались в алгоритме? Хоть и субьективно, но все же, по моему опыту, большинство трейдеров просто уходят с рынка, после разочарования. Единственно что могу посоветовать — делайте перерывы в торговле с изучением нового для себя, новый софт, новые «индикаторы», новые методы и тд.
Теперь к конкретному примеру, с которым ко мне пришел человек. Суть в двух словах — ловить импульс рынка, выходить когда встретили сопротивление (объемы накопленные в кластерах) или по стопу. Конечно это упрощенное изложение, но не могу же чужие секреты расскрывать (хоть секретов и нет, но все же не этичненько)
В целом для внутредневного трейдинга алгоритм довольно нормальный. Не топчик, но как к минимум потенциально интересный. На данном этапе осталось только управление размером позиции доделать и будет уже интереснее результаты, но пока что дела обстоят так:
Тут результаты по rih
тут текущие по rim (так же запустил трансляцию и можно будет следить онлайн если вдруг интересно)
Ну на графике сделки выглядят не совсем информативно, но главное они довольно быстрые если импульс стремительный, но могут и повиснуть если забоковим
Резюмируя хочу сказать, довольно сложно алгоритмизировать свою торговлю, но уже практически нет ничего невозможного. К слову представленный алгоритм собирать было довольно интересно, так как раньше не было торговой статистики/кластерного анализа в тслаб. Годы назад когда торговал руками, постоянно следил за наполнением кластеров, и всегда ждал, когда же появится в тслаб эта возможность, а когда появилась возможность уж все наработки были просто устаревшими, и вот подвернулся такой случай, думаю буду заново вникать в эту тему и искать новые для себя алгоритмы.
Доброго дня.Облазил весь интернет в поисках спокойного, толкового и опытного учителя, способного дать мне знания по роботостроению.Пока безуспешно.Да, я в курсе, что существуют такие ребята, как Дэй Трейдинг Шуль, Робоферма, Русалго, но проблема в том, что у первых ценник высоковат и половина из курса мне совсем не нужна; у второго-ни рыба, ни мясо; третий-больше не преподает.
А чего же ты не обратишься к Саро, спросите Вы? Обращался, много раз обращался.Хороший человек, отзывчивый, но индивидуальным обучением не занимается.
Ребят, я уверен, среди прочитавших есть сенсэи этого дела.Отзовитесь в л.с.Естественно я готов оплатить Ваш труд (за каждый урок).
Чему бы я хотел научиться:
1)Знать досконально интерфейс
2)Понимать логику взаимосвязей кубиков
3)Варианты проработки внутридневных спекулятивных ТС.(есть идеи)
4)Работа преимущественно с кластерами.
Пишите.Буду очень признателен.Не подведу!
p.s. также смотрю в сторону MQL5, но там я вообще «зеленый», хотя было бы здорово научиться реализовывать в нем свои идеи.
Приветствую
Давненько не писал, нехватка времени была и желания. Время убивалось на обучалку, а желание убило тренд на сбере(ну как то деньги перекинул в контртрендовые алго потому убытки получил не приятные, никак не отучу руки нелезть к алгоритмам со своим азартом). текущий же «тренд» на ртс порадовал немного, но конечно не покрыл огорчения от сбербанка.) В общем трейдинг вещь не легкая.
Проводил вебинар по технической части набора позиции в TSLab. Подразумевал показать каким образом можно осуществлять управление позицией с точки зрения программы, а не трейдинга. Так как тема довольно большая то можно в принципе организовать еще веб с примером как сделать некий вариант «маркетмейкера», но не буду загадывать, а то вдруг какой то тренд снова не в мою сторону.
Как обычно веб показывал на простых примерах (особо никто не просит конкретику показывать, потому? импровизируемс)
Видео не монтажировал, заранее предупреждаю, все как есть показывал. В общем долгое видео, смотреть рекомендуется только если есть сложности с конструированием алгоритма в тслабке, иначе зевакам естественно не интересно будет.
Отчасти в вебинаре показал эффект того, что даже простые системы с чуть большей логикой, чем тупо купи/продай, могут показывать хорошие результаты, потому есть смысл усложнять логику работы с размером позиции.
Самое важное не стремиться делать мартингейл в любом виде. то есть размер позиции должен правильно конролироваться, иначе будет слишком большой риск.
Всем привет!
Задался таким вопросом, можно ли купить ключ для TSLab с неограниченным сроком действия? Кто-нибудь имел такой опыт?
data <- Quandl('WIKI/T', type = "xts", start_date="1997-01-01")3. В строке 16 также надо поменять тикер внутри кавычек.
data[, 1] <- "T"
write.table(tslab_txt, file="D:/QuandlDataSets/t.csv", sep=",", quote=F, row.names=F)Всё, теперь надо выделить весь скрипт (CTRL + A) и нажать кнопку Run:
Увидел сегодня в личном кабинете письмо от Финама про ТСЛаб.
«Сообщаем Вам, что с 1 января 2018 года компания АО «ФИНАМ» прекращает учет и выдачу лицензионных ключей для программы TSLab (обычных и HFT). Тариф за использование программы TSLab на Вашем счете будет снят до конца года, сервис будет отключен.
Напрягли слова „сервис будет отключен“. Из сбивчивых пояснений менеджеров понял, что для того, чтобы мои роботы продолжали работать с 1 января мне надо за следующую неделю (5 дней) купить лицензию на ТСЛаб и снова переподключиться к Финаму.
А вас это не напрягло?
Торгую на Американском фондовом рынке с Interactive Brokers (IB) более трех лет на сегодняшний день используя разные стратегии. До недавнего времени все это было вручную, внутридневка и средний срок. Моя торговая жизнь изменилась, когда я, закончив курсы по созданию и алгоритмизации торговых систем с использованием платформы TSLab, решила выйти на Америку со своими роботами.
Вооружившись знаниями с курса по поиску рыночных закономерностей и отточив навык по нахождению смещения вероятности в своей торговой системе, я создала портфель из десятка роботов и горела нетерпением запустить их на своем боевом счету у Interactive Brokers. В процессе обучения на курсе я проходила практику на Российском срочном рынке в течение нескольких месяцев, поэтому сложности как настроить и запустить агентов в платформе TSLab не возникало. Меня интересовало другое- как сконнектировать TSLab с платформой брокера Trader Workstation (TWS), так как она не является особо user-friendly, достаточно громоздка и не совсем интуитивно понятна, а для алготрейдинга нужно только торговать через эту платформу. Вот тут-то и оказалось, что кроме краткого руководства по подключению TSLab к брокеру IB особо ничего и нет. Перелопатив сотни страниц интернета, русско- и англоязычных блогов и сайтов, я нашла часть необходимой информациии, а недостающая часть была получена методом тыка, путем проб и ошибок в процессе запуска и работы на реале.
Поэтому я решила обобщить в данном цикле статей весь наработанный материал и свой опыт по выходу на реал на Америке со своими роботами из TSLab через IB. Буду рада, если данная статья поможет кому-то сэкономить время, нервы и деньги при подобном процессе.
Для удобства я разбила весь материал на три части:
Часть 1- Особенности при подготовке к запуску TSLab на реал с IB
Часть 2- Непосредственная работа терминалов TSLab и TWS
Часть 3- Часто встречающиеся проблемы
Отмечу, что здесь речь пойдет о реальном счете на IB,(не демо) и полнофункциональном коннекторе TSLab,(не тестовый режим).
Сразу оговорюсь, чего не будет в этой статье-не будет информации о том, как открыть счет у IB, как формировать свой портфель, как управлять рисками и как создавать роботов в TSLab для Америки. Все это отдельная тема, и если будет значительный интерес, то могу написать об этом дополнительно.
В этой статье я рассмотрю основные моменты подготовки и запуска уже готовых роботов, созданных в TSLab на реал с IB, с которыми я столкнулась. Итак, все по порядку.
Trader Workstation(TWS), платформа брокера IB, через которую нужно будет вести торговлю и коннектировать с TSLab. Она устанавливается отдельно на той машине/ПС, откуда будет вестиcь торговля, скачивается версия для десктопа, не онлайновская. Занимает примерно 700 МВ. Платформа TSLab при этом занимает около 500 МВ, и в процессе работы до конца сессии еще накачивает примерно столько же. Это надо будет учитывать при выборе памяти (RAM), если вы размещаете свои скрипты на отдельном сервере-VPS (Virtual Private Server)
Market Data Subscriptions. Для начала работы необходимо иметь подписку у брокера на реальные маркет данные- Market Data Subscriptions. Делается это через
Account Management>User Settings> Market Data Subscriptions.
Особенностью IB является не очень удобная система самой подписки- плата взимается за целый календарный месяц независимо от дня подключения. т.е если вы хотите подключить реальные маркет данные в середине месяца, например 16 числа, то платить придется за целый месяц до первого числа следующего месяца.
Стоимость данных зависит от рынка, страны и от глубины данных. Я например выбрала такие, как на скрине внизу- это позволяет видеть реальные котировки и торговать всеми акциями USA, без стакана. В целом это стоит мне 4,50 дол. в месяц, если комиссия за этот же месяц более 30 долларов. Если меньше, то дополнительно нужно платить 10 долAPIID- для меня это был не совсем понятный момент, какой API client ID нужно иметь и где его брать. Оказалось, все намного проще. Это делается в настройках
TWS – File> Global Configuration>API> Settings > Master API client.
Выбираем любое не отрицательное число и вписываем туда. Это же число затем будем использовать при настройке поставщика в TSLab.
В этом же блоке проверяем Socket port- должен быть 7496, иначе работать не будет.
И я также вбила данные IP co своего VPS в строчку Trusted IPs
Автоматическое закрытие платформы TWS и ее блокирование после определенного времени неактивности. Для этого опять идем в
File> Global Configuration> Configuration>Lock and Exit и устанавливаем следующее:
И вбиваем нужное время для автоматического выхода из программы- Set Auto Log Off Time
После этого нажимаем «Apply»
Автоматический вход в платформу TWS -стоит отметить, что в базовой конфигурации он не предусмотрен в целях безопасности, поэтому каждый день до начала сессии нужно заходить на свой VPS сервер/ту машину, где она установлена и запускать ее вручную до начала работы сессиии. Если у вас в TSLab стоит автоматическое подключение к поставщику по расписанию в менеджере команд, то запускать TWS нужно до начала времени подключения.
IB использует двойной метод идентификации, сначала по логину и паролю, а затем по комбинации цифр и букв с карты-ключа IB, которая выдается при открытии счета. При желании в настройках можно отказаться от двойного метода идентификации:
Account Management> Manage Account>Security>Secure Login System>SLS Opt Out
После того, как эта фунция будет активирована, можно будет использовать только логин и пароль и тогда уже настроить автоматический вход в программу. Я сама этого пока не делала, предпочитаю более безопасный вход вручную.
Теперь о некоторых особенностях в настройках поставщика в TSLab. При создании поставщика данных необходимо обратить внимание на следующее:
Счет — это ваш номер счета у IB.
API ID-это тот номер, о котором я писала в п 4. Вбиваем то же число, которе выбрали для Master API client в TWS.
Адрес — вбиваем IP той машины, на которой установлены TSLab и TWS
Порт- должен быть обязательно 7496, как и в п 4.
Локальное время- обязательно поставить галочку
Исп. SMARTвсегда — тоже ставим галочку, это нужно для API торговли и правильного расчета комиссии.
Остальные настройки- по желанию.
Особенностью настройки агента в TSLabявляется выбор тикера в источнике скрипта или агента. Тикер для торговли акциями вбивается вручную, а не выбирается из списка меню, как это например, при торговле на рынке FORTS. При первом запуске TSLab не имеет ни одного тикера в памяти и поэтому его нужно занести туда через платформу TWS.
Для этого в TWS создается любой лимитный ордер с нужным тикером, я, например, делаю это по 1 долл за акцию вне рабочей сессии. Затем после того, как связь с брокером установлена в менеджере поключений TSLab, можно запускать скрипт или агента и выбирать нужный источник как обычно и тогда появится выбранный тикер. После этого, не раньше, лимитный ордер у брокера можно удалить. Все набранные тикеры потом сохраняются в памяти TSLab и второй раз один и тот же тикер вводить не нужно, только новые.
Если вы все правильно настроили, то при подключении TSLab к TWS у вас в платформе брокера должна высветиться такая табличка при нажатии на зеленый символ DATA в правом верхнем углу. Внизу можно увидеть ваши IP данные с портом 7496 и API Client ID и статус- Аccepted.
Продолжение следует...
В следующей статье, Часть 2 я продолжу рассказ о непосредственной работе обеих платформ в реальном режиме.
Надеюсь, этот материал был полезным. Буду признательна за комментарии и пожелания.
Удачных вам трейдов!
Почти у всех трейдеров, использующих в своей торговле алгоритмические системы, рано или поздно при оптимизации этих самых систем встает вопрос: «а не занимаюсь ли я подгонкой алгоритма под рынок, может он и не рабочий вовсе?» Эта мысль не раз возникала и у меня, и каждый раз я думал над тем, как понять где «полезная» оптимизация и поиск смещения вероятности, а где уже переоптимизация и подгонка под рынок. В итоге появились некоторые мысли, которые предлагаю к обсуждению. Итак, вот к чему я пришел.
Для начала предлагаю разделить весь процесс оптимизации на 2 основные части:
1. Оптимизация параметров, отвечающих за вход в позицию
2. Оптимизация параметров, отвечающих за выход из позиции (стопы, тейки, трейлы и т.д.)
И вот это вот деление, на мой взгляд, и дает ключ к ответу на вопрос «настройка, или подгонка?»
Разберемся по порядку. Чем мы занимаемся, когда оптимизируем параметры, отвечающие за точку входа?
И вот тут я смею утверждать, что в данном случае мы занимаемся именно поиском смещения вероятностей и увеличение числа положительных сделок будет как раз говорить о наличии какого-то смещения, нежели о подгонке под рынок. Почему я так считаю? А потому что сама суть поиска смещения вероятностей заключается именно в поиске такого соотношения рыночных условий, в результате которого на истории мы получали перевес. Переоптимизации тут не может быть по определению. Вот конкретные условия, при которых мы входили и вот конкретный результат, который мы получили. Положительный — хорошо, значит нашли смещение.
Но тут есть нюансы, которые могут бросать пыль в глаза.
И эти нюансы как раз связаны со второй частью оптимизации — это поиск оптимальных параметров на выход из позиции. Тут сразу оговорюсь, что речь о ценовых параметрах, т.е. я сейчас не говорю о реверсных системах, или системах, где для выхода используется так же сигнал, или паттерн, аналогичный сигналу на вход. Ценовые параметры — это размер стопа, размер тейка, параметры трейлинга и другие приемы мани-менеджмента. Именно в них, на мой взгляд, может крыться подвох, который делает красивую линию эквити из системы с нерабочей идеей. И это довольно просто доказать, взяв набор случайных входов и прогнав оптимизацию по тейку, стопу и тп. Почти наверняка найдется такое сочетание параметров, которое покажет неплохие результаты. И вот этот фокус и может сыграть с нами злую шутку, спрятав от нас изъяны системы.
Я сейчас не призываю отказаться от оптимизации этих параметров.
Нет, это тоже важная вещь, но сначала нам надо убедиться, что основная идея у системы есть и она работает. Кстати, справедливости ради, надо сказать, что в самом принципе управления выходом из позиции может крыться смещение вероятности, которое в итоге на реале может «вытянуть» плохую систему. И даже вроде бы есть такие системы, основанные исключительно на мани менеджменте. Но сейчас я не об этом). Так как же нам понять, что идея нашей торговой системы рабочая, что мы нашли смещение вероятности? Очевидно, надо каким-то образом избавиться (на время) от ценовых параметров выхода из позиции. Нам ведь что интересно? Как мы поймем, что смещение есть? Да очень просто, цена, после входа в позицию, сразу или через время должна пойти в нашу сторону. Неважно насколько, не важно каким образом (импульсно, постепенно, с задёргами, или без), но она чаще должна идти в нашу сторону. Это и будет означать наличие смещения вероятности. Т.е. мы будем знать, что сейчас больше шансов, что пойдет туда-то. Осталось только как-то это отследить.
И тут я предлагаю такой вариант: нам просто надо фиксировать позицию через определенное время. Если получим убедительный плюс — смещение есть! Тут важно только понять, а сколько держать?.. Ну вот тут есть элемент интуиции и понимания своей системы. Все согласно тайм фрейма и идеи. Я проверил пару своих идей так: прикинул средний размер движения, которое планирую брать в системе, прикинул его продолжительность (минимальную и максимальную) и провел оптимизацию по времени удержания позиции от минимального до максимального (взял с запасом от 5 до 1500 минут). Поразительно, но 99% исходов оказались в положительной зоне. Число выигрышных сделок варьировалось от 50% до 65% по всей сетке, профит фактор от 1.3 до 2 (за исключением пары исходов) Т.е. 6 из 10 раз цена шла в мою сторону, да к тому же на расстояние в полтора-два раза больше, чем когда цена шла против меня… И всего 2 отрицательных исхода… 5 и 10 минут (видать, система не скальперская:) ) Неважно как, неважно насколько, цена шла в мою сторону! Вот оно смещение) Теперь бояться нечего, можно и второй частью оптимизации заняться, высосать из системы по максимуму!