![]() |
![]() |
![]() |
|
Руководство пользователя TAssistant Основные функции TraderAssistant Описание структуры программного комплекса Ограничения демонстрационной версии 1.1 Установка, настройка и запуск программы 1.2 Получение лицензии на использование 2. Работа с программой TAOrderSrvr 2.1 Режимы функционирования и общий алгоритм работы с TAOrderSrvr 2.3 Сохранение и загрузка конфигурации окон 2.6 Управление торговыми счетами 2.6.2 Добавление/редактирование счета 2.7.2 Добавление/редактирование стратегии 2.8 Лимиты – автоматизированная торговля 2.8.1 Таблица “Лимиты – автоматизированная торговля” 2.8.2 Добавление/редактирование лимита 2.9 Лимиты – торговля в ручном режиме 2.9.1 Таблица “Лимиты – ручная торговля” 2.12.1 Добавление/редактирование сделки 2.13.1 Таблица “Отложенные заявки” 3. Работа с программой TAlerter 3.2. Проверка настроек программы 4. Работа с библиотекой AMI.dll 4.2. AMI_GetCurrentFORTSPosition 4.3. AMI_GetCurrentMICEXPosition 4.7. AMI_GetCurrentPositionNoOrder 4.16. AMI_GetLastOrderRemainder
В этом Руководстве по эксплуатации описаны правила работы с программным комплексом TraderAssistant, его основные функции, порядок установки и настройки. Основные функции TraderAssistant1. Для торговли в ручном режиме: · Работа с несколькими торговыми счетами. · Перенос заявок между торговыми сессиями, принудительное снятие заявок в заднно пользователем время. · Автоматическая загрузка сделок из QUIK, возможность ввода информации о сделках вручную · Сохранение сделок в базе данных для последующего анализа. · Расчет в реальном времени доходности завершенных сделок и открытых позиций. · Просмотр сделок в Amibroker на гафике цены.
2. Для автоматизации торговых стратегий: · Работа с несколькими торговыми счетами. · Автоматизированное выставление заявок из неограниченного числа торговых стратегий под управлением Amibroker, ведение журнала торговых сигналов, заявок и сделок. · Просмотр сделок вAmibroker на гафике цены. · Расчет в реальном времени доходности завершенных сделок и открытых позиций. · Работа с различными типами заявок: простые заявки, связанные заявки (OCO), стоп-лоссы, тейк-профиты. · Сохранение сделок в базе данных для последующего анализа. · Поддержка реализации различных стратегий управлений капиталом (за счет собственных средств и средств программы технического анализа). · Перенос заявок между торговыми сессиями, принудительное снятие заявок в заднно пользователем время. · Информирование пользователя о поступлении торговых сигналов, проведении сделок, возникновении ошибок: разрыве соединения с сервером брокера или потере работоспособности вследствии программных сбоев (e-mail, sms, всплывающие окна, звуковые сигналы). · Работа в тестовом режиме: заявки от автоматизиованных торговых стратегий не отправляются в торговый терминал, а исполняются непосредственно сервером заявок. Данный режим позволяет тестировать стратегии в условиях, максимально приближенных к реальным. Описание структуры программного комплекса
В состав TraderAssistant входит:
СОВЕТ! В целях повышения надежности функционирования системы TAlerter рекомендуется устанавливать на отдельный компьютер. Таким образом при любом аппаратном или программном сбое, в результате которого выключится/перезагрузится компьютера с TAOrderSrvr алертер сможет незамедлительно уведомлять об этом трейдера.
ВНИМАНИЕ! Программа осуществляет доступ к базе данных через ODBC источник TraderAssistant. В руководстве по установке описан вариант, при котором база данных и сервер заявок располагаются на одном компьютере. Отредактируйте ODBC источник данных вручную для получения более широких возможностей по управлению местонахождением вашей базы данных.
Сервер заявок TAOrderSrvr
Библиотека для Amibroker
Алертер Интерфейс пользователя доступен полностью, программа принимает все сообщения, но не сигнализирует звуковым сигналом и всплывающим окном, не отправляет сигналы по смс и электронной почте. Только мигает иконкой на панели инструментов. 1. Подготовка к работе
Шаг 0. Установка Microsoft SQL Server 2005 1. Скачайте и установите бесплатную СУБД Miscosoft SQL Server Express: http://www.microsoft.com/downloads/ru-ru/details.aspx?familyid=220549B5-0B07-4448-8848-DCC397514B41&displaylang=ru При установке в списке выборы обязательно отметьте установку компонентов возможности соединения (см. рис)
В остальном для наших целей достаточно следовать опциям, предлагаемым установщиком по умолчанию. Для более детальной информации об установке Microsoft SQL Server обращайтесь к сопроводительной документации. 2. Установите бесплатное приложени Microsoft SQL Server Management Studio для удобной работы с базами данных: http://www.microsoft.com/downloads/ru-ru/details.aspx?FamilyID=c243a5ae-4bd1-4e3d-94b8-5a0f62bf7796 Следуйте опциям, предлагаемым установщиком по умолчанию.
Шаг 1. Инсталляция программы Запустите TraderAssistant.msi и следуйте инструкциям установщика. Программа не установится, если на машине отсутствует Microsoft SQL Server – в этом случае программа выдаст сообщение о необходимости установки Microsoft SQL Server. ВАЖНО! Проследите, чтобы в пути установки отсутствовали русские символы и пробелы. Это необходимо для корректной работы драйвера базы данных ODBC, т.к. замечены случаи сбоев, связанных с некорректными (с точки зрения драйвера) путями.
Шаг 2. Настройки соединения Запустите TAOrderSrvr.exe, выберите пункт меню “Настройки->Общие настройки”. В открывшемся диалоговом окне укажите путь к QUIK.
Шаг 3. Настройка импорта транзакций QUIK Для того, чтобы посылаемые программой заявки обрабатывались в QUIK необходимо включить импрорт транзакций. Сделать это нужно в меню Quik Торговля/Внешние транзакции
Установките флажок “Запускать процесс…”, чтобы не возиться с этим каждый раз при запуске QUIK и нажмите кнопку “Начать обработку”. После этого окно можно закрывать, теперь при каждом старте QUIK будет включать обработку внешних транзакций автоматически. Заявки и сделки экспортируются из QUIK через интерфейс TRANS2QUIK.dll.
Шаг 4. Настройка экспорта данных о инструментах и котировках · Создайте таблицу текущих параметров вызвав пункт меню Таблицы/Текущая Таблица. · Отредактируйте таблицу, оставив в ней поля: Код класса, Код бумаги, Цена последней сделки, Точность, Класс, Бумага сокр., Размер лота. · Настройте экспорт таблицы через ODBC. В качестве имени источника данных выберите TraderAssistant. Таблица для экспорта – Quotes. Сопоставление полей: Код класса = ClassCode, Код бумаги = SecCode, Цена последней сделки = LastPrice, Точность = Precision, Класс = ClassName, Бумага сокр. = SecName, Размер лота = LotSize. · Установите флажки “Чистить таблицу перед выводом” и “Вывод после создания”. ВАЖНО! Программа будет работать только с инструментами, указанными в этой таблице. ВАЖНО! После завершения добавления инструментов необходимо перезапустить TAOrderSrvr, чтобы программа подписалась на обновление заявок и сделок. В противном случае новые заявки и сделки в TAOrderSrvr приходить не будут.
Шаг 5. Настройка экспорта данных о денежных средствах на ФОРТС · Создайте таблицу ограничений по клиентским счетам вызвав пункт меню Торговля/Фьючерсы/Ограничения по клиентским счетам. · Отредактируйте таблицу, оставив в ней поля: Фирма, Торговый счет, Лимит по откр. поз., Тип лимита. · Настройте экспорт таблицы через ODBC. В качестве имени источника данных выберите TraderAssistant. Таблица для экспорта – MoneyFORTS. Сопоставление полей: Фирма = Firm, Торговый счет = Account, Лимит по откр. поз. = Position, Тип лимита = Type. · В настройках таблицы оставьте только флажок “Показывать лимиты по ден. средствам”, остальные лимиты не нужны. · Установите флажки “Чистить таблицу перед выводом” и “Вывод после создания”.
Шаг 6. Настройка экспорта данных о позициях на ФОРТС · Создайте таблицу ограничений по клиентским счетам вызвав пункт меню Торговля/Фьючерсы/Позиции по клиентским счетам. · Отредактируйте таблицу, оставив в ней поля: Фирма, Торговый счет, Код инструмента, Текущая чистая позиция. · Настройте экспорт таблицы через ODBC. В качестве имени источника данных выберите TraderAssistant. Таблица для экспорта – PositionsFORTS. Сопоставление полей: Фирма = Firm, Торговый счет = Account, Код инструмента = Seccode, Текущая чистая позиция = Position. · Установите флажки “Чистить таблицу перед выводом” и “Вывод после создания”.
Шаг 7. Настройка экспорта данных о денежных средствах на ММВБ · Создайте таблицу ограничений по клиентским счетам вызвав пункт меню Лимиты/Клиентский портфель · Отредактируйте таблицу, оставив в ней поля: Фирма, Код клиента, Сумма денежных остатков. · Настройте экспорт таблицы через ODBC. В качестве имени источника данных выберите TraderAssistant. Таблица для экспорта – MoneyMICEX. Сопоставление полей: Фирма = Firm, Код клиента = ClientCode, Сумма денежных остатков = Position. · Установите флажки “Чистить таблицу перед выводом” и “Вывод после создания”.
Шаг 8. Настройка экспорта данных о позициях на ММВБ · Создайте таблицу ограничений по клиентским счетам вызвав пункт меню Лимиты/Лимиты по бумагам · Отредактируйте таблицу, оставив в ней поля: Фирма, Код бумаги, Код клиента, Счет депо, Текущий остаток. · Настройте экспорт таблицы через ODBC. В качестве имени источника данных выберите TraderAssistant. Таблица для экспорта – PositionsMICEX. Сопоставление полей: Фирма = Firm, Код бумаги = SecCode, Код клиента = ClientCode, Текущий остаток = Position. · В настройках таблицы установите флажок “Показывать нулевые лимиты”. · Установите флажки “Чистить таблицу перед выводом” и “Вывод после создания”.
Шаг 9. Настройка взаимодействия с AmiBroker Для использования возможностей автоматизированной торговли скопируйте AMI.dll в папку Amibroker\Plugins и перезапустите Amibroker.
Шаг 10. Запуск программы
Если все настройки заданы верно и QUIK соединен с брокером, в файле журнала появится сообщение: “ Соединение с QUIK установлено. Состояние QUIK: TRANS2QUIK_QUIK_CONNECTED ”. ВАЖНО! После перезапуска QUIK необходимо вручную переподключить к нему TAOrderSrvr. ВАЖНО! Настройте QUIK для автоматического переподключения с сервером брокера при потере соединения. Переподключения TAOrderSrvr для ситуации потери QUIK соединения с сервером брокера не требуется. Для получения лицензии на использование TAWorkBook необходимо сгенерировать идентификатор. Лицензия привязывается к рабочей станции. Таким образом программа может быть использована только на одной рабочей станции – той, на которой был сгенерирован идентификатор. Лицензия допускает двукратную замену рабочей станции, при такой замене бесплатно генерируется новая лицензия, а старая аннулируется. Лицензия не имеет ограничения по времени действия (предоставляется навсегда) и дает возможность на получение бесплатных обновлений программы. Для получения лицензии следуйте перечисленным ниже шагам. Шаг1: Генерация идентификатора рабочей станции. Для генерации идентификатора рабочей станции необходимо воспользоваться программой TAGetHostId.exe. Внешний вид программы представлен на рисунке.
Нажмите на кнопку “Сгенерировать идентификатор”. Программа создаст файл TAHostId.txt Шаг2: Отправка идентификатора в службу поддержки. Отправьте полученный файл TAHostId.txt на адрес службы поддержки. В течении суток служба поддержки вышлет Вам лицензию на использование TAWorkBook. Шаг3: Получение и установка лицензии. Полученную лицензию положите в директорию, в которой находится TAOrderSrvr.exe. При запуске программа автоматически обнаружит лицензию и можно будет начать работу. * Если Вы потеряете файл с лицензией – его всегда бесплатно восстановят в службе поддержки. * Если после изменения аппаратной конфигурации Вашего компьютера программа перестанет работать, ссылаясь на неверный файл лицензии – служба поддержки бесплатно и оперативно сгенерирует для вас новую лицензию. 2. Работа с программой TAOrderSrvrПрограмма TAOrderSrvr является центральным звеном программного комплекса и связывает между собой все остальные компоненты: · На основе котировок из QUIK расчитывает в реальном времени портфели и лимиты. · Предоставляет Ami.dll информацию о портфеле и лимитах. · Получает от Ami.dll сигналы, сохраняет их в базе данных, отправляет заявки в QUIK и отслеживает их исполнение. · Отправляет информацию о событиях в TAlerter. * Щелчок левой кнопкой мыши по иконке программы в панели задач позволяет спрятать окно программы, повторный щелчок снова покажет окно. * Все основные пункты меню для удобства продублированы кнопками на панели задач. Кнопки сгруппированы по функциональному назначению. Наведите мышь на кнопку и программа отобразит всплывающее окно с ее описанием, также в статусной строке внизу главного окна программы появится расширенное описание кнопки. Предусмотрено два режима работы с программой: · Автоматизированная торговля – решения о сделках принимают автоматизированные торговые стратегии и через Ami.dll передают из в TAOrderSrvr, который достаточность лимитов и регистрирует заявку в QUIK. После исполнения заявки TAOrderSrvr автоматически регистрирует сделку и связывает ее с торговой стратегией. В автоматическом режиме также отслеживаются доходности сделок. ВНИМАНИЕ! Для автоматизированной торговли предусмотрен тестовый режим, при котором заявки не уходят в QUIK а исполняются виртуально в программе по текущим котировкам. · Торговля в ручном режиме – решения о сделках принимает трейдер и совершает сделки вручную в терминале QUIK. TAorderSrvr в этом режиме работает как регистратор сделок, автоматически связывая сделки трейдера со стратегией “Ручной режим” и расчитывая доходность.
Общий алгоритм работы с программой:
ВАЖНО! После добавления в экспорт новых документов необходимо перезапустить TAOrderSrvr. ВНИМАНИЕ! После выполнения этого шага уже можно начинать работать в ручном режиме.
Перед началом работы необходимо осуществить настройку программы. Доступ к окну настроек осуществляется при помощи меню Настройки/Общие настройки.
Описание элементов окна Поле ввода Папка с QUIK содержит путь к папке с QUIK. Для выбора пути необходимо нажать на кнопку “…” справа от поля ввода и в открывшемся диалоговом окне выбрать папку, в которую установлен QUIK. Блок Журнал работы управляет параметрами ведения журнала. При установленном флажке Писать журнал работы в файл журнал работы ведется, при снятом – нет. Журнал работы сохраняется в текстовом файле в папке Корневая папка\Logs. Поле ввода Максимальный размер журнала содержит максимальное число строк в файле журнала. При достижении максимального количества строк программа начинает новый файл журнала, старый не удаляется. * Для упрощения анализа рекомендуется вести журнал работы программы, размер журнала не стоит делать слишком большим (например, свыше 10000 строк) во избежании проблем с задержками при операциях чтение/запись файла на диске. Поле ввода Глубина истории содержит число дней за которые загружаются данные в таблицы программы (0 – вся история). * Ограничение глубины истории актуально при большом числе совершаемых сделок и предназначено для повышения скорости работы за счет оперирования меньшим набором данных. Поле ввода Частота расчета не закрытых аналитических сделок содержит период пересчета аналитических сделок в секундах. Минимальное значение 5. Флажок Работать в тестовом режиме – если установлен, то приходящие от автоматизированных торговых стратегий сигналы не передаются в QUIK а “исполняются” по переданной в заявке цене и регистрируются в виде сделок внутри программы. Режим предназначен для тестирования торговых идей. TAOrderSrvr позволяет запоминать расположение дочерних окон и сохранять его для автоматической загрузки при следующих запусках программы. Для сохранения конфигурации окон выберите пункт меню Окна/Сохранить конфигурацию окон в файл. Программа предложит выбрать имя файла для сохранения конфигурации и запишет в него список открытых окон, их расположение, размеры, параметры отображения таблиц и фильтры данных. При последующих запусках программа после соединения с базой данных будет автоматически открывать последнюю сохраненную конфигурацию. Для загрузки ранее сохраненной конфигурации окон выберите пункт меню Окна/Загрузить конфигурацию окон из файл. Программа предложит выбрать имя файла для загрузки конфигурации и загрузит выбранный файл. В журнале работы программы отображается вся значимая информация. Журнал работы записывается, если в настройках программы установлен флажок Писать журнал работы в файл. Для показа/скрытия окна с журналом работы на панели
инструментов предусмотрена кнопка 2.5 Установка соединенияУстановка соединения с базой данных и QUIK осуществляется через пункт меню Файл/Соединение. В открывшемся диалоговом окне необходимо выбрать имя сервера и название базы данных.
В поле ввода Имя сервера необходимо ввести имя Microsoft SQL server, установленного на вашей машине. При первом запуске программа сама определяет имя первого из установленных на машине серверов и подставляет его в качестве имени по умолчанию. В поле ввода База данных необходимо ввести имя базы данных на выбранном сервере. По умолчанию программа устанавливается с базой данных TA. При первом запуске программа регистрирует источник данных TraderAssistant, присоединяет к Microsoft SQL Server базу данных TA и связывает их между собой. В дальнейшем базу данных можно заменить или даже сделать их несколько под разные цели. Программа поддерживает неограниченное множество торговых
счетов. Для управления торговыми счетами перейдите в пункт меню Настройки/Счета
или воспользуйтесь кнопкой 2.6.1 Таблица “Счета”
В поле Id содержится идентификатор счета в TraderAssistant. Поле Тип лимита может содерать значения 0 (для счетов без ограничения по размеру) или 1 (для искуственно ограниченных счетов). В поле Лимит, руб для счетов без ограничения по размеру содержится 0, для ограниченных счетов – искуственно установленный размер ограничения. В поле Перенос заявок может находится значение 1 (для заявок с переносом) или 0 (для заявок без переноса). Для добавления нового счета щелкните правой кнопкой мыши по таблице и в появившемся выпадающем меню выберите пункт Добавить. Программа отобразит диалоговое окно добавления счета. Для редактирования счета щелкните правой кнопкой мыши по строке счета в таблице и в появившемся выпадающем меню выберите пункт Редактировать. Программа отобразит диалоговое окно редактирования счета. Для удаления счета щелкните правой кнопкой мыши по строке счета в таблице и в появившемся выпадающем меню выберите пункт Удалить. Программа запросит подтверждение на удаление счета и, в случае согласия трейдера, удалит его. 2.6.2 Добавление/редактирование счета
Описание элементов окна Счет характеризуется непосредственно номером, который необходимо ввести в поле Номер счета и кодом клиента (поле ввода Код клиента). Для ММВБ данные о коде клиента необходимо взять из QUIK, для ФОРТС код клиента может быть любым. Блок Размер счета устанавливает ограничение на размер денежных средств на счету, доступных автоматизированным стратегиям. Можно либо задать конкретный денежный лимит, либо разрешить автоматизированным стратегиям работать со всеми средствами на счету. Блок Перенос активных заявок управляет функцией снятия/выставления заявок в заданное трейдером время. При установленном флажке Переносить заявки все активные заявки, имеющиеся в QUIK на момент времени, указанном в поле Снимать в.. будут сняты и размещены в таблице Отложенных заявок программы. В момент времени, указанном в поле Выставлять в.. отложенные заявки будут выставлены в QUIK.
Для каждого автоматизированного торгового алгоритма в программе необходимо задать Стратегию. Стратегия – набор правил, результатом обработки которых является сгенерированный и переданный в торговую систему сигнал. Правила описываются на языке программы Amibroker. Каждая стратегия представляет из себя законченный набор правил и размещается в отдельном файле .afl. Программа позволяет вести список стратегий, автоматически присваивая каждой новой стратегии уникальный номер. Программа хранит файлы стратегий в архиве (Корневая папка\Strategies), добавление файлов в архив осуществляется трейдером из интерфейса управления стратегиями. Для каждой стратегии внутри папки \Strategies программа автоматически создает собственную папку, название которой равно идентификатору стратегии. ВНИМАНИЕ! Стратегиям автоматизированной торговли автоматически присваиваются положительные целочисленные идентификаторы. Для сделок, совершенных пользователем вручную идентификатор стратегии всегда равен “-1”.
Для управления торговыми счетами перейдите в пункт меню Настройки/Стратегии
или воспользуйтесь кнопкой 2.7.1 Таблица “Стратегии”
В поле Id содержится идентификатор стратегии в TraderAssistant. Поля Название и Дата создания содержат название стратегии и дату создания соответственно. Для добавления новой стратегии щелкните правой кнопкой мыши по таблице и в появившемся выпадающем меню выберите пункт Добавить. Программа отобразит диалоговое окно добавления стратегии. Для редактирования счета щелкните правой кнопкой мыши по строке в таблице и в появившемся выпадающем меню выберите пункт Редактировать. Программа отобразит диалоговое окно редактирования стратегии. Для удаления стратегии щелкните правой кнопкой мыши по строке в таблице и в появившемся выпадающем меню выберите пункт Удалить. Программа запросит подтверждение на удаление и, в случае согласия трейдера, удалит стратегию. 2.7.2 Добавление/редактирование стратегии
Описание элементов окна В поля ввода Дата создания и Название необходимо ввести дату создания и название стратегии соответственно. Нажатие на кнопку Открыть папку приведет к открытию папки Корневой каталог\Strategies\[id], где id – идентификатор стратегии, присвоенный ей программой после создания. Лимит представляет из себя ограничение, накладываемое на автоматизированную стратегию в целях реализации задач управления капиталом. Если для стратегии не задан или задан не не активирован лимит – заявки выставляться не будут. Перед выставлением каждой заявки проверяется соответствие ее размера лимитам. Только в том случае, когда лимит позволяет пропустить заявку она попадает на биржу. Для управления лимитами перейдите в пункт меню Настройки/Лимиты
– автоматизированная торговля или воспользуйтесь кнопкой 2.8.1 Таблица “Лимиты – автоматизированная торговля”
Активные лимиты отображаются в таблице зеленым цветом, останавливаемые – синим, остановленные – красным. Описание некоторых столбцов таблицы В поле Id содержится идентификатор лимита в TraderAssistant. Тип лимита по деньгам – Возможные значения: 1 – лимит задан в рублях, 2 – в % от доступных средств, 3 – лимит не задан. Лимит по деньгам - Содержит максимально допустимый размер позиции в денежной оценке для стратегии, если лимит по деньгам задан. Если лимит по деньгам не задан – 0.- Тип лимита по бумагам – Возможные значения: 1 – лимит задан, 2 – лимит не задан. Лимит по бумагам – Содержит максимально допустимое число лотов для стратегии в портфеле, если лимит по бумагам задан. Если лимит по бумагам не задан – 0. Статус – Состояние лимита. Возможные значения: 1 - лимит активен, 2 – отслеживаются текущие заявки и лимит деактивируется, 3 – лимит не активен.
Для просмотра информации об аналитических сделках, совершенных в рамках лимита, необходимо щелкнуть правой кнопкой мыши по строке с лимитом и в появившемся меню выбрать пункт Аналитические сделки. Программа откроет таблицу аналитических сделок по выбранному лимиту. Для немедленного перерасчета аналитических сделок и текущей позиции по лимиту необходимо щелкнуть правой кнопкой мыши по строке с лимитом в таблице и в появившемся меню выбрать пункт Перерасчитать аналитические сделки. Для немедленного запуска не работающего лимита необходимо щелкнуть правой кнопкой мыши по строке с лимитом в таблице и в появившемся меню выбрать пункт Запустить. Для немедленной остановки работающего лимита необходимо щелкнуть правой кнопкой мыши по строке с лимитом в таблице и в появившемся меню выбрать пункт Остановить. Программа снимет все активные заявки и остановит лимит. Для редактирования лимита щелкните правой кнопкой мыши по строке в таблице и в появившемся выпадающем меню выберите пункт Редактировать. Программа отобразит диалоговое окно редактирования лимита. Для удаления лимита необходимо щелкнуть правой кнопкой мыши по строке с лимитом в таблице и в появившемся меню выбрать пункт Удалить. 2.8.2 Добавление/редактирование лимита
Описание элементов окна В верхней части окна располагается цветное поле состояния лимита, под ним – кнопки изменяющие состояние: Включить, Завершить сделки и отключить и Отключить немедленно. Изменение состояния лимита возможно для уже созданных лимитов. При отключении лимита блокируется возможность выставления по нему заявок. Поле ввода Идентификатор лимита заполняется программой автоматически и содержит уникальный идентификатор лимита. Поле ввода Идентификатор стратегии содержит идентификатор стратегии, с которой связан лимит. Для изменения значения необходимо нажать на кнопку “…”, расположенную справа от поля и в открывшемся списке выбрать стратегию. Блок Счет содержит информацию о торговом счете, с котором связан лимит. Для изменения значения необходимо нажать на кнопку “…”, расположенную справа от поля ввода Идентификатор счета и в открывшемся списке выбрать счет. Блок Инструмент содержит информацию о инструменте, с котором связан лимит. Для изменения значения необходимо нажать на кнопку “…”, расположенную справа от поля ввода Код площадки и в открывшемся списке выбрать из списка инструмент. Список формируется на основе таблицы котировок. Блоки Лимит по бумагам и Лимит по деньгам содержат ограничение на максимальный размер позиции, который может иметь стратегия в рамках лимита. Для проверки лимита по деньгам расчитывается текущая оценка портфеля в деньгах и сравнивается с величиной, указанной в лимите. Во время проверки лимиты по бумагам и лимиты по деньгам объединяются через логическое И. Лимит для торговли в ручном режиме – условное понятие, не подразумевающее решение задач аналогичных задачам, решаемым лимитами для автоматизированной торговли. При торговле в ручном режиме таблица лимитов отображает текущие позиции по инструментам и, фактически, используется как иллюстрация портфеля. Для управления лимитами перейдите в пункт меню Настройки/Лимиты
– ручная торговля или воспользуйтесь кнопкой 2.9.1 Таблица “Лимиты – ручная торговля”
Таблица содержит информацию о текущих позициях (с учетом и без учета активных заявок) по инструментам, зарегистрированным в таблице Котировок, сделки по которым совершались трейдером вручную в QUIK. Таблица перерасчитывается с периодичностью, определяемой параметром Частота расчета не закрытых аналитических сделок в найстройках программы. Для просмотра информации об аналитических сделках, совершенных в ручном режиме по инструменту, необходимо щелкнуть правой кнопкой мыши по строке с инструментом и в появившемся меню выбрать пункт Аналитические сделки. Программа откроет таблицу аналитических сделок, совершенных в ручном режиме, по выбранному лимиту. Для немедленного перерасчета аналитических сделок и текущей позиции по лимиту необходимо щелкнуть правой кнопкой мыши по строке с инструментом в таблице и в появившемся меню выбрать пункт Перерасчитать аналитические сделки. Для немедленного перерасчета аналитических сделок и текущих позиций по ВСЕМ лимитам в таблице необходимо щелкнуть правой кнопкой мыши по таблице и в появившемся меню выбрать пункт Перерасчитать ВСЕ “ручные” аналитические сделки. Ami.dll генерирует торговые сигналы и передает их в TAOrderSrvr на обработку. Таблица сигналов содержит полную информацию обо всех поступивших сигналах и пути их выполнения. При успешном выполнении транзакции строка сигнала в таблице окрашивается в зеленый цвет, при возникновении ошибок – в красный. * Причину возникновения ошибки при отправке транзакции можно посмотреть в столбце Статус. Для просмотра таблицы сигналов перейдите в пункт меню Торговля/Сигналы
или воспользуйтесь кнопкой 2.10.1 Таблица “Сигналы”Описание некоторых столбцов таблицы Id - содержит идентификатор сигнала в TraderAssistant. Покупка/продажа – Содержит 1 для сигналов на покупку или -1 для сигналов на продажу. Статус – Числовое поле содержит статус отправки транзакции в QUIK. В текстовом поле – расшифровка статуса отправки транзакции. № Заявки – В случае успешного завершения транзакции по выставлению заявки содержит номер заявки на бирже. Тип – содержит тип сигнала. 1 – заявка, OCO заявка. 2- стоп-лосс. 3 – тейк-профит. 4 – стоп-тейк. 5 – снятие заявок по условию. Для просмотра таблицы заявок перейдите в пункт меню Торговля/Заявки
или воспользуйтесь кнопкой Таблица заявок заполняется автоматически из QUIK и имеет стандартный набор отображаемых параметров. Заявки на покупку отображаются зеленым цветом, на продажу – красным. Для снятия заявки вручную щелкните правой кнопкой мыши по строке таблицы с заявкой и в появившемся меню вберите пункт Снять. Программа отправит запрос на снятие заявки в QUIK. Для снятия всех заявок вручную щелкните правой кнопкой мыши по таблице и в появившемся меню вберите пункт Снять все. Программа отправит запрос на снятие всех заявок в QUIK. Для управления таблицей сделок перейдите в пункт меню Торговля/Сделки
или воспользуйтесь кнопкой Таблица сделок заполняется автоматически из QUIK и имеет стандартный набор отображаемых параметров. Сделки, совершенные для заявок по сигналам из автоматизированных стратегий автоматически связываются с соответствующими стратегиями. Сделки, совершенные трейдеров вручную автоматически привязываются к стратегии “Ручной режим” (идентификатор стратегии = -1). Также предусмотрена возможность ручной коррекции информации о сделках – любую сделку можно отредактировать, удалить или зарегистрировать в системе абсолютно новую сделку вручную.
Для добавления новой сделки щелкните правой кнопкой мыши по таблице и в появившемся выпадающем меню выберите пункт Добавить. Программа отобразит диалоговое окно добавления сделки. Для редактирования сделки щелкните правой кнопкой мыши по строке счета в таблице и в появившемся выпадающем меню выберите пункт Редактировать. Программа отобразит диалоговое окно редактирования сделки. Для удаления сделки щелкните правой кнопкой мыши по строке счета в таблице и в появившемся выпадающем меню выберите пункт Удалить. 2.12.1 Добавление/редактирование сделки
Описание элементов окна Сделка может быть связана как с торговлей в ручном режиме, так и с одной из автоматизированных стратегий. Выбор стратегии происходит при помощи переключателя Ручной режим/Автоматизированная торговля. Для автоматизированной торговли необходимо задать стратегию, с которой связана сделка. Для этого необходимо нажать на кнопку “…”, расположенную справа от поля ввода Идентификатор стратегии и в открывшемся списке выбрать стратегию. Поле ввода Идентификатор стратегии содержит идентификатор стратегии, с которой связан лимит. Для изменения значения необходимо нажать на кнопку “…”, расположенную справа от поля и в открывшемся списке выбрать стратегию. Блок Счет содержит информацию о торговом счете, для которого регистрируется сделка. Для изменения значения необходимо нажать на кнопку “…”, расположенную справа от поля ввода Идентификатор и в открывшемся списке выбрать счет. Блок Инструмент содержит информацию о инструменте, с котором совершается сделка. Для изменения значения необходимо нажать на кнопку “…”, расположенную справа от поля ввода Код площадки и в открывшемся списке выбрать из списка инструмент. Список формируется на основе таблицы котировок. Поля ввода Цена и Количество лотов определяют цену сделки и число лотов инструмента в ней. В поля ввода Комиссия биржи и Комиссия брокера вводятся соответствующие комиссии в рублях. Это необязательные поля. Механизм отложенных заявок предназначен для переноса заявок между торговыми сессиями. Если в настройках счета установлен флажлк Переносить заявки, то в заданное в настройках время снятия активные заявки будут сниматься и попадать в отложенные. А в заданное время выставления – снова размещаться на бирже. Для просмотра таблицы отложенных заявок перейдите в пункт
меню Торговля/Отложенные заявки или воспользуйтесь кнопкой 2.13.1 Таблица “Отложенные заявки”
Описание некоторых столбцов таблицы Id - содержит идентификатор отложенной заявки в TraderAssistant. Операция - содержит направление заявки. Возможны значения 1 (покупка) или -1 (продажа). Идентификатор стратегии – стратегия, к которой привязана заявка. Для примера на рисунке – заявка выставлена в ручном режиме. Идентификатор заявки – содержит номер заявки на бирже или 0, если заявка отсутствует. После успешной регистрации отложенной заявки на бирже это поле заполняется номером выставленной заявки. Для немедленного выставления заявки щелкните правой кнопкой мыши по строке в таблице и в появившемся выпадающем меню выберите пункт Выставить. Для немедленного выставления всех заявок щелкните правой кнопкой мыши по строке в таблице и в появившемся выпадающем меню выберите пункт Выставить все. Для немедленного удаления отложенной заявки щелкните правой кнопкой мыши по строке в таблице и в появившемся выпадающем меню выберите пункт Удалить. Для немедленного удаления всех отложенных заявок щелкните правой кнопкой мыши по строке в таблице и в появившемся выпадающем меню выберите пункт Удалить все. Аналитическая сделка представляет из себя совокупность простых сделок между нулевыми состояниями счета. * Таким образом, например, операции покупки 10 контрактов с последующей их продажей составляют одну аналитическую сделку, в то время как простых биржевых сделок для выполнения этой операции может быть несколько, минимум 2. Для просмотра таблицы аналитических сделок перейдите в пункт
меню Торговля/Аналитические сделки или воспользуйтесь кнопкой Для каждой аналитической сделки программа автоматически расчитывает величину прибыли/убытка на основании цен открытия и закрытия аналитической сделки. Для еще не закрытых аналитических сделок прибыль/убыток расчитываются на основе теущих биржевых котировок. Таблица аналитических сделок расчитывается только в автоматическом режиме. Перерасчет таблицы вызывается из всплывающего меню при работе с таблицей лимитов (см. соответствующий раздел документа). Для просмотра сделок, входящих в состав конкретной аналитической сделки необходимо щелкнуть правой кнопкой мыши по аналитической сделке в таблице и в появившемся меню выбрать пункт Сделки. ВНИМАНИЕ! Текущая версия программы в таблице биржевых сделок, входящих в состав аналитической сделки всегда показывает полный объем сделки независимо от того какая ее часть вошла в данную аналитическую сделку. Таблица котировок носит исключительно информационный характер и предназначена для визуального контроля над работоспособностью экспорта котировок из QUIK. Таблица котировок обновляется на экране с периодичностью, заданной в параметре Частота расчета незакрытых аналитических сделок в настройках программы. * В базе данных котировки обновляются в реальном времени вне зависимости от заданных настроек обновления интерфейса, таким образом параметр Частота расчета незакрытых аналитических сделок влияет ТОЛЬКО на частоту обновления таблицы на экране программы и не влияет на получение котировок. Котировки всегда поступают в программу в режиме реального времени. ВАЖНО! Программа может работать только с инструментами, указанными в таблице котировок. После добавления новых инструментов в таблицу необходимо пересоединиться с базой данных и QUIK. Необходимость обусловлена тем, что подписка на заявки и сделки осуществляется программой в момент осуществления соединения.
Для просмотра таблицы котировок перейдите в пункт меню Торговля/Котировки
или воспользуйтесь кнопкой 2.15.1 Таблица “Котировки”
3. Работа с программой TAlerterПрограмма TAlerter предназначена для информирования трейдера о существенных событиях функционирования программного комплекса. После запуска TAlerter соединяется с TAOrderSrvr по протоколу tcp/ip (порт 2049) и получает информационные сообщения, данные о сделках, сигналах, ошибках. В зависимости от настроек для каждого типа сообщений TAlerter предпринимает те или иные действия. TAlerter может размещаться на том же компьютере, что и TAOrderSrvr или на любом другом. СОВЕТ! В целях повышения надежности функционирования системы TAlerter рекомендуется устанавливать на отдельный компьютер. Таким образом при любом аппаратном или программном сбое, в результате которого выключится/перезагрузится компьютера с TAOrderSrvr алертер сможет незамедлительно уведомлять об этом трейдера. При получении сообщения трижды мигает иконка TAlerter на панели задач, программа издает звуковой сигнал, отображает всплывающее окошко с основными параметрами сообщения и, в зависимости от настроек оповещения, высылает/не высылает e-mail и/или sms с сообщением. * Щелчок левой кнопкой мыши по иконке программы в панели задач позволяет спрятать окно программы, повторный щелчок снова покажет окно. 3.1. Настройка программыПеред началом использования необходимо настроить параметры уведомления о поступающих сигналах. Для этого выберите пункт меню Настройки/Настройки оповещения... Программа отобразит диалоговое окно настроек.
Окно разбито на несколько логических блоков. Левый верхний блок “Настройки E-mail” отвечает за настройку параметров отправки электронной почты, левый нижний – за настройку параметров отправки смс. * Формат номера телефона для отправки смс: 7хххххххххх, где х – цифра номера вашего телефона. Com-порт, на котором находится gsm-модем необхлдимо задавать в формате “COMx” (латиницей), где х – номер порта. В правой части диалогового окна располагается ряд блоков с настройками поведения TAlerter при получении того или иного типа сообщений. Например, на картинке указаны настройки, при которых при приходе информационного сообщения сигналы не отправляются вообще, при приходе ошибки отправляются и смс и e-mail, при поступлении сигнала от торговой системы отправляется только e-mail, а при заключении сделки только смс. 3.2. Проверка настроек программыПеред началом работы рекомендуется проверить правильность задания настроек оповещения. Для этого в мню выберите пункт Настройки/Послать тестовую SMS для отправки тестовой sms или Настройки/Послать тестовый E-mail для отправки тестового сообщения по электронной почте. Программа отобразит диалоговое окно, в котором нужно будет ввести текст тестового сообщения. 4. Работа с библиотекой AMI.dllНиже приведен перечень функций ami.dll: AMI_IsConnected() Возвращает текущий статус соединения. 4.2. AMI_GetCurrentFORTSPositionAMI_GetCurrentFORTSPosition(sAccount, sSeccode); Возвращает текущий размер портфеля на FORTS для заданных счета и кода инструмента. Параметры sAccount – счет. sSeccode – код инструмента. Пример использования CurrentPosition = AMI_GetCurrentFORTSPosition("SPBFUT00111","RIM0"); 4.3. AMI_GetCurrentMICEXPositionAMI_GetCurrentMICEXPosition(sAccount, sClientCode, sSeccode); Возвращает текущий размер портфеля на ММВБ для заданных счета, кода клиента и кода инструмента. Параметры sAccount – счет. sClientCode – код клиента. sSeccode – код инструмента. Пример использования CurrentPosition = AMI_GetCurrentMICEXPosition("L01-00000F00","111","SBER03"); 4.4. AMI_GetCurrentMICEXMoneyAMI_GetCurrentMICEXMoney(sAccount, sClientCode); Возвращает текущий свободный денежный остаток на ММВБ для заданных счета и кода клиента. Параметры sAccount – счет. sClientCode – код клиента. Пример использования CurrentPosition = AMI_GetCurrentMICEXMoney("L01-00000F00","111"); 4.5. AMI_GetCurrentFORTSMoneyAMI_GetCurrentFORTSMoney(sAccount); Возвращает текущий свободный денежный остаток на ММВБ для заданного счета. Параметры sAccount – счет. Пример использования CurrentPosition = AMI_GetCurrentFORTSMoney("SPBFUT00111"); 4.6. AMI_GetCurrentPositionAMI_GetCurrentPosition(sAccount, sClientCode, sClasscode, sSeccode, iStrategyId); Возвращает текущий размер позиции по лимиту (лимит определяется по инструменту и идентификатору стратегии). Размер позиции определяется как сумма текущей позиции и объема выставленных активных заявок по бумаге. Параметры sAccount – счет. sClientCode – код клиента. sClasscode – код класса. sSeccode – код инструмента. iStrategyId – идентификатор стратегии. Пример использования CurrentPosition = AMI_GetCurrentPosition(("SPBFUT00111", "SPBFUT00111", "SPBFUT", "SRM0",12); AMI_GetCurrentPositionNoOrder(sAccount, sClientCode, sClasscode, sSeccode, iStrategyId); Возвращает текущий размер позиции по лимиту (лимит определяется по инструменту и идентификатору стратегии). В отличии от функции AMI_GetCurrentPosition размер позиции НЕ ВКЛЮЧАЕТ выставленные заявки. Параметры sAccount – счет. sClientCode – код клиента. sClasscode – код класса. sSeccode – код инструмента. iStrategyId – идентификатор стратегии. Пример использования CurrentPosition = AMI_GetCurrentPositionNoOrder(("SPBFUT00111", "SPBFUT00111", "SPBFUT", "SRM0", 12);
AMI_GetCurrentMoneyLimit(sAccount, sClientCode, sClasscode, sSeccode, iStrategyId); Возвращает текущий лимит для стратегии в рублях. Параметры sAccount – счет. sClientCode – код клиента. sClasscode – код класса. sSeccode – код инструмента. iStrategyId – идентификатор стратегии. Пример использования Limit = AMI_GetCurrentMoneyLimit("SPBFUT00111", "SPBFUT00111", "SPBFUT", "SRM0",12); AMI_PushOrder(sAccount, sClientCode, sClasscode, sSeccode, iStrategyId, iPrecision, iDirection, fPrice, iSize, Date, Time); Выставляет заявку. Параметры sAccount – счет. sClientCode – код клиента. sClasscode – код класса. sSeccode – код инструмента. iStrategyId – идентификатор стратегии. iPrecision – точность цены инструмента. iDirection – направление заявки (Для покупки iDirection>0, для продажи iDirection<0). fPrice – цена заявки. iSize – размер заявки. Date – дата в числовом выражении (10000 * (year - 1900) + 100 * month + day). Time – время в числовом выражении (10000 * hour + 100 * minute + second). Пример использования AMI_PushOrder("SPBFUT00111","111","SPBFUT","RIM0",12,0,1,140000,10,LastValue(DateNum()),LastValue(TimeNum()));
AMI_PushOCOOrder(sAccount, sClientCode, sClasscode, sSeccode, iStrategyId, iPrecision, iDirection, fPrice, iSize, Date, Time, fStopLoss, fStopPrice, fTakeProfit); Выставляет связанную заявку (One Cancel Other). Параметры sAccount – счет. sClientCode – код клиента. sClasscode – код класса. sSeccode – код инструмента. iStrategyId – идентификатор стратегии. iPrecision – точность цены инструмента. iDirection – направление заявки (Для покупки iDirection>0, для продажи iDirection<0). fPrice – цена заявки. iSize – размер заявки. Date – дата в числовом выражении (10000 * (year - 1900) + 100 * month + day). Time – время в числовом выражении (10000 * hour + 100 * minute + second). fStopLoss – цена стоп-лосса. fStopPrice – уровень срабатывания стоп-лосса. fTakeProfit – цена тейк-профита. Пример использования AMI_PushOCOOrder("SPBFUT00111","111","SPBFUT","SRM0",12,0,1,8500,1,LastValue(DateNum()),LastValue(TimeNum()),8400,8450,9000); 4.11. AMI_KillOrdersAMI_KillOrders(sAccount, sClientCode, sSeccode, iStrategyId, iDirection, Date, Time); Снимает все активные заявки по инструменту на покупку или продажу (в зависимости от указанного направления). Параметры sAccount – счет. sClientCode – код клиента. sSeccode – код инструмента. iStrategyId – идентификатор стратегии. iDirection – направление (1 – покупка, -1 – продажа). Date – дата в числовом выражении (10000 * (year - 1900) + 100 * month + day). Time – время в числовом выражении (10000 * hour + 100 * minute + second). Пример использования AMI_KillOrders("SPBFUT00111","SPBFUT00111","SRM0",12,1,LastValue(DateNum()),LastValue(TimeNum())); 4.12. AMI_PushStopLossAMI_PushStopLoss(sAccount, sClientCode, sClasscode, sSeccode, sExpiryDate, iStrategyId, iPrecision, iDirection, fPrice, iSize, fStopPrice, Date, Time); Выставляет стоп-лосс. Параметры sAccount – счет. sClientCode – код клиента. sClasscode – код класса. sSeccode – код инструмента. sExpiryDate – срок действия в формате ггггммдд или слово GTC. iStrategyId – идентификатор стратегии. iPrecision – точность цены инструмента. iDirection – направление заявки (Для покупки iDirection>0, для продажи iDirection<0). fPrice – цена. iSize – размер. fStopPrice – стопцена. Date – дата в числовом выражении (10000 * (year - 1900) + 100 * month + day). Time – время в числовом выражении (10000 * hour + 100 * minute + second). Пример использования AMI_PushStopLoss("SPBFUT00111","111","SPBFUT","SRM0" ,"20100413",12,0,1,9000,1,8900,LastValue(DateNum()),LastValue(TimeNum())); 4.13. AMI_PushTakeProfitAMI_PushTakeProfit(sAccount, sClientCode, sClasscode, sSeccode, sExpiryDate, iStrategyId, iPrecision, iDirection, fStopPrice, iSize, fOffset, iOffsetUnits, fSpread, iSpreadUnits, Date, Time); Выставляет тейк-профит. Параметры sAccount – счет. sClientCode – код клиента. sClasscode – код класса. sSeccode – код инструмента. sExpiryDate – срок действия в формате ггггммдд или слово GTC. iStrategyId – идентификатор стратегии. iPrecision – точность цены инструмента. iDirection – направление заявки (Для покупки iDirection>0, для продажи iDirection<0). fStopPrice – стопцена. iSize – размер. fOffset – смещение. iOffsetUnits – единицы, в которых задан параметр fOffset(1, если в процентах и 2, если в пунктах цены). fSpread – защитный спрэд. iSpreadUnits – единицы, в которых задан параметр fSpread(1, если в процентах и 2, если в пунктах цены). Date – дата в числовом выражении (10000 * (year - 1900) + 100 * month + day). Time – время в числовом выражении (10000 * hour + 100 * minute + second). Пример использования AMI_PushTakeProfit("SPBFUT00111","111","SPBFUT","SRM0","GTC",12,0,-1, 9000, 1, 5, 2, 0.1, 1,LastValue(DateNum()),LastValue(TimeNum())); 4.14. AMI_PushStopTakeAMI_PushTakeProfit(sAccount, sClientCode, sClasscode, sSeccode, sExpiryDate, iStrategyId, iPrecision, iDirection, fStopPrice, iSize, fOffset, iOffsetUnits, fSpread, iSpreadUnits, fPrice, fStopPrice2 Date, Time); Выставляет тейк-профит со связанной стоп заявкой. Параметры sAccount – счет. sClientCode – код клиента. sClasscode – код класса. sSeccode – код инструмента. sExpiryDate – срок действия в формате ггггммдд или слово GTC. iStrategyId – идентификатор стратегии. iPrecision – точность цены инструмента. iDirection – направление заявки (Для покупки iDirection>0, для продажи iDirection<0). fStopPrice – стопцена. iSize – размер. fOffset – смещение. iOffsetUnits – единицы, в которых задан параметр fOffset(1, если в процентах и 2, если в пунктах цены). fSpread – защитный спрэд. iSpreadUnits – единицы, в которых задан параметр fSpread(1, если в процентах и 2, если в пунктах цены). Date – дата в числовом выражении (10000 * (year - 1900) + 100 * month + day). Time – время в числовом выражении (10000 * hour + 100 * minute + second). fPrice – цена для противоположной заявки. fStopPrice2 – стопцена для противоположной заявки. Пример использования AMI_PushStopTake("SPBFUT00111","111","SPBFUT","SRM0","GTC",12,0,-1, 9000, 1, 5, 2, 0.1, 1, 7800, 7740, LastValue(DateNum()),LastValue(TimeNum())); 4.15. AMI_GetLastOrderStatusAMI_GetLastOrderStatus(sAccount, sClientCode, sSeccode, iStrategyId, iDirection); Возвращает статус последней выставленной из стратегии заявки. Отрицательное значение – признак ошибки. Значение -11 соответствует отсутствию заявки по текущей активной аналитической сделке. Параметры sAccount – счет. sClientCode – код клиента. sSeccode – код инструмента. iStrategyId – идентификатор стратегии. iDirection – направление (1 – покупка, -1 – продажа). Пример использования AMI_GetLastOrderStatus("SPBFUT00111","SPBFUT00111","SRM0",12,1); AMI_GetLastOrderRemainder(sAccount, sClientCode, sSeccode, iStrategyId, iDirection); Возвращает неисполненный остаток последней выставленной из стратегии заявки. Отрицательное значение – признак ошибки. Значение -1 соответствует отсутствию заявки. Параметры sAccount – счет. sClientCode – код клиента. sSeccode – код инструмента. iStrategyId – идентификатор стратегии. iDirection – направление (1 – покупка, -1 – продажа). Пример использования AMI_GetLastOrderRemainder("SPBFUT00111","SPBFUT00111","SRM0",12,1); 4.17. AMI_GetBuyDealsAMI_GetBuyDeals(sAccount, sClientCode, sClasscode, sSeccode, iStrategyId); Возвращает цены сделок на покупку для заданного инструмента и стратегии. Параметры sAccount – счет. sClientCode – код клиента. sClasscode – код площадки. sSeccode – код инструмента. iStrategyId – идентификатор стратегии. Пример использования BuyDeals = AMI_GetBuyDeals("acc","cl","class","secc",-1); SellDeals = AMI_GetSellDeals("acc","cl","class","secc",-1);
for(i = 0; i < BarCount; i++) { if(BuyDeals[i] > 0) { Buy[i] = 1; BuyPrice[i] = BuyDeals[i]; } else { Buy[i] = 0; BuyPrice[i] = 0; }
if(SellDeals[i] > 0) { Sell[i] = 1; SellPrice[i] = SellDeals[i]; } else { Sell[i] = 0; SellPrice[0] = 0; } } PlotShapes(IIf(Buy,shapeUpArrow,0),colorGreen,0,BuyPrice,0); PlotShapes(IIf(Sell,shapeDownArrow,0),colorRed,0,SellPrice,0); 4.18. AMI_GetSellDealsAMI_GetSellDeals(sAccount, sClientCode, sClasscode, sSeccode, iStrategyId); Возвращает цены сделок на продажу для заданного инструмента и стратегии. Параметры sAccount – счет. sClientCode – код клиента. sClasscode – код площадки. sSeccode – код инструмента. iStrategyId – идентификатор стратегии. Пример использования BuyDeals = AMI_GetBuyDeals("acc","cl","class","secc",-1); SellDeals = AMI_GetSellDeals("acc","cl","class","secc",-1);
for(i = 0; i < BarCount; i++) { if(BuyDeals[i] > 0) { Buy[i] = 1; BuyPrice[i] = BuyDeals[i]; } else { Buy[i] = 0; BuyPrice[i] = 0; }
if(SellDeals[i] > 0) { Sell[i] = 1; SellPrice[i] = SellDeals[i]; } else { Sell[i] = 0; SellPrice[0] = 0; } } PlotShapes(IIf(Buy,shapeUpArrow,0),colorGreen,0,BuyPrice,0); PlotShapes(IIf(Sell,shapeDownArrow,0),colorRed,0,SellPrice,0);
5. Таблицы базы данныхТаблица Signals Сигналы торговых систем. Заполняется программой автоматически
Таблица Deals Сделки. Заполняется программой автоматически.
Таблица MetaDeals Аналитические сделки. Содержит информацию об аналитических сделках (аналитическая сделка представляет из себя совокупность простых сделок между нулевыми состояниями счета. Т.о. операции покупки 10 контрактов с последующей их продажей составляют одну аналитическую сделку, в то время как простых биржевых сделок для выполнения этой операции может быть несколько, минимум 2).
Таблица MetaDealDeals Вспомогательная таблица, содержит связи между простыми сделками и аналитическими.
Таблица Orders Заявки. Заполняется программой автоматически.
Таблица DelayedOrders Отложенные заявки. Заполняется программой автоматически.
Таблица PositionsFORTS Позиции FORTS. Необходимо настроить экспорт данных из QUIK (Торговля->Фьючерсы->Позиции по клиентским счетам).
Таблица PositionsMICEX Позиции ММВБ. Необходимо настроить экспорт данных из QUIK (Лимиты->Лимиты по бумагам).
Таблица MoneyFORTS Свободные деньги на FORTS. Необходимо настроить экспорт данных из QUIK (Торговля->Фьючерсы->Ограничения по клиентским счетам).
Таблица MoneyMICEX Свободные деньги на ММВБ. Необходимо настроить экспорт данных из QUIK (Лимиты->Клиентский портфель).
Таблица Accounts Счета
Таблица Strategy Стратегии
Таблица Limits Лимиты по бумагам
Таблица UseOtherLimits Содержит информацию по связанным лимитам
Таблица Quotes Содержит текущие цены по инструментам. В эту таблицу необходимо экспортировать текущую таблицу параметров
|