Предупреждение о рисках

advertisement
Документация пользователя и правовые аспекты работы с программой Autotrader
(AutoStockExchange).
Предупреждение о рисках.
Спекулятивная торговля на финансовых рынках связана с высоким риском потери части
или всех финансовых средств вовлеченных в торговлю. Разработчики программы не несут
какой либо ответственности за действия или бездействия третьих лиц связанные с
эксплуатацией описываемой программы и всех ее модификаций, повлекшие или
способные повлечь любые формы прямого или косвенного ущерба. Программа
поставляется «как есть», авторы предупреждают пользователя о том, что программа
поставляется на некоммерческой основе, авторы делятся своим опытом использования
программы, тестируют ее на своих торговых счетах и своих стратегиях, но не
гарантируют отсутствие ошибок, неточностей и прочих проблем, способных повлечь
отклонения в работе программы любого рода.
Авторы примут надлежащие усилия для оказания консультаций в разумных размерах,
ровно как помощи в обнаружении потенциально возможных ошибок. Авторы по мере
возможности будут рассылать обновленные версии программы и устранять обнаруженные
недочеты. Тем не менее еще раз подчеркнем, что программа Autotrader не является
коммерческой, сопровождение и пользовательская поддержка осуществляются ровно в
том размере, в каком авторы готовы ее оказать на каждый конкретный момент.
Примечание.
Авторы и ряд пользователей программы успешно используют ее в течении последних
трех лет для автоматизации торговли на реальных счетах, за данный период программа
претерпела значительные изменения, принципиально расширяющие ее функциональность
и хорошо зарекомендовала себя, как надежное средство автоматизации выполнения
торговых операций на рынке Forex. Однако успешная эксплуатация программы возможна
только при успешной и безотказной работе всего комплекса программ на компьютере
пользователя, а не только программы Autotrader, кроме этого многое зависит от качества
интернет-соединения и от хорошего понимания как оно вообще все работает.
Настоятельно рекомендуем начать использование программы с торговли на демо-счете.
Краткая суть программы.
Программа предназначена для полной или частичной автоматизации торгов на валютном
рынке Forex. Предполагается, что команды на проведение и мониторинг торговых
операций передает торговая стратегия, функционирующая на платформе Omega Research
Tradestation или аналогичной, получающей данные в реальном времени. Программа легко
интегрируется с Omega или другим поставщиком торговых команд, полностью
аналогична встроенному обработчику ордеров Omega, что позволяет использовать код
созданный при тестировании на платформе Omega и расширенные возможности, не
предоставляемые обычно со стороны брокеров.
Программа требует непрерывного и качественного интернет-соединения.
Для интеграции с кодом стратегии под Omega нужны минимальные знания и данная
документация. Изменения в торговый код вносить надо, но они минимальны и абсолютно
понятны, программирования как такового в этом нет – только копирование строчек…
Программа позволяет
Термины далее по тексту.
Исполняемый модуль программы автоматизации торгов обычно имеет имя Autotrader.exe,
Далее по тексту в основнов используется «Автотрейдер» или «программа».
Популярная оболочка для создания и тестирования торговых стратегий Omega Research
Prosuite 2000i, Tradestation, Tradestation 7-8, далее по тексту сокращенно и обобщенно
Omega. Это может быть также любая другая программа содержащая код стратегии и
отправляющая команды Автотрейдеру.
Изменения последних версий:
2.5.9.20 – с этой версии временно не рекомендуем использовать опцию «ловли гепов»,
поставте параметр в значение –500, вплоть до отдельного уведомления.
2.5.9.1 – добавлена защита версии, все пользовательские копии теперь будет «именные»,
ограничения на число установленных копий нет.
2.5.8.2 – работа поддержки второго брокера (API Gain Capital) Forex.com переведена из
стадии отладки-тестирования в рабочее состояние.
2.5.7.6 – окончательный переход на новую «событийную структуру исполнения процессов
внутри программы
2.5.6.1– теперь вся конфигурация осуществляется не через редактирование раздела
Registry, а через экранные меню.
2.5.5.0 – включена новая опция, запрет открытия позиции, при значительной разнице
информационных и торговых котировок.
2.5.4.0 - новая «событийная» структура ядра программы, возможность конфигурировать
более одного брокера из одной программы и произвольно устанавливать связки стратегияброкер.
2.5.3.1 - исправлена ошибка чтения сигналов йеновых кроссов, изменен формат
сигнального файла, теперь все котировки указываются в пунктах без десятичного
разделителя (для всех пар).
Замеченные недочеты:
1.В GainBroker не осуществляется проверка позиции на посторонее вмешательство во
время работы программы, позиции считываются только в момент логина.
Неисправностью это не является и к ошибкам не ведет, но будет исправлено в одной из
следующих версий, с добавлением системы проверки и синхронизации позиций по
таймеру, как это реализовано в GFTWapBroker.
2.Активация котировщика GainRates требует сборки персональной версии пользователя.
История создания программы Autotrader и внутренняя логика работы.
Программа была создана нами, в связи с необходимостью торговать стратегии, которые
невозможно было торговать в ручную. Вопревых круглосуточно. Во вторых – перенос
стопов, быстрая отработка ордеров или их изменение на быстроменяющемся рынке….
Простая логика говорила нам, что нужно будет нанять и обучить несколько групп
трейдеров-исполнителей, которые будут дежурить посменно и будут уметь быстро
наживать на клавиши, безошибочно следовать предписаниям и нескольким разным
торговым системам. Естественно в этой ситуации полная автоматизация – наиболее
разумный и надежный путь. Этот путь подходит и большинству разработчиков
формализуемых торговых систем.
Первый опыт мы получали изучая различные готовые средства автоматизации и остались
не удовлетворены. Нам требовалось, чтобы не возникало и мысли о том, что исполнение
реальных позиций отлично от результатов полученных при тестировании. Понятно, что
определенные отличия будут и обоснованы, например спред может быть различным,
данные котировок могут различаться в разных местах, но логика должна быть идентична.
В результате, в том числе после тестирования различных механизмов вывода позиций, мы
пришли к выводу, что наиболее эффективным является тот способ автоматизации,
который и используется нами в Автотрейдере.
Ниже перечислены основные его особенности в виде перечня:
1. Открытие, мониторинг и закрытие позиций происходит по информационным, а не
по торговым котировкам. Наличие шума в котировках губительно влияет на
качество исполнения ордеров, многолетний опыт показал, что эффективнее
«логически» открыть позицию, по менее шумной информационной котировке,
одновременно продублировать ее у брокера по его текущей цене, которая как
правило не сильно отличается, причем отличия эти чаще всего в своем влиянии на
результат сделок усредняются к нулю, поскольку бывают различия в обе стороны.
2. В качестве информационных котировок были выбраны котировки Forexite.com,
предварительно были проведены различные тесты, которые показали, что такой
выбор оправдан. Возможно лучшие результаты можно получить с платными
котировками Olsendata.com, однако мы пока не нашли времени на изучение этого
вопроса практически.
3. При открытии позиции «логически» спред не учитывается, т.е. логическое
срабатывание аналогично срабатыванию в Omega, и ордера обрабатываются по
«Bid» котировкам. Спред оказывает влияние на реальный профит позиции, но
система исполнения не зависит от спреда конкретного брокера, может работать с
несколькими счетами, обладающими разными параметрами спреда, переменным
спредом. Впрочем при необходимости вопрос обработки ордеров с учетом спреда –
это вопрос реализации модуля Трейдера-OmegaSignals (см. в документации ниже).
4. За счет системы «логических открытий» удалось полностью повторить достаточно
мощную и сложную систему работы с ордерами и позициями в Omega. Так
поддерживаются «именованные» сигналы и закрытия по именам сигналов, т.е.
открывающие и закрывающие ордера могут иметь имя собственное и быть связаны
по этим именам. Поддерживаются простые и процентные трейлингстопы.
Открытие позиции в противоположную сторону автоматически закрывает
существующую, если она есть, при этом не надо это проверять и указывать
дополнительный объем. Позиции всегда синхронны со стратегией, для этого есть
специальный механизм синхронизации. Ряд параметров удобно указывается в
пунктах, от цены открытия, как это делается в Omega, что избавляет от
необходимости пересчитывать например величину TakeProfit в абсолютные
значения и позволяет указывать уровень в мене зашумленных информационных
котировках сохраняя позицию от ложных закрытий или открытий.
5. Позиции могут суммироваться от нескольких стратегий торгующих одним или
несколькими инструментами и могут быть выведены сразу на несколько счетов без
задержки по времени. Все операции на счетах производятся Market исполнением,
по текущей цене, все ордера и стопы существуют только внутри программы, на
счета они не выносятся. При наличии значительных различий между
информационными котировками и котировками торговыми для одного или
нескольких счетов, предусмотрена возможность «блокировки» от такого гепа, и
сделка пропускается на реальном счете.
6. Можно отдельно наблюдать за тем какие позиции от каких стратегий открыты по
каким ордерам и на каких уровнях, не возникает путаницы при открытии многих
позиций по одному инструменту и т.д. Для каждой стратегии конфигурируется
отдельное «окошко» обрабатывающее все ее ордера и команды.
7. Позиция выводится на торговый счет только если ордер на ее открытие сработал в
реальном времени, к примеру, если на момент запуска стратегии в торговлю в ней
(в Omega) уже была открытая ранее позиция, очевидно выводить ее на счет не
корректно, выводятся на счет только те позиции, открытие которых произошло
после запуска автоматической торговли.
8. Обработка ордеров и управление размером позиций разнесены отдельно. Логика
работы модуля обработки ордеров всегда исходит из единичной позиции,
открытие противоположной позиции приводит к автоматическому закрытию
старой (как и в трекинг-центре Omega), однако изменить размер позиции
выведенной к брокеру можно за счет специальной команды объема.
Установка программы.
Внимание! Все права на программу принадлежат ее авторам, Вы имеет право
устанавливать копию программы только если получили от авторов персональную
лицензию на право пользования копией программы. Авторы не несут
ответственности за возможные нарушения в работе программы при ее
нелицензионном использовании или попытке снятия модулей защиты.
Запустите программу – установщик, AT_install.exe, выберете необходимые опции
установки
(вторая опция – создавать ли раздел в дереве «старт»-меню, последняя – перезагрузка
после установки является обязательной).
Укажите
и укажите каталог, в который будет установлена программа.
Внимание, этот же каталог будет использован в настройках кода автоматизации из Omega.
Учтите, файлы протоколов работы (логи) занимают значительно место на вашем диске,
рекомендуем указать раздел содержащий не менее 1Гб свободного дискового
пространства.Укажите
, после чего программа будет установлена в указанный
каталог. После перезагрузки компьютера приступайте к настройке программы.
Настройка программы.
Настройка программы состоит из настройки простых ее модулей, по модулю для каждой
торгуемой стратегии, по модулю для поставщика котировок и по модуля для каждого
торгового счета (реального или демо). Вся настройка может быть выполнена за 1-5 минут.
Ниже опишем это подробнее.
Принцип работы.
Если пояснять очень кратко, то принцип работы программы крайне прост, все происходит
в реальном времени. Котировщики, это кусочки программы получающие котировки от
того или иного поставщика. Они сообщают обработчикам стратегий новые данные (тики),
обработчики стратегий смотрят, не сработал ли какой ордер, стоп, трейлинг или еще что.
Потом все обработчики скидывают свои позиции в общую сумму, конечно отдельно для
каждого инструмента и с учетом указанных объемов. Вот эти суммарные позиции,
открытые потенциально хоть по сотням стратегий, передаются «брокерам» - кусочкам
программы, отправляющим позиции на реальное открытие или закрытие. Три
вышеописанных типа «объектов» программы и следует правильно отконфигурировать для
использования. Каждый настраиваемый объект внутри программы имеет свое собственное
имя, как например человек , это полезно для того, чтобы отличать их, если они одного
типа, но разного назначения. Имя будете определять Вы, во время настройки программы.
Информация в основном окне программы.
Основное окно программы состоит из четырех областей:
- верхняя область - это функциональные кнопки;
-
следующая за ней – настроенные котировщики
-
средняя область - настроенные трейдеры, или обработчики торговых сигналов
-
нижняя область - настроенные брокеры, т.е. связки с вашими реальными или демо
счетами
-
и самая нижняя область предназначена для вывода служебных и диагностических
сообщений.
Перейдем непосредственно к конфигурации программы и настройке нужных нам
объектов. При первом запуске, окно программы пустое, конфигурация модулей еще не
задана. При повторных запусках программа стартует с запомненной конфигурацией и
(возможно) позициями и ордерами.
Значения кнопок в верхней части окна следующие:
Кнопка Start Timer/Stop Timer останавливает внутренний таймер, прекращают
считываться сигналы и восстанавливаться разорванные соединения.
Кнопка Process Orders является служебной и не будет использоваться в повседневной
работе.
Кнопка Show All/Hide All показывает и скрывает окошки отконфигурированных модулей
(котировщиков, брокеров и трейдеров).
Также доступна панель конфигурации некоторых базовых настроек
программы(вызывается правой кнопкой мыши на левом верхнем углу окна, также
вызываются настройки других окон):
Доступно изменение служебных каталогов и опции автозапуска таймера программы, а
также само значение периода таймера в милисекундах (1000=1 секунда).
Поддерживаемые котировщики.
На текущий момент реализованы два котировщика, поставляющих онлайн котировки
валют от Gain Capital и Forexite. Поскольку предполагается, что Omega получает
котировки посредством программы Quteroom от Forexite, во избежание различий в данных
и как следствие, в открытых позициях, рекомендуем использовать в качестве котировщика
именно модуль получающий данные от Forexite.
Для добавления котировщика нажмем правую кнопку мыши над зоной главного окна
программы, со списком котировщиков, выбираем пункт «добавить»:
Получаем на экране диалог для конфигурации котировщиков:
В верхней графе вводим имя нашего нового котировщика, например «Forexite», в меню
выбираем “QuoteRoom”
Достаточно нажать «Ок» и конфигурация котировщиков завершена.
Добавленные котировщик появится в списке котировщиков, если конфигурация
происходит во время торговой сессии, через некоторое время данные начнут поступать на
него, что будет видно в строке состояния, или в окне самого котировщика, при вызове его
кнопкой “Show All”.
Для нормальной работы программы достаточно одного котировщика.
Примечание: котировщик от FXCM временно не поддерживается. Для подключения
котировщика GainRates необходима наша консультация.
Поддерживаемые трейдеры.
На настоящий момент поддерживается один основной модуль трейдера – OmegaSignals,
поддерживающий логику работы с позициями и ордерами, полностью аналогичную
логике работы трекинг-центра Omega. На каждую торгуемую стратегию должен быть
добавлен ОТДЕЛЬНЫЙ трейдер, с присвоением ему уникального имени, мы рекомендуем
указывать в имени торгуемый инструмент, название стратегии и торгумей тайм-фрейм, на
котором выполняется стратегия, это избавит от ошибок и путаницы. При конфигурации
трейдера указывается также каталог для сигнальнов, передаваемых стратегией,
Нажмите правую клавишу мыши над окном трейдеров, выберите пункт «добавить»:
В названии трейдера укажите его имя-собственное, например можно использовать имя
стратегии. В нашем примере мы указали имя тестовой стратегии “teststrategy” и указали
инструмент и таймфрейм (1 час) на котором она работает. В целом выбор имени ни на что
не влияет.
В типе трейдера необходимо выбрать OmegaSignals.
Следующим этапом программа запросит конфигурацию данного экземпляра трейдера,
наверху окна конфигурации указано выбранное нами имя, ниже поля для заполнения.
Значения по умолчанию можно не менять, в таком случае каталог с сигналами
(сигнальными файлами SignalFilesDir) для стратегии будет называться так же, как сам
трейдер (в нашем примере teststrategy_EUR1H), а каталог для отработавших сигналов
будет иметь такое же имя, и расширение «.old» (Archieve Dir)
Смотрим пример на картинке:
В данном примере предполагается, что торгуемая данной стратегией и данным трейдером
валютная пара EUR/USD, ее и следует выбрать в меню валют (Operating currency).
Значение поля MaxTimeInterval влияет на то, как долго новая команда будет иметь
возможность быть считанной и обработанной.
Для того чтобы пояснить это, рассмотрим подробно такую ситуацию: предположим, что
стратегия, например исполняемая под управлением Omega, послала сигнал на открытие
позиции, но Автотрейдер в этот момент не был запущен по каким-то причинам. Очевидно,
что открытие устарело, и нам не хотелось бы, чтобы позиция была открыта по прошествии
значительного времени. Параметр указывается в секундах. По умолчанию =60 секунд.
Таким образом, для завершения конфигурации необходимо указать только торгуемую
стратегией валюту, остальные поля можно оставить без изменений.
Еще раз повторим – трейдер OmegaSignals работает одновременно с одной стратегией (не
более 1й позиции, но любого размера) и одним инструментом (валютной парой), для
торговли несколькими стратегиями и инструментами необходимо создать несколько
трейдеров с требуемыми параметрами и различными именами.
После завершения конфигурации трейдера, он будет отображаться в окне трейдеров:
Его окно может быть показано на экран, с помощью клика по строчке информации, либо с
использованием кнопки “ShowAll”.
Для того, чтобы трейдер мог функционировать, необходимо, чтобы он получал котировки.
В программе для этого предусмотрена конфигурация связей между ее модулями.
Необходимо подключить только что созданный нами трейдер «teststrategy_EUR1H» к
потоку котировок от созданного ранее котировщика.
Выбираем опцию конфигурировать:
и на экране появляется диалог конфигурации связей модулей:
В окне «список подключенных котировщиков» выбираем опцию «добавить» вызвав меню
правой кнопкой мыши.
Из списка котировщиков выбираем сконфигурированный нами ранее модуль QuoteRoom
по имени Forexite и завершаем конфигурацию.
Вызвав затем окно полностью сконфигурированного трейдера, можем наблюдать, как он
получает данные от котировщика (в курсе валюты десятичная точка не отображается):
Примечание: Трейдер SignalsTester существует для отладочных нужд, не может быть
использован без нашей консультации.
Примечание: Трейдеры помнят открытые позиции и отложенные ордера, вплоть до их
закрытия или отмены новым сигналом, по этой причине необходимо осмотрительно
подходить к перезапуску программы после перерыва в работе.
Поддерживаемые брокеры.
На настоящий момент поддерживаются брокеры работающие с данными компаниями:
GFTForex.com (и компании построенные на их WhiteLabel, c поддержкой Wap интерфейса
к счету).
Forex.com (Gain Capital Group)
GainCapital.com (в настройках счета необходимо изменить поле “Brand” на значение
GAIN)
Пройдем последовательно по конфигурации этих модулей.
Настройка начинается с добавления модуля, как в прошлых примерах, но в окне брокеров
основного окна, каждый брокер, как всегда, имеет свое имя, добавим брокера
работающего по протоколу GainCapital (это и для Forex.com и для GainCapital.com), дадим
ему для примера имя forexcom_demo.
После нажатия кнопки «Ок» попадаем в окно настроек:
Внимательно следуйте инструкциям.
Следует точно соблюдать последовательность! Укажите тип счета (Demo или Real), затем
нажмите кнопку
и после этого заполните поля Username и Password в
соответствии с вашим логином и паролем, укажите селектор на “Save password” если
хотите, чтобы он запоминался, Blocking Gap=-500 (выключено). Нажмите “Ok”. Теперь
брокера видно в списке брокеров:
Осталось установить связь брокера с теми трейдерами, стратегии которых Вы хотите
торговать на этом счете. Для этого войдите в конфигурацию(правая кнопка мыши) и
внесите в список подключенных трейдеров необходимые трейдеры:
Далее:
Внимание: в данной версии программы в модуле этого брокера обязательно ручное
нажатие клавиши «Login» при старте программы на экране модуля!
Конфинурация GFTWapBroker.
Заполните только информацию логина и его тип.
После этого подключите необходимые трейдеры для торговли с данным брокером.
Внимание: настоятельно рекомендуем сначала все проверить и опробовать на
демосчетах.
Связи.
Проверьте, что все объекты программы правильно связаны друг с другом, трейдеры с
котировщиками, брокеры с трейдерами. Для этого достаточно вызвать конфигурацию
объектов кликнув по любому интересующему нас объекту в главном окне программы.
В каком направлении строить связь – все равно. Например можно привязать трейдера, к
котировщику и брокеру, можно котировщика к трейдеру, трейдера к брокеру и т.д.
Последовательность значения также не имеет. Трейдер может быть не привязан к
брокерам вообще (позиция тогда не выводится на реальные счета) или может быть связан
лишь с частью сконфигурированных брокеров.
Дополнительные возможности.
Программа содержит ряд модулей не документированных в данной документации. Это
модули для отладки или для профессиональных пользователей, не включайте их не
получив наших консультаций, даже если по названию покажется, что все «понятно».
Используйте модули и варианты конфигурации документированные здесь.
Вид программы на экране.
Вы можете закрывать значком
все окна, кроме главного окна программы, это не
приостанавливает работу модулей, а только убирает их с экрана, можно также
использовать кнопку “Show All/Hide All”, либо щелкать по строчке с именем модуля в
главном окне, чтобы отобразить окно модуля на экран. При попытке закрыть главное окно
программы будет выдано предупреждение, это помогает исключить случайных остановок
торговли.
Изменение конфигурации.
Конфигурация программы всегда может быть изменена и вступит в силу незамедлительно,
однако рекомендуем делать это вне торговых сессий и перезапустить программу после
внесения изменений. Такие операции, как удаление стратегий имеющих открытые
позиции, рекомендуем делать с предварительным закрытием этих позиций, через
редактирование типа ордера в окне стратегии (изменить тип позиции на Closed).
Торговля многими стратегиями и инструментами, сложение позиций, вопрос
логических и реальных стопов.
В данном разделе мы постараемся ответить на вопросы связанные с тем, как именно
происходит вывод реальных позиций на рынок при работе одновременно нескольких
стратегий. Автотрейдер позволяет запускать неограниченное количество стратегий даже
для торговли одним инструментом, а удобство переменных размеров лота в GFTforex
позволяет задать такой размер, при котором это реально независим от размера депозита.
Ядро программы получает логические (открытые по информационным котировкам и бид
уровню) позиции от трейдеров OmegaSignals. Предварительно трейдеры умножают
позиции на значение команды “Volume”, если такая была послана в сигнале. Все позиции
по одноименным инструментам складываются. Обновление происходит при любом
изменении позиции и каждую секунду. Суммарная позиция передается модулю брокера
(или нескольким, если сконфигурированы несколько брокеров). Брокер считает разницу,
если разница есть – на счете происходит корректировка. Результирующая позиция может
быть любой, в том числе =0 при не равных нулю позициях стратегий. В случае если в
момент открытия брокер детектирует «геп» в соответствии с настройками для ловли
гепов, то данная позиция полностью игнорируется брокером вплоть до ее закрытия,
однако продолжает работать в трейдере. На уровне каждого брокера, перед выводом на
счет позиция умножается на параметр multiplayer, указанный при настройках брокера.
Пример: есть две стратегии, торгующие евро, у одной короткая позиция и указан объем
=2, у другой длинная позиция и указан объем =3, у брокера указан множитель 5, в
результате итоговая позиция будет равна (–2+3)*5=5 т.е. будет открыто 5 лотов на
покупку. Размер лота – вопрос настроек счета и того как это обстоит у той или иной
конторы, модулю брокера Автотрейдера не известно чему равен лот, он оперирует только
их числом.
Изменения в коде стратегии в Omega Research Tradestation для интеграции с
программой (уровень пользователя).
Для понимания необходимых исправлений кода стратегии, необходимо понять
следующее: Автотрейдер должен получить все те же команды, которые получает система
обработки ордеров (трекинг центр) Omega. Для этого рядом с каждой командой,
способной влиять на открытие и закрытие позиций, необходимо указать строку,
осуществляющую запись в сигнальный файл, передаваемый Автотрейдеру.
Начало автоматизации любого кода стратегии включает в себя копирование части кода
для отправки сигналов из примера (файл auto_demo.ela, сигнал auto_demo).
В самое начало кода сигнала вашей стратегии копируем блок текста от начала
{******** Begin autotrader block *******}
до
{*** END Autotrader start block ****}
Этот блок кода подключает удобную для записи и форматирования сигналов библиотеку
и устанавливает начальные значение переменных.
Для корректной его работы нужно настроить параметры для сохранения сигналов, а
именно корневой каталог программы Автотрейдер, название стратегии (каталога для
отправки сигналов), множителя объема.
Вот эти переменные и пример их заполнения:
Название стратегии, должно быть задано так же, как в конфигурации трейдера для этой
стратегии, внутри Автотрейдера, Автотрейдер создаст одноименный каталог для
сигналов.
var: STRATEGYNAME("XO_EUR1M");
Каталог Автотрейдера (куда установлена программа),
var: AUTOTRADERPATH("c:\autotrader");
Если автотрейдеров много, задайте имена и других каталогов
var: AUTOTRADERPATH2("c:\autotrader2");
var: AUTOTRADERPATH3("c:\autotrader3");
Множитель объема для Автотрейдеров.
var: Vol(1);
var: Vol2(1);
var: Vol3(1);
Все торговые команды в коде стратегии, содержащие:
Buy, Sell, ExitLong, ExitShort, StopLoss, TakeProfit, Trailing должны быть заменены на
пары, где вторая строчка – отправка команды Автотрейдеру построенная во сигналу с
примерами. Если используются сигналы выходов и входов с именами – внимательно
прочтите этот раздел в старой документации. Для избежания ошибок порядка исполнения,
оградите пары строчек с командами для Автотрейдера и трекингцентра Omega скобками
блока кода begin end;
Пример:
Было if a>b then Buy(“L1”) C + 5 point Stop;
Стало:
If a>b then begin
Buy(“L1”) C + 5 point Stop;
autostr=autostr+"Buy Stop at "+numtostr((C+5*minpoint)/minpoint,0)+" L1~";
End;
В самый конец сигнала нужно дописать код начинающийся со строчки
{*** AutoTrader sending block ***}
После этого не забудьте выполнить Verify сигнала.
После запуска Omega в режиме реального времени (с поступающими данными), каждый
интервал времени измененный код будет посылать команды Автотрейдеру. Это легко
проверить по поступающим и перемещающимся в архив сигнальным файлам.
файл библиотеки Dll "at_vipforex.dll" должен быть помещен в каталог C:\Program
Files\Omega Research\Program
Внимание: если у Вас один и тот же код сигнала работает для разных инструментов
(валютных пар), параметр названия стратегии необходимо вынести в переменную
конфигурации, он должен быть уникален, для того, чтобы команды попадали разным
трейдерам Автотрейдера, обслуживающим стратегию для разных пар.
Рекомендуем обязательно проверить первые сигналы, просто просмотрев их в
текстовом виде и убедится, что в них все корректно.
Дополнительные возможности по коду стратегии.
В самом начале стартового блока кода автоматизации для Omega есть переменная Tune,
Если ее значение по умолчанию изменить на true, команды отправляться не будут, что
удобно, например при отладке.
var: STRNUM(0),Tune(false);
заменить на var: STRNUM(0),Tune(true);
К такому же результату приведет задание нулевого объема: var: Vol(0);
Работа с командными файлами.
Весь обмен между программой, на которой исполняется торговая стратегия и
Автотрейдером осуществляется через файлы в текстовом формате, содержащие понятные
и простые торговые команды. Полностью их формат и рекомендации по использованию
документированы в документации прошлой версии программы, кратким справочником по
синтаксису и перечню команд может быть также пример команд для Omega, где все
команды приведены вместе с аналогичными командами Omega попарно.
Файлы должны иметь в качестве имени – дату и время торгового сигнала, как правило это
дата и время на момент создания файла. При конфигурации стратегии указан параметр
запаздывания, после которого сигнальный файл будет считаться устаревшим и останется
лежать в каталоге «не тронутым», обработанные файлы перемещаются в «архивный»
каталог (см. раздел по конфигурации).
Отложенные команды.
Как было указано выше, команды записанные в командные файлы, исполняются если не
просрочено время, указанное в их имени и если это время наступило. Можно очень легко
«заставить» программу выполнить целый ряд действий, устанавливая и удаляя ордера,
позиции и т.д., для этого достаточно выложить в «приемный каталог» стратегии
командные файлы, например написав их в «Блокноте» операционной системы, и дав им
имена в датами и временем, когда нужно выполнить команды, в этих файлах описанные.
Не забывайте – новый командный файл отменяет все старые установки!
Торговля вручную.
Внимание! Если Вы попытаетесь изменить (открыть или закрыть, изменить размер)
позиции на счете, Автотрейдер в момент следующей синхронизации со счетом, приведет
все позиции в соответствие его суммарным позициям, исключение составляют
инструменты, по которым в автотрейдере нет ни одной стратегии, позиции по ним могут
быть игнорированы (так поступают версии до текущей.2.5.9.29 и возможно далее). Ручная
торговля возможна только через интерфейс Автотрейдера, либо через создание
командных файлов, либо через разработку специального модуля для ручной торговли
«под вас».
Однако в любой момент можно остановить работу Автотрейдера и перейти к работе со
счетом в ручную, но это повлечет за собой необходимость стартовой синхронизации
(ниже).
Запись команд ручной торговли может производить другая программа, специально
созданная для этого.
При старте Автотрейдера на счете не должно быть отложенных ордеров оставленных
Вами. Интерфейс окон трейдеров OmegaSignals позволяет производить управление
позициями, но так как это не основное предназначение Автотрейдера, то развитие этого
интерфейса ведется второстепенно, на текущий момент не все возможности вынесены в
него, так нельзя изменять трейлингстопы или активироть их из режима редактирования.
Режим редактирования вызывается правой кнопкой мыши над окном ордеров трейдера
OmegaSignals.
Со временем в интерфейс будут вынесены все возможности и настройки трейдера.
Управление объемом сделок.
Существует два способа управления объемом позиций выведенных на торговый счет.
Первый способ указание команды Volume в стратегии (командном файле). Этот способ
влияет на стратегию и объем можно менять в реальном времени.
Второй способ – указание множителя для конкретного счета, позволяет выводить на
разные счета, разные объемы от одной и той же стратегии. Эта конфигурация может быть
изменена только пользователем, через меню программы.
Синхронизация позиций.
В каждом сигнале, получаемом трейдером от Omega, должна содержаться строка,
указывающая текущую позицию. Подробно эта команда документировано в
документации по сигнальным файлам, если по какой-то причине позиция трейдера
отлична от позиции стратегии, она будет немедленно закрыта. Например, если у трейдера
позиция равна –1 (Sell), а в сигнале придет Current position is: 1 или Current position is: 0,
то позиция –1 будет закрыта, и результирующая позиция будет =0, вплоть до
срабатывания нового ордера открывающего позицию.
Проверка функционирования(правильной конфигурации). Таймер программы и
«логин» к брокеру.
Программа полностью функционирует, когда:
- успешно поступают котировки от поставщика данных, это непосредственно влияет
на обработку торговых сигналов, открытие и закрытие позиций обработчиками
сигналов, визуально это можно определить по количеству секунд с момента
прихода последней котировки, отображаемом в верхней части окна настроенного
котировщика. Значительная задержка может возникать в ночное время, в моменты
не активной торговли, но она редко может превышать несколько минут. В
выходные как правило котировки не поступают (как на рисунке).
-
-
-
кнопка «StartTimer»/ «StopTimer» находится в положении
, т.е. таймер
программы включен. Это непосредственно влияет на передачу логических позиций
из обработчиков сигналов к брокерам
Все окна «Брокеров» настроены правильными комбинациями логин - пароль и
находятся в состоянии подключения к счету, что можно понять по статусу кнопки,
которая должна находится в состоянии
(т.е. ее нажатие приведет к
операции выхода со счета), информация по счету должна быть отображена в
соответствующих строчках окна.
Модули программы должны быть корректно связаны друг с другом (Обработчики
сигналов с котировщиками, Брокеры с обработчиками сигналов.
Проверить работу программы можно сконфигурировав одного брокера на демосчет и отправив тестовый сигнал методом создания сигнального файла в редакторе,
например укажите в сигнале открытие позиции Маркет-ордером, позиция должна
открыться, изменения должны отобразится в окне Брокера и Котировщика
связанных с данной позицией.
Запуск более одной программы на компьютере.
Возможен запуск любого числа программ на компьютере, однако при этом исполняемый
файл требуется переименовать, например в autotrader2.exe, что повлечет за собой создание
отдельного раздела с настройками программы в Regestry (Реестре) Windows. Настройки
программ будут полностью независимы. Следует учесть, что нет объективной
необходимости в запуске более одной программы и это повлечет дополнительную
нагрузку на канал, так как каждая программа будет независимо получать поток котировок.
В примере кода автоматизации для Omega, содержится код рассылающий сигналы трем
автотрейдерам (если каталоги для отправки сигналов существуют и задан не нулевой
объем).
Торговый сервер (компьютер на котором запускается Автотрейдер).
Мы рекомендуем запускать программу на выделенном сервере, на котором не
производятся другие работы, это обеспечит дополнительную надежность работы всей
системы. Раз в неделю рекомендуем производить обслуживание сервера, состоящее в
анализе торгов за неделю на предмет соответствия сделок логических и выведенных на
торговые счета, архивировании файлов протоколов работы, перезапуске системы.
Понимание структуры каталогов, нахождение и перемещение сигнальных файлов и
информации о позициях.
В основном каталоге программы по умолчанию можно найти стандартные каталоги:
Logs – файлами протоколов работы программы разделенным по модулям.
Positions – с информацией по открытым позициям для всех трейдеров.
Signals – с именами открытых трейдерами позиций .
А также каталоги для сохранения сигналов и каталоги архивов сигналов (так, как задано
при создании трейдеров).
Файлы протоколов работы.
Файлы протоколов работы помещены в папку «logs» основного каталога программы.
Файлы содержат большой объем технической информации, помогая понять в случае сбоя,
где и какие данные и действия происходили, в какой последовательности, на чем
завершилась работа программы и т.д. Понимание информации написанной в них для
конечного пользователя не обязательно, основное их предназначение – диагностика
нестандартных и аварийных ситуаций разработчиками. Лучший вариант, если они Вам
никогда не пригодятся, однако пусть будут 
Раз в неделю или чаще, можно очищать каталог «logs», на файловой системе NTFS
каталог автоматически отмечается как сжатый, и занимает реально в разы меньший объем
на жестком диске, если у Вас файловая система FAT (компрессированные файлы в ней не
поддерживаются на уровне файловой системы), потребуется гораздо больше места для
временного хранения этих файлов, рекомендуем производить очистку чаще.
Диагностика ошибок или проблем в работе программы.
Для начала убедитесь, что ошибка была. Часто проблема кроется в опечатке в коде
стратегии, падении на время интернет-канала, переполнении жесткого диска (команда не
записалась) и т.д.
Если проблема из другой области – сохраните все файлы протоколов работы и каталоги с
сигнальными файлами и архивом сигнальных файлов в один архив и перешлите его нам
для изучения возможных причин сбоя. Опишите свое видение проблемы как можно
подробнее, как Вы считаете было и как «должно было быть».
Разработка дополнительных модулей.
Концепция программы позволяет нам разрабатывать модули любой нестандартной
функциональности, обменивающиесся данными с существующими модулями, например
трекинг-центр отличный по логике работы от OmegaSignals. Возможна реализация
встроенных механизмов ММ, использования Автотрейдера для разделенного доступа к
счету нескольких трейдеров торгующих в ручную и тд.
Модуль сервера данных.
Все котировки поступающие в программу могут быть сохранены в собственном сервере
данных, и получены оттуда из пользовательских программ. При этом возможно
обращение к данным от разных поставщиков по очереди или одновременно, сборке серий
данных любых интервалов и т.д. Сервер данных документирован отдельным документом
и поставляется вместе с базой исторических котировок в с открытым интерфейсом в виде
Dll –библиотеки или исходного кода. Основное назначение модуля сервера данных –
анализ котировок из разных источников, для получения дополнительной информации о
состоянии рынка и достоверных котировках, а также создание программ исполняющих
логику стратегий с использование базы котировок Автотрейдера, без привязки к
платформам других фирм. Сервер данных имеет функции контроля базы от разрушений,
для работы требует практического знания С++ на уровне программиста.
(В настоящую пользовательскую версию не включено, может быть добавлено по
договоренности).
Поддержка других брокеров и других инструментов.
Концепция программы такова, что она может работать с любым количеством брокеров
(точек вывода позиций на реальный рынок) и с любыми инструментами. Однако авторы
развивают систему интерфейсных модулей для расширения функциональности
программы в первую очередь руководствуясь своими интересами.
Требования к качеству интернет-соединения.
Программа ДОЛЖНА постоянно находится в сети, канал не должен быть перегружен,
иначе в нужный момент может задержаться или потеряться очередная котировка или
команда, не стоит эксплуатировать программу иначе как на выделенном канале. Помните
– программа отслеживает ваши стопы и трейлинги, открытие и закрытие позиций, только
если она «в сети». Самый простой способ решения – оплатить размещение своего сервера
(компьютера) в дата центре нормального провайдера интернет-услуг. Управление
сервером можно осуществлять удаленно. Учтите, обрывы соединения могут
непредсказуемо повлиять на работу вашей торговой системы, причем не только на
Автотрейдер, но и непосредственно на код торговой стратегии, это может произойти из-за
потери данных.
Мультиплатформенность программы.
Программа разработана так, что ее перенос на другие операционные системы
максимально упрощен. Для закрытого использования в скором времени будет завершена
разработка версии работающей под семейством ОС Unix. Это дает гораздо большую
надежность, поскольку основные виды атак вирусов и прочих вредоносных программ и
просто нестабильности работы системы обычно связаны с семейством ОС Windows.
Торговый код стратегии также может быть перенесен .
Возможные причины сбоев между логической позицией в Omega и позицией
открытой у брокера.
Иногда происходят обоснованные различия между позицией выведенной брокеру на счет
и позицией открытой на экране Omega. Это может быть по следующим причинам:
1. Вы только что запустили стратегию, в ней уже была открыта позиция, но она была
открыта до подключения Автотрейдера. Просто нужно подождать следующей
позиции.
2. Возможно различие в поступающих котировках, например из-за сбоя канала связи,
часть данных могла быть пропущена, затем догружена уже спустя время в Omega,
в таком случае позиция могла появится в Omega не в реальном времени, а по факту
заполнения дырки в данных, естественно в Автотрейдере ее не будет.
3. Если позиии нет в Omega, но она есть в Автотрейдере, то при поступлении
следующего сигнала она закроется в Автотрейдере (на счете), по команде текущей
позиции (будет обнаружено различие).
Наиболее вероятные причины отклонений и сбоев в работе программы:
- проверьте, что не переполнен диск, на который установлена программа, файлы
протоколов работы занимают ОЧЕНЬ много места, даже в упакованном виде.
- Убедитесь, что везде корректно прописан код автоматизации, если Вы
автоматизируете стратегию через Omega.
- Убедитесь, что сигнальные файлы создаются раз в интервал времени, у программы
пущен таймер и успешно осуществлен логин к брокеру, если нет, .
- Теоретически любой из «внешних» по отношению к программе сервисов, может
отказать и это может привести к частичному или полному отказу
функционирования программы. Если Вы считаете, что это так, свяжитесь с нами,
например известен факт, когда сервис со стороны gftforex.com в течении недели
был с измененным протоколом работы (не передавалось состояния счета из-за
ошибки на их сервере), это мешало осуществлять автоматическую торговлю, для
корректировки проблемы была выпущена и разослана пользователям специальная
временная версия программы.
Настройки FireWall. Разрешите сетевую активность приложения Autotrader.exe для всех
исходящих соединений. Входящих соединений программа принимать не должна.
Послесловие. Возможно все это для Вас слишком трудно, возможно не подходит по
деталям и в целом…  Мы лишь предлагаем идти тем же путем, который по итогам
опыта полученного нами, видится нам наиболее правильным. Но не заставляем делать это.
Программа не оплачивается Вами, поэтому если что-то не нравится на каком-то этапе,
никто не огорчается и ничего не теряет. Вы можете думать, что все надо делать иначе –
делайте. Мы затратили несколько лет времени и переписали тысячи строчек кода, пришли
к тому, что именно предложенная концепция наиболее правильная (по крайней мере для
наших нужд и задач). За это время были изучены и протестированы многие другие
варианты логики функционирования программы.
Контакты:
Предварительные вопросы: mikesh@vipforex.com, abv@vipforex.com.
Для постоянных пользователей: получив персональную копию программы и лицензию на
нее, Вы должны получить контактные телефоны в том же письме. Используйте их в
случае нештатных аварийных ситуаций, таких как аварийное прекращение
функционирования программы, остальные консультации производятся по email.
Условия получения персональной лицензии.
На сегодня для получения персональной лицензии выполнить лишь одно условие, которое
не будет стоить вам никаких денег – указать наш реферал при открытии реального счета у
одного из поддерживаемых брокеров. Иными словами, Вы указываете брокеру, что это мы
порекомендовали открыть счет у него, что является полностью правдой, с учетом данной
документации, на торговые условия это не влияет, кроме этого мы готовы оказать
консультативную помощь по процедуре открытия счета.
Персональная лицензия включает в себя поставку регулярных обновлений. Персональная
лицензия является не коммерческой, мы не берем на себя каких либо обязательств по ней,
а Вы не несете никаких затрат. Количество установок на различные компьютеры не
ограничено, количество торгуемых счетов- не ограничено.
Получение программы в том случае, если Вы не открываете счет у одного из указанных
выше брокеров, на настоящий момент не предусмотрено, нестандартные ситуации
обсуждаются по контактному адресу.
Персональная лицензия может быть отозвана, если будут обнаружены копии программы
переданные третьим лицам с согласия владельца лицензии.
Пояснение: наш основной заработок – торговля на финансовых рынках а не торговля
программным обеспечением. Мы не хотим отвлекаться от основных задач, но считаем
возможным предоставлять наш продукт, получая за него некоторую компенсацию (в
реальную она переходит вовсе не всегда) Наши пользователи должны понимать, что в их
интересах стимулировать упомянутым способом (указывая реферал) нас как
разработчиков.
Условия получения корпоративной лицензии или лицензии на исходный код
программы.
Лицензия для юридических лиц предоставляется на условиях аналогичных условиям для
постоянных пользователей. Возможность поставки частично или полностью открытого
кода программы требует предварительных переговоров и подписания ряда документов
(NDA, etc). Исходный код программы написан на стандартном C++ и может быть
перенесен на большинство платформ, часть кода осуществляющая работу с сетью
написана с учетом возможности переноса в том числе на *nix системы, при переносе на
другие платформы требуется доработка модулей визуализации информации о состоянии
модулей программы.
Сотрудничество. Мы заинтересованы в сотрудничестве с разработчиками МТС,
распространителями и т.д. Контактируйте с нами.
Гарантии. единственная наша гарантия – мы сами используем эту программу для
торговли уже не один год, однако это не является гарантией того, что в программе нет
ошибок или недочетов. (см. предупреждение о рисках).
Download