日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python回测平台接口_Acqusta TQuant

發布時間:2024/1/1 python 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python回测平台接口_Acqusta TQuant 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

TradeApi是個抽象的接口,用戶需要從其他的接口中得到DataApi的實例。在不同的系統中,如回測平臺、策略平臺等,有不同的實現和創建方法,但是接口都會保持一致,方便用戶平滑切換系統。

如從TQuantApi中得到TradeApi實例:import tquant as tq

tqapi = tq.TQuantApi('ipc://tqc_10001')

dapi = tqapi.data_api()

tapi = tqapi.trade_api()

接口原型#class TradeApi:

def set_on_order_status(self, callback): pass

def set_on_order_trade(self, callback): pass

def set_on_account_status(self, callback): pass

def account_status(self): pass

def query_balance(self, account_id): pass

def query_trades(self, account_id): pass

def query_orders(self, account_id): pass

def query_positions(self, account_id): pass

def place_order(self, account_id, code, price, size, action, order_id=0): pass

def cancel_order(self, account_id, code, entrust_no="", order_id=0): pass

def query(self, account_id, command, params=""): pass

除了設置回調函數外,其他的函數都返回兩個值。

查詢交易帳號連接狀態#def account_status(self): pass

參數無

返回值accounts AccountInfo的數組

err_msg 錯誤原因,當 accounts is None時有意義。

該方法用于檢查交易帳號連接狀態,返回值是一個數組。

例子In [8]: accounts, msg = tapi.account_status()

In [9]: accounts

Out[9]:

[{'account': '123456',

'account_id': 'stk',

'account_type': '',

'broker': '證券公司',

'msg': '',

'status': 'Connected'}]

查詢資金#def query_balance(self, account_id): pass

參數account_id 帳號編號

返回值balance dict類型,字段參考《TradeApi概述》的Balance結構。

err_msg 錯誤原因,當 balance is None時有意義。

例子In [34]: bal, _ = tapi.query_balance('stk')

In [35]: bal

Out[35]:

{'account_id': 'stk',

'close_pnl': 0.0,

'enable_balance': 57588.93,

'float_pnl': 0.0,

'fund_account': '',

'init_balance': 0.0,

'margin': 0.0}

查詢持倉#def query_positions(self, account_id): pass

參數account_id 帳號編號

返回值positions DataFrame類型,字段參考《TradeApi概述》的Position結構。

err_msg 錯誤原因,當 positions is None時有意義。

例子In [37]: positions,_ = tapi.query_positions('stk')

In [38]: positions

Out[38]:

account_id close_pnl code commission cost cost_price \

0 stk 0.0 518880.SH 0.0 0.0 2.755

1 stk 0.0 600410.SH 0.0 0.0 10.458

2 stk 0.0 600900.SH 0.0 0.0 15.287

3 stk 0.0 601018.SH 0.0 0.0 5.454

4 stk 0.0 131990.SZ 0.0 0.0 0.000

5 stk 0.0 150210.SZ 0.0 0.0 0.762

current_size enable_size float_pnl frozen_size init_size last_price \

0 5100 5100 -129.19 0 0 2.730

1 1400 1400 -1717.57 0 0 9.230

2 900 900 631.95 0 0 15.990

3 2500 2500 -782.54 0 0 5.140

4 0 0 0.00 0 0 100.000

5 10000 10000 1490.50 0 0 0.911

margin name side today_size

0 0.0 黃金ETF Long 0

1 0.0 華勝天成 Long 0

2 0.0 長江電力 Long 0

3 0.0 寧波港 Long 0

4 0.0 標準券 Long 0

5 0.0 國企改B Long 0

查詢訂單#def query_orders(self, account_id): pass

參數account_id 帳號編號

返回值orders DataFrame類型,字段參考《TradeApi概述》的Order結構。

err_msg 錯誤原因,當 orders is None時有意義。

例子In [37]: orders,_ = tapi.query_orders('stk')

In [38]: orders

Out[38]:

查詢成交#def query_trades(self, account_id): pass

參數account_id 帳號編號

返回值trades DataFrame類型,字段參考《TradeApi概述》的Order結構。

err_msg 錯誤原因,當 trades is None時有意義。

例子In [37]: trades,_ = tapi.query_trades('stk')

In [38]: trades

Out[38]:

下單#def place_order(self, account_id, code, price, size, action, order_id=0): pass

參數account_id 字符串類型,帳號編號。

code 代碼,字符串類型,例子: 000001.SH。

price 委托價格,double類型,單位:元。

size 委托數量,32位或64位整數類型,單位:股。

action 委托動作,字符串,例子: "Buy"。

order_id 自定義訂單編號,32位整數。

返回值order_info dict類型,包括 entrust_no和order_id或者其中之一。

err_msg 錯誤原因,當 order_info is None時有意義。

同步下單接口

在股票交易接口中,提交訂單給柜臺后需要同步等待柜臺的處理結果,處理結果中包含委托編號,這是個同步過程,因此order_info中可以包含entrust_no。

異步下單接口

對于ctp這種異步的交易接口,發送訂單給柜臺后,無需同步等待,柜臺會通過異步消息告訴客戶端處理結果。異步消息中包含委托編號和訂單編號。請求和響應通過訂單編號關聯。TradeApi的異步過程和ctp的異步過程一樣。客戶端給tquant提交了下單請求后,會立即得到tquant自己的訂單編號(order_id)。然后在訂單狀態通知中通過order_id得到下單結果。

當參數order_id是0時,表示由tquant進行編號,否則由客戶端編號,此時客戶端需要自己保證訂單幫的唯一性。通常用戶不用自己進行編號。

撤單#def cancel_order(self, account_id, code, entrust_no="", order_id=0): pass

參數account_id 字符串類型,帳號編號,不為空。

code 代碼,字符串類型,不為空,例子: 000001.SH。

entrust_no 委托編號,字符串類型。

order_id 訂單編號,整數類型。

返回值result boolean類型,成功或者失敗。

err_msg 當 result is None 或者 == False時,包含錯誤原因。

可以通過order_id或者entrust_no來撤單。

例子

通用查詢接口#def query(self, account_id, command, params=""): pass

參數account_id 字符串類型,帳號編號,不為空。

command 字符串類型,查詢命令

params 字符串類型,查詢參數

返回值

result 字符串

err_msg 當 result is None時,包含錯誤原因。

通用查詢接口用于實現不能標準化的查詢指令。如查詢ctp交易接口中的代碼表。

例子txt, msg = tapi.query('simnow','ctp_codetable')

回調通知#def set_on_order_status(self, callback): pass

def set_on_order_trade(self, callback): pass

def set_on_account_status(self, callback): pass

TradeApi提供三個回調通知,訂單狀態、成交回報和交易帳號狀態變化通知。

三個回調函數的參數類型分別是 Order, Trade, 以及AccountStatus。字段定義見《TradeApi概述》。

例子:def on_order_status(order):

print "on_order", order

def on_order_trade(trade):

print "on_trade", trade

def on_account_status(account):

print "on_account", account

tapi.set_on_order_status (on_order_status)

tapi.set_on_order_trade (on_order_trade)

tapi.set_on_account_status (on_account_status)

總結

以上是生活随笔為你收集整理的python回测平台接口_Acqusta TQuant的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。