账户与交易¶
设定实盘交易账户¶
如果需要对实盘账户进行策略使用,只需要先在天勤终端登录实盘账号,然后使用天勤自带的 VS Code IDE 创建TqApi示例即可. 需要注意:指定账号均为天勤终端登录账号,策略的所有交易行为,将指向当前天勤软件登录的交易账号 (实盘或模拟):
api = TqApi()
获取账户情况¶
TqApi 提供以下函数来获取交易账户相关信息:
get_account()
- 获取账户资金情况get_position()
- 获取持仓情况get_order()
- 获取委托单
以上函数返回的都是dict, 并会在 wait_update 时更新
交易指令¶
要在交易账户中发出一个委托单, 使用 insert_order()
函数:
order = api.insert_order(symbol="SHFE.rb1901", direction="BUY", offset="OPEN", limit_price=4310, volume=2)
这个函数调用后会立即返回一个指向此委托单的引用对象, 它是一个dict, 内容如下:
{
print(order)
"order_id": "", # "123" (委托单ID, 对于一个用户的所有委托单,这个ID都是不重复的)
"exchange_order_id": "", # "1928341" (交易所单号)
"exchange_id": "", # "SHFE" (交易所)
"instrument_id": "", # "rb1901" (交易所内的合约代码)
"direction": "", # "BUY" (下单方向, BUY=买, SELL=卖)
"offset": "", # "OPEN" (开平标志, OPEN=开仓, CLOSE=平仓, CLOSETODAY=平今)
"volume_orign": 0, # 10 (总报单手数)
"volume_left": 0, # 5 (未成交手数)
"limit_price": float("nan"), # 4500.0 (委托价格, 仅当 price_type = LIMIT 时有效)
"price_type": "", # "LIMIT" (价格类型, ANY=市价, LIMIT=限价)
"volume_condition": "", # "ANY" (手数条件, ANY=任何数量, MIN=最小数量, ALL=全部数量)
"time_condition": "", # "GFD" (时间条件, IOC=立即完成,否则撤销, GFS=本节有效, GFD=当日有效, GTC=撤销前有效, GFA=集合竞价有效)
"insert_date_time": 0, # 1501074872000000000 (下单时间(按北京时间),自unix epoch(1970-01-01 00:00:00 GMT)以来的纳秒数)
"status": "", # "ALIVE" (委托单状态, ALIVE=有效, FINISHED=已完)
"last_msg": "", # "报单成功" (委托单状态信息)
}
与其它所有数据一样, 委托单的信息也会在 api.wait_update() 时被自动更新:
order = api.insert_order(symbol="SHFE.rb1901", direction="BUY", offset="OPEN", limit_price=4310,volume=2)
while order.status != "FINISHED":
api.wait_update()
print("委托单状态: %s, 未成交手数: %d 手" % (order.status, order.volume_left))
要撤销一个委托单, 使用 cancel_order()
函数:
api.cancel_order(order)