AutoTrade Pro API служит для взаимодействия внешних систем технического анализа (ТА) с программой AutoTrade Pro и представляет собой библиотеку (ETAPI.dll) со следующими экспортируемыми функциями:
bool et_sendmp(LPSTR SymbolName, LPSTR Id_Strategy, LPSTR WorkSpace, int MarketPosition, int OldMarketPosition, double DateTime, double FillPrice, int Destination);
bool zmq_sendmp(LPSTR ServerIP, LPSTR SymbolName, LPSTR Id_Strategy, LPSTR WorkSpace, int MarketPosition, int OldMarketPosition, double DateTime, double FillPrice);
int IsFutLastDay(LPSTR SymbolName, double DateTime, int DaysBefore);
Параметры функций #
SymbolName – тикер инструмента;
Id_Strategy – имя стратегии;
WorkSpace – имя рабочей области;
ServerIP – адрес сервера в формате “tcp://hostip:port”;
MarketPosition – текущая рыночная позиция;
OldMarketPosition – предыдущая рыночная позиция;
DateTime – время;
FillPrice – цена;
Destination – место назначения (0 – EasyTrade, 1 – AutoTrade);
DaysBefore – количество дней до экспирации (фьючерса).
Применение #
et_sendmp позволяет отправлять сигналы из систем ТА в программу AutoTrade Pro только на локальном рабочем месте.
zmq_sendmp позволяет отправлять сигналы из систем ТА в программу AutoTrade Pro расположенную на локальном или сетевом рабочем месте по средством протокола TCP/IP.
В случае успешного выполнения функции возвращают true, в противном случае false.
IsFutLastDay позволяет определить является ли запрашиваемая дата, датой экспирации фьючерса. Параметр DaysBefore служит для указания количества дней до экспирации (смещение), для вывода результата с учетом указанного смещения (параметр указывается со знаком “-“, т.е. например “-2” означает два дня до экспирации). Функция может возвращать следующие значения: “0” – нет, “1” – да, “-1” – не определен.
Для использования следует подключить в своем проекте требуемую экспортируемую функцию.
Примеры #
Ниже приведены примеры на языке EasyLanguage.
inputs: id_strategy("STR1"), workspace("q"), srvip("tcp://localhost:5555");
var: fillprice(0);
vars: recalcpersist mp(0);
vars: recalcpersist oldmp(0);EXTERNAL: "C:\AutoTrade\ETAPI\ETAPI.dll", bool, "et_sendmp", LPSTR, LPSTR, LPSTR, int, int, double, double, int;
EXTERNAL: "C:\AutoTrade\ETAPI\ETAPI.dll", bool, "zmq_sendmp", LPSTR, LPSTR, LPSTR, LPSTR, int, int, double, double;
mp = marketposition;
if LastBarOnChart and mp <> oldmp then begin
if mp = 0 then fillprice = exitprice(1) else fillprice = entryprice;
if getappinfo(aiRealTimeCalc) = 1 then
et_sendmp(symbolname, id_strategy, workspace, mp , oldmp, datetime , fillprice, 1);
//zmq_sendmp(srvip, symbolname, id_strategy, workspace, cc, oldcc, datetime, fillprice);
oldmp = mp;
end;
EXTERNAL: "C:\AutoTrade\ETAPI\ETAPI.dll", int, "IsFutLastDay", LPSTR, double, int;
var: b(0);
if d > d[1] then begin
b = IsFutLastDay(symbolname, datetime, -2);
if b = 1 then print(d, t, " b: ", 1);
end;