Машинка для заработка денег
02.08.2011Рубрика:
СтратегииОтзывов нет »
Стенограммы выступлений участников конференции, которая проходила 3 октября 2003 года в Москве (Владислав Горбунов)
Наш век таков, что он гордится машинами,
умеющими думать, и побаивается людей,
которые пытаются проявить ту же способность.
Г.Мамфорд Джонс
Машины должны работать. Люди должны думать.
Девиз компании «IВМ»
Так как наша конференция посвящена вопросам, в первую очередь, системной торговли, то было бы нелогично избежать такого вопроса, как автоматизация тех сделок, которые происходят системно. Мой доклад посвящен вопросу автоматизации сделок при системной или даже, вполне возможно, дискретной или любой другой торговле по каким-то критериям.
Прежде всего, хотелось бы дать определение, что мы понимаем под «автоматизацией торговли». Мало кто будет спорить, что торговать устойчиво успешно без алгоритма действий практически невозможно. Практически любой алгоритм можно формализовать в виде торговой системы. Рассмотрим не саму торговую систему, а ту ее часть (или отдельный блок), который отвечает за доставку торгового приказа на биржу.
В нашем контексте, автоматическая торговля — это автоматический ввод ордеров на биржу или в торговую платформу брокера. Сами ордера могут быть сгенерированы механической торговой системой (МТС) либо дискретно («вручную») трейдером.
Для чего необходим автоматический ввод приказов?
- Управление несколькими счетами;
- Автоматический учет торговых операций, контроль за и рисками;
- Снижение «процессинга» в торговле — увеличение рентабельности;
- Торговля портфелем различных стратегий на различных таймфреймах;
- Арбитражные операции;
- «Маркетмейкерские» операции;
- Торговля на разных типах рынков;
- Торговля в отсутствие трейдера;
- Уменьшение «человеческого фактора».
Иногда так складывается, что со вторым тезисом большинство еще согласны, то остальные тезисы мало кто выдвигает. Мы же считаем, что задача трейдера, задача аналитика, задача управляющего активами – заниматься непосредственно своей работой, а не выполнять какую-то механическую деятельность, которую можно возложить на современные технологии и технические средства, программные решения.
В чем же заключается основная работа при торговле и чем здесь может помочь автоматизация? На наш взгляд и опыт, в первую очередь, это необходимо при управлении несколькими счетами, при проведении арбитражных операций, как упоминали ранее коллеги – маркетмейкерских операций. В принципе, можно придумать еще большой спектр задач и вопросов, где это может сильно помочь: начиная от торговли портфелем инструментов и заканчивая торговлей одним активом или одним инструментом.
Что мешает это сделать сейчас? Анализ того рынка технических систем, который на сегодняшний день есть, показывает, что в настоящий момент каких-то систем или торговых платформ, полностью приспособленных для автоматической торговли нет. Есть ряд платформ, которые обладают какими-то функциями, но в общем и целом, полностью, на наш взгляд, всех функций, которые нужны были бы – сейчас их нет.
Какие функции необходимы были бы для решения вопросов автоматизации торговли?
В первую очередь, это возможность передачи своих торговых сигналов из своей системы, которая, возможно, работает, например, в среде Excel, или популярном пакете TradeStation, или какая-то своя собственная программа, которая генерирует сделки.
Далее – это возможность получения рыночной информации из торговой платформы брокера о рынке, состоянии выполнения посланных ордеров и все другие вопросы, которые необходимы для вашей торговой системы.
Также, очень немаловажный факт, при решении вопроса об автоматизации – это тестирование. Так при написании своих собственных торговых систем, вопрос тестирования уже не стоит остро. Любые программы, начиная от MetaStock и заканчивая TradeStation или своей собственной разработкой – позволяют проводить тестирование. Но это получается тестирование на прошлых данных, где проанализировать, насколько реально эти сделки исполняются, например, при проведении маркетмейкерских или арбитражных операциях практически невозможно.
В случае же тестирования механических торговых систем (МТС), в особенности, если те генерируют большое количество сделок, задача становится еще более сложной. В силу этого, предъявляемые требования для такого рода платформ — это чтобы имелась возможность посылать сигналы из своих стратегий не только для реальной торговли, но и для отладки, т.е. демонстрационное тестирование (PaperTrading). Например, на каком-то реальном или искусственном рынке для того, чтобы, во-первых, найти какие-то ошибки, возможно логические, в своей системе, которые не выплывают при историческом тестировании, а также определить, насколько рынок ликвиден, насколько быстро можно совершать те или иные сделки с тем активом, который мы выбрали для торговли и т.п.
Также нужно коснуться такого вопроса – на каких рынка можно реально это сделать? Во-первых, понятно, что торговать на внебиржевых рынках в автоматическом режиме будет сложно. Например, у нас не так давно решался технический вопрос для одного клиента для торговли на внебиржевом рынке. В частности, его интересовал рынок Forex и других подобных инструментов. Мы обошли практически всех крупнейших брокеров, которые существуют в мире, торгующие этими инструментами, начиная от EBS (ElekronicBrokingSystem)и заканчивая IG Index. Первоначально интерес к крупному клиенту, был у всех, но когда они узнавали, что система будет торговаться автоматически, то интерес пропадал либо возникали якобы технические вопросы, но результат таков: никто из форексных брокеров не согласился пустить к себе клиента, которые торгует по автомату. Исключением является EBS, но там требования к кредитным линиям таковы, что легче купить банк, чем выполнить эти требования.
В то же время, те брокера, которые специализируется на биржевых рынках, они с радостью предложили любые, чуть ли не ущемляющие их условия с целью затащить этого клиента к себе и торговать. Вот, где четко проявляется разница в принципе ведения бизнеса брокерами — на биржевых рынках или внебиржевых. Это серьезное отличие.
Еще одна немаловажная вещь для торговли в автоматическом режиме – это чтобы торги были желательно электронными. Потому что, если торги происходят с голоса, то на сегодняшний день, если брать товарные фьючерсы, торгующиеся на нефть и другие продукты, то опыт показывает, что быстрого исполнения невозможно получить и, соответственно, какие-то автоматические вещи за исключением слежения за стоп ордерами или подобного рода вещами – неэффективны. Торгуемы инструменты должны торговаться электронно.
Также и по поводу ликвидности, как это тоже уже было сказано ранее, если рынок не ликвиден, то он может не подходить для вашей системы.
Еще один немаловажный момент – как организован этот рынок. Практика показывает, что лучше если рынок организован по принципу фьючерсного рынка в США или как происходят торги на ММВБ, где каждый участник выставляет свои заявки и видит, по какой цене они выставлены и эта же информация доступна и другим участникам рынка. Т.е. так называемый принцип «справедливой цены». На тех рынках, где заявка изначально уходит сначала брокеру и потом уже брокер выводит ее на рынок или берет на себя, могут быть проблемы. Например если торговая система достаточно эффективно или достаточно быстро работает в силу инертности брокера или инертности его технических систем, то такие системы, как правило, долго не существуют, потому что рынки это не благотворительная организация и никто из своего кармана кормить чужую систему не будет. Поэтому лучше всего ориентировать на биржевые рынки, там, где инструменты торгуются электронно и где трейдер играет непосредственно с рынком, а не с маркетмейкером или другим непосредственным участником.
Вот основные торговые площадки, на которых уже имеются инструменты, торгующиеся в электронном виде.
AMEX |
EUREX | MEFF
| SETS |
ARCA | IDEM | MICEX | SFE |
CBOT | IPE | NYMEX | RTS |
CME | LIFFE | NYSE | XETRA |
Здесь представлены практически все рынки по акциям, фьючерсам, по Европе, в т.ч. в России, и Америке.
В принципе, на каждом из указанных рынков существует какой-то класс инструментов, который достаточно ликвиден для крупных объемов при торговле в автоматическом режиме. Наиболее ликвидные – это рынки американских фьючерсов и акций, также очень хорош, на наш взгляд, рынок европейских фьючерсов. В меньшей степени рынок европейских акций. Наши практические опыты на российском рынке показывает, что ликвидность по основным российским акциям вполне достаточна для проведения сделок в автоматическом режиме.
Какие варианты решений могут быть для того, чтобы автоматизировать эту торговлю?
Самый простой – найти платформу, в которой уже есть все необходимые функции для осуществления автоматической торговли. Как я уже говорил ранее, нужно несколько больше функций, чем кажется на первый взгляд. Просто рассылка ордеров и получение информации об их исполнении недостаточно для полноценной автоматической торговли, особенно если речь идет о разных рынках. Например, при совершении сделок арбитража – рынок АДР на российские ценные бумаги – и сами ценные бумаги, торгующиеся в России. Возможно, у каких-то крупных участников рынка есть возможность торговать с одной платформы. Но по всей видимости, нужно соединять воедино как минимум две платформы и два совершенно разных рынка географически и юридически. Поэтому мы не знаем готовых платформ для проведения быстрых и полноценных операций в таком виде.
Второй вариант – это открыть счет у брокера, который предоставляет такую платформу, например TradeStation. Здесь тоже есть различные проблемы. Если эта платформа используется только этим брокером, то может наступить такой момент, когда наступят во взаимоотношениях с брокером какие-то вопросы и придется его менять, и затраченное время и деньги на адаптацию своих систем к этому брокеру, могут пропасть даром. У нас, к сожалению, есть такой опыт когда мы разрабатывали эти системы для ряда американских брокеров и так случайно получилось, не по нашей вине, что один из брокеров прекратил существование, второй – реорганизовался, произошло крупное слияние и технические средства у них полностью изменились. Хоть мы предупреждали своих клиентов о возможности таких событий, но в любом случае, та работа, которую проделали клиенты по адаптации своих систем, была напрасной.
Также имеет отношение и при торговле с одним брокером. Если торговая платформа брокера построена таким образом, что брокер берет сначала сделки на себя, а потом выносит их на рынок, то есть большая вероятность того, что система будет хорошо зарабатывать, долго это так не пройдет.
Поэтому лучше ориентировать на платформы, которые доступны большому количеству участников рынка, которые распространены у многих брокеров. В этом случае если не нравится один брокер, всегда безболезненно можно перейти к другому и при этом использовать ту же платформу. На российском рынке мы акцентируем свое внимание по автоматизации торговли на платформе QUIK, т.к. она широко распространена и, практически, является одним из оптимальных решений при оптимизации торговли.
Третий вариант – это связать воедино все функции, которые нам необходимы, и создать некую платформу, которая воплощала все наши желания и могла подключаться к разным системам, разным брокерам и таким образом решать все наши вопросы.
Способ, по которому пошли мы, при всех его преимуществах, на сегодняшний день является наиболее затратным для трейдера если он его начнет решать самостоятельно с «нуля». Как показывает опыт, в своей деятельности необходимо специализироваться. Так если трейдер занимается только торговлей и не занимается разработкой своих систем, то вполне логично, чтобы те вещи, в которых он которые он не разбирается, выполняли бы другие люди. Более профессиональные в своих областях, и сделали бы то, что ему нужно, чтобы не изобретать заново велосипед.
Практическая реализация
Как уже упоминал, для того, чтобы реализовать хоть какие-то минимальные функции для автоматической торговли, надо иметь возможность получить информацию и отправить приказ через торговую платформу брокера или ту, на которой мы торгуем. Посредством чего это можно сделать? Учитывая, что здесь разный уровень подготовки участников, я начну с простого объяснения.
Все программы работают между собой посредством соединений и варианты этих соединений могут быть различны. Наиболее простой и известный их них — Dynamical Data Exchange – DDE, остаточно старый способ, позволяющий осуществлять передачу данных между приложениями с не очень большой скоростью, но преимущество его в том, что он практически доступен всем.
DDE — Dynamic Data Exchange — динамический обмен данными, технология обмена данными между приложениями в среде операционных систем Windows и OS/2 через специальный буфер — область памяти, к которой имеет доступ каждое приложение.
DDE использует архитектуру клиент-сервер. Так, приложение-клиент (например, Excel) может запрашивать данные у приложения-сервера (например, какой-нибудь источник данных). Данный обмен данными считается уже устаревшим и имеет значительные недостатки по скорости работы и устойчивости. Хотя из-за своей простоты использования, очень широко применяется.
Второй вариант – это OLE-объекты, компонент Active X. Представляется более грамотным решением для взаимодействия между разными приложениями.
Аббревиатура OLE расшифровывается как Object Linking and Embedding и обозначает собой стандарт, поддерживаемый операционными системами Windows, который позволяет создавать объекты с помощью одного приложения и внедрять их в данные другого приложения или ссылаться на него из другого приложения. В простейшем случае мы можем данные их одного приложения (например, TradeStaion) вставить в другое (например, в ячейку Excel), через внешнюю библиотеку, как это реализовано в нашей программе TS Link. В этом случае пользователь получает возможность обмениваться данными между двумя приложениями (TradeStation <-> Excel), которые раньше такой возможности не имели. Обмен данными происходит значительно быстрее и устойчивее, чем по DDE, функциональность также значительно выше.
У каждого есть свои плюсы и минусы, но выбирать приходится исходя из того, что мы имеем. Например, если брокерская платформа поддерживает только DDE, то мы вряд ли сможем использовать что-то другое. Если же есть возможность работать на OLE и Active X-компоненты, значит, возможностей появляется, как правило, больше и возрастает скорость.
Третий вариант – это продолжение второго варианта, объекты DCOM. Принцип позволяет достаточно гибкое взаимодействие. COM и DCOM — технологии, обеспечивающие взаимодействие между компонентами приложения и позволяющие развертывать распределенное приложение на платформе Windows. COM является моделью программирования на основе объектов, которая упрощает взаимодействие различных приложений и компонентов, а DCOM - это своего рода «связка», связывающий воедино разнообразные технологии, применяемые в распределенных приложениях. DCOM дает возможность двум или нескольким компонентам легко взаимодействовать друг с другом независимо от того, когда и на каком языке программирования они были написаны, а также где именно они находятся и в какой операционной системе работают.
Но самый, на наш взгляд, оптимальный вариант – это вариант через API-интерфейс.
Application Programming Interface — это тот уровень, когда мы имеем, некий набор функций, который мы можем в своей программе, в своей системе вызывать и передавать те нужные нам параметры, приказы, получать нужную нам информацию наиболее гибким и устойчивым образом.
Как правило, API – это набор функций или классов, предложенный разработчиком, который используется программистами для создания приложений определенной функциональности.
Использование стандартизированного API облегчает организацию компьютерного интерфейса с периферийными устройствами и другими приложениями. Фактически пользователь получает весь доступный набор функций, но использует их и отображает в таком виде, как это нужно ему. На наш взгляд – это один из лучших способов,, который на сегодняшний день доступен, если та система из которой Вы хотите отсылать ордера, имеет встроенный API.
Единственное, что у разных систем, разных брокеров, достаточно сильно различается работа этих API-интерфейсов. Это опять-таки связано со спецификой рынков, потому что рынок американских акций или фьючерсов сильно отличается от российских не только по организации торговли. Все это накладывается свой отпечаток.
Здесь перечислены вкратце торговые платформы и системы генерации сигналов, которые одни из основных и наиболее известных, доступных для автоматической торговли.
TradeStation – знают практически все. Это очень распространенный и удобный пакет. На сегодняшний день для импорта своих сигналов в какие-либо системы является наиболее оптимальным, единственный вопрос заключается в том, что при решении вопросов экспорта сигналов делать это напрямую, сразу в брокерскую систему (например посредством какой либо Dll и т.п.), без программного интерфейса с дополнительными функциями, совершенно нецелесообразно. Мы выявили это практическим способом и убедились неоднократно.
Далее следуют платформа PatSystems – платформа, которая в основном в основном используется для торговли фьючерсами, торгующихся электронно. Это европейские и американские рынки. У них хорошее развитое API, которое позволяет решать практически все вопросы в технической торговле. В т.ч., насколько мне известно, эту платформу используют американские маркетмейкеры, для проведения своих операций по создания ликвидности рынка и т.п.
Две отечественные платформы – Quik и Netinvestor, которые позволяют осуществлять импорт транзакций непосредственно на биржу, которые также имеют API.
Конечно, есть и другие, здесь приведены основные платформы, но суть их сводится к одному – у платформы должен быть какой-то интерфейс, через который можно импортировать свои сигналы и получать информацию обратно. Чем он лучше организован, чем он сделан проще и профессиональней, тем лучше для трейдера и разработчика автоматизированной системы.
Наше решение, которое мы создали по автоматизации торговли.
Во-первых, мы решили, что ограничивать трейдера или разработчика системы в каких-либо средах, в которых он разрабатывает свои сигналы, было бы неразумно. Поэтому, создали возможность для работы как начинающих людей, которые еще не очень хорошо разбираются в программировании. Так до уже вполне профессиональных программистов, которые могут использовать самостоятельно те приложения, которые у нас доступны.
На сегодня в нашей системе доступен импорт транзакций из Excel, TradeStation и имеется API-интерфейс, который разработчики могут использовать непосредственно в своих системах. Например для вызова нужных функций, получения нужной информации и взаимодействия уже на более высоком уровне. Соответственно, уже задача нашей платформы:
доставить этот сигнал брокеру или брокерам. Так в нашем случае это может быть несколько торговых систем (платформ или бирж).
получить рыночную информацию от брокеров или других информационных систем и передать ее непосредственно в торговую систему, которая принимает решение о генерации сигналов.
Вот приблизительная схема, как осуществляется работа в режиме тестирования: