SmartCOM data Plug-in для AmiBroker

  • Автор темы klado.ru
  • Дата начала

klado.ru

New member
Предлагаем Вашему вниманию результат первого этапа работ над plug-in для AmiBroker.
SmartCOM data Plug-in осуществляет экспорт данных в AmiBroker из торговой системы ITinvest напрямую, без использования торговых терминалов (SmartTrade и др.).
SmartCOM data Plug-in - первый шаг по созданию plug-in, который, как мы надеемся, позволит с использованием связки it-trade (SmartCOM) - AmiBroker реализовать полнофункциональную торговую систему.
Но есть проблема. Мы располагаем разработчиками, которые досконально знают SmartCOM и готовы изучить API AmiBroker.
Однако, внутри компаниии мы не используем AmiBroker, и, соответственно, не имеем опыта его применения.
Поэтому нам нужна "внешняя трейдерская экспертиза", которую мы надеемся получить от Вас.
Просьба ко всем заинтересованным принять участие в тестировании SmartCOM data Plug-in и его дальнейшем развитии.
В прилагаемом архиве SmartCOM_data_Plug-in.zip - документация и сам Plug-in

Что хотелось бы получить на первом этапе работ:
1. Оттестированный SmartCOM data Plug-in, экспортирующий в AmiBroker максимально возможный объем информации.
В этом направлении мы ждем от Вас сообщений об обнаруженных ошибках и о том, каких данных не хватает для нормальной работы AmiBroker.
2. Состав задач на следующий этап.
Планируется, что на этом этапе будет решена задача передачи сформированных AmiBroker приказов в торговую систему ITinvest и задача обратной связи (экспорт в AmiBroker информации о ходе выполнения приказов).

В дальнейшем возможна реализация отображения в AmiBroker позиций клиента. Но это пока, как говорится, "дальняя перспектива"
Источник и там же можно плагин скачать и описание (что бы скачать наверно придется регистрироваться )
http://www.itinvest.ru/forum/index.php?showtopic=63382
 

klado.ru

New member
Позитиф для любителей Ami !

торговые возможности в data plug-in (beta)


Документация по AmiBroker trading (beta) загрузить | файл .zip, 12 Kb
Дистрибутив AmiBroker data plug-in (beta) загрузить | файл .zip, 4.52 Mb


Клиенты ITinvest получили возможность торговли через AmiBroker
11/01/2011

ITinvest представляет новый SmartCOM data Plug-in, позволяющий установить прямую взаимосвязь через API SmartCOM 2.0 корпоративной системы интернет-трейдинга и стремительно набирающей популярность программы технического анализа AmiBroker.

SmartCOM data Plug-in осуществляет экспорт в реальном времени данных о ходе торгов в AmiBroker, что позволяет использовать весь богатый аналитический функционал терминала, в том числе, строить, тестировать и оптимизировать собственные торговые стратегии на любых тайм-фреймах, начиная с секундных.

Дополнительными функциями, отличающими SmatrtCOM data Plug-in от других поставщиков информации, является трансляция открытого интереса для деривативов и направления сделок по всем поддерживаемым рынкам.

Инструкция по использованию торговых возможностей SmatrtCOM data Plug-in и примеры для языка AFL выложены на сайте отдельным файлом. Загрузить дистрибутив SmatrCOM data Plug-in и документацию по его установке и использованию можно в разделе «Загрузить ПО» корпоративного сайта ITinvest.

Для обсуждения нового приложения на Форуме Smart-трейдеров организована отдельная ветка.

Про торговые функции



Торговый Плагин для AmiBroker
Торговые функции для взаимодействия с торговой системой It-trade реализованы в виде COM интерфейса (CTradingProxy) и имплементированы в data плагине (smart-plugin.dll). Взаимодействие с интерфейсом происходит напрямую из встроенного в AmiBroker языка AFL. Поддержка COM технологии в AFL начинается с версии 3.7beta.
Поддерживаются следующие функции управления приказами:
1. Int PlaceOrder(string portfolio, string instrument, int operation, int type, int validity, double price, double amount, double stopPrice)
Процедура постановки приказа. В случае успешного завершения возвращает идентификатор приказа. Для манипулирования приказами через CTradingProxy используются только идентификаторы приказов, полученные в результате вызова PlaceOrder. Данные идентификаторы не имеют ничего общего как с биржевыми номерами приказов, так и с номерами приказов в торговой системе.
Внимание: Получение идентификатора приказа еще не означает того, что приказ вышел на биржу, это лишь означает что приказ передан в SmartCOM успешно. В силу архитектурных особенностей связки AmiBroker & SmartCOM2 мы не можем снять приказ или определить его судьбу в текущем контексте исполнения AFL скрипта, но можем сделать эти действия в другом контексте исполнения AFL. Так как реакция SmartCOM сервера на постановку/снятие приказа приходит асинхронно, она может быть получена только после передачи управления из AFL скрипта в цикл обработки сообщений AmiBroker-а. После этого можно получить состояние приказа функцией GetOrderStatus.

2. Int CancelOrder(int orderId)
Процедура снятия приказа. Случае успешного завершения возвращает 0. Коды ошибок представлены в примере ниже.
3. Int GetOrderStatus(int orderId)
Процедура получения статуса приказа. Все статусы описаны в примере.

Внимание: Перед использованием интерфейса CTradingProxy необходимо зарегистрировать сборку smart-plugin.dll в реестре. Для этого необходимо скопировать в папку с плагинами AmiBroker-а файл reg_plugin.bat (обновленный smart-plugin.dll должен уже лежать в этой папке) и выполнить его с правами администратора. При удачной регистрации будет выведено окно с надписью «DllRegisterServer завершено удачно».










1. Пример постановки приказа.
// Получаем ссылку на торговый COM интерфейс
myobj = CreateObject("SmartAmiTradePlugin.CTradingProxy");
OrderId = myobj.PlaceOrder( "BP0694-RF-01", // Портфель
"SBRF-12.10_FT", // Системный код инструмента (alias)
1, // Операция (1-Buy, 2-Sell)
2, // Тип (1-Market, 2-Limit, 3-Stop, 4-StopLimit)
1, // 1-Day, 2-GTC
10120.0, // Цена
1, // Количество
0.0 // Цена стоп
);

if( OrderId > 0 )
{
// Успешное завешение, получаем внутренний номер приказа
_TRACE("Order send successfully, OrderId: " + NumToStr(OrderId));
}
else if( OrderId == -1 )
{
// Ошибка отсылки приказа
_TRACE("Order send failed..");
}
else if ( OrderId == -50 )
{
// Внутренняя ошибка плагина, нет связи с серверным интерфейсом
_TRACE("SystemLevel error..");
}




2. Пример снятия приказа
// Получаем ссылку на торговый COM интерфейс
myobj = CreateObject("SmartAmiTradePlugin.CTradingProxy");
Result = myobj.CancelOrder( 4194305 /* order id */);
if( Result == 0 )
{
// Успешное завершение
_TRACE("Order canceled successfully");
}
else if( Result == -1 )
{
// Приказ закеширован, но снять его не удалось
_TRACE("Cancel failed..");
}
else if( Result == -2 )
{
// Приказ закеширован, но его системный код не определен (Возможно, еще не пришел ответ о его постановке)
_TRACE("Cancel failed..");
}
else if( Result == -3 )
{
// Приказ не кешировался, или уже снят
_TRACE("Cancel failed..");
}








3. Проверка статуса приказа
// Получаем ссылку на торговый COM интерфейс
myobj = CreateObject("SmartAmiTradePlugin.CTradingProxy");
Result = myobj.GetOrderStatus( 4194306);
if( Result == 0 )
{
// Ответ на отправку приказа еще не пришел
_TRACE("Order state unknown, np answer");
}
else if( Result == 1 )
{
// Приказ отправлен с торговую систему удачно
_TRACE("Order placed successfully into TS");
}
else if( Result == 2 )
{
// Приказ находится в пендинге
_TRACE("Order in pending");
}
else if( Result == 3 )
{
// Приказ выставлен на биржу
_TRACE("Order is open");
}
else if( Result == 4 )
{
// Приказ снят
_TRACE("Order is canceled");
}
else if( Result == 5 )
{
// Приказ исполнен
_TRACE("Order is filled");
}
else if( Result == 6 )
{
// Приказ отвергунут системой
_TRACE("Order rejected by system");
}
else if( Result == 7 )
{
// Приказ снят системой
_TRACE("Order canceled by system");
}
else if( Result == -2 )
{
// Приказ не найден
_TRACE("Order not finded");
}
 
Последнее редактирование:
Your email address will not be publicly visible. We will only use it to contact you to confirm your post.
Сверху