历史文档

【历史文档】常见问题-用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访问平台历史数据。

标签

API模拟交易持仓
评论
  • notebookid是点击某个模拟交易策略后,浏览器上可以查看。name就是账号。key是token。 ![{w:100}](/wiki/api/attachments.redirect?id=e500dffb-eb6b-44e5-9d19-74af8c0f2295)
  • notebook*id和uname分别对应什么啊?key是token对吗?*
  • 有前端js的例子吗?
  • function 取策略() { var url = ""; var pa = {"id_list": notebook*id*}; var x = http.post(url,pa,{"headers":{"Authorization":"Bearer key"}}); ``` //log(x.body.json()) return x.body.json() ``` }
{link}