【历史文档】常见问题-用API获取模拟交易持仓数据
由clearyf创建,最终由small_q 被浏览 1157 用户
更新
本文内容对应旧版平台与旧版资源,其内容不再适合最新版平台,请查看新版平台的使用说明
新版量化开发IDE(AIStudio):
https://bigquant.com/wiki/doc/aistudio-aiide-NzAjgKapzW
新版模版策略:
https://bigquant.com/wiki/doc/demos-ecdRvuM1TU
新版数据平台:
https://bigquant.com/data/home
https://bigquant.com/wiki/doc/dai-PLSbc1SbZX
新版表达式算子:
https://bigquant.com/wiki/doc/dai-sql-Rceb2JQBdS
新版因子平台:
https://bigquant.com/wiki/doc/bigalpha-EOVmVtJMS5
导语
本文讲解如何在本地通过python代码获取自己/订阅的模拟交易运行结果。
BigQuant API Token
API key 是BigQuant平台每位用户模拟交易接口的唯一标识,如下图所示可以在主页点击进入"模拟交易API"页面,
可以找到属于自己账号的API Token
获取计划交易
将自己账号的API Token填入下面的代码中,并在本地运行代码就可以获取交易记录。
代码示例
import requests
import json
def request_plan_order(notebook_id, key):
url = 'https://bigquant.com/bigwebapi/algo_info/planned_orders'
headers = {'Authorization': 'Bearer {}'.format(key.strip().replace("\n", ""))}
data = {
'id_list': notebook_id
}
r = requests.post(url=url, data=data, headers=headers)
res_dict = json.loads(r.text)
return res_dict
key = 'xxxx'
print(request_plan_order('xxx- notebook_id1 -xxx;xxx- notebook_id2 -xxx',key))
获取持仓记录
代码示例
import requests
import json
def request_position_by_api_key(uname, key,notebook_id):
position_url = 'https://www.bigquant.com/bigwebapi/algo_info/position'
r = requests.get(url=position_url, params={
'api_key': key,
'notebook_id': notebook_id,
})
return json.loads(r.text)
key = 'xxxxx'
print(request_position_by_api_key('xx usename xx', key, 'xxx- notebook_id -xxx'))
获取交易记录
代码示例
import requests
import json
def request_sold_transaction_by_api_key(uname, key,notebook_id):
sold_transaction_url = 'https://www.bigquant.com/bigwebapi/algo_info/sold_transaction'
r = requests.get(url=sold_transaction_url, params={
'api_key': key,
'notebook_id': notebook_id,
})
return json.loads(r.text)
key = 'xxxxx'
print(request_sold_transaction_by_api_key('xx usename xx', key, 'xxx- notebook_id -xxx'))
获取绩效数据
代码示例
import requests
import json
def request_position_by_api_key(uname, key,notebook_id):
position_url = 'https://bigquant.com/bigwebapi/algo_info/plot_return'
r = requests.get(url=position_url, params={
'owner': uname,
'api_key': key,
'notebook_id': notebook_id,
})
return json.loads(r.text)
key = 'xxxxx'
print(request_position_by_api_key('xx usename xx', key, 'xxx- notebook_id -xxx'))
API Token的重要性
切记保管好自己的API Token,平台通过API Token实施权限管理,同时平台开发的期货实盘工具也是通过API Token访问平台历史数据。