API XTB

XTB

 

支持的 API

 

属性

WebSocket 协议允许两种请求类型:流式命令(接收实时更新)和检索交易数据(向服务器发送请求以检索某些信息)。

 

您可以在 XTB 属性中配置以下属性。

 

连接

当客户端成功连接到 XTB 服务器时,事件 OnXTBConnect 将被触发。如果连接过程中发生任何错误,事件 OnXTBError 将携带错误详情被触发。

事件 OnXTBConnect 触发后,您即可开始从 XTB 服务器发送接收消息

 


oClient := TsgcWebSocketClient.Create(nil);
oXTB := TsgcWSAPI_XTB.Create(nil);
oXTB.Client := oClient;
oXTB.XTB.User := 'user_0001';
oXTB.XTB.Password := 'secret_0001';
oClient.Active := True;
procedure OnXTBConnect(Sender: TObject; const aStreamSessionId: string);
begin
  DoLog('#XTB Connected');
end;
procedure OnXTBError(Sender: TObject; aCode, aDescription, aRawMessage: string);
begin
  DoLog('#error: ' + aDescription);
end;

 

连接命令

 

方法 描述
登录 客户端应用程序必须先完成登录流程才能执行任何操作。在正确完成登录流程之前,任何功能均不可用。当客户端连接到 WebSocket 服务器且已设置 User/Password 值时,登录方法将自动调用。
注销  

 

 

流式命令

您可以订阅以下频道:

 

方法 描述
SubscribeBalance 允许实时获取账户指标的实际值,在系统中一有更新即可获取。
SubscribeCandles 订阅和取消订阅 API 图表 K 线。每根 K 线的时间间隔为 1 分钟,每分钟推送一根新 K 线。
SubscribeKeepAlive 订阅和取消订阅"保活"消息。API 每 3 秒发送一次新的"保活"消息。
SubscribeNews 订阅或取消订阅新闻。
SubscribeProfits 订阅和取消订阅盈亏数据。
SubscribeTickPrices

建立报价订阅,并允许您在系统中一有相关信息即可实时获取。getTickPrices 命令可对同一交易对多次调用,但对于给定交易对只会创建一个订阅。请注意,当有多条记录可用时,不保证接收顺序。

SubscribeTrades 建立用户交易状态数据的订阅,允许您实时获取系统中可用的相关信息。请注意,当有多条记录可用时,接收顺序无法保证。
SubscribeTradeStatus 允许实时获取已发送交易请求的状态(一旦系统中有状态即推送)。请注意,当有多条记录时,接收顺序不保证。
SubscribePing 定期调用此函数足以刷新系统中所有组件的内部状态。流连接在会话中没有任何命令由客户端发送时,只会产生单向网络流量。建议任何不执行其他命令的应用程序至少每 10 分钟调用一次此命令。

 

 

检索交易数据

您可以发送以下请求:

 

方法 描述
GetAllSymbols 返回用户可用的所有交易对数组。
GetCalendar 返回包含市场事件的日历。
GetChartLastRequest 请注意,此函数通常可以被其流式等效函数 getCandles 替代,后者是检索当前蜡烛图数据的首选方式。返回从开始日期到当前时间的图表信息。如果所选 CHART_LAST_INFO_RECORD 的周期大于 1 分钟,API 返回的最后一根蜡烛图可能在周期结束前持续变化(蜡烛图每分钟自动更新一次)。
GetChartRangeRequest 请注意,此函数通常可以替换为其流式等效项 getCandles,这是检索当前 K 线数据的首选方式。返回给定开始日期和结束日期之间的图表信息和数据。
GetCommissionDef 返回佣金和汇率计算结果。该值为预期值,因此可能并非完全精确。
GetCurrentUserData

返回有关账户货币和账户杠杆的信息。

GetIbsHistory

返回给定时间范围内的 IB 数据。
GetMarginLevel 请注意,此函数通常可以由其流式等效版本 getBalance 替代,后者是获取账户指标的首选方式。返回各种账户指标。
GetMarginTrade 返回给定金融工具和交易量的预期保证金。该值以预期保证金计算,因此可能不完全准确。
GetNews 请注意,此函数通常可以被其流式等效函数 getNews 替代,后者是检索新闻数据的首选方式。返回交易服务器在指定时间段内发送的新闻。
GetProfitCalculation 根据给定的交易数据计算预估收益。该方法仅适用于类计算器应用程序。已开仓交易的收益应从服务器获取,因为服务器的计算精度更高。
GetServerTime 返回交易服务器的当前时间
GetStepRules 返回 DMA 的步长规则列表
GetSymbol 返回用户可用的交易对信息
GetTickPrices 请注意,此函数通常可以由其流式传输等价物 getTickPrices 替代,这是检索报价数据的首选方式。返回给定交易对的当前报价数组,仅返回自给定时间戳以来发生变化的报价。从输出中获得的新时间戳将用作下一次调用此命令的参数。
GetTradeRecords 返回 orders 参数中列出的订单的交易数组
GetTrades 请注意,此函数通常可被其流式等效方法 getTrades 替代,后者是检索交易数据的首选方式。返回用户的交易数组。
GetTradesHistory 请注意,此函数通常可被其流式等效函数 getTrades 替代,后者是检索交易数据的首选方式。返回在指定时间段内已平仓的用户交易数组。
GetTradingHours 返回报价和交易时间。
GetVersion 返回当前 API 版本。
Ping 定期调用此函数足以刷新系统中所有组件的内部状态。建议任何不执行其他命令的应用程序至少每 10 分钟调用一次此命令。请注意,此函数的流式对应物是 ping 和 getKeepAlive 的组合
TradeTransaction 启动交易事务。tradeTransaction 将主要交易信息发送到服务器。
TradeTransactionStatus 请注意,此函数通常可以由其流式传输等价物 getTradeStatus 替代,这是检索交易状态数据的首选方式。返回当前交易状态。在交易处理的任何时候,客户端都可以检查服务器端的交易状态。为此,客户端必须提供从 tradeTransaction 调用中获取的唯一订单号。