测试下单功能
2021-09-15 10:24:50 0 举报
AI智能生成
测试
作者其他创作
大纲/内容
操作指南
td
td路径
/root/axe/octopus/build/bin
启动命令
./trader
kungfu strategy
所在容器
axe23
策略py文件在宿主机上路径
/opt/data/strategy/test2/v1.1.1rc23_tdbybit/test.py
启动命令
docker exec -it axe23 /bin/bash<br>/opt/data/kungfu/kungfu/kungfu/core/build/kfc/kfc -H /opt/data/kungfu/test3 strategy -n risk_demo -p /opt/data/strategy/test.py<br>
1.设置好配置<br>2启动td<br>3在容器axe23里启动strategy
更改配置
td下单器配置
配置服务地址:/root/axe/gocode/test3.go
修改td下单器配置:
举例 :curl "http://127.0.0.1:10943/api/v1/change-exch-product?exch=7&&product=5&&api_key=f23682a356e0ffdf814c8e75599bdf291d1fae8d78f17537b640f7ae5b4195b7&&secret_key=02c20530bd9f700b825e5e4f22967f8febaa004aedf38a46ee73193c358c95c4"
可以修改exch(交易所)、product(产品类型)、api_key、secret_key
exch的枚举
enum Exch<br>{<br> ExchUnknown = 0;<br> ExchBitmex = 1;<br> ExchOkex = 2;<br> ExchBybit = 3;<br> ExchBitstamp = 4;<br> ExchCoinbasePro = 5;<br> ExchKraken = 6;<br> ExchBinance = 7;<br> ExchHuobiGlobal = 8;<br> ExchPhemex = 9;<br> ExchBybitCross = 10;<br> ExchFtx = 11;<br> ExchDeribit = 12;<br> ExchKucoin = 13;<br> ExchGateio = 14;<br> ExchHotbit = 15;<br> ExchMxc = 16;<br>}
product的枚举
enum product<br>{ProductUnknown = 0,<br>ProductSpot = 1,<br>ProductUSDTFuture = 2,<br>ProductCoinFuture = 3,<br>ProductUSDTSwap = 4,<br>ProductCoinSwap = 5,<br>ProductOption = 6}
目前支持的exch和product
binance(exch:7)
ProductUSDTSwap(4)
ProductCoinSwap(5)
ProductUSDTFuture(2)
ProductCoinFuture(3)
ProductSpot(1)
ftx(exch:11)
ProductCoinSwap(5)
ProductCoinFuture(3)
查询td下单器的配置
curl "http://127.0.0.1:10943/api/v1/open/stg-external"
策略配置
sid(内部交易symbol的id)
[<br> {<br> "sid": 10000,<br> "exch": 7,<br> "product": 4,<br> "symbol": "BTCUSDT",<br> "name": "binance_swap_BTCUSDT"<br> },<br> {<br> "sid": 10001,<br> "exch": 7,<br> "product": 5,<br> "symbol": "BTCUSD_PERP",<br> "name": "binance_swap_BTCUSD_PERP"<br> },<br> {<br> "sid": 10002,<br> "exch": 7,<br> "product": 2,<br> "symbol": "BTCUSDT_210924",<br> "name": "binance_future_BTCUSDT_210924"<br> },<br> {<br> "sid": 10003,<br> "exch": 7,<br> "product": 3,<br> "symbol": "BTCUSD_210924",<br> "name": "binance_future_BTCUSD_210924"<br> },<br> {<br> "sid": 10004,<br> "exch": 7,<br> "product": 1,<br> "symbol": "BTCUSDT",<br> "name": "binance_spot_BTCUSDT"<br> },<br> {<br> "sid": 10010,<br> "exch": 11,<br> "product": 5,<br> "symbol": "DOGE-PREP",<br> "name": "ftx_coinswap_DOGE_PREP"<br> },<br> {<br> "sid": 10010,<br> "exch": 11,<br> "product": 3,<br> "symbol": "DOGE-0924",<br> "name": "ftx_coinfuture_DOGE_0924"<br> }<br> ]
td下单器的配置需要和策略里的sid配置相匹配
下单
下单函数
context.ReqInsertOrder(acct,context.InsertOrder)
下单结构体
InsertOrder
struct InsertOrder<br> {<br> uint32_t logicAccountId_;//内部交易账号<br> uint32_t sid_;//内部symbolId<br> uint64_t clientOrderId_;//自定义委托单号 //algo_Id+connecttime+increaseid(algo_id+连接时间+自增ID)<br> double price_;//价格<br> double qty_;//数量<br> Side side_;//买卖方向<br> OrderType orderType_;//报单类型<br> Offset offset_;//开平方向<br> TimeInForce timeInForce_;//报单有效时间类型<br> }__attribute__((packed));
相关枚举
<br> //买卖方向<br> enum class Side : int8_t<br> {<br> //未知0<br> Unknown,<br> //买1<br> Buy,<br> //卖2<br> Sell<br> };
//报单类型<br> enum class OrderType : int8_t<br> {<br> //限价0<br> Limit,<br> //市价1<br> Market,<br> //限价止损2<br> StopLimit,<br> //市价止损3<br> StopMarket,<br> //限价止盈4 <br> TakeProfitLimit,<br> //市价止盈5<br> TakeProfitMarket<br> };
//开平方向<br> enum class Offset : int8_t<br> {<br> //未知0<br> Unknown,<br> //开仓1<br> Open,<br> //平仓2<br> Close<br> };
//报单有效时间类型<br> enum class TimeInForce : int8_t<br> {<br> //一直挂单直到成交0<br> GTC,<br> //立即成交或取消1<br> IOC,<br> //完全成交或取消2<br> FOK,<br> //只挂单3<br> PO<br> };
下单举例
context.InsertOrder.logicAccountId_=1;<br><br> <br>context.InsertOrder.sid_ = 10000<br><br>context.InsertOrder.qty_ = 0.001<br>context.InsertOrder.price_ = 35000<br><br><br>context.InsertOrder.side_ = Side.Buy<br>context.InsertOrder.offset_ = Offset.Open<br>context.InsertOrder.orderType_ = OrderType.Limit<br>context.InsertOrder.timeInForce_ =TimeInForce.GTC<br>context.InsertOrder.clientOrderId_ = 1<br><br> context.ReqInsertOrder(acct,context.InsertOrder)
回调函数
下单响应函数rsp_insert_order(event,RspInsertOrder)
下单响应结构体RspInsertOrder
struct RspInsertOrder<br> {<br> uint32_t sid_; //内部symbolId<br> char orderId_[36];//交易所报单号<br> uint64_t clientOrderId_;//自定义委托单号<br> OrderStatus orderStatus_;//报单状态<br> int64_t insertTsE9_;//下单时间的纳秒时间戳<br> int32_t insertOrderLimitCount_;//剩余可下单次数<br> uint16_t errCode_; //订单是否成功<br> }__attribute__((packed));
相关枚举
//报单状态<br> enum class OrderStatus : int8_t<br> {<br> //未知0<br> Unknown,<br> //等待报入1<br> PendingNew,<br> //等待撤单2<br> PendingCancel,<br> //已报入3<br> New,<br> //部分成交4<br> PartiallyFilled,<br> //全部成交5<br> Filled,<br> //已撤单6<br> Cancelled,<br> //已拒单7<br> Rejected,<br> //Trade Server内部拒单8<br> InternalRejected,<br> Error<br> };
报单变化和成交的推送函数on_order
报单(包含成交)的结构体Order
struct Order<br> {<br> uint32_t logicAccountId_;//内部交易账号<br> uint32_t sid_;//内部symbol_id<br> Side side_;//买卖方向<br> OrderStatus orderStatus_;//报单状态<br> OrderType orderType_;//报单类型<br> Offset offset_;//开平方向<br> TimeInForce timeInForce_;//报单有效时间类型<br> PositionSide positionSide_;//持仓方向<br> MarginMode marginMode_;//保证金模式<br> double orderPrice_;//价格<br> double originQty_;//委托量<br> double execPrice_;//最近成交价<br> double execQty_;//最近成交量<br> double fee_;//手续费<br> double cumExecQty_;//累计成交量<br> double avgExecPrice_;//平均成交价<br> char orderId_[36];//交易所委托单号<br> char tradeId_[36];//成交号<br> uint64_t clientOrderId_;//自定义委托单号<br> int64_t insertTsE9_;//下单时间的纳秒时间戳<br> int64_t updateTsE9_;//报单最近更新时间的纳秒时间戳<br> int64_t execTsE9_;//最近一次成交时间的纳秒时间戳<br> }__attribute__((packed));
下单场景
下单成功
回调rsp_insert_order
insert_order.errCode_为0
回调on_order
order.status_为New
下单失败
回调rsp_insert_order
insert_order.errCode不为0
成交
回调on_order
order.trade_id不为0
撤单
撤单函数
context.cancel_order(acct,context.CancelOrder)
撤单结构体
CancelOrder
//撤单<br> struct CancelOrder<br> {<br> uint32_t logicAccountId_;//内部交易账号<br> uint32_t sid_;//内部symbolId<br> char orderId_[36];//交易所报单号<br> uint64_t clientOrderId_;//algo自定义的报单号<br> }__attribute__((packed));
撤单举例
context.CancelOrder.sid_ = 10000<br><br><br><br>context.CancelOrder.logicAccountId_ = 1<br><br><br><br>context.CancelOrder.clientOrderId_ =1<br><br><br><br>context.CancelOrder.orderId_ = "1"<br><br><br><br>context.cancel_order(acct,context.CancelOrder)
回调函数
撤单响应函数rsp_cancel_order
撤单响应结构体RspCancelOrder
struct RspCancelOrder<br> {<br> uint32_t sid_;//内部symbol的ID<br> char orderId_[36];//交易所报单号<br> uint64_t clientOrderId_;//自定义委托单号<br> uint64_t errCode_;//error<br> }__attribute__((packed));
撤单场景
撤单成功
回调rsp_cancel_order
errCode_为0
回调on_order
status为canceled
撤单失败
回调rsp_cancel_order
errCode不为0
0 条评论
下一页