BigQuant使用文档

BigQuant终端本地SDK使用文档

由qxiao创建,最终由qxiao 被浏览 33 用户

本文件提供 BigQuant Python API 的使用说明,包括用户管理、策略运行、策略查询等功能。


前置代码(Python)

from bigquant.api import strategy, user, run

\

1 user 模块:用户管理


1.1 用户登录

函数:user.login(username=None, password=None, keypair=None, current_space=default)\n功能:用户名/密码或 AK/SK 登录。\n参数:

  • username: str,与 keypair 二选一,需与 password 一起使用
  • password: str,与 keypair 二选一,需与 username 一起使用
  • keypair: str,与 username+password 二选一,格式 <公钥>.<私钥>
  • current_space: str,非必填,工作空间 ID\n返回值:dict(包含用户信息,如用户ID、token 等)\n示例:
login_info = user.login(username='abc123', password='123456')
print(login_info)

login_info = user.login(
    keypair='abcdabcdabcd.abcdefg...',
    current_space='00000000-0000-0000-0000-000000000000'
)
print(login_info)


1.2 用户登出

函数:user.logout()\n功能:清除本地会话和登录凭证\n参数:无\n示例:

user.logout()



1.3 查询当前用户信息

函数:user.whoami()\n功能:获取当前用户信息\n返回值:dict(包含用户名、用户ID、工作空间等)\n示例:

current_user_info = user.whoami()
print(current_user_info)


\

2 run 模块:策略运行

2.1 远程运行脚本\n函数:run.execute(file_path, current_space=default)\n功能:将本地脚本提交到平台远程执行\n参数:

  • file_path: str,必填,.py 或 .ipynb 文件路径
  • current_space: str,非必填,工作空间 ID\n返回值:dict(包含运行任务信息,如 run_id)\n示例:
run_result = run.execute('tests/test.py')
print(run_result)

run_result_with_kernel = run.execute(file_path, strategy_id)
print(run_result_with_kernel)

运行示例(可直接复制运行)

from bigquant.api import user, strategy, run

# 登录(任选其一)
# 方式一:使用 AK/SK
keypair = input('请输入你的公钥.私钥:')
user.login(keypair=keypair)

# 方式二:使用用户名密码
# username = input("请输入用户名: ")
# password = input("请输入密码: ")
# user.login(username=username, password=password)

file_path = input('请输入要运行的.py文件或.ipynb文件的相对路径:')

# 运行一个Python脚本
res = run.execute(file_path)
print(res)

# 指定工作空间运行
res = run.execute(file_path, '00000000-0000-0000-0000-000000000000')
print(res)


\

3 strategy 模块:策略查询

3.1 获取策略列表\n函数:strategy.get_strategy(page=1, size=10)\n功能:分页获取策略列表\n参数:

  • page: int,非必填,页码
  • size: int,非必填,页容量\n返回值:dict(data 为策略列表,含分页信息)\n示例:
my_strategies = strategy.get_strategy()
print(my_strategies)

my_strategies_page2 = strategy.get_strategy(page=2, size=3)
print(my_strategies_page2)

运行示例(可直接复制运行)

from bigquant.api import user, strategy, run

# 登录(任选其一)

# 方式一:使用 AK/SK
keypair = input('请输入你的公钥.私钥:')
user.login(keypair=keypair)

# 方式二:使用用户名密码
# username = input("请输入用户名: ")
# password = input("请输入密码: ")
# user.login(username=username, password=password)

strategy_id = input('请输入策略id:')

# 获取策略列表(默认首页)
res = strategy.get_strategy()
print(res)

# 获取第二页,每页3条
res = strategy.get_strategy(page=2, size=3)
print(res)


3.2 获取持仓详情\n函数:strategy.get_position(strategy_id=None, account_id=None, page=1, size=10, df=False)\n功能:根据策略 ID 或账户 ID 获取持仓详情\n参数:

  • strategy_id: str,与 account_id 二选一
  • account_id: str,与 strategy_id 二选一
  • page: int,非必填
  • size: int,非必填
  • df: bool,非必填,是否返回 DataFrame\n返回值:
  • df=False:dict
  • df=True:pandas.DataFrame\n示例:
positions_json = strategy.get_position(strategy_id='abcd1234', page=2, size=5)
print(positions_json)

positions_df = strategy.get_position(strategy_id='abcd1234', df=True)
print(positions_df)

返回字段:

  • account_type: 账户类型
  • account_id: 账户ID
  • trading_day: 交易日
  • exchange: 交易所
  • instrument: 代码
  • name: 代码名称
  • posi_direction: 持仓方向(1=多头, 2=空头)
  • current_qty: 持仓数量
  • available_qty: 可用数量
  • today_qty: 今日持仓数量
  • today_available_qty: 今日可用数量
  • cost_price: 持仓成本价格
  • last_price: 持仓最新价
  • market_value: 持仓市值
  • margin: 保证金占用
  • position_pnl: 盈亏金额
  • hedge_flag: 投保标记(1=投机)
  • sum_buy_value: 累计买入金额
  • sum_sell_value: 累计卖出金额
  • commission: 累计交易费用
  • dividend_qty: 当日分红数量
  • dividend_cash: 当日分红金额
  • open_date: 开仓日期
  • open_price: 开仓价格
  • settlement_price: 结算价
  • profit_ratio: 盈亏比率
  • initial_qty: 日初持仓数量
  • hold_days

运行示例(可直接复制运行)

from bigquant.api import user, strategy, run

# 登录(任选其一)

# 方式一:使用 AK/SK
keypair = input('请输入你的公钥.私钥:')
user.login(keypair=keypair)

# 方式二:使用用户名密码
# username = input("请输入用户名: ")
# password = input("请输入密码: ")
# user.login(username=username, password=password)

strategy_id = input('请输入策略id:')

# 使用策略ID返回JSON格式
res = strategy.get_position(strategy_id=strategy_id)
print(res)

# 返回DataFrame格式
positions_df = strategy.get_position(strategy_id=strategy_id, df=True)
print(positions_df)



3.3 获取交易详情\n函数:strategy.get_order(strategy_id=None, account_id=None, daily_id=None, trading_day=None, page=1, size=10, df=False)\n功能:获取交易记录,可按策略ID、账户ID或实时策略ID查询

参数

  • strategy_id: str,与 account_id、daily_id 三者择一
  • account_id: str,与 strategy_id、daily_id 三者择一
  • daily_id: str,实时策略ID,与其他两者择一
  • trading_day: str,非必填,格式支持 yyyyMMdd 或 yyyy-MM-dd(实时策略)
  • page: int,非必填
  • size: int,非必填
  • df: bool,非必填,是否返回 DataFrame

返回值:dict 或 DataFrame

示例

orders_json = strategy.get_order(strategy_id=strategy_id)
print("策略ID查询结果(JSON格式):")
print(orders_json)

orders_page = strategy.get_order(strategy_id=strategy_id, page=1, size=5)
print("\n策略ID分页查询结果:")
print(orders_page)

orders_df = strategy.get_order(strategy_id=strategy_id, df=True)
print("\n策略ID查询结果(DataFrame格式):")
print(orders_df)

rt_orders_today = strategy.get_order(daily_id=daily_id)
print("\n实时策略今日交易查询结果:")
print(rt_orders_today)

rt_orders_on_day = strategy.get_order(daily_id=daily_id, trading_day='20250814')
print("\n实时策略指定日期交易查询结果:")
print(rt_orders_on_day)

realtime_orders_df = strategy.get_order(daily_id=daily_id, df=True)
print("\n实时策略查询结果(DataFrame格式):")
print(realtime_orders_df)

\n返回字段

  • strategy_id: 策略ID
  • account_type: 账户类型
  • account_id: 账户ID
  • trading_day: 交易日
  • exchange: 交易所
  • instrument: 代码
  • name: 代码名称
  • direction: 买卖方向(1=买入, 2=卖出)
  • offset_flag: 开平标志(0=开仓, 1=平仓, 2=平今)
  • order_qty: 委托数量
  • order_price: 委托价格
  • average_price: 成交均价
  • filled_qty: 成交数量
  • filled_dt: 最新成交时间
  • cancel_dt: 撤单时间
  • order_status: 委托状态(0=未成交, 1=部分成交, 2=全部成交, ...)
  • status_msg: 状态信息
  • order_type: 委托类型(0=限价, U=市价)
  • order_property: 委托属性
  • hedge_flag: 投保标记(1=投机)
  • order_dt: 委托时间
  • order_key: 本地订单标识
  • order_sysid: 交易所报单编号
  • entrust_no: 柜台委托编号
  • algo_order_id: 算法单号
  • commission: 交易费用
  • realized_pnl: 平仓盈亏

运行示例(可直接复制运行)

from bigquant.api import user, strategy, run

# 登录(任选其一)

# 方式一:使用 AK/SK
keypair = input('请输入你的公钥.私钥')
user.login(keypair=keypair)

# 方式二:使用用户名密码
# username = input("请输入用户名: ")
# password = input("请输入密码: ")
# user.login(username=username, password=password)

strategy_id = input('请输入普通策略id:')
daily_id = input('请输入实时策略id:')

res = strategy.get_order(strategy_id=strategy_id)
print(res)

orders_df = strategy.get_order(strategy_id=strategy_id, df=True)
print(orders_df)

res_today = strategy.get_order(daily_id=daily_id)
print("实时策略今日交易查询结果:")
print(res_today)

res_specific = strategy.get_order(daily_id=daily_id, trading_day='20250814')
print("\n实时策略指定日期交易查询结果:")
print(res_specific)

realtime_orders_df = strategy.get_order(daily_id=daily_id, df=True)
print("\n实时策略查询结果(DataFrame格式):")
print(realtime_orders_df)


3.4 获取计划交易详情\n函数:strategy.get_planned_order(strategy_id=None, account_id=None, trading_day=Today, page=1, size=10, df=False)\n功能:根据策略或账户ID获取指定交易日的计划交易

参数

  • strategy_id: str,与 account_id 二选一
  • account_id: str,与 strategy_id 二选一
  • trading_day: str,非必填,格式 yyyy-MM-dd,默认今天
  • page: int,非必填
  • size: int,非必填
  • df: bool,非必填,是否返回 DataFrame

返回值

  • df=False:dict(包含计划交易列表及分页信息)
  • df=True:DataFrame

示例

planned_orders_today = strategy.get_planned_order(strategy_id='abcd1234')
print("今日计划交易查询结果:")
print(planned_orders_today)

planned_orders_specific_day = strategy.get_planned_order(strategy_id='abcd1234', trading_day='2025-07-11', page=2, size=4)
print("\n指定日期计划交易查询结果:")
print(planned_orders_specific_day)

planned_orders_df = strategy.get_planned_order(strategy_id='abcd1234', df=True)
print("\n计划交易查询结果(DataFrame格式):")
print(planned_orders_df)

\n返回字段:

  • planned_order_id: 计划订单ID
  • strategy_id: 策略ID
  • account_type: 账户类型
  • account_id: 账户ID
  • trading_day: 交易日
  • order_dt: 待下单时间
  • exchange: 交易所
  • instrument: 代码
  • name: 代码名称
  • direction: 买卖方向(1=买入, 2=卖出)
  • offset_flag: 开平标志(0=开仓, 1=平仓, 2=平今)
  • original_order_qty: 原始委托数量
  • order_qty: 委托数量
  • order_price: 委托价格
  • order_type: 委托类型(0=限价, U=市价)
  • order_status: 委托状态(0=未成交, 1=部分成交, 2=全部成交, ...)
  • status_msg: 状态描述
  • order_params: 下单条件参数
  • order_placed_dt: 实际发单时间
  • order_key: 本地订单标识
  • entrust_no: 委托号
  • algo_order_id: 算法单号
  • stop_loss_price: 止损价格
  • stop_profit_price: 止盈价格
  • created_at: 创建时间

运行示例(可直接复制运行)

from bigquant.api import user, strategy, run

# 登录(任选其一)

# 方式一:使用 AK/SK
keypair = input('请输入你的公钥.私钥:')
user.login(keypair=keypair)

# 方式二:使用用户名密码
# username = input("请输入用户名: ")
# password = input("请输入密码: ")
# user.login(username=username, password=password)

strategy_id = input('请输入策略id:')


res_today = strategy.get_planned_order(strategy_id=strategy_id)
res_specific = strategy.get_planned_order(strategy_id=strategy_id, trading_day='2025-07-11', page=1, size=4)
planned_orders_df = strategy.get_planned_order(strategy_id=strategy_id, df=True)

print(res_today, res_specific, planned_orders_df)



3.5 获取策略绩效数据\n函数:strategy.get_performance(strategy_id)\n功能:获取策略绩效指标

参数

  • strategy_id: str,必填

返回值:dict

示例

perf = strategy.get_performance(strategy_id='abcd1234')
print(perf)

返回字段

  • strategy_id: 策略ID
  • account_type: 账户类型
  • account_id: 账户ID
  • trading_day: 交易日
  • trading_day_index: 累计交易日
  • performance_type: 绩效类型
  • today_return: 当日收益率
  • cumulative_return: 累计收益率
  • annualized_return: 年化收益率
  • max_drawdown: 最大回撤
  • total_market_value: 持仓市值
  • total_margin: 保证金占用
  • balance: 当前现金
  • portfolio_value: 总资产
  • max_portfolio_value: 最大资产
  • benchmark: 基准数据
  • risk_indicator: 风险指标
  • today_sum_buy_value: 今日总买入金额
  • today_sum_sell_value: 今日总卖出金额
  • today_commission: 今日交易费用
  • total_buy_value: 累计买入金额
  • total_sell_value: 累计卖出金额
  • total_commission: 累计交易费用
  • grade: 策略分数
  • ten_day_return: 近十日收益率
  • week_return: 近一周收益率
  • month_return: 近一月收益率
  • three_month_return: 近三月收益率
  • six_month_return: 近六月收益率
  • year_return: 近一年收益率
  • total_close_count: 累计平仓次数
  • total_profit_count: 累计盈利次数
  • total_profit_value: 累计盈利金额
  • total_loss_value: 累计亏损金额
  • pnl_ratio: 盈亏比率
  • win_percent: 胜率
  • premium: 权利金收支
  • today_realized_pnl: 当日平仓盈亏

运行示例(可直接复制运行)

from bigquant.api import user, strategy, run

# 登录(任选其一)

# 方式一:使用 AK/SK
keypair = input('请输入你的公钥.私钥:')
user.login(keypair=keypair)

# 方式二:使用用户名密码
# username = input("请输入用户名: ")
# password = input("请输入密码: ")
# user.login(username=username, password=password)

strategy_id = input('请输入策略id:')

res = strategy.get_performance(strategy_id=strategy_id)
print(res)


3.6 获取实时成交详情(实时策略)

函数:strategy.get_success(daily_id, trading_day=None, df=False)\n功能:根据实时策略ID查询成交明细,可指定交易日

参数

  • daily_id: str,必填
  • trading_day: str,非必填,格式支持 yyyyMMdd 或 yyyy-MM-dd
  • df: bool,非必填,是否返回 DataFrame

返回值:dict 或 DataFrame

示例

rt_trades_today = strategy.get_success(daily_id=daily_id)
print("实时策略今日成交查询结果:")
print(rt_trades_today)

rt_trades_on_day = strategy.get_success(daily_id=daily_id, trading_day='2025-08-14')
print("\n实时策略指定日期成交查询结果:")
print(rt_trades_on_day)

rt_trades_df = strategy.get_success(daily_id=daily_id, df=True)
print("\n实时策略成交查询结果(DataFrame格式):")
print(rt_trades_df)

返回字段:

  • strategy_id:策略ID
  • account_type:账户类型
  • account_id:账户ID
  • trading_day:交易日
  • exchange:交易所
  • instrument:代码
  • name:代码名称
  • direction:买卖方向(1表示买入,2表示卖出)
  • offset_flag:开平标志(0表示开仓,1表示平仓,2表示平今)
  • filled_qty:成交数量
  • filled_price:成交价格
  • filled_money:成交金额
  • trade_type:成交类型
  • hedge_flag:投保标记
  • trade_dt:成交时间
  • trade_id:成交编号
  • order_key:本地订单标识
  • order_sysid:交易所报单编号
  • entrust_no:柜台委托编号
  • algo_order_id:算法单(母单)号
  • commission:交易费用
  • realized_pnl:平仓盈亏

运行示例(可直接复制运行)

from bigquant.api import user, strategy, run

# 登录(任选其一)

# 方式一:使用 AK/SK
keypair = input('请输入你的公钥.私钥:')
user.login(keypair=keypair)

# 方式二:使用用户名密码
# username = input("请输入用户名: ")
# password = input("请输入密码: ")
# user.login(username=username, password=password)


daily_id = input('请输入实时策略id:')

res_today = strategy.get_success(daily_id=daily_id)
res_specific = strategy.get_success(daily_id=daily_id, trading_day='2025-08-14')
res_df = strategy.get_success(daily_id=daily_id, df=True)

print(res_today, res_specific, res_df)


3.7 查看实时策略运行日志(实时策略)

函数:strategy.get_log(daily_id, df=False)\n功能:根据实时策略ID查询成交明细,可指定交易日

参数

  • daily_id: str,必填
  • df: bool,非必填,是否返回 DataFrame

返回值:dict

示例

    # 使用实时策略ID查询日志流,用Ctrl+C退出后,返回DataFrame格式的历史日志
    res = strategy.get_log(daily_id=daily_id)
    print(res)

    # 使用实时策略ID查询日志流,用Ctrl+C退出后,返回DataFrame格式的历史日志
    logs_df = strategy.get_log(daily_id=daily_id, df=True)
    print(logs_df)

运行示例(可直接复制运行)

from bigquant.api import user, strategy, run

# 登录(任选其一)

# 方式一:使用 AK/SK
keypair = input('请输入你的公钥.私钥:')
user.login(keypair=keypair)

# 方式二:使用用户名密码
# username = input("请输入用户名: ")
# password = input("请输入密码: ")
# user.login(username=username, password=password)

daily_id = input('请输入实时策略id:')

# 查看实时策略的日志(流式输出,按Ctrl+C结束)
res = strategy.get_log(daily_id=daily_id)
print(res)

# 查看实时策略的日志(流式输出,按Ctrl+C结束),并在结束后自动按dataFrame格式打印历史日志
# logs_df = strategy.get_log(daily_id=daily_id, df=True)
# print(logs_df)



bigquant-0.1.0.post99+gd128200-py3-none-any.whl 62650

\

{link}