В этой статье я продолжаю делиться своим опытом по алгоритмической торговле моих роботов из TSLab на Американском фондовом рынке через брокера Interactive Brokers (IB). Спасибо всем, кто проявил интерес к моей первой статье, опубликованной в ноябре и за ваши комментарии. Это воодушевляет и вдохновляет к дальнейшей работе в этом направлении. Для тех, кто не успел ознакомиться с первой частью даю ссылочку внизу.
Для удобства весь материал был разбит на три части:
Часть 1- Особенности при подготовке к запуску TSLab на реал с IB– ноябрь 2017, ссылка https://smart-lab.ru/my/schardonnay/blog/all/
Часть 2 — Непосредственная работа терминалов TSLab и TWS
Часть 3- Часто встречающиеся проблемы
В данном выпуске идет рассмотрение второй части –как происходит работа TSLab и платформы брокера Trader Workstation (TWS) в течение основной рабочей сессии – с 9.30-16.00 ЕТ, порядок исполнения ордеров, проскальзывание и особенности комиссии. Все примеры сделок в этой статье реальные и приведены с моего торгового счета IB за последние два месяца торговли роботами.
Я исходила из принципа освещения наиболее актуальных моментов, того, что вызвало у меня внимание и повышенный интерес, и того, с чем ранее не сталкивалась. Если у кого-то возникали подобные моменты, буду признательна за комментарии по вашему опыту.
Установление связи между TSLab и TWS- в первой части статьи я описывала моменты подготовки к запуску на реал обеих платформ. При успешном подключении у вас в TWS появится такая табличка при нажатии на зеленый символ DATA в правом верхнем углу. Внизу можно увидеть ваши IP данные с портом 7496 и API Client ID и статус- Аccepted.
При этом в платформе TSLab появляются сообщения о подписке на реальные маркет данные (Market Data Subscriptions), как показано на скриншоте внизу.
Первая строка сверху- брокер транслирует TSLab, что у меня нет подписки на глубину стакана.
Вторая строка сверху- говорит, что есть инструменты в портфеле, по которым нет реальных маркет данных. У меня есть в портфеле бумаги не с Американского рынка, они транслируются с задержкой, это про них.
Остальные строки- это в принципе совпадает со скриншотом вверху из платформы IB с той разницей, что в TSLab эта информация транслируется при подключении к брокеру в сообщениях.
Еще раз отмечу, что для торговли на реале нужны реальные маркет данные. Как это делается я рассказывала в первой статье.
После того, как все сконнектировалось, рассмотрим исполнение ордеров на стороне брокера. На стороне TSLab я останавливаться особо не буду, там в принципе все стандартно и при необходимости можно познакомиться с довольно подробной документацией на сайте TSLab. Отмечу лишь два момента.
Первый -ТSLab после входа в позицию выставляет только один ордер – или стоп или тэйк профит (ТП), в зависимости от того, к какому краю ближе сейчас находится текущая цена. Пересчет и выставление нового ордера происходит в зависимости от интервала пересчета- у меня 1 мин. При этом на графике отображаются данные и по стопу и по ТП, что визуально удобно.
Второй- IB не позволяет заходить в позицию в лонг и шорт одновременно по одной бумаге, можно только в одну сторону. В этом отличие от рынка FORTS.
Комиссия — Вопросы по комиссии от вас встречались наиболее часто, поэтому остановлюсь еще на некоторых нюансах.
Вот один из экстремальных примеров, когда 100 акций было продано маркетом в шорт с комиссией 1.01 USD и откуплено лимитником с комиссией всего 0.16 USD.
TWS – File> Global Configuration> Presets>Stock>Miscellaneous
TWS – File> Global Configuration > Orders > Smart Routing
Частичное исполнение ордеров. Если поставить галочку AllorNone — в предустановленных настройках ордеров, в разделе «Advanced”, то заявка будет исполняться либо полностью, на все количество либо не исполняться вообще. Это позволяет снизить комиссию, когда ордер может быть разбит на несколько частей.
При реальной торговле, однако, это правило не всегда соблюдается и не только на низко ликвидных бумагах. Пример внизу с акцией CRM (Salesforce.com), входящей в индекс S&P500 со средним объемом проторговки в день более 4 млн. Заявка на 167 акций была разбита на две части 100 и 67 при покупке маркетом! При этой операции комиссия же составила не больше, чем бы это был один ордер. Закрылись одним ордером.
Вот также пример, когда заявленный ордер на покупку маркетом 45 акций GIII (G-III Apparel Group) был разбит на три части, причем за одну часть комиссия была 0.00
Проскальзывание (slippage) и SSR(ShortSaleRule), — в процессе работы роботов заметила, что в целом исполнение маркет ордеров за исключением первых 10-15 минут сессии идет примерно с 1-2 центами проскальзывания по сравнению с той ценой, которая идет в лабораторной сделке в TSLab по этому же агенту. Теперь это учитываю при тестировании своих стратегий на истории. При этом ТП всегда ставлю лимитным ордером, без проскальзывания, а не условной заявкой. Это задается в настройках скрипта.
При открытии сессии, когда волатильность высокая, бывают и более значительные проскальзывания. Самым большим у меня была разница в 54 цента, бумага ВА (Boeing). Имеется ввиду разница между ценой входа в лаборатории и реальной ценой входа. Бывают, конечно, и совсем нештатные ситуации. Одним из ярких примеров может служить недавняя история с бумагой PCG (PG&E Corporation), когда еще на премаркете цена упала примерно на 15% с 51.12 до 43.08 из-за плохих новостей. Я как раз стояла в этой бумаге в шорт. При открытии мой маркет ордер был только исполнен через 3!!! минуты, при том, что это был buy ордер.
Здесь также надо отметить тот факт, что именно в это время было установлено правило «up- tick rule», известное также как SSR, когда продавать бумагу можно только после up tick. Выставленные ордера при этом могут получить значительное проскальзывание, т.к не известно когда будет up tick и сколько ордеров успеют провести после этого. Это отражается только в платформе брокера красным кружком рядом с тикером бумаги и не видно в TSLab.
Миллисекунды, миллисекунды- тоже играют значение при алгоритмической торговле, хотя у меня не HFT (High Frequency Trading) роботы. Был случай с одновременным проведением одного ордера по бумаге CNP (CenterPointEnergy) два раза на разных биржах, секунда в секунду. А вот миллисекунды возможно были разные, но в отчете этих данных нет. При этом оригинальная позиция закрылась и тут же открылась новая в обратную сторону. В TSLab на вкладке «Управление Агентами» этого не было видно, т.к позиция закрылась по роботу нормально, а вот новую открытую позицию можно увидеть только в графе «Позиции». Поэтому теперь я все проверяю, хотя бы в конце дня.
Исполнение одинаковых заявок по разным ценам — у меня есть робот с двумя одновременными входами по одной точке входа, но разным управлением позицией. Обычно исполнение этих двух заявок идет одновременно, но иногда встречаются различия, довольно существенные. Пример на скриншоте, когда разница во времени составила 52 сек и цена ушла уже почти на 11 центов. Для бумаги такого калибра, как MSFT (Microsoft)- это значительно.
Премаркет и послемаркет- как известно, на Америке некоторые бумаги торгуются и на премаркете и после закрытия основной сессии (9.30-16.00 ЕТ). При тестировании своих стратегий я учитывала только котировки во время основной сессии, поэтому важно в настройках скрипта в платформе TSLab задать данное время. Иначе график будет отражать всю информацию до и после маркета и это может неправильно отразится при расчете некоторых индикаторов, в частности скользящих средних.
Продолжение следует…
В следующей части я остановлюсь на часто встречающихся ошибках при работе, которые требуют ручного вмешательства или более глубокого изучения вопроса.
Надеюсь, данный материал был полезен. Буду признательна за комментарии и пожелания.
С Наступающими Праздниками и Удачи вам в Новом году!
Вот линк на этот раздел на сайте IB на русском языке по фьючерсам.
www.interactivebrokers.com/ru/index.php?f=commission&p=futures
Маржинальные требования(ГО) зависят от следующих моментов
-Страна вашего официального проживания.
-Биржа, на которой вы хотите торговать.
-Продукты, которыми вы хотите торговать.
Можно более подробно познакомится здесь
www.interactivebrokers.com/ru/index.php?f=27244
а то я думал что меньше 1 бакса полюбому низя
"… Если мы покупаем 200 акций по 100$"- то это будет 200х0,005=1 дол в одну сторону- цена не будет иметь значение до тех пор, пока сумма комиссии не составит 0,5%
Если вы торгуете большим количеством, то можно перейти на другой тариф «Tiered», там цена комиссии зависит от объема. Можно сделать это через «Account Management» и при торговле увидите какая будет сумма. В среднем у меня выходит до 1 доллара на круг.
Способы снижения комиссии я описала в данной статье. Это относится и к ручной торговле.
Но есть ещё масса неучтённых моментов с механизмами исполнения ордеров, отсутствием балансной среды, интерактивной ликвидной сетки, ни слова об импульсной среде, имбалансе, специфики ордеров от LevelI и LevelII и ничего не нашла о простейших схемах алгоритмов. (ну последнее ясно… можно оставить как сакральное...) Но обзор платформы и взаимодействий на высоте! Супер. С наступающим Вас Новым Годом.
С уважением, алготрейдер Aiyaru Tengri.
Конечно, еще много разных моментов, указанных Вами, однако это в своей торговой системе я не использую. Мои роботы работают с обычными лимит и маркер ордерами. Это мой личный опыт, и здесь я поделилась тем, с чем работаю и что изучила.
С Наступающими праздниками Вас!
Кстати, зря не используете...) Используйте и Вы почувствуете мощь, силу и главное разницу, хотя бы тех же отложенных лимиток. ))) Далее, сможете создать статистическую базу, из которой алгоритм сможет брать данные, для устранения фейков и выявлением настоящих айсбергов, более того Вы почувствуете ценовую дивергенцию, раскроете имбаланс в бидаске с разницей в один тик и даже загляните в мир HFT. Он не недоступен...) Всё это увеличит во много раз, любой из Ваших методов и КПД ботов.
Рады с Вами сотрудничать!
Ещё раз с Праздником Вас лично и всех трейдеров, от команды трейдеров Тенгри.
С уважением, Jasmine Tengri.
Безусловно все, что Вы пишете для освоения — это очень интересно и привлекательно! По мере возможностей буду осваивать.
Случайно наткнулся на ваш блог тут, на смарт лабе, касательно работы ТСЛаб и ТВС...
сейчас разбираюсь как раз с этой связкой… планирую запустить на фьючерсах на СМЕ
возникает ряд вопросов, хотел бы получить короткую консультацию, если это возможно!?
к примеру, не могу найти нужную опцию для выставления размера лота из скрипта, а не другим способом... http://prntscr.com/j4atr0
можете ли подсказать, где это можно изменить!??
если удобнее, то в скайп vladimir_v_u
Буду очень благодарен!!!