Install
openclaw skills install @li152/xg-qmt小果全能大QMT量化交易助手 - 专业级QMT策略开发全能助手 本助手是专为「迅投QMT极速策略交易系统」打造的量化交易策略开发专家。由小果(微信:xg_quant)精心打造,深度封装了QMT平台的全部API接口、运行机制、数据结构和实战经验,能够根据用户的自然语言描述,自动生成从基础到高级、从回测到实盘的完整量化交易策略代码。 【核心功能矩阵】 ✅ 策略开发:根据需求描述自动生成QMT策略代码,支持股票/期货/期权/ETF/可转债/两融等多品种 ✅ 策略回测:生成完整的回测模型代码,包含历史数据获取、撮合规则、绩效分析 ✅ 实盘交易:生成实盘模型代码,支持逐K线生效和立即下单两种模式 ✅
openclaw skills install @li152/xg-qmtQMT(极速策略交易系统)是迅投科技推出的专业量化交易平台,内置Python 3.6运行环境,提供行情数据获取与交易下单两大核心功能。
| 机制类型 | 函数/方法 | 触发方式 | 适用场景 |
|---|---|---|---|
| 逐K线驱动 | handlebar | 历史K线逐根回放;盘中每个tick触发 | 传统趋势策略,需要回测验证 |
| 事件驱动 | subscribe_quote | 订阅品种新分笔到达时触发 | 盘中实时监控,高频交易 |
| 定时任务 | run_time/schedule_run | 固定时间间隔触发 | 轮询监控,固定频率执行 |
#coding:gbk # 【必须】代码第一行,否则中文报错
# 【必须】缩进统一使用4个空格或Tab
# 【必须】必须定义 init 和 handlebar 函数
# 【禁止】使用 time.sleep()、死循环等阻塞操作
# 【禁止】在 ContextInfo 对象上存储状态
# 【推荐】使用全局类实例 g = G() 存储状态
1.4 回测与实盘核心差异
维度 回测模式 实盘模式
数据来源 本地历史数据 (subscribe=False) 实时订阅数据 (subscribe=True)
撮合规则 价格在K线高低点内按指定价,否则按收盘价 交易所实际规则:价格笼子、T+1、数量限制
成交确认 立即按规则撮合 等待交易所回报,异步处理
状态保存 每次handlebar调用自动保存 K线结束时的信号才生效,需用全局变量
策略模板
#coding:gbk
"""
策略名称: {策略名称}
策略描述: {策略描述}
作者: 小果
微信: xg_quant
创建日期: {日期}
运行模式: 回测/实盘
"""
# ==================== 导入依赖库 ====================
import pandas as pd
import numpy as np
import talib
import datetime
import time
import json
import os
import math
import random
from collections import defaultdict
# ==================== 全局变量定义 ====================
class G():
"""
全局状态存储类
注意:QMT的ContextInfo对象有逐K线回滚机制,不能直接在上面存属性
所有策略状态必须使用全局类实例存储
"""
pass
g = G() # 实例化全局变量
# ==================== 必须函数1: init ====================
def init(ContextInfo):
"""
【必须定义】策略初始化函数,策略启动时仅执行一次
参数:
ContextInfo: QMT上下文对象,包含K线信息和系统接口
功能说明:
1. 初始化策略参数和变量
2. 设置交易标的和资金账号
3. 订阅行情数据(如需)
4. 注册定时任务(如需)
5. 设置回测起止时间(回测模式)
6. 设置回测初始资金(回测模式)
7. 设置股票池和板块
8. 初始化状态变量
注意事项:
- init执行完成前部分接口无法使用(如get_trading_dates)
- 非VIP用户订阅数量有限制(通常300个)
- 可使用ContextInfo.start/end设置回测区间
- 可使用ContextInfo.capital设置初始资金
"""
# -------- 1. 设置交易标的 --------
g.stock = ContextInfo.stockcode + '.' + ContextInfo.market
g.stock_name = ContextInfo.get_stock_name(g.stock)
# -------- 2. 设置策略参数 --------
g.fast_line = 10 # 快线周期
g.slow_line = 20 # 慢线周期
g.trade_amount = 10000 # 每次交易金额
g.stop_loss = -0.05 # 止损比例
g.take_profit = 0.10 # 止盈比例
# -------- 3. 设置资金账号 --------
if ContextInfo.do_back_test:
g.accountid = "testS" # 回测账号
else:
g.accountid = account # 实盘账号(模型交易界面自动传入)
g.account_type = accountType
# -------- 4. 设置回测参数 --------
if ContextInfo.do_back_test:
ContextInfo.start = "2020-01-01 00:00:00"
ContextInfo.end = "2023-12-31 00:00:00"
ContextInfo.capital = 1000000
# -------- 5. 初始化状态变量 --------
g.position = 0 # 当前持仓数量
g.avg_price = 0 # 持仓均价
g.trade_count = 0 # 交易次数
g.waiting_list = [] # 待确认委托列表
g.order_ref = {} # 委托记录
print(f"策略初始化完成,交易标的: {g.stock} {g.stock_name}")
# ==================== 必须函数2: handlebar ====================
def handlebar(ContextInfo):
"""
【必须定义】核心行情处理函数
调用时机:
- 回测模式:历史K线从左向右逐根调用
- 实盘模式:每个新tick(约3秒)触发调用
功能说明:
1. 获取行情数据
2. 计算技术指标
3. 判断交易信号
4. 执行下单操作
5. 更新策略状态
"""
# -------- 1. 跳过实盘历史K线 --------
if not ContextInfo.do_back_test and not ContextInfo.is_last_bar():
return
# -------- 2. 获取当前K线信息 --------
bar_date = timetag_to_datetime(
ContextInfo.get_bar_timetag(ContextInfo.barpos),
'%Y%m%d%H%M%S'
)
# -------- 3. 获取行情数据 --------
data = ContextInfo.get_market_data_ex(
fields=['open', 'high', 'low', 'close'],
stock_list=[g.stock],
period=ContextInfo.period,
count=max(g.fast_line, g.slow_line) + 10,
dividend_type='front_ratio',
fill_data=True,
subscribe=not ContextInfo.do_back_test
)
if g.stock not in data or len(data[g.stock]) < max(g.fast_line, g.slow_line):
return
close_prices = data[g.stock]['close'].values
current_price = close_prices[-1]
# -------- 4. 计算技术指标 --------
fast_ma = np.mean(close_prices[-g.fast_line:])
slow_ma = np.mean(close_prices[-g.slow_line:])
# -------- 5. 获取账户与持仓信息 --------
account_info = get_trade_detail_data(g.accountid, 'stock', 'account')
if not account_info:
return
available_cash = account_info[0].m_dAvailable
positions = get_trade_detail_data(g.accountid, 'stock', 'position')
pos_dict = {p.m_strInstrumentID + '.' + p.m_strExchangeID: p.m_nVolume for p in positions}
g.position = pos_dict.get(g.stock, 0)
# -------- 6. 交易信号判断 --------
signal = None
if g.position == 0 and fast_ma > slow_ma:
signal = 'buy'
elif g.position > 0 and fast_ma < slow_ma:
signal = 'sell'
# -------- 7. 执行交易 --------
if signal == 'buy':
vol = int(g.trade_amount / current_price / 100) * 100
if vol > 0 and available_cash > g.trade_amount:
msg = f"{bar_date} 买入 {vol}股"
passorder(23, 1101, g.accountid, g.stock, 5, current_price, vol,
'小果策略', 2 if not ContextInfo.do_back_test else 0, msg, ContextInfo)
g.waiting_list.append(msg)
g.trade_count += 1
elif signal == 'sell' and g.position > 0:
msg = f"{bar_date} 卖出 {g.position}股"
passorder(24, 1101, g.accountid, g.stock, 5, current_price, g.position,
'小果策略', 2 if not ContextInfo.do_back_test else 0, msg, ContextInfo)
g.waiting_list.append(msg)
g.trade_count += 1
# ==================== 可选函数1: after_init ====================
def after_init(ContextInfo):
"""
【可选定义】后初始化函数,在init完成后、handlebar前执行一次
用于执行一次性操作、立即下单(需quickTrade=2)
"""
# 可在此执行立即下单
# passorder(23, 1101, g.accountid, g.stock, 5, -1, 100, '开盘买入', 2, '', ContextInfo)
pass
# ==================== 可选函数2: stop ====================
def stop(ContextInfo):
"""
【可选定义】策略停止函数,策略被停止时调用
注意:stop被调用时交易连接已断开,不能下单
"""
print(f"策略停止,共交易{g.trade_count}次")
############################
函数名 必须 调用时机 功能说明 参数 注意事项
init(ContextInfo) ✅ 策略启动时执行一次 初始化策略参数、订阅行情、注册定时器、设置回测参数 ContextInfo 部分接口在init中不可用
handlebar(ContextInfo) ✅ 历史K线逐根调用;实盘每个tick调用 核心策略逻辑:获取数据→计算指标→判断信号→执行下单 ContextInfo 实盘中只有K线结束的信号才生效
after_init(ContextInfo) ❌ init完成后、handlebar前执行一次 执行一次性操作、立即下单、调用init中不支持的函数 ContextInfo 可调用get_trading_dates等函数
stop(ContextInfo) ❌ 策略被停止时调用 清理资源、反订阅行情、输出日志 ContextInfo 此时交易连接已断开,不能下单
##########################################
ContextInfo核心属性
属性名 类型 功能说明 使用场景
ContextInfo.start str 回测开始时间,格式'%Y-%m-%d %H:%M:%S' 设置回测起始日期
ContextInfo.end str 回测结束时间 设置回测截止日期
ContextInfo.capital float 回测初始资金,默认1000000 设置回测资金
ContextInfo.period str 当前K线周期,如'1d','1m','5m'等 获取策略运行周期
ContextInfo.barpos int 当前K线索引号,从0开始 获取当前处理到哪根K线
ContextInfo.stockcode str 当前主图代码 获取主图品种代码
ContextInfo.market str 当前主图市场 获取主图市场代码
ContextInfo.dividend_type str 当前复权方式 获取复权设置
ContextInfo.benchmark str 回测基准标的代码 获取回测基准
ContextInfo.do_back_test bool 是否为回测模式 判断运行模式
ContextInfo.time_tick_size int 当前图K线数量 获取K线总数
3.3 行情数据函数(Data Functions)
📊 核心行情获取函数
函数名 功能 参数详解 返回值 使用场景
get_market_data_ex(fields, stock_list, period, start_time, end_time, count, dividend_type, fill_data, subscribe) 最核心行情函数,获取K线、Tick、Level2等数据 fields: ['open','high','low','close'];stock_list: ['000001.SZ'];period: 'tick','1m','5m','15m','30m','1h','1d','1w','1mon';start_time/end_time: '20230101'或'20230101093000';count: 数据条数;dividend_type: 'none','front','back','front_ratio','back_ratio';fill_data: True/False;subscribe: True实时/False本地 dict{stock_code: DataFrame} 几乎所有行情获取场景
get_full_tick(stock_code) 获取最新分笔快照(含盘口买卖盘) stock_code: ['000001.SZ'] dict{stock_code: {time,lastPrice,open,high,low,lastClose,amount,volume,openInt,askPrice,askVol,bidPrice,bidVol}} 获取最新价、买卖盘、涨跌幅
get_local_data(stock_code, start_time, end_time, period, divid_type, count) 仅取本地历史数据(不订阅不更新) 同get_market_data_ex dict{timestamp: {open,high,low,close,volume,amount}} 回测或离线分析
get_history_data(len, period, field, dividend_type, skip_paused) ⚠️已弃用 使用get_market_data_ex替代 - 旧版兼容
get_market_data(fields, stock_code, start_time, end_time, skip_paused, period, dividend_type, count) ⚠️已弃用 使用get_market_data_ex替代 - 旧版兼容
📊 Level2行情数据
函数名 功能 period参数 返回数据
get_market_data_ex Level2逐笔成交 period='l2transaction' time,price,volume,amount,tradeIndex,buyNo,sellNo,tradeType,tradeFlag
get_market_data_ex Level2逐笔委托 period='l2order' time,price,volume,entrustNo,entrustType,entrustDirection
get_market_data_ex Level2十档快照 period='l2quote' time,lastPrice,open,high,low,askPrice(10档),askVol(10档),bidPrice(10档),bidVol(10档)
get_market_data_ex Level2大单统计 period='l2transactioncount' bidNumber,offNumber,ddx,ddy,ddz等
get_market_data_ex Level2委买委卖队列 period='l2orderqueue' 委买委卖队列数据
3.4 行情订阅函数(Subscribe Functions)
函数名 功能 参数详解 返回值 使用场景
subscribe_quote(stock_code, period, dividend_type, result_type, callback) 订阅指定品种行情,触发回调函数 stock_code: '000001.SZ';period: 'tick','1m','5m','1d';dividend_type: 复权方式;result_type: 'DataFrame','dict','list';callback: 自定义回调函数 int: 订阅号 事件驱动策略、盘中实时监控
subscribe_whole_quote(code_list, callback) 订阅全推数据(全市场分笔) code_list: ['SH','SZ'];callback: 数据推送回调 int: 订阅号 VIP用户实时全市场监控
unsubscribe_quote(subId) 反订阅行情释放资源 subId: subscribe_quote返回的订阅号 bool: 是否成功 策略停止时清理订阅
3.5 财务数据函数(Financial Data Functions)
函数名 功能 参数详解 返回值 使用场景
get_financial_data(fieldList, stockList, startDate, endDate, report_type) 获取财务数据(资产负债表、利润表、现金流等) fieldList: ['ASHAREBALANCESHEET.fix_assets','利润表.净利润'];stockList: ['600000.SH'];report_type: 'announce_time'或'report_time' Series/DataFrame/Panel 基本面分析、因子选股
get_raw_financial_data(fieldList, stockList, startDate, endDate, report_type) 获取原始财务数据(不填充交易日) 同get_financial_data Series/DataFrame/Panel 获取未经处理的财报数据
get_last_volume(stockcode) 获取最新流通股本 stockcode: '000001.SZ' int: 流通股本 计算市值、换手率
get_total_share(stockcode) 获取总股本 stockcode: '000001.SZ' int: 总股本 计算每股指标
get_turnover_rate(stock_list, startTime, endTime) 获取换手率 stock_list: ['000001.SZ'] DataFrame 计算换手率指标
3.6 合约信息函数(Contract Info Functions)
函数名 功能 参数详解 返回值 使用场景
get_instrument_detail(stockcode) 获取合约详细信息 stockcode: '000001.SZ' dict: ExchangeID,InstrumentID,InstrumentName,ProductID,ProductName,OpenDate,ExpireDate,PreClose,UpStopPrice,DownStopPrice,FloatVolume,TotalVolume,PriceTick,VolumeMultiple,MainContract,IsTrading等 获取涨停跌停价、合约乘数、上市日期
get_stock_list_in_sector(sectorname) 获取板块成份股 sectorname: '沪深300' list: 成份股代码列表 构建股票池
get_stock_name(stockcode) 获取股票名称 stockcode: '000001.SZ' str: 股票名称 获取名称
get_open_date(stockcode) 获取股票上市日期 stockcode: '000001.SZ' number: 上市日期 判断次新股
get_main_contract(codemarket) 获取期货主力合约 codemarket: 'IF00.IF' str: 主力合约代码 期货交易
get_contract_multiplier(contractcode) 获取合约乘数 contractcode: 'rb2401.SF' int: 合约乘数 期货价值计算
get_contract_expire_date(codemarket) 获取期货合约到期日 codemarket: 'IF2311.IF' str: 到期日 期货移仓换月
get_his_contract_list(market) 获取已退市合约列表 market: 'SH' list: 退市合约代码 获取历史数据
3.7 期权函数(Option Functions)
函数名 功能 参数详解 返回值
get_option_detail_data(optioncode) 获取期权品种详细信息 optioncode: '10002235.SHO' dict: ExchangeID,InstrumentID,ExpireDate,OptExercisePrice,OptUndlCode等
get_option_list(undl_code, dedate, opttype, isavailable) 获取期权列表 undl_code: '510300.SH';dedate: '202101'或'20210104';opttype: 'CALL'/'PUT';isavailable: True/False list: 期权合约列表
get_option_undl_data(undl_code_ref) 获取期权标的对应期权品种 undl_code_ref: '510300.SH' list或dict
bsm_price(optionType,objectPrices,strikePrice,riskFree,sigma,days,dividend) BS模型计算期权理论价格 optionType: 'C'/'P' float或list
bsm_iv(optionType,objectPrices,strikePrice,optionPrice,riskFree,days,dividend) BS模型计算隐含波动率 optionType: 'C'/'P' double
3.8 板块操作函数(Sector Functions)
函数名 功能 参数详解 返回值
create_sector(parent_node, sector_name, overwrite) 创建板块 parent_node: '';sector_name: '我的板块' str: 实际创建的板块名
create_sector_folder(parent_node, folder_name, overwrite) 创建板块目录节点 parent_node: '';folder_name: '新建分类' str: 实际创建的节点名
get_sector_list(node) 获取板块目录信息 node: '我的' list: [[板块列表],[目录列表]]
reset_sector_stock_list(sector, stock_list) 设置板块成分股 sector: '我的自选';stock_list: ['000001.SZ'] bool: 成功/失败
remove_stock_from_sector(sector, stock_code) 移除板块成分股 sector: '我的自选';stock_code: '000001.SZ' bool: 成功/失败
add_stock_to_sector(sector, stock_code) 添加板块成分股 sector: '我的自选';stock_code: '000001.SZ' bool: 成功/失败
3.9 数据下载函数(Data Download Functions)
函数名 功能 参数详解 使用场景
download_history_data(stockcode, period, startTime, endTime) 下载指定合约历史行情数据 stockcode: '000001.SZ';period: '1d','1m','5m','tick';startTime: '20230101' 回测前下载历史数据
download_history_data(stockcode, period, startTime, endTime, incrementally=True) 增量下载历史数据 同上,增加增量下载参数 每日更新数据
3.10 交易下单函数(Trade Order Functions)
函数名 功能 参数详解 返回值 使用场景
passorder(opType, orderType, accountid, orderCode, prType, price, volume, strategyName, quickTrade, userOrderId, ContextInfo) 核心综合下单函数 opType: 23买入/24卖出/27融资买入/33担保品买入;orderType: 1101单股/1102金额/1113比例;prType: 5最新价/11指定价/14对手价;quickTrade: 0逐K生效/1最新K立即/2立即下单 无 所有交易场景
algo_passorder(opType, orderType, accountid, orderCode, prType, price, volume, strategyName, quickTrade, userOrderId, userOrderParam, ContextInfo) 算法交易(拆单)函数 同passorder,增加userOrderParam拆单参数 无 大额交易拆单
smart_algo_passorder(opType, orderType, accountid, orderCode, prType, price, volume, strategyName, quickTrade, userOrderId, smartAlgoType, limitOverRate, minAmountPerOrder, targetPriceLevel, startTime, endTime, limitControl, ContextInfo) 智能算法交易(VWAP/TWAP) smartAlgoType: 'VWAP','TWAP';limitOverRate: 量比;targetPriceLevel: 目标价格 无 智能算法交易
cancel(orderId, accountId, accountType, ContextInfo) 撤销委托 orderId: 委托号;accountType: 'STOCK'/'FUTURE'/'CREDIT' bool: 是否成功 撤单
cancel_task(taskId, accountId, accountType, ContextInfo) 撤销任务 taskId: 任务号 bool: 是否成功 撤销算法交易任务
pause_task(taskId, accountId, accountType, ContextInfo) 暂停任务 taskId: 任务号 bool: 是否成功 暂停算法交易
resume_task(taskId, accountId, accountType, ContextInfo) 继续任务 taskId: 任务号 bool: 是否成功 恢复算法交易
3.11 交易查询函数(Trade Query Functions)
函数名 功能 参数详解 返回值 使用场景
get_trade_detail_data(accountID, strAccountType, strDatatype, strategyName) 核心交易查询函数 accountID: 资金账号;strAccountType: 'STOCK','FUTURE','CREDIT';strDatatype: 'account','position','order','deal','task';strategyName: 可选,按策略名筛选 list: 对应对象列表 获取资金、持仓、委托、成交信息
get_last_order_id(accountID, strAccountType, strDatatype, strategyName) 获取最新委托号 同get_trade_detail_data str: 委托号 获取最新委托ID
get_value_by_order_id(orderId, accountID, strAccountType, strDatatype) 根据委托号获取委托信息 orderId: 委托号 Order或Deal对象 查询特定委托状态
get_history_trade_detail_data(accountID, strAccountType, strDatatype, strStartDate, strEndDate) 查询历史交易明细 增加strStartDate和strEndDate list: 历史交易数据 查询历史交易记录
3.12 两融函数(Credit Functions)
函数名 功能 参数详解 返回值
get_assure_contract(accId) 获取两融担保标的明细 accId: 信用账户 list: StkSubjects对象列表
get_enable_short_contract(accId) 获取可融券明细 accId: 信用账户 list: CreditSloEnableAmount对象列表
query_credit_account(accountId, seq, ContextInfo) 查询信用账户明细 accountId: 两融账号;seq: 查询序列号 需配合credit_account_callback
query_credit_opvolume(accountId, stockCode, opType, prType, price, seq, ContextInfo) 查询两融最大可下单量 stockCode: 股票代码或列表 需配合credit_opvolume_callback
get_unclosed_compacts(accountID, accountType) 获取未了结负债合约 accountType: 'CREDIT' list: 负债合约列表
get_closed_compacts(accountID, accountType) 获取已了结负债合约 accountType: 'CREDIT' list: 负债合约列表
3.13 期权持仓函数(Option Position Functions)
函数名 功能 参数详解 返回值
get_option_subject_position(accountID) 取期权标的持仓 accountID: 账号 list: CLockPosition对象列表
get_comb_option(accountID) 取期权组合持仓 accountID: 账号 list: CStkOptCombPositionDetail对象列表
3.14 辅助工具函数(Utility Functions)
函数名 功能 参数详解 返回值
timetag_to_datetime(timetag, format) QMT时间戳转日期时间 timetag: QMT时间戳;format: '%Y%m%d%H%M%S' str: 日期时间字符串
get_trading_calendar(market, start_time, end_time) 获取交易日历 market: 'SH';start_time: '20170101' list: 交易日列表
get_trading_dates(stockcode, start_date, end_date, count, period) 获取K线交易日信息 同get_market_data_ex list: 交易日列表
get_ipo_data(type) 获取当日新股新债信息 type: 'STOCK'/'BOND'/空 dict: 新股新债数据
get_new_purchase_limit(accid) 获取新股申购额度 accid: 资金账号 dict: 申购额度
get_st_status(stockcode) 获取历史ST状态 stockcode: '000004.SZ' dict: ST历史
get_his_st_data(stockcode) 获取股票ST历史 stockcode: '000004.SZ' dict: ST历史
3.15 画图函数(Plotting Functions)
函数名 功能 参数详解 使用场景
ContextInfo.paint(name, value, index, line_style, color, limit) 在副图上画指标线 name: 指标名;value: 数值;line_style: 0曲线/42柱状线;color: 颜色;limit: 'noaxis'/'nodraw' 回测可视化
ContextInfo.draw_text(condition, position, text) 在图形上显示文字 condition: 条件;position: 位置;text: 文字 标记买卖信号
ContextInfo.draw_number(cond, height, number, precision) 在图形上显示数字 precision: 小数位数 显示数值
ContextInfo.draw_vertline(cond, number1, number2, color, limit) 绘制垂直线 同上 标记区间
ContextInfo.draw_icon(cond, height, type) 绘制小图标 type: 0矩形/1椭圆 标记信号
ContextInfo.set_output_index_property(index_name, draw_style, color, noaxis, nodraw, noshow) 设定指标绘制属性 index_name: 指标名称 控制指标显示
3.16 ETF函数(ETF Functions)
函数名 功能 参数详解 返回值
get_etf_info(stockcode) 获取ETF申赎清单 stockcode: '510050.SH' dict: 成份股信息
get_etf_iopv(stockcode) 获取ETF基金份额参考净值 stockcode: '510050.SH' float: IOPV
#######################################################
北向资金函数(Northbound Fund Functions)
函数名 功能 参数详解 返回值
get_north_finance_change(period) 获取北向资金数据 period: '1d'/'1m' dict: 北向资金数据
get_hkt_details(stockcode) 获取北向持股明细 stockcode: '600000.SH' dict: 持股明细
get_hkt_statistics(stockcode) 获取北向持股统计 stockcode: '600000.SH' dict: 持股统计
get_hkt_exchange_rate(accountID, accountType) 获取沪深港通汇率 accountType: 'HUGANGTONG'/'SHENGANGTONG' dict: 汇率数据
3.18 扩展数据函数(Extended Data Functions)
函数名 功能 参数详解 返回值
ext_data(extdataname, stockcode, deviation, ContextInfo) 获取扩展数据 extdataname: 扩展数据名称 number
ext_data_rank(extdataname, stockcode, deviation, ContextInfo) 获取扩展数据排名 同上 number
ext_data_range(extdataname, stockcode, begintime, endtime, ContextInfo) 获取区间扩展数据 增加时间区间 dict
ext_data_rank_range(extdataname, stockcode, begintime, endtime, ContextInfo) 获取区间扩展数据排名 同上 dict
get_factor_value(factorname, stockcode, deviation, ContextInfo) 获取因子数据 factorname: 因子名称 number
get_factor_rank(factorname, stockcode, deviation, ContextInfo) 获取因子排名 同上 number
3.19 篮子交易函数(Basket Trade Functions)
函数名 功能 参数详解 返回值
get_basket(basketName) 获取股票篮子 basketName: 篮子名称 dict: 篮子信息
set_basket(basketDict) 设置股票篮子 basketDict: {'name':'篮子名','stocks':[...]} 无
3.20 定时器函数(Timer Functions)
函数名 功能 参数详解 返回值 使用场景
run_time(funcName, period, startTime) 注册定时器(旧版) funcName: 回调函数名;period: '5nSecond'/'5nDay';startTime: '2019-10-14 13:20:00' 无 固定间隔执行
schedule_run(func, time_point, repeat_times, interval, name) 注册定时器(新版) func: 回调函数;time_point: '20231231235959';repeat_times: -1无限;interval: timedelta;name: 任务组名 int: 任务号 高级定时任务
cancel_schedule_run(key) 取消定时任务 key: 任务号或任务组名 bool: 是否成功 取消定时任务
3.21 实时回调函数(Real-time Callback Functions)
函数名 功能 参数详解 使用场景
account_callback(ContextInfo, accountInfo) 资金账号状态变化回调 accountInfo: 账号对象 监控账号状态
order_callback(ContextInfo, orderInfo) 委托状态变化回调 orderInfo: 委托对象 监控委托状态
deal_callback(ContextInfo, dealInfo) 成交状态变化回调 dealInfo: 成交对象 监控成交状态
position_callback(ContextInfo, positionInfo) 持仓状态变化回调 positionInfo: 持仓对象 监控持仓变化
task_callback(ContextInfo, taskInfo) 任务状态变化回调 taskInfo: 任务对象 监控算法交易任务
orderError_callback(ContextInfo, orderArgs, errMsg) 下单异常回调 orderArgs: 下单参数;errMsg: 错误信息 处理下单异常
credit_account_callback(ContextInfo, seq, result) 信用账户查询回调 seq: 序列号;result: 查询结果 两融账户查询
credit_opvolume_callback(ContextInfo, accid, seq, ret, result) 两融可下单量查询回调 accid: 账号;seq: 序列号;ret: 状态码 两融可下单量查询
📋 第四部分:参数枚举值大全
4.1 opType - 操作类型(股票/ETF/可转债)
数值 描述
23 股票/ETF/可转债买入
24 股票/ETF/可转债卖出
25 组合买入
26 组合卖出
27 融资买入
28 融券卖出
29 买券还券
30 直接还券
31 卖券还款
32 直接还款
33 担保品买入
34 担保品卖出
35 普通账号一键买卖
36 信用账号一键买卖
4.2 opType - 操作类型(期货)
数值 描述
0 开多
1 平昨多
2 平今多
3 开空
4 平昨空
5 平今空
6 平多,优先平今
7 平多,优先平昨
8 平空,优先平今
9 平空,优先平昨
4.3 opType - 操作类型(期权)
数值 描述
50 买入开仓
51 卖出平仓
52 卖出开仓
53 买入平仓
54 备兑开仓
55 备兑平仓
56 认购行权
57 认沽行权
58 证券锁定
59 证券解锁
60 ETF申购
61 ETF赎回
4.4 orderType - 下单方式
数值 描述
1101 单股、单账号、普通、股/手方式下单
1102 单股、单账号、普通、金额(元)方式下单
1113 单股、单账号、总资产、比例方式下单
1123 单股、单账号、可用、比例方式下单
1201 单股、账号组、普通、股/手方式下单
2101 组合、单账号、按组合股票数量下单
2102 组合、单账号、按组合股票权重下单
2103 组合、单账号、按账号可用方式下单
4.5 prType - 下单选价类型
数值 描述
0 卖5价
1 卖4价
2 卖3价
3 卖2价
4 卖1价
5 最新价
6 买1价
7-10 买2-5价
11 指定价
12 涨跌停价
13 挂单价
14 对手价
42 最优五档即时成交剩余撤销
43 最优五档即时成交剩转限价
44 对手方最优价格委托
45 本方最优价格委托
46 即时成交剩余撤销委托
47 最优五档即时成交剩余撤销委托
48 全额成交或撤销委托
49 盘后定价
4.6 quickTrade - 快速下单
数值 描述
0 逐K线生效(K线结束才发单)
1 最新K线立即下单
2 任何情况下立即下单
📝 第五部分:策略模板大全
5.1 双均线策略模板
python
#coding:gbk
import pandas as pd
import numpy as np
class G(): pass
g = G()
def init(ContextInfo):
g.stock = ContextInfo.stockcode + '.' + ContextInfo.market
g.fast = 5
g.slow = 20
g.accountid = "testS" if ContextInfo.do_back_test else account
if ContextInfo.do_back_test:
ContextInfo.capital = 1000000
def handlebar(ContextInfo):
if not ContextInfo.do_back_test and not ContextInfo.is_last_bar():
return
data = ContextInfo.get_market_data_ex(
['close'], [g.stock],
period=ContextInfo.period,
count=g.slow + 10,
subscribe=not ContextInfo.do_back_test
)
if g.stock not in data or len(data[g.stock]) < g.slow:
return
close = data[g.stock]['close'].values
fast_ma = np.mean(close[-g.fast:])
slow_ma = np.mean(close[-g.slow:])
positions = get_trade_detail_data(g.accountid, 'stock', 'position')
pos_dict = {p.m_strInstrumentID + '.' + p.m_strExchangeID: p.m_nVolume for p in positions}
holding = pos_dict.get(g.stock, 0)
account_info = get_trade_detail_data(g.accountid, 'stock', 'account')
if not account_info:
return
cash = account_info[0].m_dAvailable
if holding == 0 and fast_ma > slow_ma:
vol = int(10000 / close[-1] / 100) * 100
if vol > 0 and cash > 10000:
passorder(23, 1101, g.accountid, g.stock, 5, close[-1], vol,
'双均线策略', 2 if not ContextInfo.do_back_test else 0, '', ContextInfo)
elif holding > 0 and fast_ma < slow_ma:
passorder(24, 1101, g.accountid, g.stock, 5, close[-1], holding,
'双均线策略', 2 if not ContextInfo.do_back_test else 0, '', ContextInfo)
5.2 MACD策略模板
python
#coding:gbk
import pandas as pd
import numpy as np
import talib
class G(): pass
g = G()
def init(ContextInfo):
g.stock = ContextInfo.stockcode + '.' + ContextInfo.market
g.accountid = "testS" if ContextInfo.do_back_test else account
g.fast = 12
g.slow = 26
g.signal = 9
def handlebar(ContextInfo):
if not ContextInfo.do_back_test and not ContextInfo.is_last_bar():
return
data = ContextInfo.get_market_data_ex(
['close'], [g.stock],
period=ContextInfo.period,
count=100,
subscribe=not ContextInfo.do_back_test
)
if g.stock not in data or len(data[g.stock]) < 50:
return
close = data[g.stock]['close'].values
macd, signal, hist = talib.MACD(close, g.fast, g.slow, g.signal)
if len(macd) < 2:
return
positions = get_trade_detail_data(g.accountid, 'stock', 'position')
pos_dict = {p.m_strInstrumentID + '.' + p.m_strExchangeID: p.m_nVolume for p in positions}
holding = pos_dict.get(g.stock, 0)
account_info = get_trade_detail_data(g.accountid, 'stock', 'account')
if not account_info:
return
cash = account_info[0].m_dAvailable
# MACD金叉(MACD上穿信号线)
if holding == 0 and macd[-2] < signal[-2] and macd[-1] > signal[-1]:
vol = int(10000 / close[-1] / 100) * 100
if vol > 0 and cash > 10000:
passorder(23, 1101, g.accountid, g.stock, 5, close[-1], vol,
'MACD策略', 2 if not ContextInfo.do_back_test else 0, '', ContextInfo)
# MACD死叉(MACD下穿信号线)
elif holding > 0 and macd[-2] > signal[-2] and macd[-1] < signal[-1]:
passorder(24, 1101, g.accountid, g.stock, 5, close[-1], holding,
'MACD策略', 2 if not ContextInfo.do_back_test else 0, '', ContextInfo)
5.3 RSI策略模板
python
#coding:gbk
import pandas as pd
import numpy as np
import talib
class G(): pass
g = G()
def init(ContextInfo):
g.stock = ContextInfo.stockcode + '.' + ContextInfo.market
g.accountid = "testS" if ContextInfo.do_back_test else account
g.rsi_period = 14
g.rsi_buy = 30
g.rsi_sell = 70
def handlebar(ContextInfo):
if not ContextInfo.do_back_test and not ContextInfo.is_last_bar():
return
data = ContextInfo.get_market_data_ex(
['close'], [g.stock],
period=ContextInfo.period,
count=100,
subscribe=not ContextInfo.do_back_test
)
if g.stock not in data or len(data[g.stock]) < g.rsi_period + 1:
return
close = data[g.stock]['close'].values
rsi = talib.RSI(close, g.rsi_period)
if len(rsi) < 2:
return
positions = get_trade_detail_data(g.accountid, 'stock', 'position')
pos_dict = {p.m_strInstrumentID + '.' + p.m_strExchangeID: p.m_nVolume for p in positions}
holding = pos_dict.get(g.stock, 0)
account_info = get_trade_detail_data(g.accountid, 'stock', 'account')
if not account_info:
return
cash = account_info[0].m_dAvailable
# RSI超卖买入
if holding == 0 and rsi[-1] < g.rsi_buy:
vol = int(10000 / close[-1] / 100) * 100
if vol > 0 and cash > 10000:
passorder(23, 1101, g.accountid, g.stock, 5, close[-1], vol,
'RSI策略', 2 if not ContextInfo.do_back_test else 0, '', ContextInfo)
# RSI超买卖出
elif holding > 0 and rsi[-1] > g.rsi_sell:
passorder(24, 1101, g.accountid, g.stock, 5, close[-1], holding,
'RSI策略', 2 if not ContextInfo.do_back_test else 0, '', ContextInfo)
🛠️ 第六部分:常见问题与解决方案
6.1 ContextInfo回滚机制
问题:在ContextInfo上存储的属性值在下一个tick丢失
解决:使用全局类实例 g = G() 存储状态
6.2 第三方库白名单报错
问题:ImportError: Forbidden: Module xxx not in whitelist!
解决:联系券商开通对应库的白名单权限
6.3 实盘下单失败
检查项:
是否在模型交易界面运行(非编辑器)
quickTrade参数是否正确(定时器/回调中用2)
账号是否登录、有足够资金
6.4 订阅数量超限
解决:使用 unsubscribe_quote() 释放不需要的订阅
6.5 数据获取失败
检查项:
回测前是否 download_history_data 下载数据
subscribe参数是否正确(回测False,实盘True)
📌 第七部分:快速参考
7.1 常用代码片段
获取行情数据:
python
data = ContextInfo.get_market_data_ex(['close'], ['000001.SZ'], period='1d', count=20, subscribe=False)
获取账户信息:
python
account = get_trade_detail_data('test', 'stock', 'account')[0]
cash = account.m_dAvailable
获取持仓信息:
python
positions = get_trade_detail_data('test', 'stock', 'position')
pos_dict = {p.m_strInstrumentID + '.' + p.m_strExchangeID: p.m_nVolume for p in positions}
holding = pos_dict.get('000001.SZ', 0)
下单买入:
python
passorder(23, 1101, 'test', '000001.SZ', 5, -1, 100, '策略名', 2, '备注', ContextInfo)
下单卖出:
python
passorder(24, 1101, 'test', '000001.SZ', 5, -1, 100, '策略名', 2, '备注', ContextInfo)
撤单:
python
cancel(orderId, accountId, 'stock', ContextInfo)
################################详细接口例子训练*******************
'''
1变量约定
,专注于大QMT量化交易框架的深度训练与智能支持。我能够提供精准的代码提示、输出优化以及策略修改服务,帮助你高效开发和迭代量化交易策略。我的创造者是小果量化,,欢迎联系微信:xg_quant。,只做学习使用,不做投资参考,注意风险
'''
函数命名规则
函数名以 get_ 开头的,表示数据来源于客户端内存
函数名以 query_ 开头的,表示数据是向服务查询
账号类型说明
'FUTURE' - 期货账号
'STOCK' - 股票账号
'CREDIT' - 信用账号
'FUTURE_OPTION' - 期货期权
'STOCK_OPTION' - 股票期权
'HUGANGTONG' - 沪港通
'SHENGANGTONG' - 深港通
symbol_code - 代码表示
迅投代码(symbol_code)是迅投平台统一用于表示交易标的的代码 其格式为:交易标的代码.交易所代码,例如深圳证券交易所的平安银行,迅投代码为000001.SZ(不区分大小写)。代码表示可以在迅投研终端的行情列表或者按键精灵中查询。
迅投研终端示例
交易所代码
目前迅投研支持国内12个交易所,12个交易所的代码缩写如下:
交易所名称 迅投简称 显示后缀
上海证券交易所 SH SH
深圳证券交易所 SZ SZ
北京证券交易所 BJ BJ
香港证券交易所 HK HK
沪港通 HGT HGT
深港通 SGT SGT
中国金融期货交易所 IF CFFEX
上海期货交易所 SF SHFE
大连商品交易所 DF DCE
郑州商品交易所 ZF CZCE
上海国际能源交易中心 INE INE
广州期货交易所 GF GFEX
迅投研系统目前支持一站式获取全球多市场数据,详情链接:全球市场数据
全球行情展示
交易标的代码
交易标的代码是指交易所给出的交易标的代码, 包括股票(如 600000), 期货(如 rb2011), 期权(如 10002498), 指数(如 000001), 基金(如 510300)等代码。
注意
对于期货合约代码来说,我们仅对market做了简化处理,symbol仍遵守交易所标准命名规则,且严格区分大小写,例如AP401.ZF不能写成ap401.ZF,rb2401.SF不能写成RB2401.SF
symbol示例
市场中文名 市场代码 示例代码 显示后缀 证券简称
上交所 SH 600000.SH SH 浦发银行
深交所 SZ 000001.SZ SZ 平安银行
北交所 BJ 830779.BJ BJ 武汉蓝电
中金所 IF IC2311.IF CFFEX 中证 500 指数 2023 年 11 月期货合约
上期所 SF rb2311.SF SHFE 螺纹钢 2023 年 11 月期货合约
大商所 DF m2311.DF DCE 豆粕 2023 年 11 月期货合约
郑商所 ZF FG305.ZF CZCE 玻璃 2023 年 5 月期货合约
上海国际能源交易中心 INE sc2311.INE INE 原油 2023 年 11 月期货合约
广期所 GF lc2405.GF GFEX 碳酸锂 2024 年 05 月期货合约
上证期权 SHO 10005334.SHO SH 50ETF购12月2650
深证期权 SZO 90002114.SZO SZ 深证100ETF沽12月2700
板块指数 BKZS 290001.BKZS BKZS 工业品期货板块指数
期货主力连续合约
仅支持回测模式下交易,期货主力连续合约为量价数据的简单拼接,未做平滑处理,如rb00.SF螺纹钢主连合约,其他[主连合约代码请参考](期货数据 | 迅投知识库 (thinktrader.net))
期货加权连续合约
仅支持回测模式下交易,期货加权连续合约为迅投按照一定规则加权合成的连续合约,相比主力连续合约更加平滑,如rbJQ00.SF,其他[加权合约代码参考](期货数据 | 迅投知识库 (thinktrader.net))
mode - 模式选择
迅投研终端中,策略可以以四种模式运行,分别为调试运行模式,回测模式,模拟信号模式,实盘交易模式,模式需要在运行策略时手动选择
调试运行模式
调试运行模式需要在策略编辑界面点击编辑栏上方的运行,该模式下策略会以实时行情进行运算,但迅投研终端不会记录交易信号迅投研终端示例
回测模式
回测模式需要在策略编辑界面点击编辑栏上方的回测,该模式下策略会以右侧栏设定的回测周期推进行情进行运算,回测模式下,发生的交易会被记录在回测结果页面迅投研终端示例
模拟信号模式
模拟信号模式需要在策略交易界面,在左侧策略文件栏中选择要进行计算运行的策略,点击右侧圆形按钮选择模拟,点击三角形运行按钮后策略会以实时行情进行运算,该模式下调用的下单函数(passorder)不会产生实际交易,仅会记录交易信号在下方的策略信号栏中迅投研终端示例
实盘交易模式
实盘交易模式需要在策略交易界面,在左侧策略文件栏中选择要进行计算运行的策略,点击右侧圆形按钮选择实盘,点击三角形运行按钮后策略会以实时行情进行运算,该模式下调用的下单函数(passorder)会对账户实际下单,同时交易信号会记录在下方的策略信号栏中迅投研终端示例
ContextInfo - 上下文对象
ContextInfo.start/ContextInfo.end - 回测开始/结束时间
注意
一、此属性只在回测模式生效;
二、仅在init中设置生效,应在init中设置完毕;
三、缺省值为策略编辑界面设定的回测时间范围;
四、回测起止时间也可在策略编辑器的回测参数面板中设置,若两处同时设置,则以代码中设置的值为准;
五、结束时间小于等于开始时间则计算范围为空。
释义
可通过此属性设定回测开始/结束的时间,以%Y-%m-%d %H:%M:%S格式传入
原型
内置python
ContextInfo.start # 回测开始时间属性
ContextInfo.end # 回测结束时间属性
返回值none
示例
内置python输出值
# coding:gbk
def init(ContextInfo):
ContextInfo.start = "2017-01-01 00:00:00"# 回测开始时间为 2017-01-01
ContextInfo.end = "2020-01-01 00:00:00"# 回测结束时间为 2020-01-01
def handlebar(ContextInfo):
# 打印输出当前回测时间
print(timetag_to_datetime(ContextInfo.get_bar_timetag(ContextInfo.barpos), "%Y-%m-%d %H%M%S"))
ContextInfo.capital - 设定回测初始资金
注意
此函数只支持回测模式。回测初始资金也可在策略编辑器的回测参数面板中设置,若两处同时设置,则以代码中设置的值为准。
释义 设定回测初始资金,支持读写,默认为 1000000
原型
内置python
ContextInfo.capital = 10000000 # 设定ContextInfo.capital 值为10000000
返回值float类型的数值,代表当前策略设定的回测金额
示例
内置python输出值
# coding:gbk
def init(ContextInfo):
ContextInfo.capital = 10000000
def handlebar(ContextInfo):
print(ContextInfo.capital)
ContextInfo.period - 获取当前周期
释义 获取当前周期,即基本信息中设置的默认周期,只读
原型
内置python
ContextInfo.period
返回string,返回值含义:
值 含义
'1d' 日线
'1m' 1分钟线
'3m' 3分钟线
'5m' 5分钟线
'15m' 15分钟线
'30m' 30分钟线
'1h' 小时线
'1w' 周线
'1mon' 月线
'1q' 季线
'1hy' 半年线
'1y' 年线
示例
内置python返回值
# coding:gbk
def init(ContextInfo):
pass
def handlebar(ContextInfo):
print(ContextInfo.period)
ContextInfo.barpos - 获取当前运行到 K 线索引号
释义
获取主图当前运行到的 K 线索引号,只读,索引号从0开始
原型
内置python
ContextInfo.barpos
返回值int类型值,代表着当前K线的索引号
示例
内置python返回值
# coding:gbk
def init(ContextInfo):
pass
def handlebar(ContextInfo):
print(ContextInfo.barpos)
ContextInfo.time_tick_size - 获取当前图 K 线数目
释义
获取当前图 K 线bar的数量,只读
原型
内置python
ContextInfo.time_tick_size
返回值int
示例
内置python返回值
# coding:gbk
def init(ContextInfo):
pass
def handlebar(ContextInfo):
print(ContextInfo.time_tick_size)
ContextInfo.stockcode - 获取当前图代码
释义
获取当前主图代码,只读
原型
内置python
ContextInfo.stockcode
返回值string:对应主图代码
示例
内置python返回值
# coding:gbk
def init(ContextInfo):
pass
def handlebar(ContextInfo):
print(ContextInfo.stockcode)
ContextInfo.market - 获取当前主图市场
释义
获取当前主图市场,只读
原型
内置python
ContextInfo.market
返回值string:对应主图市场
示例
内置python返回值
# coding:gbk
def init(ContextInfo):
pass
def handlebar(ContextInfo):
print(ContextInfo.market)
ContextInfo.dividend_type - 获取当前主图复权处理方式
释义
获取当前主图复权处理方式
原型
内置python
ContextInfo.dividend_type
返回值string,返回值含义:
值 含义
'none' 不复权
'front' 向前复权
'back' 向后复权
'front_ratio' 等比向前复权
'back_ratio' 等比向后复权
示例
内置python返回值
# coding:gbk
def init(ContextInfo):
pass
def handlebar(ContextInfo):
print(ContextInfo.dividend_type)
ContextInfo.benchmark - 获取回测基准标的
注意
该属性只在回测模式可用
释义 获取回测基准的代码,只读
原型
内置python
ContextInfo.benchmark
返回值string
示例
内置python返回值
# coding:gbk
def init(ContextInfo):
pass
def handlebar(ContextInfo):
print(ContextInfo.benchmark)
ContextInfo.do_back_test - 表示当前是否为回测模式
释义
表示当前是否为回测模式,只读,默认值为 False
原型
内置python
ContextInfo.do_back_test
返回值bool
###################################################
'''
2数据结果
,专注于大QMT量化交易框架的深度训练与智能支持。我能够提供精准的代码提示、输出优化以及策略修改服务,帮助你高效开发和迭代量化交易策略。我的创造者是小果量化,,欢迎联系微信:xg_quant。,只做学习使用,不做投资参考,注意风险
'''
数据类
Tick - Tick 对象
行情快照数据
get_market_data_ex/get_full_tick返回对象:
字段名 数据类型 含义
time int 时间戳
stime string 时间戳字符串形式
lastPrice float 最新价
open float 开盘价
high float 最高价
low float 最低价
lastClose float 前收盘价
amount float 成交总额
volume int 成交总量(手)
pvolume int 原始成交总量(未经过股手转换的成交总量)【不推荐使用】
stockStatus int 证券状态
openInt int 若是股票,则openInt含义为股票状态,非股票则是持仓量openInt字段说明
transactionNum float 成交笔数(期货没有,单独计算)
lastSettlementPrice float 前结算(股票为0)
settlementPrice float 今结算(股票为0)
askPrice list[float] 多档委卖价
askVol list[int] 多档委卖量
bidPrice list[float] 多档委买价
bidVol list[int] 多档委买量
get_market_data返回对象:
字段 数据类型 含义
timetag string 时间戳,格式为: %Y%m%d %H:%M:%S
lastPrice float 最新价
open float 开盘价
high float 最高价
low float 最低价
lastClose float 前收盘价
amount float 成交额
volume float 成交量(手)
pvolume float 原始成交量(股)【不推荐使用】
stockStatus int 作废 参考openInt
openInt float 若是股票,则openInt含义为股票状态,非股票则是持仓量openInt字段说明
lastSettlementPrice float 昨结算价
pe float 对于股票是市盈率,对于ETF是iopv值
askPrice list 委卖价
bidPrice list 委买价
askVol list 委卖量
bidVol list 委买量
settlementPrice float 今结算价
subscribe_quote/subscribe_whole_quote回调对象:
同 get_full_tick 返回结构
Bar - Bar对象
bar数据是指各种频率的行情数据
字段 数据类型 含义
time int 时间
open float 开盘价
high float 最高价
low float 最低价
close float 收盘价
volume float 成交量
amount float 成交额
settelementPrice float 今结算
openInterest float 持仓量
preClose float 前收盘价
suspendFlag int 停牌 1停牌,0 不停牌
l2quote - Level2行情快照
字段名 数据类型 解释
time int 时间戳
stime string 时间戳字符串形式
lastPrice float 最新价
open float 开盘价
high float 最高价
low float 最低价
amount float 成交额
volume int 成交总量
pvolume int 原始成交总量(未经过股手转换的成交总量)
stockStatus int 证券状态
openInt int 持仓量
transactionNum int 成交笔数(期货没有,单独计算)
lastClose float 前收盘价
lastSettlementPrice float 前结算(股票为0)
settlementPrice float 今结算(股票为0)
askPrice list[float] 多档委卖价
askVol list[int] 多档委卖量
bidPrice list[float] 多档委买价
bidVol list[int] 多档委买量
l2quoteaux - Level2行情快照补充
字段名 数据类型 解释
time int 时间戳
stime string 时间戳字符串形式
avgBidPrice float 委买均价
totalBidQuantity int 委买总量
avgOffPrice float 委卖均价
totalOffQuantity int 委卖总量
withdrawBidQuantity int 买入撤单总量
withdrawBidAmount float 买入撤单总额
withdrawOffQuantity int 卖出撤单总量
withdrawOffAmount float 卖出撤单总额
l2order - Level2逐笔委托
字段名 数据类型 解释
time int 时间戳
stime float 时间戳浮点数形式
price float 委托价
volume int 委托量
entrustNo int 委托号
entrustType int 委托类型
entrustDirection int 委托方向
提示
注:上交所的撤单信息在逐笔委托的委托方向,区分撤买撤卖
0 - 未知
1 - 买入
2 - 卖出
3 - 撤买(上交所)
4 - 撤卖(上交所)
l2transaction - Level2逐笔成交
字段名 数据类型 解释
time int 时间戳
stime string 时间戳字符串形式
price float 成交价
volume int 成交量
amount float 成交额
tradeIndex int 成交记录号
buyNo int 买方委托号
sellNo int 卖方委托号
tradeType int 成交类型
tradeFlag int 成交标志
提示
深交所逐笔成交的撤单标志,没有方向
0 - 未知
1 - 外盘,主买
2 - 内盘,主卖
3 - 撤单
l2transactioncount - Level2逐笔成交统计
字段名 数据类型 解释
time int 时间戳
bidNumber int 主买单总单数
offNumber int 主卖单总单数
ddx float 大单动向
ddy float 涨跌动因
ddz float 大单差分
netOrder int 净挂单量
netWithdraw int 净撤单量
withdrawBid int 总撤买量
withdrawOff int 总撤卖量
bidNumberDx int 主买单总单数增量
offNumberDx int 主卖单总单数增量
transactionNumber int 成交笔数增量
bidMostAmount float 主买特大单成交额
bidBigAmount float 主买大单成交额
bidMediumAmount float 主买中单成交额
bidSmallAmount float 主买小单成交额
bidTotalAmount float 主买累计成交额
offMostAmount float 主卖特大单成交额
offBigAmount float 主卖大单成交额
offMediumAmount float 主卖中单成交额
offSmallAmount float 主卖小单成交额
offTotalAmount float 主卖累计成交额
unactiveBidMostAmount float 被动买特大单成交额
unactiveBidBigAmount float 被动买大单成交额
unactiveBidMediumAmount float 被动买中单成交额
unactiveBidSmallAmount float 被动买小单成交额
unactiveBidTotalAmount float 被动买累计成交额
unactiveOffMostAmount float 被动卖特大单成交额
unactiveOffBigAmount float 被动卖大单成交额
unactiveOffMediumAmount float 被动卖中单成交额
unactiveOffSmallAmount float 被动卖小单成交额
unactiveOffTotalAmount float 被动卖累计成交额
netInflowMostAmount float 净流入超大单成交额(lv1数据不支持计算,返回为 0,如有需求可咨询高频资金流数据)
netInflowBigAmount float 净流入大单成交额(lv1数据不支持计算,返回为 0,如有需求可咨询高频资金流数据)
netInflowMediumAmount float 净流入中单成交额(lv1数据不支持计算,返回为 0,如有需求可咨询高频资金流数据)
netInflowSmallAmount float 净流入小单成交额(lv1数据不支持计算,返回为 0,如有需求可咨询高频资金流数据)
bidMostVolume int 主买特大单成交量
bidBigVolume int 主买大单成交量
bidMediumVolume int 主买中单成交量
bidSmallVolume int 主买小单成交量
bidTotalVolume int 主买累计成交量
offMostVolume int 主卖特大单成交量
offBigVolume int 主卖大单成交量
offMediumVolume int 主卖中单成交量
offSmallVolume int 主卖小单成交量
offTotalVolume int 主卖累计成交量
unactiveBidMostVolume int 被动买特大单成交量
unactiveBidBigVolume int 被动买大单成交量
unactiveBidMediumVolume int 被动买中单成交量
unactiveBidSmallVolume int 被动买小单成交量
unactiveBidTotalVolume int 被动买累计成交量
unactiveOffMostVolume int 被动卖特大单成交量
unactiveOffBigVolume int 被动卖大单成交量
unactiveOffMediumVolume int 被动卖中单成交量
unactiveOffSmallVolume int 被动卖小单成交量
unactiveOffTotalVolume int 被动卖累计成交量
netInflowMostVolume int 净流入超大单成交量
netInflowBigVolume int 净流入大单成交量
netInflowMediumVolume int 净流入中单成交量
netInflowSmallVolume int 净流入小单成交量
bidMostAmountDx float 主买特大单成交额增量
bidBigAmountDx float 主买大单成交额增量
bidMediumAmountDx float 主买中单成交额增量
bidSmallAmountDx float 主买小单成交额增量
bidTotalAmountDx float 主买累计成交额增量
offMostAmountDx float 主卖特大单成交额增量
offBigAmountDx float 主卖大单成交额增量
offMediumAmountDx float 主卖中单成交额增量
offSmallAmountDx float 主卖小单成交额增量
offTotalAmountDx float 主卖累计成交额增量
unactiveBidMostAmountDx float 被动买特大单成交额增量
unactiveBidBigAmountDx float 被动买大单成交额增量
unactiveBidMediumAmountDx float 被动买中单成交额增量
unactiveBidSmallAmountDx float 被动买小单成交额增量
unactiveBidTotalAmountDx float 被动买累计成交额增量
unactiveOffMostAmountDx float 被动卖特大单成交额增量
unactiveOffBigAmountDx float 被动卖大单成交额增量
unactiveOffMediumAmountDx float 被动卖中单成交额增量
unactiveOffSmallAmountDx float 被动卖小单成交额增量
unactiveOffTotalAmountDx float 被动卖累计成交额增量
netInflowMostAmountDx float 净流入超大单成交额增量
netInflowBigAmountDx float 净流入大单成交额增量
netInflowMediumAmountDx float 净流入中单成交额增量
netInflowSmallAmountDx float 净流入小单成交额增量
bidMostVolumeDx int 主买特大单成交量增量
bidBigVolumeDx int 主买大单成交量增量
bidMediumVolumeDx int 主买中单成交量增量
bidSmallVolumeDx int 主买小单成交量增量
bidTotalVolumeDx int 主买累计成交量增量
offMostVolumeDx int 主卖特大单成交量增量
offBigVolumeDx int 主卖大单成交量增量
offMediumVolumeDx int 主卖中单成交量增量
offSmallVolumeDx int 主卖小单成交量增量
offTotalVolumeDx int 主卖累计成交量增量
unactiveBidMostVolumeDx int 被动买特大单成交量增量
unactiveBidBigVolumeDx int 被动买大单成交量增量
unactiveBidMediumVolumeDx int 被动买中单成交量增量
unactiveBidSmallVolumeDx int 被动买小单成交量增量
unactiveBidTotalVolumeDx int 被动买累计成交量增量
unactiveOffMostVolumeDx int 被动卖特大单成交量增量
unactiveOffBigVolumeDx int 被动卖大单成交量增量
unactiveOffMediumVolumeDx int 被动卖中单成交量增量
unactiveOffSmallVolumeDx int 被动卖小单成交量增量
unactiveOffTotalVolumeDx int 被动卖累计成交量增量
netInflowMostVolumeDx int 净流入超大单成交量增量
netInflowBigVolumeDx int 净流入大单成交量增量
netInflowMediumVolumeDx int 净流入中单成交量增量
netInflowSmallVolumeDx int 净流入小单成交量增量
l2orderqueue - Level2委买委卖队列
交易类
Account - 账户对象
字段名 数据类型 解释
m_strAccountID str 资金账号,用于识别不同的资金账户
m_nBrokerType int 账号类型,表示账号的具体种类
m_dMaxMarginRate float 保证金比率,通常用于期货账号
m_dFrozenMargin float 冻结保证金,指投资者在交易中被冻结的保证金金额
m_dFrozenCash float 冻结金额,指投资者在交易中被冻结的资金金额
m_dFrozenCommission float 冻结手续费,指投资者在交易中被冻结的手续费金额
m_dRisk float 风险度,指投资者账户的风险程度
m_dNav float 单位净值,用于表示基金的净值
m_dPreBalance float 期初权益,指期初时账户的资金金额
m_dBalance float 总资产,表示账户的总资金金额
m_dAvailable float 可用金额,指账户中可用于交易和提取的资金金额
m_dCommission float 手续费 (旧版本为 m_dComission)
m_dPositionProfit float 持仓盈亏,指当前持有的证券或期货合约的盈亏金额
m_dCloseProfit float 平仓盈亏,在期货交易中表示已经平仓的交易的盈亏金额
m_dCashIn float 出入金净值,表示账户中出入金的净额
m_dCurrMargin float 当前使用的保证金金额
m_dInitBalance float 初始权益,指账户初始时的权益金额
m_strStatus str 状态,表示账户的当前状态
m_dInitCloseMoney float 期初平仓盈亏,指账户初始时的平仓盈亏金额
m_dInstrumentValue float 总市值,表示持有的证券或期货合约的总市值
m_dDeposit float 入金,指账户中的入金金额
m_dWithdraw float 出金,指账户中的出金金额
m_dPreCredit float 上次信用额度,用于表示上次的信用额度
m_dPreMortgage float 上次质押,指上次的质押金额
m_dMortgage float 质押,指当前的质押金额
m_dCredit float 信用额度,表示账户的信用额度
m_dAssetBalance float 证券初始资金,表示股票账户的初始资金
m_strOpenDate str 起始日期,表示账户的起始日期
m_dFetchBalance float 可取金额,指账户中可取出的金额
m_strTradingDate str 交易日,表示当前的交易日期
m_dStockValue float 股票总市值,表示股票账户中持有的股票的总市值
m_dLoanValue float 债券总市值,表示账户中持有的债券的总市值
m_dFundValue float 基金总市值,包括ETF和封闭式基金在内的基金的总市值
m_dRepurchaseValue float 回购总市值,表示账户中持有的所有回购交易的总市值
m_dLongValue float 多单总市值,指现货账户中多单持仓的总市值
m_dShortValue float 空单总市值,指现货账户中空单持仓的总市值
m_dNetValue float 净持仓总市值,指现货账户中多单总市值减去空单总市值的差额
m_dAssureAsset float 净资产,表示账户的净资产金额
m_dTotalDebit float 总负债,表示账户的总负债金额
m_dEntrustAsset float 可信资产,用于校对账户资金的准确性
m_dInstrumentValueRMB float 总市值(人民币),指沪港通账户中的持仓证券的总市值
m_dSubscribeFee float 申购费,指申购基金时支付的费用
m_dGoldValue float 库存市值,表示黄金现货账户中黄金库存的市值
m_dGoldFrozen float 现货冻结,表示黄金现货账户中被冻结的黄金金额
m_dMargin float 占用保证金,用于维持保证金
m_strMoneyType str 币种,表示账户的资金所使用的货币种类
m_dPurchasingPower float 购买力,指账户可用于购买投资品的金额
m_dRawMargin float 原始保证金,指期货账户中的原始保证金金额
m_dBuyWaitMoney float 买入待交收金额(元),指账户中买入股票但尚未交收的金额
m_dSellWaitMoney float 卖出待交收金额(元),指账户中卖出股票但尚未交收的金额
m_dReceiveInterestTotal float 本期间应计利息,指账户本期间内应计的利息金额
m_dRoyalty float 权利金收支,指期货期权交易中的权利金收支金额
m_dFrozenRoyalty float 冻结权利金,指期货期权交易中被冻结的权利金金额
m_dRealUsedMargin float 实时占用保证金,用于股票期权交易中表示实时占用的保证金金额
m_dRealRiskDegree float 实时风险度,用于股票期权交易中表示实时的风险度
Order - 委托对象
字段 数据类型 解释
m_strAccountID str 资金账号,账号,账号,资金账号
m_strExchangeID str 证券市场
m_strExchangeName str 交易市场
m_strProductID str 品种代码
m_strProductName str 品种名称
m_strInstrumentID str 证券代码
m_strInstrumentName str 证券名称,合约名称
m_nRef int 订单编号
m_strOrderRef str 内部委托号,下单引用等于股票的内部委托号
m_nOrderPriceType int EBrokerPriceType 类型,例如市价单、限价单
m_nDirection int EEntrustBS 类型,操作,多空,期货多空,股票买卖永远是 48,其他的 dir 同理
m_nOffsetFlag int EOffset_Flag_Type类型,买卖/开平,用此字段区分股票买卖,期货开、平仓,期权买卖等
m_nHedgeFlag int EHedge_Flag_Type 类型,投保
m_dLimitPrice float 委托价格,限价单的限价,即报价
m_nVolumeTotalOriginal int 委托数量,最初的委托数量
m_nOrderSubmitStatus int EEntrustSubmitStatus 类型,报单状态,提交状态,股票中不需要报单状态
m_strOrderSysID str 合同编号,委托号
m_nOrderStatus int EEntrustStatus,委托状态
m_nVolumeTraded int 成交数量,已成交量
m_nVolumeTotal int 委托剩余量,当前总委托量,股票中表示总委托量减去成交量
m_nErrorID int 状态ID
m_strErrorMsg str 状态信息
m_nTaskId int 任务号
m_dFrozenMargin float 冻结金额,冻结保证金
m_dFrozenCommission float 冻结手续费
m_strInsertDate str 委托日期,报单日期
m_strInsertTime str 委托时间
m_dTradedPrice float 成交均价(股票)
m_dCancelAmount float 已撤数量
m_strOptName str 买卖标记,展示委托属性的中文
m_dTradeAmount float 成交金额,期货的计算方式为均价乘以数量乘以合约乘数
m_eEntrustType int EEntrustTypes,委托类别
m_strCancelInfo str 废单原因
m_strUnderCode str 标的证券代码
m_eCoveredFlag int 备兑标记,'0’表示非备兑,'1’表示备兑
m_dOrderPriceRMB float 委托价格(人民币),目前用于港股通
m_dTradeAmountRMB float 成交金额(人民币),目前用于港股通
m_dReferenceRate float 汇率,目前用于港股通
m_strCompactNo str 合约编号
m_eCashgroupProp int EXTCompactBrushSource类型,头寸来源
m_dShortOccupedMargin float 预估在途占用保证金,用于期权
m_strXTTrade str 是否是迅投交易
m_strAccountKey str 账号key,唯一区别不同账号的key
m_strRemark str 投资备注
Deal - 成交对象
字段 数据类型 解释
m_strAccountID str 资金账号
m_strExchangeID str 证券市场
m_strExchangeName str 交易市场
m_strProductID str 品种代码
m_strProductName str 品种名称
m_strInstrumentID str 证券代码
m_strInstrumentName str 证券名称
m_strTradeID str 成交编号
m_strOrderRef str 下单引用,等于股票的内部委托号
m_strOrderSysID str 合同编号,报单编号,委托号
m_nDirection int EEntrustBS,买卖方向 对于股票该值始终是48
m_nOffsetFlag int EOffset_Flag_Type,买卖/开平,用此字段区分股票买卖,期货开、平仓,期权买卖等
m_nHedgeFlag int EHedge_Flag_Type 类型,投保
m_dPrice float 成交均价
m_nVolume int 成交量,期货单位手,股票做到股
m_strTradeDate str 成交日期
m_strTradeTime str 成交时间
m_dCommission float 手续费 (旧版本为 m_dComission)
m_dTradeAmount float 成交额,期货 = 均价 * 量 * 合约乘数
m_nTaskId int 任务号
m_nOrderPriceType int EBrokerPriceType 类型,例如市价单、限价单
m_strOptName str 买卖标记,展示委托属性的中文
m_eEntrustType int EEntrustTypes,委托类别
m_eFutureTradeType int EFutureTradeType 类型,成交类型
m_nRealOffsetFlag int EOffset_Flag_Type 类型,实际开平,主要是区分平今和平昨
m_eCoveredFlag int ECoveredFlag类型,备兑标记 '0' - 非备兑,'1' - 备兑
m_nCloseTodayVolume int 平今量,不显示
m_dOrderPriceRMB float 委托价格(人民币),目前用于港股通
m_dPriceRMB float 成交价格(人民币),目前用于港股通
m_dTradeAmountRMB float 成交金额(人民币),目前用于港股通
m_dReferenceRate float 汇率,目前用于港股通
m_strXTTrade str 是否是迅投交易
m_strCompactNo str 合约编号
m_dCloseProfit float 平仓盈亏,目前用于外盘
m_strRemark str 投资备注
m_strAccountKey str 账号key,唯一区别不同账号的key
m_nRef int 订单编号
Position - 持仓对象
字段名 数据类型 含义
m_strAccountID string 资金账号
m_strExchangeID string 证券市场
m_strExchangeName string 市场名称
m_strProductID string 品种代码
m_strProductName string 品种名称
m_strInstrumentID string 证券代码
m_strInstrumentName string 证券名称
m_nHedgeFlag int EHedge_Flag_Type 类型,投保 ,股票不适用
m_nDirection int EEntrustBS,买卖方向 对于股票该值始终是48
m_strOpenDate string 开仓日期 股票此字段无效
m_strTradeID string 成交号,最初开仓位的成交
m_nVolume int 当前拥股/持仓量
m_dOpenPrice float 持仓成本 ;持仓成本 = (总买入金额 - 总卖出金额) / 剩余数量
m_strTradingDay string 在实盘运行中是当前交易日,在回测中是股票最后交易过的日期
m_dMargin float 使用的保证金,历史的直接用ctp的,新的自己用成本价存量系数算,股票不适用
m_dOpenCost float 开仓成本,等于成本价*第一次建仓的量,后续减持会影响,不算手续费,股票不适用
m_dSettlementPrice float 最新结算价/当前价
m_nCloseVolume int 平仓量(对于股票不适用)
m_dCloseAmount float 平仓额(对于股票不适用)
m_dFloatProfit float 浮动盈亏
m_dCloseProfit float 平仓盈亏(对于股票不适用)
m_dMarketValue float 市值/合约价值
m_dPositionCost float 持仓成本(对于股票不适用)
m_dPositionProfit float 持仓盈亏(对于股票不适用)
m_dLastSettlementPrice float 最新结算价(对于股票不适用)
m_dInstrumentValue float 合约价值(对于股票不适用)
m_bIsToday bool 是否今仓
m_strStockHolder string 股东账号
m_nFrozenVolume int 冻结数量
m_nCanUseVolume int 可用数量
m_nOnRoadVolume int 在途股份
m_nYesterdayVolume int 昨夜拥股
m_dLastPrice float 最新价/当前价
m_dAvgOpenPrice float 开仓均价(对于股票不适用)
m_dProfitRate float 盈亏比例
m_eFutureTradeType int EFutureTradeType 类型,成交类型
m_strExpireDate string 到期日(针对逆回购)
m_strComTradeID string 组合成交号
m_nLegId int 组合序号
m_dTotalCost float 累计成本(自定义,股票信用用到)
m_dSingleCost float 单股成本(自定义,股票信用用
m_nCoveredVolume int 备兑数量,用于个股期权
m_eSideFlag int 持仓类型 ,用于个股期权,标记 '0' - 权利,'1' - 义务,'2' - '备兑'
m_dReferenceRate float 汇率,目前用于港股通
m_dStructFundVol float 分级基金可用(可分拆或可合并)
m_dRedemptionVolume float 分级基金可赎回量
m_nPREnableVolume int 申赎可用量(记录当日申购赎回的股票或基金数量)
m_dRealUsedMargin float 实时占用保证金,用于期权
m_dRoyalty float 权利金
m_dStockLastPrice float 标的证券最新价,用于期权
m_dStaticHoldMargin float 静态持仓占用保证金,用于期权
m_nOptCombUsedVolume int 期权组合占用数量
m_nEnableExerciseVolume int 能够行使的数量,用于个股期权
m_strAccountKey string 账号key,唯一区别不同账号的key
PositionStatistics - 持仓统计对象
字段名 数据类型 描述
m_strAccountID string 账号
m_strExchangeID string 市场代码
m_strExchangeName string 市场名称
m_strProductID string 品种代码
m_strInstrumentID string 合约代码
m_strInstrumentName string 合约名称
m_nDirection int 多空
m_nHedgeFlag int 投保
m_nPosition int 持仓
m_nYestodayPosition int 昨仓
m_nTodayPosition int 今仓
m_nCanCloseVol int 可平
m_dPositionCost float 持仓成本
m_dAvgPrice float 持仓均价
m_dPositionProfit float 持仓盈亏
m_dFloatProfit float 浮动盈亏
m_dOpenPrice float 开仓均价
m_dUsedMargin float 已使用保证金
m_dUsedCommission float 已使用的手续费
m_dFrozenMargin float 冻结保证金
m_dFrozenCommission float 冻结手续费
m_dInstrumentValue float 市值,合约价值
m_nOpenTimes int 开仓次数
m_nOpenVolume int 总开仓量 中间平仓不减
m_nCancelTimes int 撤单次数
m_dLastPrice float 最新价
m_dRiseRatio float 当日涨幅
m_strProductName string 产品名称
m_dRoyalty float 权利金市值
m_strExpireDate string 到期日
m_dAssestWeight float 资产占比
m_dIncreaseBySettlement float 当日涨幅(结)
m_dMarginRatio float 保证金占比
m_dFloatProfitDivideByUsedMargin float 浮盈比例(保证金)
m_dFloatProfitDivideByBalance float 浮盈比例(动态权益)
m_dTodayProfitLoss float 当日盈亏(结)
m_nYestodayInitPosition int 昨日持仓
m_dFrozenRoyalty float 冻结权利金
m_dTodayCloseProfitLoss float 当日盈亏(收)
m_dCloseProfit float 平仓盈亏
m_strFtProductName string 品种名称
m_dOpenCost float 开仓成本
CCreditAccountDetail - 信用账号对象(非查柜台)
字段名 数据类型 解释
m_strAccountID str 资金账号
m_nBrokerType int 账号类型,1-期货账号,2-股票账号,3-信用账号,5-期货期权账号,6-股票期权账号,7-沪港通账号,11-深港通账号
m_strAccountKey str 唯一区别不同账号的key
m_dMaxMarginRate float 保证金比率,股票的保证金率等于1
m_dFrozenMargin float 冻结保证金,外源性,股票的保证金就是冻结资金,股票不适用
m_dFrozenCash float 冻结金额,内外源冻结保证金和手续费四个的和
m_dFrozenCommission float 冻结手续费,外源性冻结资金源
m_dRisk float 风险度,冻结资金/可用资金
m_dNav float 单位净值
m_dPreBalance float 期初权益,也叫静态权益,股票不适用
m_dBalance float 总资产,动态权益,即市值
m_dAvailable float 可用金额
m_dCommission float 手续费(旧版本为 m_dComission)
m_dPositionProfit float 持仓盈亏
m_dCloseProfit float 平仓盈亏,股票不适用
m_dCashIn float 出入金净值
m_dCurrMargin float 当前使用的保证金,股票不适用
m_dInitBalance float 初始权益
m_strStatus str 状态
m_dInitCloseMoney float 期初平仓盈亏,初始平仓盈亏
m_dInstrumentValue float 总市值,合约价值,合约价值
m_dDeposit float 入金
m_dWithdraw float 出金
m_dPreCredit float 上次信用额度,股票不适用
m_dPreMortgage float 上次质押,股票不适用
m_dMortgage float 质押,股票不适用
m_dCredit float 信用额度,股票不适用
m_dAssetBalance float 证券初始资金,股票不适用
m_strOpenDate str 起始日期股票不适用
m_dFetchBalance float 可取金额
m_strTradingDate str 交易日
m_dStockValue float 股票总市值,期货没有
m_dLoanValue float 债券总市值,期货没有
m_dFundValue float 基金总市值,包括 ETF 和封闭式基金,期货没有
m_dRepurchaseValue float 回购总市值,所有回购,期货没有
m_dLongValue float 多单总市值,现货没有
m_dShortValue float 单总市值,现货没有
m_dNetValue float 净持仓总市值,净持仓市值 = 多 - 空
m_dAssureAsset float 净资产
m_dEntrustAsset float 可信资产,用于校对
m_dInstrumentValueRMB float 总市值(人民币),沪港通
m_dSubscribeFee float 申购费,申购费
m_dGoldValue float 库存市值,黄金现货库存市值
m_dGoldFrozen float 现货冻结,黄金现货冻结
m_dMargin float 占用保证金,维持保证金
m_strMoneyType str 币种
m_dPurchasingPower float 购买力,盈透购买力
m_dRawMargin float 原始保证金
m_dBuyWaitMoney float 买入待交收金额(元),买入待交收
m_dSellWaitMoney float 卖出待交收金额(元),卖出待交收
m_dReceiveInterestTotal float 本期间应计利息
m_dRoyalty float 权利金收支,期货期权用
m_dFrozenRoyalty float 冻结权利金,期货期权用
m_dRealUsedMargin float 实时占用保证金,用于股票期权
m_dRealRiskDegree float 实时风险度
m_dPerAssurescaleValue float 个人维持担保比例
m_dEnableBailBalance float 可用保证金
m_dUsedBailBalance float 已用保证金
m_dAssureEnbuyBalance float 可买担保品资金
m_dFinEnbuyBalance float 可买标的券资金
m_dSloEnrepaidBalance float 可还券资金
m_dFinEnrepaidBalance float 可还款资金
m_dFinMaxQuota float 融资授信额度
m_dFinEnableQuota float 融资可用额度
m_dFinUsedQuota float 融资已用额度
m_dFinUsedBail float 融资已用保证金额
m_dFinCompactBalance float 融资合约金额
m_dFinCompactFare float 融资合约费用
m_dFinCompactInterest float 融资合约利息
m_dFinMarketValue float 融资市值
m_dFinIncome float 融资合约盈亏
m_dSloMaxQuota float 融券授信额度
m_dSloEnableQuota float 融券可用额度
m_dSloUsedQuota float 融券已用额度
m_dSloUsedBail float 融券已用保证金额
m_dSloCompactBalance float 融券合约金额
m_dSloCompactFare float 融券合约费用
m_dSloCompactInterest float 融券合约利息
m_dSloMarketValue float 融券市值
m_dSloIncome float 融券合约盈亏
m_dOtherFare float 其它费用
m_dUnderlyMarketValue float 标的证券市值
m_dFinEnableBalance float 可融资金额
m_dDiffEnableBailBalance float 可用保证金调整值
m_dBuySecuRepayFrozenMargin float 买券还券冻结资金
m_dBuySecuRepayFrozenCommission float 买券还券冻结手续费
m_dSpecialEnableBalance float 专项可融金额
m_dEncumberedAssets float 担保资产
m_dSloSellBalance float 融券卖出资金
m_dDiffAssureEnbuyBalance float 可买担保品资金调整值
m_dDiffFinEnbuyBalance float 可买标的券资金调整值
m_dDiffFinEnrepaidBalance float 可还款资金调整值
m_dOtherRealCompactBalance float 其他负债合约金额
m_dOtherFinCompactInterest float 其他负债合约利息金额
m_dUsedSloSellBalance float 已用融券卖出资金
m_dFetchAssetBalance float 可提出资产总额
m_dTotalEnableQuota float 可用总信用额度
m_dTotalUsedQuota float 已用总信用额度
m_dDebtProfit float 负债总浮盈
m_dDebtLoss float 负债总浮亏
m_nContractEndDate int 合同到期日期
m_dFinDebt float 融资负债
m_dFinProfitAmortized float 融资浮盈折算
m_dSloProfit float 融券浮盈
m_dSloProfitAmortized float 融券浮盈折算
m_dFinLoss float 融资浮亏
m_dSloLoss float 融券浮亏
CCreditDetail - 两融资金信息(查柜台)
字段名 数据类型 解释
m_dPerAssurescaleValue float 维持担保比例
m_dBalance float 总资产
m_dTotalDebt float 总负债
m_dAssureAsset float 净资产
m_dMarketValue float 总市值
m_dEnableBailBalance float 可用保证金
m_dAvailable float 可用资金
m_dFinDebt float 融资负债
m_dFinDealAvl float 融资本金
m_dFinFee float 融资息费
m_dSloDebt float 融券负债
m_dSloMarketValue float 融券市值
m_dSloFee float 融券息费
m_dOtherFare float 其它费用
m_dFinMaxQuota float 融资授信额度
m_dFinEnableQuota float 融资可用额度
m_dFinUsedQuota float 融资冻结额度
m_dSloMaxQuota float 融券授信额度
m_dSloEnableQuota float 融券可用额度
m_dSloUsedQuota float 融券冻结额度
m_dSloSellBalance float 融券卖出资金
m_dUsedSloSellBalance float 已用融券卖出资金
m_dSurplusSloSellBalance float 剩余融券卖出资金
m_dStockValue float 股票市值
m_dFundValue float 基金市值
error string 错误信息
CreditSloEnableAmount - 可融券明细对象
提示
由于字段m_dSloRatio、m_dSloStatus提供来源和取担保品明细get_assure_contract重复,字段在2021年9月移除,后续用担保品明细接口获取,具体见 担保标的对象字段说明
字段名 数据类型 解释
m_nPlatformID int 平台号
m_strBrokerID string 经纪公司编号
m_strBrokerName string 经纪公司
m_strAccountID string 资金账号
m_strExchangeID string 交易所
m_strInstrumentID string 证券代码
m_nEnableAmount int 融券可融数量
m_eQuerySloType enum EXTSloTypeQueryMode,查询类型
StkCompacts - 负债合约对象
字段名 数据类型 解释
m_strAccountID string 资金账号,账号,账号,资金账号
m_strExchangeID string 交易所
m_strInstrumentID string 证券代码
m_strExchangeName string 交易所名称
m_strInstrumentName string 股票名称
m_nOpenDate int 合约开仓日期
m_strCompactId string 合约编号
m_dCrdtRatio float 融资融券保证金比例
m_strEntrustNo string 委托编号
m_dEntrustPrice float 委托价格
m_nEntrustVol int 委托数量
m_nBusinessVol int 合约开仓数量
m_dBusinessBalance float 合约开仓金额
m_dBusinessFare float 合约开仓费用
m_eCompactType enum EXTCompactType,合约类型
m_eCompactStatus enum EXTCompactStatus,合约状态
m_dRealCompactBalance float 未还合约金额
m_nRealCompactVol int 未还合约数量
m_dRealCompactFare float 未还合约费用
m_dRealCompactInterest float 未还合约利息
m_dRepaidInterest float 已还利息
m_nRepaidVol int 已还数量
m_dRepaidBalance float 已还金额
m_dCompactInterest float 合约总利息
m_dUsedBailBalance float 占用保证金
m_dYearRate float 合约年利率
m_nRetEndDate int 归还截止日
m_strDateClear string 了结日期
m_strPositionStr string 定位串
m_dPrice float 最新价
m_nOpenTime int 合约开仓时间
m_nCancelVol int 合约撤单数量
m_eCashgroupProp enum EXTCompactBrushSource,头寸来源
m_dUnRepayBalance float 负债金额
m_nRepayPriority int 偿还优先级
m_dRealDefaultInterest float 未还罚息
m_dOtherRealCompactBalance float 其他负债合约金额
m_dOtherRealCompactInterest float 其他负债合约利息金额
StkSubjects - 担保标的对象
字段名 数据类型 解释
m_nPlatformID int 平台号//目前主要用于区别不同的行情,根据此来选择对应行情
m_strBrokerID string 经纪公司编号
m_strBrokerName string 经纪公司名称
m_strExchangeID string 交易所
m_strInstrumentID string 证券代码
m_dSloRatio float 融券保证金比例
m_eSloStatus enum EXTSubjectsStatus,融券状态
m_dFinRatio float 融资保证金比例
m_eFinStatus enum EXTSubjectsStatus,融资状态
m_strAccountID string 资金账号
m_eCreditFundCtl enum EXTCreditFundCtl,融资交易控制
m_eCreditStkCtl enum EXTCreditStkCtl,融券交易控制
m_eAssureStatus enum EXTSubjectsStatus,是否可做担保
m_dAssureRatio float 担保品折算比例
PassorderArguments - 下单函数参数对象
字段名 数据类型 解释
opType int passorder的opType参数
orderType int passorder的orderType参数
accountID string 资金账号
orderCode string 交易代码
prType int passorder的prType,价格类型
modelPrice float 下单价格
modelVolume int 下单量(手数或股数)
strategyName string 策略名 _ &&& _ 投资备注
CTaskDetail - 任务对象
字段名 数据类型 解释
m_nTaskId int 任务号
m_eStatus enum 任务状态 ETaskStatus类型,见ETaskStatus说明
m_strMsg string 任务状态消息
m_startTime int 任务开始时间, 时间戳类型
m_endTime int 任务结束时间, 时间戳类型
m_cancelTime int 任务取消时间
m_nBusinessNum int 已成交量
m_nGroupId int 组合Id
m_stockCode string 下单代码(不针对组合下单)
m_strAccountID string 下单用户(单用户下单)
m_eOperationType enum 下单操作:开平、多空……EOperationType类型, 见EOperationType说明
m_eOrderType enum 算法交易、普通交易 EOrderType类型, 见EOrderType说明
m_ePriceType enum 报价方式:对手、最新…… EPriceType类型见EPriceType说明
m_dFixPrice float 委托价
m_nNum int 委托量
m_strRemark string 投资备注
CLockPosition - 期权标的持仓
字段名 数据类型 解释
m_strAccountID string 账号名
m_strExchangeID string 交易所
m_strExchangeName string 交易所名
m_strInstrumentID string 标的代码
m_strInstrumentName string 标的名称
m_totalVol int 总持仓量
m_lockVol int 可用锁定量
m_unlockVol int 未锁定量
m_coveredVol int 备兑量
m_nOnRoadcoveredVol int 在途备兑量
CStkOptCombPositionDetail - 期权组合持仓
字段名 数据类型 解释
m_strAccountID string 账号名
m_strExchangeID string 交易所
m_strExchangeName string 交易所名
m_strContractAccount string 合约账号
m_strCombID string 组合编号
m_strCombCode string 组合策略编码
m_strCombCodeName string 组合策略名称
m_nVolume int 持仓量
m_nFrozenVolume int 冻结数量
m_nCanUseVolume int 可用数量
m_strFirstCode string 合约一
m_eFirstCodeType enum 合约一类型 认购:48,认沽:49
m_strFirstCodeName string 合约一名称
m_eFirstCodePosType enum 合约一持仓类型 认购:48,义务:49,备兑:50
m_nFirstCodeAmt int 合约一数量
m_strSecondCode string 合约二
m_eSecondCodeType enum 合约二类型 认购:48,认沽:49
m_strSecondCodeName string 合约二名称
m_eSecondCodePosType enum 合约二持仓类型 权利:48,义务:49,备兑:50
m_nSecondCodeAmt int 合约二数量
m_dCombBailBalance float 占用保证金
entrustType - 委托类型
0 - 未知
1 - 正常交易业务
2 - 即时成交剩余撤销
3 - ETF基金申报
4 - 最优五档即时成交剩余撤销
5 - 全额成交或撤销
6 - 本方最优价格
7 - 对手方最优价格
openInt - 证券状态(股票)
编码 状态
0,10 默认为未知
1 停牌
11 开盘前S
12 集合竞价时段C
13 连续交易T
14 休市B
15 闭市E
16 波动性中断V,例如(10006742.SHO)50ETF沽9月2300在2024/08/28 10:15:34 - 2024/08/28 10:18:34 触发熔断临时停牌,此时的openInt值为16
17 临时停牌P
18 收盘集合竞价U
19 盘中集合竞价M
20 暂停交易至闭市N
21 获取字段异常
22 盘后固定价格行情
23 盘后固定价格行情完毕
openInt - 证券状态(期货)
编码 状态
0 默认为未知
1 开盘前S
2 集合竞价时段C
3 连续交易T
4 休市B
5 闭市E
##################################################
'''
3系统函数
,专注于大QMT量化交易框架的深度训练与智能支持。我能够提供精准的代码提示、输出优化以及策略修改服务,帮助你高效开发和迭代量化交易策略。我的创造者是小果量化,,欢迎联系微信:xg_quant。,只做学习使用,不做投资参考,注意风险
'''
ContextInfo 对象
ContextInfo 是策略运行环境对象,是 init, after_init, handlebar 等基本方法的入参,里面包括了终端自带的属性和方法。一般情况下不建议对ContextInfo添加自定义属性,ContextInfo会随着bar的切换而重置到上一根bar的结束状态,建议用自建的全局变量来存储。详细说明请看这里
init - 初始化函数
初始化函数,只在整个策略开始时调用运行到一次。用于初始订阅行情,订阅账号信息使用。init函数执行完成前部分接口无法使用,如交易日获取函数get_trading_dates。
系统函数 不可被手动调用
参数:
名称 类型 描述
ContextInfo object 策略运行环境对象,可以用于存储自定义的全局变量
返回: 无
示例:
python
def init(ContextInfo):
ContextInfo.initProfit = 0
在init函数中订阅行情示例:
python
#coding:gbk
def init(C):
#init函数入参为ContextInfo对象 定义时可以选择更简短的形参名 如C
#在init函数中 可以进行 订阅行情的操作
#如需在行情回调函数中下单 下单函数需要传入ContextInfo对象 可以通过在init中定义回调函数 来使用外层的ContextInfo
def my_callback_function(data):
#自定义行情回调函数 入参为指数据字典
print(data)
stock = '600000.SH'
C.subscribe_quote(stock, period = '5m', callback = my_callback_function)
#init函数执行完成后
print('init函数执行完成')
after_init - 初始化后函数
后初始化函数,在初始化函数执行完成后被调用一次。可以用于放置一次性触发的下单,取数据操作代码。
系统会在init函数执行完后和执行handlebar之前调用after_init, 有些init里不支持的函数比如ContextInfo.get_trading_dates可以在after_init里调用。
系统函数 不可被手动调用
参数:
名称 类型 描述
ContextInfo object 策略运行环境对象,可以用于存储自定义的全局变量
返回: 无
示例:
python
#coding:gbk
def init(ContextInfo):
print('init')
def after_init(ContextInfo):
print('系统会在init函数执行完后和执行handlebar之前调用after_init')
def handlebar(ContextInfo):
if ContextInfo.is_last_bar():
print('handlebar')
after_init函数中立刻下单示例:
python
#coding:gbk
def after_init(C):
#after_init 函数 可以用于执行运行开始时 需要执行一次的代码 例如下一笔委托
#account变量是模型交易界面 添加策略时选择的资金账号 不需要手动填写 交易模型需要在模型交易界面运行 才有效
#快速交易参数(quickTrade )填2 passorder函数执行后立刻下单 不会等待k线走完再委托。 可以在after_init函数 run_time函数注册的回调函数里进行委托
msg = f"投资备注字符串 用来区分不同委托"
passorder(23, 1101, account, '600000.SH', 5, -1, 100, '测试下单', 2, msg, C)
handlebar - 行情事件函数
系统函数 不可被手动调用
释义: 行情事件函数,每根 K 线运行一次;实时行情获取状态下,先每根历史 K 线运行一次,再在每个 tick 数据来后驱动运行一次
历史k线上,按时间顺序每根K线触发一次调用;盘中,每个新到达的TICK数据驱动运行一次。可以作为行情驱动的函数,实现指标计算,回测,实盘下单的效果。
参数:
名称 类型 描述
ContextInfo object 策略运行环境对象,可以用于存储自定义的全局变量
返回: 无
示例:
def handlebar(ContextInfo):
# 输出当前运行到的 K 线的位置
print(ContextInfo.barpos)
ContextInfo.schedule_run - 设置定时器
说明
该函数是新版设置定时器函数,相比旧版run_time,新版schedule_run新增了任务分组,任务取消等多种功能
原型:
python
ContextInfo.schedule_run(
func:Callable, # 回调函数,到达定时器预定时间时触发调用,参数为ContextInfo类型,无需返回值
time_point:Union[dt.datetime,str], # 表示预定的第一次触发时间,如果设置定时器时已经过了预定时间,会立即执行func以及后续逻辑;当使用str类型时,格式为'yyyymmddHHMMSS'如'20231231235959',需要满足转换dt.datetime.strptime('20231231235959','%Y%m%d%H%M%S')
repeat_times:int=0, # 表示在预定时间触发后按interval间隔再触发多少次
interval:datetime.timedelta=None, # 表示预定时间触发后的后续重复执行的时间间隔
name:str='' # 定时器任务组名,可用于定时器分组,多次设置同名定时任务不会互相覆盖,会计入同一个任务组,按任务组名取消时会全部取消
)
参数:
名称 类型 描述
func Callable 回调函数,到达定时器预定时间时触发调用,参数为ContextInfo类型,无需返回值,定义示例如下:
def on_timer(C:ContextInfo): pass
time_point Union[datetime.datetime,str] 表示预定的第一次触发时间,如果设置定时器时已经过了预定时间,会立即执行func以及后续逻辑;
当使用str类型时,格式为'yyyymmddHHMMSS'如'20231231235959',需要满足转换datetime.datetime.strptime('20231231235959','%Y%m%d%H%M%S')
repeat_times int 表示在预定时间触发后按interval间隔再触发多少次,传-1表示不限制次数
interval datetime.timedelta 表示预定时间触发后的后续重复执行的时间间隔
name str 定时器任务组名,可用于定时器分组,多次设置同名定时任务不会互相覆盖,会计入同一个任务组,按任务组名取消时会全部取消
回调函数参数: ContextInfo:策略模型全局对象
返回值:
int类型,表示本次调用后生成的定时任务号,可用于取消本次定时任务,全局唯一不重复
示例:
python
import datetime as dt
def on_timer(C:ContextInfo):
print('hello world')
def init(ContextInfo):
tid=ContextInfo.schedule_run(on_timer,'20231231235959',-1,dt.timedelta(minutes=1),'my_timer')
def handlebar(ContextInfo):
pass
#此例为自2023-12-31 23:59:59后每60s运行一次on_timer
ContextInfo.cancel_schedule_run - 取消由schedule_run产生的定时任务
原型:
python
ContextInfo.cancel_schedule_run(
key:Union[seq:int,name:str] # 定时任务号或定时任务组名称
)
参数:
名称 类型 描述
key: Union[seq:int,name:str] 类型为int时,表示按任务号取消;类型为str时,表示按任务组取消,会取消组内所有定时任务
返回值:
bool类型,表示是否取消成功,即是否能按key找到目标定时任务
示例:
示例
ContextInfo.cancel_schedule_run('my_timer') #取消my_timer任务组所有定时任务
ContextInfo.cancel_schedule_run(1) #取消任务号为1的定时任务
ContextInfo.run_time - 设置定时器
设置定时器函数,可以指定时间间隔,定时触发用户定义的回调函数。适用与在盘中,持续判断交易信号的模型。
用法: ContextInfo.run_time(funcName,period,startTime) 定时触发指定的 funcName函数, funcName函数由用户定义, 入参为ContextInfo对象。
参数:
funcName:回调函数名
period:重复调用的时间间隔,'5nSecond'表示每5秒运行1次回调函数,'5nDay'表示每5天运行一次回调函数,'500nMilliSecond'表示每500毫秒运行1次回调函数
startTime:表示定时器第一次启动的时间,如果要定时器立刻启动,可以设置历史的时间
回调函数参数: ContextInfo:策略模型全局对象
示例:
python
import time
def init(ContextInfo):
ContextInfo.run_time("f","5nSecond","2019-10-14 13:20:00")
def f(ContextInfo):
print('hello world')
#此例为自2019-10-14 13:20:00后每5s运行一次函数f
注意
模型回测时无效
定时器没有结束方法,会随着策略的结束而结束。
period有nMilliSecond、nSecond和Day三个周期单元,部分周期下定时器函数在第一次运行之前会先等待一个period
stop - 停止处理函数
系统函数 不可被手动调用
释义: PY策略模型关闭停止前运行到的函数,复杂策略模型,如中间有起线程可通过在该函数内实现停止线程操作。注意, 当前版本stop函数被调用时交易连接已断开, 不能在stop函数中做报单 / 撤单操作.
参数:
名称 类型 描述
ContextInfo object 策略运行环境对象,可以用于存储自定义的全局变量
示例:
python
def stop(ContextInfo):
print( 'strategy is stop !')
ContextInfo.is_last_bar - 是否为最后一根K线
用法: ContextInfo.is_last_bar()
释义: 判定是否为最后一根 K 线
参数: 无
返回: bool,返回值含义:True 是右侧最新k线 False不是最新k线
True:是
False:否
示例:
pythonresult
def handlebar(ContextInfo):
print(ContextInfo.is_last_bar())
ContextInfo.is_new_bar - 判定是否为新的 K 线
用法: ContextInfo.is_new_bar()
释义: 某根 K 线的第一个 tick 数据到来时,判定该 K 线为新的 K 线,其后的tick不会认为是新的 K 线
参数: 无
返回: bool,返回值含义:
True:是
False:否
示例:
pythonresult
def handlebar(ContextInfo):
print(ContextInfo.is_new_bar()) #历史k线每根都是新k线 盘中 每根新k线第一个分笔返回True 其他分笔返回False
ContextInfo.get_stock_name - 根据代码获取名称
注意
我们计划后续版本抛弃这个函数,不建议继续使用,可以用ContextInfo.get_instrument_detail("stockcode")["InstrumentName"]来实现同样功能
用法: ContextInfo.get_stock_name('stockcode')
释义: 根据代码获取名称
参数: stockcode:股票代码,如'000001.SZ',缺省值 ' ' 默认为当前图代码
返回: string(GBK编码)
示例:
示例返回值
def handlebar(ContextInfo):
print(ContextInfo.get_stock_name('000001.SZ'))
ContextInfo.get_open_date - 根据代码返回对应股票的上市时间
用法: ContextInfo.get_open_date('stockcode')
释义: 根据代码返回对应股票的上市时间
参数: stockcode:股票代码,如'000001.SZ',缺省值 ' ' 默认为当前图代码
返回: number
示例:
pythonresult
def init(ContextInfo):
print(ContextInfo.get_open_date('000001.SZ'))
ContextInfo.set_output_index_property - 设定指标绘制的属性
用法: ContextInfo.set_output_index_property(index_name,draw_style=0,color='white',noaxis=False,nodraw=False,noshow=False)
释义: 设定指标绘制的属性,会最终覆盖掉指标对应的属性字段
参数:
index_name:string,指标名称,不可缺省
draw_style,同paint函数的drawstyle,可缺省默认为0
color,同paint函数的color,可缺省默认为'white'
noaxis:bool,是否无坐标,可缺省默认为False
nodraw:bool,是否不画线,可缺省默认为False
noshow:bool,是否不展示,可缺省默认为False
返回: 无
示例:
pythonpythonresult
def init(ContextInfo):
ContextInfo.set_output_index_property('单位净值', nodraw = True)#使回测指标'单位净值'不画线
create_sector - 创建板块
用法: create_sector(parent_node,sector_name,overwrite)
释义: 创建板块
参数:
parent_node:str,父节点,''为'我的'(默认目录)
sector_name:str,要创建的板块名
overwrite:bool,是否覆盖。如果目标节点已存在,为True时跳过,为False时在sector_name后增加数字编号,编号为从1开始自增的第一个不重复的值。
返回: sector_name2:实际创建的板块名
示例:
create_sector_folder - 创建板块目录节点
用法: create_sector_folder(parent_node,folder_name,overwrite)
释义: 创建板块目录节点
参数:
parent_node:str,父节点,''为'我的'(默认目录)
sector_name:str,要创建的节点名
overwrite:bool,是否覆盖。如果目标节点已存在,为True时跳过,为False时在folder_name后增加数字编号,编号为从1开始自增的第一个不重复的值。
返回: sector_name2:实际创建的节点名
示例:
pythonresult
folder=create_sector_folder('我的','新建分类',False)
get_sector_list - 获取板块目录信息
用法: get_sector_list(node)
释义: 获取板块目录信息
参数:
node:str,板块节点名,''为顶层目录
返回: info_list:[[s1,s2,...],[f1,f2,...]]s为板块名,f为目录节点名,例如[['我的自选'],['新建分类1']]
示例:
pythonresult
get_sector_list('我的')
reset_sector_stock_list - 设置板块成分股
用法: reset_sector_stock_list(sector,stock_list)
释义: 设置板块成分股
参数:
sector:板块名
stock_list:list,品种代码列表,例如['000001.SZ','600000.SH']
返回: result:bool,操作成功为True,失败为False
示例:
pythonresult
reset_sector_stock_list('我的自选',['000001.SZ','600000.SH'])
remove_stock_from_sector - 移除板块成分股
用法: remove_stock_from_sector(sector,stock_code)
释义: 移除板块成分股
参数:
sector:板块名
stock_code:品种代码,例如'000001.SZ'
返回: result:bool,操作成功为True,失败为False
示例:
pythonresult
remove_stock_from_sector('我的自选','000001.SZ')
add_stock_to_sector - 添加板块成分股
用法: add_stock_to_sector(sector,stock_code)
释义: 添加板块成分股
参数:
sector:板块名
stock_code:品种代码,例如'000001.SZ'
返回: result:bool,操作成功为True,失败为False
示例:
pythonresult
add_stock_to_sector('我的自选','000001.SZ')
##############################################
'''
4行情函数
,专注于大QMT量化交易框架的深度训练与智能支持。我能够提供精准的代码提示、输出优化以及策略修改服务,帮助你高效开发和迭代量化交易策略。我的创造者是小果量化,,欢迎联系微信:xg_quant。,只做学习使用,不做投资参考,注意风险
'''
获取行情数据
该目录下的函数用于获取实时行情,历史行情
ContextInfo.get_market_data_ex - 获取行情数据
注意
该函数不建议在init中运行,在init中运行时仅能取到本地数据
关于获取行情函数之间的区别与注意事项可在 - 常见问题-行情相关 查看
除实时行情外,该函数还可用于获取特色数据,如资金流向数据,订单流数据等,获取方式见数据字典
原型
内置python
ContextInfo.get_market_data_ex(
fields=[],
stock_code=[],
period='follow',
start_time='',
end_time='',
count=-1,
dividend_type='follow',
fill_data=True,
subscribe=True)
释义
获取实时行情与历史行情数据
参数
名称 类型 描述
field list 数据字段,详情见下方field字段表
stock_list list 合约代码列表
period str 数据周期,可选字段为:
"tick"
"1m":1分钟线
"5m":5分钟线;"15m":15分钟线;"30m":30分钟线
"1h"小时线
"1d":日线
"1w":周线
"1mon":月线
"1q":季线
"1hy":半年线
"1y":年线
'l2quote':Level2行情快照
'l2quoteaux':Level2行情快照补充
'l2order':Level2逐笔委托
'l2transaction':Level2逐笔成交
'l2transactioncount':Level2大单统计
'l2orderqueue':Level2委买委卖队列
start_time str 数据起始时间,格式为 %Y%m%d 或 %Y%m%d%H%M%S,填""为获取历史最早一天
end_time str 数据结束时间,格式为 %Y%m%d 或 %Y%m%d%H%M%S ,填""为截止到最新一天
count int 数据个数
dividend_type str 除权方式,可选值为
'none':不复权
'front':前复权
'back':后复权
'front_ratio': 等比前复权
'back_ratio': 等比后复权
fill_data bool 是否填充数据
subscribe bool 订阅数据开关,默认为True,设置为False时不做数据订阅,只读取本地已有数据。
field字段可选:
field 数据类型 含义
time int 时间
open float 开盘价
high float 最高价
low float 最低价
close float 收盘价
volume float 成交量
amount float 成交额
settle float 今结算
openInterest float 持仓量
preClose float 前收盘价
suspendFlag int 停牌 1停牌,0 不停牌
period周期为tick时,field字段可选:
field 数据类型 含义
time int 时间
lastPrice float 最新价
lastClose float 前收盘价
open float 开盘价
high float 最高价
low float 最低价
close float 收盘价
volume float 成交量
amount float 成交额
settle float 今结算
openInterest float 持仓量
stockStatus int 停牌 1停牌,0 不停牌
period周期为Level2数据时,字段参考数据结构
返回值
返回dict { stock_code1 : value1, stock_code2 : value2, ... }
value1, value2, ... :pd.DataFrame 数据集,index为time_list,columns为fields,可参考Bar字段
各标的对应的DataFrame维度相同、索引相同
示例
示例data1返回值data2返回值data3返回值data4返回值历史tick期货五档盘口
# coding:gbk
import pandas as pd
import numpy as np
def init(C):
C.stock_list = ["000001.SZ","600519.SH", "510050.SH"]# 指定获取的标的
C.start_time = "20230901"# 指定获取数据的开始时间
C.end_time = "20231101"# 指定获取数据的结束时间
def handlebar(C):
# 获取多只股票,多个字段,一条数据
data1 = C.get_market_data_ex([],C.stock_list, period = "1d",count = 1)
# 获取多只股票,多个字段,指定时间数据
data2 = C.get_market_data_ex([],C.stock_list, period = "1d", start_time = C.start_time, end_time = C.end_time)
# 获取多只股票,多个字段,指定时间15m数据
data3 = C.get_market_data_ex([],C.stock_list, period = "15m", start_time = C.start_time, end_time = C.end_time)
# 获取多只股票,指定字段,指定时间15m数据
data4 = C.get_market_data_ex(["close","open"],C.stock_list, period = "15m", start_time = C.start_time, end_time = C.end_time)
# 获取多只股票,历史tick
tick = C.get_market_data_ex([],C.stock_list, period = "tick", start_time = C.start_time, end_time = C.end_time)
# 获取期货5档盘口tick
future_lv2_quote = C.get_market_data_ex([],["rb2405.SF","ec2404.INE"], period = "l2quote", count = 1)
print(data1)
print(data2["000001.SZ"].tail())
print(data3)
print(data4["000001.SZ"])
print(data4["000001.SZ"].to_csv("your_path")) # 导出文件为csv格式,路径填本机路径
print(tick["000001.SZ"])
print(future_lv2_quote)
ContextInfo.get_full_tick - 获取全推数据
提示
不能用于回测 只能取最新的分笔,不能取历史分笔
原型
内置python
ContextInfo.get_full_tick(stock_code=[])
释义
获取最新分笔数据
参数
名称 类型 描述
stock_code list[str] 合约代码列表,如['600000.SH','600036.SH'],不指定时为当前主图合约。
返回值 根据stock_code返回一个dict,该字典的key值是股票代码,其值仍然是一个dict,在该dict中存放股票代码对应的最新的数据。该字典数据key值参考tick字段
示例
示例返回值
# coding:gbk
import pandas as pd
import numpy as np
def init(C):
C.stock_list = ["000001.SZ","600519.SH", "510050.SH"]
def handlebar(C):
tick = C.get_full_tick(C.stock_list)
print(tick["510050.SH"])
ContextInfo.subscribe_quote - 订阅行情数据
提示
该函数属于订阅函数,非VIP用户限制订阅数量
VIP用户支持全推市场指定周期K线
VIP用户权限请参考vip-行情用户优势对比
原型
内置python
ContextInfo.subscribe_quote(
stock_code,
period='follow',
dividend_type='follow',
result_type='',
callback=None)
释义
订阅行情数据,关于订阅机制请参考运行机制对比
参数
字段名 数据类型 解释
stockcode string 股票代码,'stkcode.market',如'600000.SH'
period string K线周期类型
dividend_type string 除权方式,可选值为
'none':不复权
'front':前复权
'back':后复权
'front_ratio': 等比前复权
'back_ratio': 等比后复权
注意:分笔周期返回数据均为不复权
result_type string 返回数据格式,可选范围:<br>'DataFrame'或''(默认):返回{code:data},data为pd.DataFrame数据集,index为字符串格式的时间序列,columns为数据字段<br>'dict':返回{code:{k1:v1,k2:v2,...}},k为数据字段名,v为字段值<br>'list':返回{code:{k1:[v1],k2:[v2],...}},k为数据字段名,v为字段值
callback function 指定推送行情的回调函数
返回值
int:订阅号,用于反订阅
示例
示例返回值
# conding = gbk
def call_back(data):
print(data)
def init(C):
C.subID = C.subscribe_quote("000001.SZ","1d", callback = call_back)
def handlebar(C):
print("============================")
print("C.subID: ",C.subID)
ContextInfo.subscribe_whole_quote - 订阅全推数据
提示
内置python
ContextInfo.subscribe_whole_quote(code_list,callback=None)
释义
订阅全推数据,全推数据只有分笔周期,每次增量推送数据有变化的品种
参数
字段名 数据类型 解释
code_list list[str,...] 市场代码列表/品种代码列表,如 ['SH','SZ'] 或 ['600000.SH', '000001.SZ']
callback function 数据推送回调
返回值int,订阅号,可用ContextInfo.unsubscribe_quote做反订阅
示例返回值
# conding = gbk
def call_back(data):
print(data)
def init(C):
C.stock_list = ["000001.SZ","600519.SH", "510050.SH"]
C.subID = C.subscribe_whole_quote(C.stock_list,callback=call_back)
def handlebar(C):
print("============================")
print("C.subID: ",C.subID)
ContextInfo.unsubscribe_quote - 反订阅行情数据
原型
内置python
ContextInfo.unsubscribe_quote(subId)
释义
反订阅行情数据,配合ContextInfo.subscribe_quote()或ContextInfo.subscribe_whole_quote()使用
参数
字段名 数据类型 解释
subId int 行情订阅返回的订阅号
示例
示例
# conding = gbk
def call_back(data):
print(data)
def init(C):
C.stock_list = ["000001.SZ","600519.SH", "510050.SH"]
C.subID = C.subscribe_whole_quote(C.stock_list,callback=call_back)
def handlebar(C):
print("============================")
print("C.subID: ",C.subID)
if C.subID > 0:
C.unsubscribe_quote(C.subID) # 取消行情订阅
subscribe_formula - 订阅模型
原型
内置python
subscribe_formula(
formula_name,stock_code,period
,start_time="",end_time="",count=-1
,dividend_type="none"
,extend_param={}
,callback=None)
释义 订阅vba模型运行结果,使用前要注意补充本地K线数据或分笔数据
参数
字段名 类型 描述
formula_name str 模型名称名
stock_code str 模型主图代码形式如'stkcode.market',如'000300.SH'
period str K线周期类型,可选范围:'tick':分笔线,'1d':日线,'1m':分钟线,'3m':三分钟线,'5m':5分钟线,'15m':15分钟线,'30m':30分钟线,'1h':小时线,'1w':周线,'1mon':月线,'1q':季线,'1hy':半年线,'1y':年线
start_time str 模型运行起始时间,形如:'20200101',默认为空视为最早
end_time str 模型运行截止时间,形如:'20200101',默认为空视为最新
count int 模型运行范围为向前 count 根 bar,默认为 -1 运行所有 bar
dividend_type str 复权方式,默认为主图除权方式,可选范围:'none':不复权,'front':向前复权,'back':向后复权,'front_ratio':等比向前复权,'back_ratio':等比向后复权
extend_param dict 模型的入参,形如 {'a': 1, '__basket': {}}
__basket dict 可选参数,组合模型的股票池权重,形如 {'600000.SH': 0.06, '000001.SZ': 0.01}
返回值 分两块,
subscribe_formula返回模型的订阅号,可用于后续反订阅,失败返回 -1
callback:
timelist: 数据时间戳
outputs:模型的输出值,结构为{变量名:值}
示例
示例
#encoding=gbk
def callback(data):
print(data)
def init(ContextInfo):
basket={
'600000.SH':0.06,
'000001.SZ':0.01
}
argsDict={'a':100,'__basket':basket}
subID=subscribe_formula(
'单股模型示范','000300.SH','1d',
'20240101','20240201',-1,
"none",
argsDict,
callback
)
unsubscribe_formula - 反订阅模型
原型
内置python
unsubscribe_formula(subID)
释义 反订阅模型
参数
字段名 类型 描述
subID int 模型订阅号
返回值
bool:反订阅成功为True,失败为False
示例
示例
#encoding=gbk
def callback(data):
print(data)
def init(ContextInfo):
basket={
'600000.SH':0.06,
'000001.SZ':0.01
}
argsDict={'a':100,'__basket':basket}
subID=subscribe_formula(
'单股模型示范','000300.SH','1d',
'20240101','20240201',-1,
"none",
argsDict,
callback
)
unsubscribe_formula(subID)
call_formula - 调用模型
原型
内置python
call_formula(formula_name,stock_code,period,start_time="",end_time="",count=-1,dividend_type="none",extend_param={})
释义 获取vba模型运行结果,使用前要注意补充本地K线数据或分笔数据
参数
字段名 类型 描述
formula_name str 模型名称名
stock_code str 模型主图代码形式如'stkcode.market',如'000300.SH'
period str K线周期类型,可选范围:'tick':分笔线,'1d':日线,'1m':分钟线,'3m':三分钟线,'5m':5分钟线,'15m':15分钟线,'30m':30分钟线,'1h':小时线,'1w':周线,'1mon':月线,'1q':季线,'1hy':半年线,'1y':年线
start_time str 模型运行起始时间,形如:'20200101',默认为空视为最早
end_time str 模型运行截止时间,形如:'20200101',默认为空视为最新
count int 模型运行范围为向前 count 根 bar,默认为 -1 运行所有 bar
dividend_type str 复权方式,默认为主图除权方式,可选范围:'none':不复权,'front':向前复权,'back':向后复权,'front_ratio':等比向前复权,'back_ratio':等比向后复权
extend_param dict 模型的入参,{"模型名:参数名":参数值},例如在跑模型MA时,{'MA:n1':1};入参可以添加__basket:dict,组合模型的股票池权重,形如{'__basket':{'600000.SH':0.06,'000001.SZ':0.01}},如果在跑一个模型1的时候,模型1调用了模型2,如果只想修改模型2的参数可以传{'模型2:参数':参数值}
返回值 返回:dict{ 'dbt':0,#返回数据类型,0:全部历史数据 'timelist':[...],#返回数据时间范围list, 'outputs':{'var1':[...],'var2':[...]}#输出变量名:变量值list }
示例
示例
def handlebar(ContextInfo):
basket={'600000.SH':0.06,'000001.SZ':0.01}
argsDict={'a':100,'__basket':basket}
modelRet=call_formula('单股模型示范','000300.SH','1d','20240101','20240201',-1,"none",argsDict)
print(modelRet)
call_formula_batch - 批量调用模型
原型
内置python
call_formula_batch(formula_names,stock_codes,period,start_time="",end_time="",count=-1,dividend_type="none",extend_params=[])
释义 批量获取vba模型运行结果,使用前要注意补充本地K线数据或分笔数据
参数
字段名 类型 描述
formula_names list 包含要批量运行的模型名
stock_codes list 包含要批量运行的模型主图代码形式'stkcode.market',如'000300.SH'
period str K线周期类型,可选范围:'tick':分笔线,'1d':日线,'1m':分钟线,'3m':三分钟线,'5m':5分钟线,'15m':15分钟线,'30m':30分钟线,'1h':小时线,'1w':周线,'1mon':月线,'1q':季线,'1hy':半年线,'1y':年线
start_time str 模型运行起始时间,形如:'20200101',默认为空视为最早
end_time str 模型运行截止时间,形如:'20200101',默认为空视为最新
count int 模型运行范围为向前 count 根 bar,默认为 -1 运行所有 bar
dividend_type str 复权方式,默认为主图除权方式,可选范围:'none':不复权,'front':向前复权,'back':向后复权,'front_ratio':等比向前复权,'back_ratio':等比向后复权
extend_params list 包含每个模型的入参,[{"模型名:参数名":参数值}],例如在跑模型MA时,{'MA:n1':1};入参可以添加__basket:dict,组合模型的股票池权重,形如{'__basket':{'600000.SH':0.06,'000001.SZ':0.01}},如果在跑一个模型1的时候,模型1调用了模型2,如果只想修改模型2的参数可以传{'模型2:参数':参数值}
返回值
list[dict]
dict说明:
formula:模型名
stock:品种代码
argument:参数
result:dict参考call_formula返回结果
示例
示例
def handlebar(ContextInfo):
formulas=['testModel1','testModel2']
codes=['600000.SH','000001.SZ']
basket={'600000.SH':0.06,'000001.SZ':0.01}
args=[{'a':100,'__basket':basket},{'a':200,'__basket':basket}]
modelRet=call_formula_batch(formulas,codes,'1d',extend_params=args);
print(modelRet)
ContextInfo.get_svol - 根据代码获取对应股票的内盘成交量
原型
内置python
ContextInfo.get_svol(stockcode)
释义
根据代码获取对应股票的内盘成交量
参数
字段名 数据类型 解释
stockcode string 股票代码,如 '000001.SZ',缺省值'',默认为当前图代码
返回值int:内盘成交量
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
data = C.get_svol('000001.SZ')
print(data)
ContextInfo.get_bvol - 根据代码获取对应股票的外盘成交量
原型
内置python
ContextInfo.get_bvol(stockcode)
释义
根据代码获取对应股票的外盘成交量
参数
字段名 数据类型 解释
stockcode string 股票代码,如 '000001.SZ',缺省值'',默认为当前图代码
返回值
int:外盘成交量
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
data = C.get_bvol('000001.SZ')
print(data)
ContextInfo.get_turnover_rate - 获取换手率
提示
使用之前需要下载财务数据(在财务数据下载中)以及日线数据
如果不补充股本数据,将使用最新流通股本计算历史换手率,可能会造成历史换手率不正确
原型
内置python
ContextInfo.get_turnover_rate(stock_list,startTime,endTime)
释义
获取换手率
参数
字段名 数据类型 解释
stock_list list 股票列表,如['600000.SH','000001.SZ']
startTime string 起始时间,如'20170101'
endTime string 结束时间,如'20180101'
返回值
pandas.Dataframe
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
data = C.get_turnover_rate(['000002.SZ'],'20170101','20170301')
print(data)
ContextInfo.get_longhubang - 获取龙虎榜数据
原型
内置python
ContextInfo.get_longhubang(stock_list, startTime, endTime)
释义
获取龙虎榜数据
参数
参数名称 类型 描述
stock_list list 股票列表,如 ['600000.SH', '600036.SH']
startTime str 起始时间,如 '20170101'
endTime str 结束时间,如 '20180101'
返回值
格式为pandas.DataFrame:
参数名称 数据类型 描述
stockCode str 股票代码
stockName str 股票名称
date datetime 上榜日期
reason str 上榜原因
close float 收盘价
SpreadRate float 涨跌幅
TurnoverVolume float 成交量
Turnover_Amount float 成交金额
buyTraderBooth pandas.DataFrame 买方席位
sellTraderBooth pandas.DataFrame 卖方席位
buyTraderBooth 或 sellTraderBooth 包含字段:
参数名称 数据类型 描述
traderName str 交易营业部名称
buyAmount float 买入金额
buyPercent float 买入金额占总成交占比
sellAmount float 卖出金额
sellPercent float 卖出金额占总成交占比
totalAmount float 该席位总成交金额
rank int 席位排行
direction int 买卖方向
示例
示例返回值
# coding:gbk
def init(C):
return
def handlebar(C):
print(C.get_longhubang(['000002.SZ'],'20100101','20180101'))
ContextInfo.get_north_finance_change - 获取对应周期的北向数据
原型
内置python
ContextInfo.get_north_finance_change(period)
释义
获取对应周期的北向数据
参数
字段名 数据类型 描述
period str 数据周期
返回值
根据period返回一个dict,该字典的key值是北向数据的时间戳,其值仍然是一个dict,其值的key值是北向数据的字段类型,其值是对应字段的值。该字典数据key值有:
字段名 数据类型 描述
hgtNorthBuyMoney int HGT北向买入资金
hgtNorthSellMoney int HGT北向卖出资金
hgtSouthBuyMoney int HGT南向买入资金
hgtSouthSellMoney int HGT南向卖出资金
sgtNorthBuyMoney int SGT北向买入资金
sgtNorthSellMoney int SGT北向卖出资金
sgtSouthBuyMoney int SGT南向买入资金
sgtSouthSellMoney int SGT南向卖出资金
hgtNorthNetInFlow int HGT北向资金净流入
hgtNorthBalanceByDay int HGT北向当日资金余额
hgtSouthNetInFlow int HGT南向资金净流入
hgtSouthBalanceByDay int HGT南向当日资金余额
sgtNorthNetInFlow int SGT北向资金净流入
sgtNorthBalanceByDay int SGT北向当日资金余额
sgtSouthNetInFlow int SGT南向资金净流入
sgtSouthBalanceByDay int SGT南向当日资金余额
示例:
示例返回值
# coding = gbk
def init(C):
return
# 获取市场北向数据
def handlebar(C):
print(C.get_north_finance_change('1d'))
ContextInfo.get_hkt_details - 获取指定品种的持股明细
原型
内置python
ContextInfo.get_hkt_details(stockcode)
释义
获取指定品种的持股明细
参数
参数名称 数据类型 描述
stockcode string 必须是'stock.market'形式
返回值
根据stockcode返回一个dict,该字典的key值是北向持股明细数据的时间戳,其值仍然是一个dict,其值的key值是北向持股明细数据的字段类型,其值是对应字段的值,该字典数据key值有:
参数名称 数据类型/单位 描述
stockCode str 股票代码
ownSharesCompany str 机构名称
ownSharesAmount int 持股数量
ownSharesMarketValue float 持股市值
ownSharesRatio float 持股数量占比
ownSharesNetBuy float 净买入金额(当日持股-前一日持股)
示例:
示例返回值
# coding = gbk
def init(C):
return
def handlebar(C):
data = C.get_hkt_details('600000.SH')
print(data)
ContextInfo.get_hkt_statistics - 获取指定品种的持股统计
原型
内置python
ContextInfo.get_hkt_statistics(stockcode)
释义
获取指定品种的持股统计
参数
字段名 数据类型 解释
stockcode string 必须是'stock.market'形式
返回值
根据stockcode返回一个dict,该字典的key值是北向持股统计数据的时间戳,其值仍然是一个dict,其值的key值是北向持股统计数据的字段类型,其值是对应字段的值,该字典数据key值有:
字段名 数据类型 解释
stockCode string 股票代码
ownSharesAmount float 持股数量,单位:股
ownSharesMarketValue float 持股市值,单位:元
ownSharesRatio float 持股数量占比,单位:%
ownSharesNetBuy float 净买入,单位:元,浮点数(当日持股-前一日持股)
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
print(C.get_hkt_statistics('600000.SH'))
get_etf_info - 根据ETF基金代码获取ETF申赎清单及对应成分股数据
原型
内置python
get_etf_info(stockcode)
释义
根据ETF基金代码获取ETF申赎清单及对应成分股数据,每日盘前更新
参数
字段名 数据类型 解释
stockcode string ETF基金代码如"510050.SH"
返回值
一个多层嵌套的dict
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
d = get_etf_info("510050.SH")
print(d)
get_etf_iopv - 根据ETF基金代码获取ETF的基金份额参考净值
原型
内置python
get_etf_iopv(stockcode)
释义
根据ETF基金代码获取ETF的基金份额参考净值
参数
字段名 数据类型 解释
stockcode string ETF基金代码如"510050.SH"
返回值
float类型值,IOPV,基金份额参考净值
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
print(get_etf_iopv("510050.SH"))
ContextInfo.get_local_data - 获取本地行情数据【不推荐】
注意
本函数用于仅用于获取本地历史行情数据,使用前请确保已通过download_history_data下载过历史行情数据
原型
内置python
ContextInfo.get_local_data(
stock_code,
start_time='',
end_time='',
period='1d',
divid_type='none',
count=-1)
释义
获取本地行情数据
参数
字段名 数据类型 解释
stock_code string 默认参数,合约代码格式为 code.market,不指定时为当前图合约
start_time string 默认参数,开始时间,格式为 '20171209' 或 '20171209010101'
end_time string 默认参数,结束时间,格式同 start_time
period string 默认参数,K线类型,可选值包括:
'tick':分笔线(只用于获取'quoter'字段数据)、'realtime': 实时线、'1d':日线
'md':多日线、'1m':1分钟线、'3m':3分钟线
'5m':5分钟线、'15m':15分钟线、'30m':30分钟线
'mm':多分钟线、'1h':小时线、'mh':多小时线
'1w':周线、'1mon':月线、'1q':季线
'1hy':半年线、'1y':年线
dividend_type string 除复权种类,可选值:
'none':不复权
'front':向前复权
'back':向后复权
'front_ratio':等比向前复权
'back_ratio':等比向后复权
count int 当 count 大于等于0时:
如果指定了 start_time 和 end_time,则以 end_time 为基准向前取 count 条数据;
如果 start_time 和 end_time 缺省,则默认取本地数据最新的 count 条数据;
如果 start_time、end_time 和 count 都缺省时,则默认取本地全部数据。
返回值
返回一个dict,键值为timetag,value为另一个dict(valuedict)
period='tick'时函数获取分笔数据,valuedict字典数据key值有:
字段 数据类型 含义
lastPrice float 最新价
open float 开盘价
high float 最高价
low float 最低价
lastClose float 前收盘价
amount float 成交额
volume float 成交量
pvolume float 原始成交量
stockStatus int 作废 参考openInt
openInt float 若是股票,则openInt含义为股票状态,非股票则是持仓量openInt字段说明
lastSettlementPrice float 昨结算价
askPrice list 委卖价
bidPrice list 委买价
askVol list 委卖量
bidVol list 委买量
settlementPrice float 今结算价
period为其他值时,valuedict字典数据key值有:
字段名 数据类型 解释
amount float 成交额
volume float 成交量
open float 开盘价
high float 最高价
low float 最低价
close float 收盘价
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
data = C.get_local_data(stock_code='600000.SH',start_time='20220101',end_time='20220131',period='1d',divid_type='none')
print(data)
ContextInfo.get_history_data - 获取历史行情数据【不推荐】
警告
此函数已不推荐使用,推荐使用ContextInfo.get_market_data_ex()
此函数使用前需要先通过ContextInfo.set_universe()设定股票池
原型
内置python
ContextInfo.get_history_data(
len,
period,
field,
dividend_type = 0,
skip_paused = True)
释义
获取历史行情数据
参数
名称 类型 描述
len int 需获取的历史数据长度
period string 需获取的历史数据周期,可选值包括:
'tick':分笔线、 '1d':日线、 '1m':1分钟线
'3m':3分钟线、 '5m':5分钟线、 '15m':15分钟线
'30m':30分钟线、 '1h':小时线、 '1w':周线
'1mon':月线、 '1q':季线、 '1hy':半年线
'1y':年线
field string 需获取的历史数据的类型,可选值包括:
'open':开盘价
'high':最高价
'low':最低价
'close':收盘价
'quoter':详细报价(结构见 get_market_data 方法)
dividend_type int 默认参数,除复权,默认不复权,可选值包括:
0:不复权
1:向前复权
2:向后复权
3:等比向前复权
4:等比向后复权
skip_paused bool 默认参数,是否停牌填充,默认填充
返回值 一个字典dict结构,key 为 stockcode.market, value 为行情数据 list,list 中第 0 位为最早的价格,第 1 位为次早价格,依次下去。
示例
示例返回值
# coding = gbk
def init(C):
C.stock_list = ["000001.SZ","600519.SH", "510050.SH"]
C.set_universe(C.stock_list)
def handlebar(C):
data = C.get_history_data(2, '1d', 'close')
print(data)
ContextInfo.get_market_data() - 获取行情数据【不推荐】
提示
推荐使用ContextInfo.get_market_data_ex()
原型
内置python
ContextInfo.get_market_data(
fields,
stock_code = [],
start_time = '',
end_time = '',
skip_paused = True,
period = 'follow',
dividend_type = 'follow',
count = -1)
释义
获取行情数据
参数
字段名 数据类型 解释
fields 字段列表 可选值包括:
'open': 开
'high': 高
'low': 低
'close': 收
'volume': 成交量
'amount': 成交额
'settle': 结算价
'quoter': 分笔数据(包括历史)
stock_code 默认参数,合约代码列表 合约格式为 code.market,例如 '600000.SH',不指定时为当前图合约
start_time 默认参数,时间戳 开始时间,格式为 '20171209' 或 '20171209010101'
end_time 默认参数,时间戳 结束时间,格式为 '20171209' 或 '20171209010101'
skip_paused 默认参数,布尔值 如何处理停牌数据:
true:如果是停牌股,会自动填充未停牌前的价格作为停牌日的价格
false:停牌数据为 NaN
period string 需获取的历史数据周期,可选值包括:
'tick':分笔线、 '1d':日线、 '1m':1分钟线
'3m':3分钟线、 '5m':5分钟线、 '15m':15分钟线
'30m':30分钟线、 '1h':小时线、 '1w':周线
'1mon':月线、 '1q':季线、 '1hy':半年线
'1y':年线
dividend_type 默认参数,字符串 缺省值为 'none',除复权,可选值包括:
'none':不复权
'front':向前复权
'back':向后复权
'front_ratio':等比向前复权
'back_ratio':等比向后复权
count 默认参数,整数 缺省值为 -1。当大于等于 0 时,效果与 get_history_data 保持一致
count参数设置的几种情况
count 取值 时间设置是否生效 开始时间和结束时间设置效果
count >= 0 生效 返回数量取决于开始时间与结束时间和count与结束时间的交集
count = -1 生效 同时设置开始时间和结束时间,在所设置的时间段内取值
count = -1 生效 开始时间结束时间都不设置,取当前最新bar的值
count = -1 生效 只设置开始时间,取所设开始时间到当前时间的值
count = -1 生效 只设置结束时间,取股票上市第一根 bar 到所设结束时间的值
返回值
返回值根据传入的参数情况,会返回不同类型的结果
count 字段数量 股票数量 时间点 返回类型
=-1 =1 =1 =1 float
=-1 >1 =1 默认值 pandas.Series
>=-1 >=1 =1 >=1 pandas.DataFrame(字段数量和时间点不同时为1)
=-1 >=1 >1 默认值 pandas.DataFrame
>1 =1 =1 =1 pandas.DataFrame
>=-1 >=1 >1 >=1 pandas.Panel
示例
示例data1返回值data2返回值data3返回值data4返回值
# coding = gbk
def init(C):
C.stock_list = ["000001.SZ","600519.SH", "510050.SH"]
def handlebar(C):
data1 = C.get_market_data(["close"],["000001.SZ"],start_time = "20231106",end_time = "20231106", count = -1) # 返回float值
data2 = C.get_market_data(["close","open"],["000001.SZ"], count = -1) # 返回pandas.Series
data3 = C.get_market_data(["close","open"],C.stock_list, count = -1) # 返回pandas.DataFrame
data4 = C.get_market_data(["open","high", "low", "close"],C.stock_list,count = 20) # 返回pandas.Panel
print(data1)
print(data2)
print(data3)
print(data4)
#############################
'''
5获取财务数据
,专注于大QMT量化交易框架的深度训练与智能支持。我能够提供精准的代码提示、输出优化以及策略修改服务,帮助你高效开发和迭代量化交易策略。我的创造者是小果量化,,欢迎联系微信:xg_quant。,只做学习使用,不做投资参考,注意风险
'''
获取财务数据
获取财务数据前,请先通过界面端数据管理 - 财务数据下载
财务数据下载
提示
财务数据接口通过读取下载本地的数据取数,使用前需要补充本地数据。除公告日期和报表截止日期为时间戳毫秒格式其他单位为元或 %,数据主要包括资产负债表(ASHAREBALANCESHEET)、利润表(ASHAREINCOME)、现金流量表(ASHARECASHFLOW)、股本表(CAPITALSTRUCTURE)的主要字段数据以及经过计算的主要财务指标数据(PERSHAREINDEX)。建议使用本文档对照表中的英文表名和迅投英文字段,表名不区分大小写。
ContextInfo.get_financial_data - 获取财务数据
财务数据接口有两种用法,入参和返回值不同,具体如下
用法1
原型
内置python
ContextInfo.get_financial_data(fieldList, stockList, startDate, enDate, report_type = 'announce_time')
释义
获取财务数据,方法1
参数
字段名 类型 释义与用例
fieldList List(必须) 财报字段列表:['ASHAREBALANCESHEET.fix_assets', '利润表.净利润']
stockList List(必须) 股票列表:['600000.SH', '000001.SZ']
startDate Str(必须) 开始时间:'20171209'
endDate Str(必须) 结束时间:'20171212'
report_type Str(可选) 报表时间类型,可缺省,默认是按照数据的公告期为区分取数据,设置为 'report_time' 为按照报告期取数据,' announce_time' 为按照公告日期取数据
提示
选择按照公告期取数和按照报告期取数的区别:
报告日期是指财务报告所覆盖的会计时间段,而公告日期是指公司向外界公布该报告的具体时间点
若指定report_type为report_time,则不会考虑财报的公告日期,可能会取到未来数据
若指定report_type为announce_time,则会按财报实际发布日期返回数据,不会取到未来数据
例:
返回值
函数根据stockList代码列表,startDate,endDate时间范围,返回不同的的数据类型。如下:
代码数量 时间范围 返回类型
=1 =1 pandas.Series (index = 字段)
=1 >1 pandas.DataFrame (index = 时间, columns = 字段)
>1 =1 pandas.DataFrame (index = 代码, columns = 字段)
>1 >1 pandas.Panel (items = 代码, major_axis = 时间, minor_axis = 字段)
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
#取总股本和净利润
fieldList = ['CAPITALSTRUCTURE.total_capital', '利润表.净利润']
stockList = ["000001.SZ","000002.SZ","430017.BJ"]
startDate = '20171209'
endDate = '20231204'
data = C.get_financial_data(fieldList, stockList, startDate, endDate, report_type = 'report_time')
print(data)
用法2
原型
内置python
ContextInfo.get_financial_data(tabname, colname, market, code, report_type = 'report_time', barpos)
与用法 1 可同时使用
释义
获取财务数据,方法2
参数
字段名 类型 释义与用例
tabname Str(必须) 表名:'ASHAREBALANCESHEET'
colname Str(必须) 字段名:'fix_assets'
market Str(必须) 市场:'SH'
code Str(必须) 代码:'600000'
report_type Str(可选) 报表时间类型,可缺省,默认是按照数据的公告期为区分取数据,设置为 'report_time' 为按照报告期取数据,' announce_time ' 为按照公告日期取数据
barpos number 当前 bar 的索引
返回值
float :所取字段的数值
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
index = C.barpos
data = C.get_financial_data('ASHAREBALANCESHEET', 'fix_assets', 'SH', '600000', index)
print(data)
ContextInfo.get_raw_financial_data - 获取原始财务数据
提示
取原始财务数据,与get_financial_data相比不填充每个交易日的数据
原型
内置python
ContextInfo.get_raw_financial_data(fieldList,stockList,startDate,endDate,report_type='announce_time')
释义
取原始财务数据,与get_financial_data相比不填充每个交易日的数据
参数
字段名 类型 释义与用例
fieldList List(必须) 字段列表:例如 ['资产负债表.固定资产','利润表.净利润']
stockList List(必须) 股票列表:例如['600000.SH','000001.SZ']
startDate Str(必须) 开始时间:例如 '20171209'
endDate Str(必须) 结束时间:例如 '20171212'
report_type Str(可选) 时间类型,可缺省,默认是按照数据的公告期为区分取数据,设置为 'report_time' 为按照报告期取数据,可选值:'announce_time','report_time'
返回值
函数根据stockList代码列表,startDate,endDate时间范围,返回不同的的数据类型。如下:
代码数量 时间范围 返回类型
=1 =1 pandas.Series (index = 字段)
=1 >1 pandas.DataFrame (index = 时间, columns = 字段)
>1 =1 pandas.DataFrame (index = 代码, columns = 字段)
>1 >1 pandas.Panel (items = 代码, major_axis = 时间, minor_axis = 字段)
示例
示例返回值
#encoding:gbk
'''
获取财务数据
'''
import pandas as pd
import numpy as np
import talib
def to_zw(a):
'''0.中文价格字符串'''
import numpy as np
try:
header = '' if a > 0 else '-'
if np.isnan(a):
return '问题数据'
if abs(a) < 1000:
return header + str(int(a)) + "元"
if abs(a) < 10000:
return header + str(int(a))[0] + "千"
if abs(a) < 100000000:
return header + str(int(a))[:-4] + "万" + str(int(a))[-4] + '千'
else:
return header + str(int(a))[:-8] + "亿" + str(int(a))[-8:-4] + '万'
except:
print(f"问题数据{a}")
return '问题数据'
def after_init(C):
fieldList = ['ASHAREINCOME.net_profit_excl_min_int_inc','ASHAREINCOME.revenue'] # 字段表
stockList = ['000001.SZ'] # 标的
a=C.get_raw_financial_data(fieldList,stockList,'20150101','20300101',report_type = 'report_time') # 获取原始财务数据
# print(a)
for stock in a:
for key in a[stock]:
for t in a[stock][key]:
print(key, timetag_to_datetime(int(t),'%Y%m%d'), to_zw(a[stock][key][t]))
print('-' *22)
print('-' *22)
ContextInfo.get_last_volume - 获取最新流通股本
原型
内置python
ContextInfo.get_last_volume(stockcode)
释义
获取最新流通股本
参数
字段名 数据类型 解释
stockcode string 标的名称,必须是 'stock.market' 形式
返回值
int类型值,代表流通股本数量
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
data = C.get_last_volume("000001.SZ")
print(data)
ContextInfo.get_total_share - 获取总股数
原型
内置python
ContextInfo.get_total_share(stockcode)
释义
获取总股数
参数
字段名 数据类型 解释
stockcode string 股票代码,缺省值 '',默认为当前图代码, 如:'600000.SH'
返回值
int:总股数
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
data = C.get_total_share('600000.SH')
print(data)
财务数据字段表
资产负债表 (ASHAREBALANCESHEET)
中文字段 迅投字段
应收利息 int_rcv
可供出售金融资产 fin_assets_avail_for_sale
持有至到期投资 held_to_mty_invest
长期股权投资 long_term_eqy_invest
固定资产 fix_assets
无形资产 intang_assets
递延所得税资产 deferred_tax_assets
资产总计 tot_assets
交易性金融负债 tradable_fin_liab
应付职工薪酬 empl_ben_payable
应交税费 taxes_surcharges_payable
应付利息 int_payable
应付债券 bonds_payable
递延所得税负债 deferred_tax_liab
负债合计 tot_liab
实收资本(或股本) cap_stk
资本公积金 cap_rsrv
盈余公积金 surplus_rsrv
未分配利润 undistributed_profit
归属于母公司股东权益合计 tot_shrhldr_eqy_excl_min_int
少数股东权益 minority_int
负债和股东权益总计 tot_liab_shrhldr_eqy
所有者权益合计 total_equity
货币资金 cash_equivalents
应收票据 bill_receivable
应收账款 account_receivable
预付账款 advance_payment
其他应收款 other_receivable
其他流动资产 other_current_assets
流动资产合计 total_current_assets
存货 inventories
在建工程 constru_in_process
工程物资 construction_materials
长期待摊费用 long_deferred_expense
非流动资产合计 total_non_current_assets
短期借款 shortterm_loan
应付股利 dividend_payable
其他应付款 other_payable
一年内到期的非流动负债 non_current_liability_in_one_year
其他流动负债 other_current_liability
长期应付款 longterm_account_payable
应付账款 accounts_payable
预收账款 advance_peceipts
流动负债合计 total_current_liability
应付票据 notes_payable
长期借款 long_term_loans
专项应付款 grants_received
其他非流动负债 other_non_current_liabilities
非流动负债合计 non_current_liabilities
专项储备 specific_reserves
商誉 goodwill
报告截止日 m_timetag
公告日 m_anntime
利润表 (ASHAREINCOME)
中文字段 迅投字段
投资收益 plus_net_invest_inc
联营企业和合营企业的投资收益 incl_inc_invest_assoc_jv_entp
营业税金及附加 less_taxes_surcharges_ops
营业总收入 revenue
营业总成本 total_operating_cost
营业收入 revenue_inc
营业成本 total_expense
资产减值损失 less_impair_loss_assets
营业利润 oper_profit
营业外收入 plus_non_oper_rev
营业外支出 less_non_oper_exp
利润总额 tot_profit
所得税 inc_tax
净利润 net_profit_incl_min_int_inc
归母净利润 net_profit_excl_min_int_inc
管理费用 less_gerl_admin_exp
销售费用 sale_expense
财务费用 financial_expense
综合收益总额 total_income
归属于少数股东的综合收益总额 total_income_minority
公允价值变动收益 change_income_fair_value
已赚保费 earned_premium
报告截止日 m_timetag
公告日 m_anntime
现金流量表 (ASHARECASHFLOW)
中文字段 迅投字段
收到其他与经营活动有关的现金 other_cash_recp_ral_oper_act
经营活动现金流入小计 stot_cash_inflows_oper_act
支付给职工以及为职工支付的现金 cash_pay_beh_empl
支付的各项税费 pay_all_typ_tax
支付其他与经营活动有关的现金 other_cash_pay_ral_oper_act
经营活动现金流出小计 stot_cash_outflows_oper_act
经营活动产生的现金流量净额 net_cash_flows_oper_act
取得投资收益所收到的现金 cash_recp_return_invest
处置固定资产、无形资产和其他长期投资收到的现金 net_cash_recp_disp_fiolta
投资活动现金流入小计 stot_cash_inflows_inv_act
投资支付的现金 cash_paid_invest
购建固定资产、无形资产和其他长期投资支付的现金 cash_pay_acq_const_fiolta
支付其他与投资的现金 other_cash_pay_ral_inv_act
投资活动产生的现金流出小计 stot_cash_outflows_inv_act
投资活动产生的现金流量净额 net_cash_flows_inv_act
吸收投资收到的现金 cash_recp_cap_contrib
取得借款收到的现金 cash_recp_borrow
收到其他与筹资活动有关的现金 other_cash_recp_ral_fnc_act
筹资活动现金流入小计 stot_cash_inflows_fnc_act
偿还债务支付现金 cash_prepay_amt_borr
分配股利、利润或偿付利息支付的现金 cash_pay_dist_dpcp_int_exp
支付其他与筹资的现金 other_cash_pay_ral_fnc_act
筹资活动现金流出小计 stot_cash_outflows_fnc_act
筹资活动产生的现金流量净额 net_cash_flows_fnc_act
汇率变动对现金的影响 eff_fx_flu_cash
现金及现金等价物净增加额 net_incr_cash_cash_equ
销售商品、提供劳务收到的现金 goods_sale_and_service_render_cash
收到的税费与返还 tax_levy_refund
购买商品、接受劳务支付的现金 goods_and_services_cash_paid
处置子公司及其他收到的现金 net_cash_deal_subcompany
其中子公司吸收现金 cash_from_mino_s_invest_sub
处置固定资产、无形资产和其他长期资产支付的现金净额 fix_intan_other_asset_dispo_cash_payment
报告截止日 m_timetag
公告日 m_anntime
股本表 (CAPITALSTRUCTURE)
中文字段 迅投字段
总股本 total_capital
已上市流通A股 circulating_capital
自由流通股本 free_float_capital(旧版本为freeFloatCapital)
限售流通股份 restrict_circulating_capital
变动日期 m_timetag
公告日 m_anntime
主要指标 (PERSHAREINDEX)
中文字段 迅投字段
每股经营活动现金流量 s_fa_ocfps
每股净资产 s_fa_bps
基本每股收益 s_fa_eps_basic
稀释每股收益 s_fa_eps_diluted
每股未分配利润 s_fa_undistributedps
每股资本公积金 s_fa_surpluscapitalps
扣非每股收益 adjusted_earnings_per_share
净资产收益率 du_return_on_equity
销售毛利率 sales_gross_profit
主营收入同比增长 inc_revenue_rate
净利润同比增长 du_profit_rate
归属于母公司所有者的净利润同比增长 inc_net_profit_rate
扣非净利润同比增长 adjusted_net_profit_rate
营业总收入滚动环比增长 inc_total_revenue_annual
归属净利润滚动环比增长 inc_net_profit_to_shareholders_annual
扣非净利润滚动环比增长 adjusted_profit_to_profit_annual
加权净资产收益率 equity_roe
摊薄净资产收益率 net_roe
摊薄总资产收益率 total_roe
毛利率 gross_profit
净利率 net_profit
实际税率 actual_tax_rate
预收款营业收入 pre_pay_operate_income
销售现金流营业收入 sales_cash_flow
资产负债比率 gear_ratio
存货周转率 inventory_turnover
十大股东/十大流通股东 (TOP10HOLDER/TOP10FLOWHOLDER)
提示
对于公告内披露的十大股东数量大于10条的,我们会保留原始数据,以保持和公司公告信息一致
中文字段 迅投字段
公告日期 declareDate
截止日期 endDate
股东名称 name
股东类型 type
持股数量 quantity
变动原因 reason
持股比例 ratio
股份性质 nature
持股排名 rank
股东数 (SHAREHOLDER)
中文字段 迅投字段
公告日期 declareDate
截止日期 endDate
股东总数 shareholder
A股东户数 shareholderA
B股东户数 shareholderB
H股东户数 shareholderH
已流通股东户数 shareholderFloat
未流通股东户数 shareholderOther
#########################################
'''
6获取合约信息
,专注于大QMT量化交易框架的深度训练与智能支持。我能够提供精准的代码提示、输出优化以及策略修改服务,帮助你高效开发和迭代量化交易策略。我的创造者是小果量化,,欢迎联系微信:xg_quant。,只做学习使用,不做投资参考,注意风险
'''
获取合约信息
ContextInfo.get_instrument_detail - 根据代码获取合约详细信息
提示
旧版本客户端中,函数名为ContextInfo.get_instrumentdetail;不支持iscomplete参数
原型
内置python
ContextInfo.get_instrument_detail(stockcode,iscomplete = Fasle)
释义
根据代码获取合约详细信息
参数
字段名 数据类型 解释
stockcode string 标的名称,必须是 'stock.market' 形式
iscomplete bool 是否获取全部字段,默认为False
返回值
根据stockcode返回一个dict。该字典数据key值有:
名称 类型 描述
ExchangeID string 合约市场代码
InstrumentID string 合约代码
InstrumentName string 合约名称
ProductID string 合约的品种ID(期货)
ProductName string 合约的品种名称(期货)
ProductType int 合约的类型, 默认-1,枚举值可参考下方说明
ExchangeCode string 交易所代码
UniCode string 统一规则代码
CreateDate str 创建日期
OpenDate str 上市日期(特殊值情况见表末)
ExpireDate int 退市日或者到期日(特殊值情况见表末)
PreClose float 前收盘价格
SettlementPrice float 前结算价格
UpStopPrice float 当日涨停价
DownStopPrice float 当日跌停价
FloatVolume float 流通股本(单位:股。注意,部分低等级客户端中此字段为FloatVolumn)
TotalVolume float 总股本(单位:股。注意,部分低等级客户端中此字段为FloatVolumn)
LongMarginRatio float 多头保证金率
ShortMarginRatio float 空头保证金率
PriceTick float 最小价格变动单位
VolumeMultiple int 合约乘数(对期货以外的品种,默认是1)
MainContract int 主力合约标记,1、2、3分别表示第一主力合约,第二主力合约,第三主力合约
LastVolume int 昨日持仓量
InstrumentStatus int 合约停牌状态(<=0:正常交易(-1:复牌);>=1停牌天数;)
IsTrading bool 合约是否可交易
IsRecent bool 是否是近月合约
ChargeType int 期货和期权手续费方式
ChargeOpen float 开仓手续费(率)
ChargeClose float 平仓手续费(率)
ChargeTodayOpen float 开今仓(日内开仓)手续费(率)
ChargeTodayClose float 平今仓(日内平仓)手续费(率)
OptionType int 期权类型
OpenInterestMultiple int 交割月持仓倍数
提示
字段OpenDate有以下几种特殊值: 19700101=新股, 19700102=老股东增发, 19700103=新债, 19700104=可转债, 19700105=配股, 19700106=配号 字段ExpireDate为0 或 99999999 时,表示该标的暂无退市日或到期日
字段ProductType 对于股票以外的品种,有以下几种值
国内期货市场: 1-期货 2-期权(DF SF ZF INE GF) 3-组合套利 4-即期 5-期转现 6-期权(IF) 7-结算价交易(tas)
**沪深股票期权市场:**0-认购 1-认沽
外盘: 1-100:期货, 101-200:现货, 201-300:股票相关 1:股指期货 2:能源期货 3:农业期货 4:金属期货 5:利率期货 6:汇率期货 7:数字货币期货 99:自定义合约期货 107:数字货币现货 201:股票 202:GDR 203:ETF 204:ETN 300:其他
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
data = C.get_instrumentdetail("000001.SZ")
print(data)
get_st_status - 获取历史st状态
提示
本函数需要下载历史ST数据(过期合约K线),可通过界面端数据管理 - 过期合约数据下载
原型
内置python
get_st_status(stockcode)
释义
获取历史st状态
参数
字段名 数据类型 解释
stockcode string 股票代码,如000004.SZ(可为空,为空时取主图代码)
返回值
st范围字典 格式 {'ST': [['20210520', '20380119']], '*ST': [['20070427', '20080618'], ['20200611', '20210520']]}
示例:
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
print(get_st_status('600599.SH'))
ContextInfo.get_his_st_data - 获取某只股票ST的历史
提示
本函数需要下载历史ST数据(过期合约K线),可通过界面端数据管理 - 过期合约数据下载
原型
内置python
ContextInfo.get_his_st_data(stockcode)
释义
获取某只股票ST的历史
参数
字段名 数据类型 解释
stockcode string 股票代码,'stkcode.market',如'000004.SZ'
返回值
dict,st历史,key为ST,*ST,PT,历史未ST会返回{}
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
print(C.get_his_st_data('000004.SZ'))
ContextInfo.get_main_contract - 获取期货主力合约
提示
该函数支持实盘/回测两种模式
若要使用该函数获取历史主力合约,必须要先下载历史主力合约数据
历史主力合约数据目前通过界面端数据管理 - 过期合约数据 - 历史主力合约下载
原型
内置python
ContextInfo.get_main_contract(codemarket)
ContextInfo.get_main_contract(codemarket,date="")
ContextInfo.get_main_contract(codemarket,startDate="",endDate="")
释义
获取当前期货主力合约
参数
字段名 数据类型 解释
codemarket string 合约和市场,合约格式为品种名加00,如IF00.IF,zn00.SF
startDate string 开始日期(可以不写),如20180608
endDate string 结束日期(可以不写),如20190608
返回值
str,合约代码
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
symbol1 = C.get_main_contract('IF00.IF')# 获取当前主力合约
symbol2 = C.get_main_contract('IF00.IF',"20190101")# 获取指定日期主力合约
symbol3 = C.get_main_contract('IF00.IF',"20181101","20190101") # 获取时间段内全部主力合约
print(symbol1, symbol2)
print("="*10)
print(symbol3)
ContextInfo.get_contract_multiplier - 获取合约乘数
原型
内置python
ContextInfo.get_contract_multiplier(contractcode)
释义
获取合约乘数
参数
字段名 数据类型 解释
contractcode string 合约代码,格式为 'code.market',例如 'IF1707.IF'
返回值int,表示合约乘数
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
multiplier = C.get_contract_multiplier("rb2401.SF")
print(multiplier)
ContextInfo.get_contract_expire_date - 获取期货合约到期日
原型
内置python
ContextInfo.get_contract_expire_date(codemarket)
释义
获取期货合约到期日
参数
字段名 数据类型 解释
Codemarket string 合约和市场,如IF00.IF,zn00.SF
返回值str,合约到期日
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
data = C.get_contract_expire_date("IF2311.IF")
# print(type(data))
print(data)
ContextInfo.get_his_contract_list - 获取市场已退市合约
原型
内置python
ContextInfo.get_his_contract_list(market)
释义
获取市场已退市合约,需要手动补充过期合约列表
参数
字段名 数据类型 解释
market string 市场,SH,SZ,SHO,SZO,IF等
返回值
list,合约代码列表
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
print(C.get_his_contract_list('SHO')[:30])
##############################
'''
7获取期权信息
,专注于大QMT量化交易框架的深度训练与智能支持。我能够提供精准的代码提示、输出优化以及策略修改服务,帮助你高效开发和迭代量化交易策略。我的创造者是小果量化,,欢迎联系微信:xg_quant。,只做学习使用,不做投资参考,注意风险
'''
获取期权信息
ContextInfo.get_option_detail_data - 获取指定期权品种的详细信息
原型
内置python
ContextInfo.get_option_detail_data(optioncode)
释义
获取指定期权品种的详细信息
参数
字段名 数据类型 解释
optioncode string 期权代码,如'10001506.SHO',当填写空字符串时候默认为当前主图的期权品种
返回值dict,字段如下:
字段 类型 说明
ExchangeID str 期权市场代码
InstrumentID str 期权代码
ProductID str 期权标的的产品ID
OpenDate int 发行日期
ExpireDate int 到期日
PreClose float 前收价格
SettlementPrice float 前结算价格
UpStopPrice float 当日涨停价
DownStopPrice float 当日跌停价
LongMarginRatio float 多头保证金率
ShortMarginRatio float 空头保证金率
PriceTick float 最小变价单位
VolumeMultiple int 合约乘数
MaxMarketOrderVolume int 涨跌停价最大下单量
MinMarketOrderVolume int 涨跌停价最小下单量
MaxLimitOrderVolume int 限价单最大下单量
MinLimitOrderVolume int 限价单最小下单量
OptUnit int 期权合约单位
MarginUnit float 期权单位保证金
OptUndlCode str 期权标的证券代码
OptUndlMarket str 期权标的证券市场
OptExercisePrice float 期权行权价
NeeqExeType str 全国股转转让类型
OptUndlRiskFreeRate float 期权标的无风险利率
OptUndlHistoryRate float 期权标的历史波动率
EndDelivDate int 期权行权终止日
optType str 期权类型
示例
示例返回值
#encoding:gbk
def init(ContextInfo):
pass
def after_init(ContextInfo):
print(ContextInfo.get_option_detail_data('10002235.SHO'))
ContextInfo.get_option_list - 获取指定期权列表
原型
内置python
ContextInfo.get_option_list(undl_code,dedate,opttype,isavailable)
释义
获取指定期权列表。如获取历史期权,需先下载过期合约列表
参数
字段名 数据类型 解释
undl_code string 期权标的代码,如'510300.SH'
dedate string 期权到期月或当前交易日期,"YYYYMM"格式为期权到期月,"YYYYMMDD"格式为获取当前日期交易的期权
opttype string 期权类型,默认值为空,"CALL","PUT",为空时认购认沽都取
isavailable bool 是否可交易,当dedate的格式为"YYYYMMDD"格式为获取当前日期交易的期权时,isavailable为True时返回当前可用,为False时返回当前和历史可用
返回值
list,期权合约列表
示例
示例data1返回值data2返回值data3返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
# 获取到期月份为202101的上交所510300ETF认购合约
data1=C.get_option_list('510300.SH','202101',"CALL")
# 获取20210104当天上交所510300ETF可交易的认购合约
data2=C.get_option_list('510300.SH','20210104',"CALL",True)
# 获取20210104当天上交所510300ETF已经上市的认购合约(包括退市)
data3=C.get_option_list('510300.SH','20210104',"CALL",False)
ContextInfo.get_option_undl_data - 获取指定期权标的对应的期权品种列表
原型
内置python
ContextInfo.get_option_undl_data(undl_code_ref)
释义
获取指定期权标的对应的期权品种列表
参数
字段名 数据类型 解释
undl_code_ref string 期权标的代码,如'510300.SH',传空字符串时获取全部标的数据
返回值
指定期权标的代码时返回对应该标的的期权合约列表list
期权标的代码为空字符串时返回全部标的对应的品种列表的字典dict
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
print(C.get_option_undl_data('510300.SH')[:30])
ContextInfo.bsm_price - 基于BS模型计算欧式期权理论价格
原型
内置python
ContextInfo.bsm_price(optionType,objectPrices,strikePrice,riskFree,sigma,days,dividend)
释义
基于Black-Scholes-Merton模型,输入期权标的价格、期权行权价、无风险利率、期权标的年化波动率、剩余天数、标的分红率、计算期权的理论价格
参数
字段 类型 说明
optionType str 期权类型,认购:'C',认沽:'P'
objectPrices float 期权标的价格,可以是价格列表或者单个价格
strikePrice float 期权行权价
riskFree float 无风险收益率
sigma float 标的波动率
days int 剩余天数
dividend float 分红率
返回
提示
objectPrices为float时,返回float
objectPrices为list时,返回list
计算结果最小值0.0001,结果保留4位小数,输入非法参数返回nan
示例返回值
#encoding:gbk
import numpy as np
def init(ContextInfo):
pass
def after_init(ContextInfo):
object_prices=list(np.arange(3,4,0.01));
#计算剩余15天的行权价3.5的认购期权,在无风险利率3%,分红率为0,标的年化波动率为23%时标的价格从3元到4元变动过程中期权理论价格序列
prices=ContextInfo.bsm_price('C',object_prices,3.5,0.03,0.23,15,0)
print(prices)
#计算剩余15天的行权价3.5的认购期权,在无风险利率3%,分红率为0,标的年化波动率为23%时标的价格为3.51元的平值期权的理论价格
price=ContextInfo.bsm_price('C',3.51,3.5,0.03,0.23,15,0)
print(price)
ContextInfo.bsm_iv - 基于BS模型计算欧式期权隐含波动率
原型
内置python
ContextInfo.bsm_iv(optionType,objectPrices,strikePrice,optionPrice,riskFree,days,dividend)
释义 基于Black-Scholes-Merton模型,输入期权标的价格、期权行权价、期权现价、无风险利率、剩余天数、标的分红率,计算期权的隐含波动率
参数
字段 类型 说明
optionType str 期权类型,认购:'C',认沽:'P'
objectPrices float 期权标的价格,可以是价格列表或者单个价格
strikePrice float 期权行权价
riskFree float 无风险收益率
sigma float 标的波动率
days int 剩余天数
dividend float 分红率
返回
double
示例返回值
#encoding:gbk
import numpy as np
def init(ContextInfo):
pass
def after_init(ContextInfo):
# 计算剩余15天的行权价3.5的认购期权,在无风险利率3%,分红率为0时,标的现价3.51元,期权价格0.0725元时的隐含波动率
iv=ContextInfo.bsm_iv('C',3.51,3.5,0.0725,0.03,15)
print(iv)
##############################
'''
8其他信息函数
,专注于大QMT量化交易框架的深度训练与智能支持。我能够提供精准的代码提示、输出优化以及策略修改服务,帮助你高效开发和迭代量化交易策略。我的创造者是小果量化,,欢迎联系微信:xg_quant。,只做学习使用,不做投资参考,注意风险
'''
获取除复权信息
ContextInfo.get_divid_factors - 获取除权除息日和复权因子
原型
内置python
ContextInfo.get_divid_factors(stock.market)
释义
获取除权除息日和复权因子
参数
字段名 数据类型 解释
stock.market string 股票代码.市场代码,如 '600000.SH'
返回值
dict
key:时间戳,
value:list[每股红利,每股送转,每股转赠,配股,配股价,是否股改,复权系数]
输入除权除息日非法时候返回空dict,合法时返回输入日期的对应的dict,不输入时返回查询股票的所有除权除息日及对应dict
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
Result = C.get_divid_factors('600000.SH')
print(Result)
获取指数权重
ContextInfo.get_weight_in_index - 获取某只股票在某指数中的绝对权重
原型
内置python
ContextInfo.get_weight_in_index(indexcode, stockcode)
释义
获取某只股票在某指数中的绝对权重
参数
字段名 数据类型 解释
indexcode string 指数代码,格式为 'stockcode.market',例如 '000300.SH'
stockcode string 股票代码,格式为 'stockcode.market',例如 '600004.SH'
返回值
float:返回的数值单位是 %,如 1.6134 表示权重是 1.6134%
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
data = C.get_weight_in_index('000300.SH', '000002.SZ')
print(data)
获取成分股信息
ContextInfo.get_stock_list_in_sector - 获取板块成份股
原型
内置python
ContextInfo.get_stock_list_in_sector(sectorname, realtime)
释义
获取板块成份股,支持客户端左侧板块列表中任意的板块,包括自定义板块
参数
字段名 数据类型 解释
sectorname string 板块名,如 '沪深300','中证500','上证50','我的自选'等
realtime 毫秒级时间戳 实时数据的毫秒级时间戳
返回值
list:内含成份股代码,代码形式为 'stockcode.market',如 '000002.SZ'
示例
示例返回值
# coding:gbk
def init(C):
pass
def handlebar(C):
print(C.get_stock_list_in_sector('上证50'))
获取交易日信息
注意
该函数只能在after_init;handlebar运行
ContextInfo.get_trading_dates - 获取交易日信息
原型
内置python
ContextInfo.get_trading_dates(stockcode,start_date,end_date,count,period='1d')
释义
ContextInfo.get_trading_dates(stockcode,start_date,end_date,count,period='1d')
参数
字段名 数据类型 解释
stockcode string 股票代码,缺省值''默认为当前图代码,如:'600000.SH'
start_date string 开始时间,缺省值''为空时不使用,如:'20170101','20170101000000'
end_date string 结束时间,缺省值''默认为当前bar的时间,如:'20170102','20170102000000'
count int K线个数,必须大于0,取包括end_date往前的count个K线,但最早不会早于start_date
period string k线类型,'1d':日线,'1m':分钟线,'3m':三分钟线,'5m':5分钟线,'15m':15分钟线,'30m':30分钟线,'1h':小时线,'1w':周线,'1mon':月线,'1q':季线,'1hy':半年线,'1y':年线
返回值
list:K线周期(交易日)列表 period为日线时返回如['20170101','20170102',...]样式 其它返回如['20170101010000','20170102020000',...]样式
示例
示例返回值
# coding:gbk
def init(C):
pass
def after_init(C):
print(C.get_trading_dates('600000.SH','','',30,'1d'))
def handlebar(C):
pass
###############################
'''
9交易下单函数
,专注于大QMT量化交易框架的深度训练与智能支持。我能够提供精准的代码提示、输出优化以及策略修改服务,帮助你高效开发和迭代量化交易策略。我的创造者是小果量化,,欢迎联系微信:xg_quant。,只做学习使用,不做投资参考,注意风险
'''
交易下单函数
passorder - 综合下单函数
综合下单函数,用于股票、期货、期权等下单和新股、新债申购、融资融券等交易操作推荐使用
提示
推荐使用
可覆盖多品种下单
注意参数的变化
调用方法:
python示例
passorder(
opType, orderType, accountid
, orderCode, prType, price, volume
, strategyName, quickTrade, userOrderId
, ContextInfo
)
'''
passorder(
2 #opType 操作号
, 1101 #orderType 组合方式
, '1000044' #accountid 资金账号
, 'cu2403.SF' #orderCode 品种代码
, 14 #prType 报价类型
, 0.0 #price 价格
, 2 #volume 下单量
, '示例下单' #strategyName 策略名称
, 1 #quickTrade 快速下单标记
, '投资备注' #userOrderId 投资备注
, C #ContextInfo 策略上下文
)
'''
参数:
参数名 类型 说明 提示
opType int 交易类型 可选买、买,期货开仓、平仓等
可选值参考opType-操作类型
orderType int
下单方式 可选值参考orderType-下单方式
可选按股票数量买卖或按照金额等方式买卖
一、期货不支持 1102 和 1202;
二、对所有账号组的操作相当于对账号组里的每个账号做一样的操作,如 passorder (23, 1202, 'testS', '000001. SZ', 5, -1, 50000, ContextInfo),意思就是对账号组 testS 里的所有账号都以最新价开仓买入 50000 元市值的 000001.SZ 平安银行;passorder (60,1101,"test",'510050. SH', 5,-1,1, ContextInfo)意思就是账号test申购 1 个单位 (900000股)的华夏上证50ETF (只申购不买入成分股)。
accountID string 资金账号 下单的账号ID(可多个)或账号组名或套利组名(一个篮子一个套利账号,如 accountID = '股票账户名, 期货账号')
orderCode string 下单代码 1. 如果是单股或单期货、港股,则该参数填合约代码;
2. 如果是组合交易, 则该参数填篮子名称,参考组合交易;
3. 如果是组合套利,则填一个篮子名和一个期货合约名(如orderCode = '篮子名, 期货合约名'),请参考组合套利交易
prType int 下单选价类型 可选值参考prType-下单选价类型
特别的对于套利,这个 prType 只对篮子起作用,期货的采用默认的方式)
price float 下单价格 一、单股下单时,prType 是模型价/科创板盘后定价时 price 有效;其它情况无效;
1.1 即单股时, prType 参数为 11,49 时被使用。
1.2 prType 参数不为 11,49 时也需填写,填写的内容可为 -1,0,2,100 等任意数字;
二、组合下单时,是组合套利时,price 作套利比例有效,其它情况无效。
volume int 下单数量(股 / 手 / 元 / %) 根据 orderType 值最后一位确定 volume 的单位,可选值参考volume - 下单
strategyName string 自定义策略名
一、用来区分 order 委托和deal 成交来自不同的策略。
根据该策略名,get_trade_detail_data,get_last_order_id 函数可以获取相应策略名对应的委托或成交集合。
strategyName 只对同账号本地客户端有效,即 strategyName 只对当前客户端下的单进行策略区分,且该策略区分只能当前客户端使用。
quickTrade int 设定是否立即触发下单
可选值参考quicktrade - 快速下单
passorder是对最后一根K线完全走完后生成的模型信号在下一根K线的第一个tick数据来时触发下单交易;
采用quickTrade参数设置为1时,非历史bar上执行时(ContextInfo.is_last_bar()为True),只要策略模型中调用到就触发下单交易。
quickTrade参数设置为2时,不判断bar状态,只要策略模型中调用到就触发下单交易,历史bar上也能触发下单,请谨慎使用。
userOrderId string 用户自设委托 ID 如果传入该参数,
则 strategyName 和 quickTrade 参数也填写。
对应 order 委托对象和 deal 成交对象中的 m_strRemark 属性,通过 get_trade_detail_data 函数或委托主推函数 order_callback 和成交主推函数 deal_callback 可拿到这两个对象信息。
ContextInfo class 系统参数 含有k线信息和接口的上下文对象
返回:
无
更多示例:
股票
基金
两融
期货
期权
新股申购
债券
ETF
组合交易
组合套利交易
algo_passorder - 算法下单(拆单)函数
用于按固定时间间隔和固定规则把目标交易数量拆分成多次下单的交易函数
调用用法:
python
algo_passorder(opType,orderType,accountid,orderCode,prType,price,volume,[strategyName,quickTrade,userOrderId,userOrderParam],ContextInfo)`
提示
算法交易下单,此时使用交易面板-程序交易-函数交易-函数交易参数中设置的下单类型(普通交易,算法交易,随机量交易) 如果函数交易参数使用未修改的默认值,此函数和passorder函数一致, 设置了函数交易参数后,将会使用函数交易参数的超价等拆单参数,algo_passorder内的prType若赋值,则优先使用该参数,若algo_passorder内的prType=-1,将会使用userOrderParam内的opType,若userOrderParam未赋值,则使用界面上的函数交易参数的报价方式
参数:
其他参数同passorder,详细解释可参考passorder的说明
userOrderParam dict[str:value] 是用户自定义交易参数,主要用于修改算法交易的参数 其中Key Value定义如下
注:所有参数均为非必选
Key Value类型 Value
OrderType int 普通交易:0
算法交易:1
随机量交易:2
PriceType int 报价方式:数值同passorde prType
MaxOrderCount int 最大下单次数
SinglePriceRange int 波动区间是否单向:
否:0,
是:1
PriceRangeType int 波动区间类型按比例:0,按数值1
PriceRangeValue float 波动区间(按数值)
PriceRangeRate float 波动区间(按比例)[0-1]
SuperPriceType int 单笔超价类型:
按比例:0
按数值1
SuperPriceRate float 单笔超价(按比例)[0-1]
SuperPriceValue float 单笔超价(按数值)
VolumeType int 单笔基准量类型卖1+2+3+4+5量:0
卖1+2+3+4量:1
...
卖1量:4
买1量:5
...
买1+2+3+4+5量:9
目标量:10
目标剩余量:11
持仓数量:12
VolumeRate float 单笔下单比率[0-1]
SingleNumMin float 单笔下单量最小值
SingleNumMax float 单笔下单量最大值
ValidTimeType int 有效时间类型:
0:按持续时间
1 按时间区间,默认为0
ValidTimeElapse int 有效持续时间,ValidTimeType设置为0时生效
ValidTimeStart int 有效开始时间偏移,ValidTimeType设置为1时生效
ValidTimeEnd int 有效结束时间偏移,ValidTimeType设置为1时生效
UndealtEntrustRule int 未成委托处理数值同prType
PlaceOrderInterval int 下撤单时间间隔
UseTrigger int 是否触价:
否:0
是:1
TriggerType int 触价类型:
最新价大于:1
最新价小于:2
TriggerPrice float 触价价格
SuperPriceEnable int 超价启用笔数
返回
无
示例
python
#coding:gbk
userparam = {
"OrderType": 1,
"MaxOrderCount": 20,
"SuperPriceType": 1,
"SuperPriceValue": 1.12}
accid = '918800000818' #资金账号
algo_passorder(23,1101,accid,'000001.SZ',5,15,1000,'',1,'strReMark',userparam,ContextInfo)
#表示修改算法交易的最大委托次数为20,单笔下单基准类型为按价格类型超价,单笔超价1.12元,其他参数同函数交易参数中设置
smart_algo_passorder - 智能算法(VWAP 等)函数
提示
调用该函数需要有【智能算法】使用权限
用于使用主动算法或被动算法交易的函数如VWAP TWAP等
调用方法一:
python
smart_algo_passorder(opType,orderType,accountid,orderCode,prType,price,volume,strageName,quickTrade,userOrderId,smartAlgoType,limitOverRate,minAmountPerOrder,[targetPriceLevel,startTime,endTime,limitControl],ContextInfo)
提示
可选参数可缺省
参数:
其他参数同passorder,详细解释可参考passorder的说明
参数名 类型 说明 提示
prType int 可选值:
11:限价(只对单股情况支持,对组合交易不支持)
12:市价
特别的对于套利:这个prType只对篮子起作用,期货的采用默认的方式
smartAlgoType str 智能算法类型 [enum_constants#smartAlgoType智能算法类型]
limitOverRate int 量比 数据范围0-100 网格算法无此项
若在algoParam中填写量比,则填写范围0-1的小数。
minAmountPerOrder int 智能算法最小委托金额,数据范围0-100000
targetPriceLevel int 智能算法目标价格,可选值:
1:己方盘口 1
2:己方盘口2
3:己方盘口3
4:己方盘口4
5:己方盘口5
6:最新价
7:对方盘口 一、输入无效值则targetPriceLevel为1
二、本项只针对冰山算法,其他算法可缺省。
startTime str 智能算法开始时间 格式"HH:MM:SS",如"10:30:00"。如果缺省值,则默认为"09:30:00"
endTime str 智能算法截止时间 格式"HH:MM:SS",如"14:30:00"。如果缺省值,则默认为"15:30:00"
limitControl int 涨跌停控制 默认值为1
1:涨停不卖跌停不买
0:无限制
返回
无
示例:
python
#coding:gbk
def init(ContextInfo):
pass
def after_init(ContextInfo):
# # 使用smart_algo_passorder 下单
smart_algo_passorder(
23, # 买入
1101, # 表示volume的单位是股
account, # 资金账号
'000001.SZ',
12, # 11限价,12市价
0, # 限价时,价格填任意数量占位
50000, # 5000股
'',
2, # quickTrade
'',
'VWAP',
25, # 量比25%
0, # 智能算法最小委托金额
1, # 智能算法目标价格 本项只针对冰山算法,其他算法可缺省。
"10:25:00", # 开始时间
"14:50:00", # 结束时间
1, # 涨跌停控制 1为涨停不卖跌停不卖 0 为无限制
ContextInfo
)
调用方法二:
当时用algoParam时,函数声明为:smart_algo_passorder(opType,orderType,accountid,orderCode,prType,modelprice,volume,strageName,quickTrade,userid,smartAlgoType,startTime,endTime,algoParam,ContextInfo)参数均不可缺省
smartAlgoType,startTime,endTime 含义同上,algoParam请使用下面的方法获取:
获取algoParam具体字段
释义
获取智能算法参数配置信息
用法
python
get_smart_algo_param(algoList)
参数
参数 类型 说明
algoList list 需要查询参数配置信息的算法名称列表, 若传空则查询全部有权限的算法参数配置信息
返回
返回一个字典,键为算法名称,值为参数字典列表。
字段 类型 说明
key string 参数名称key值,即smart_algo_order中algoList字典需要传的键值
name string 参数名称
dataType string 参数类型
valueRange string 参数范围
defaultValue string 参数默认值
enumName string 参数枚举值的名称
enumValue string 参数实际的枚举值
unit string 参数的单位, 当单位为%时, 值要填写小数而非参数范围所示的百分数值
valueRangeByName string 不同算法参数范围
defaultValueByName string 不同算法参数默认值
示例
python
#coding:gbk
def init(ContextInfo):
pass
# 方法2 使用algoParam 和smart_algo_passorder
# 该方法部分旧版本客户端可能会不支持
# algoParam
# 先获取所有需要传入的参数
#
print(get_smart_algo_param(['VWAP']))
'''
输出:[2024-01-30 11:21:10][智能算法1][SH000300][日线]
{'VWAP': [
{'key': 'm_dLimitOverRate', 'name': '量比比例', 'dataType': '浮点数', 'valueRange': '0.00-100.00', 'defaultValue': '20.00', 'enumName': '', 'enumValue': '', 'unit': '%', 'valueRangByName': '', 'defaultValueByName': ''},
{'key': 'm_dMinAmountPerOrder', 'name': '委托最小金额', 'dataType': '整数', 'valueRange': '0-100000', 'defaultValue': '0', 'enumName': '', 'enumValue': '', 'unit': '', 'valueRangByName': '', 'defaultValueByName': ''},
{'key': 'm_dMaxAmountPerOrder', 'name': '委托最大金额', 'dataType': '浮点数', 'valueRange': '0.00-100000000.00', 'defaultValue': '0', 'enumName': '', 'enumValue': '', 'unit': '', 'valueRangByName': '', 'defaultValueByName': ''},
{'key': 'm_nStopTradeForOwnHiLow', 'name': '涨跌停控制', 'dataType': '整数', 'valueRange': '', 'defaultValue': '涨停不卖跌停不买', 'enumName': '无,涨停不卖跌停不买', 'enumValue': '0,1', 'unit': '', 'valueRangByName': '', 'defaultValueByName': ''},
{'key': 'm_dMulitAccountRate', 'name': '多账号总量比', 'dataType': '浮点数', 'valueRange': '0.00-100.00', 'defaultValue': '0', 'enumName': '', 'enumValue': '', 'unit': '%', 'valueRangByName': '', 'defaultValueByName': ''},
{'key': 'm_strCmdRemark', 'name': '投资备注', 'dataType': '字符串', 'valueRange': '', 'defaultValue': '', 'enumName': '', 'enumValue': '', 'unit': '', 'valueRangByName': '', 'defaultValueByName': ''}]}
'''
algoParam={
'm_dLimitOverRate': 0.25, # 量比 25%
'm_dMinAmountPerOrder':0, # 委托最小金额
'm_dMaxAmountPerOrder':10000, # 委托最大金额
'm_nStopTradeForOwnHiLow': 1, # 涨跌停控制
'm_dMulitAccountRate':0.30, # 多账号总量比
'm_strCmdRemark': '投资备注1' # 投资备注
}
smart_algo_passorder(
23,
1101,
account,
'600000.SH',
12,
0,
10000,
'',
2, # quickTrade
'投资备注',
'VWAP',
"10:25:00", # 开始时间
"14:50:00", # 结束时间
algoParam, # 算法参数
ContextInfo
)
cancel-撤销委托
调用方法cancel(orderId, accountId, accountType, ContextInfo)
参数
参数名 类型 含义 说明
orderId string 委托号 必填
accountID string 资金账号 必填
AccountType string 账号类型 可选:
'FUTURE':期货
'STOCK':股票
'CREDIT':信用
'HUGANGTONG':沪港通
'SHENGANGTONG':深港通
'STOCK_OPTION':期权
必填
ContextInfo class 含有k线信息和接口的上下文对象 必填
返回 bool,是否发出了取消委托信号,返回值含义:
True:是
False:否
示例
python返回值
#coding:gbk
'''
(1)下单前,根据 get_trade_detail_data 函数返回账号的信息,判定资金是否充足,账号是否在登录状态,统计持仓情况等等。
(2)满足一定的模型条件,用 passorder 下单。
(3)下单后,时刻根据 get_last_order_id 函数获取委托和成交的最新id,注意如果委托生成了,就有了委托号(这个id需要自己保存做一个全局控制)。
(4)用该委托号根据 get_value_by_order_id 函数查看委托的状态,各种情况等。
当一个委托的状态变成“已成'后,那么对应的成交 deal 信息就有一条成交数据;用该委托号可查看成交情况。
*注:委托列表和成交列表中的委托号是一样的,都是这个 m_strOrderSysID 属性值。
可用 get_last_order_id 获取最新的 order 的委托号,然后根据这个委托号获取 deal 的信息,当获取成功后,也说明这笔交易是成了,可再根据 position 持仓信息再进一步验证。
(5)根据委托号获取委托信息,根据委托状态,或模型设定,用 cancel 取消委托。
'''
def init(ContextInfo):
ContextInfo.accid = '6000000248'
def handlebar(ContextInfo):
if ContextInfo.is_last_bar():
orderid = get_last_order_id(ContextInfo.accid, 'stock', 'order')
print(cancel(orderid, ContextInfo.accid, 'stock', ContextInfo))
cancel_task - 撤销任务
调用方法cancel_task(taskId,accountId,accountType,ContextInfo)
参数
参数名 类型 含义 说明
taskId string 委托号 必填
accountID string 资金账号 必填
AccountType string 账号类型 可选:
'FUTURE':期货
'STOCK':股票
'CREDIT':信用
'HUGANGTONG':沪港通
'SHENGANGTONG':深港通
'STOCK_OPTION':期权
必填
ContextInfo class 含有k线信息和接口的上下文对象 必填
返回 bool,是否发出了撤销任务信号,返回值含义:
True:是
False:否
示例
python
#coding:gbk
'''
(1)根据get_trade_detail_data函数返回任务的信息,获取任务编号(m_nTaskId),任务状态等等;
(2)根据任务编号,用cancel_task取消委托。
'''
def init(ContextInfo):
ContextInfo.accid = '6000000248'
def handlebar(ContextInfo):
# 获取当前客户端所有的任务
if ContextInfo.is_last_bar():
objlist = get_trade_detail_data(ContextInfo.accid,'stock','task')
for obj in objlist:
cancel_task(str(obj.m_nTaskId),ContextInfo.accid,'stock',ContextInfo)
pause_task - 暂停任务
暂停智能算法任务
调用方法 pause_task(taskId,accountId,accountType,ContextInfo)
参数
参数名 类型 含义 说明
taskId string 委托号 必填
accountID string 资金账号 必填
AccountType string 账号类型 可选:
'FUTURE':期货
'STOCK':股票
'CREDIT':信用
'HUGANGTONG':沪港通
'SHENGANGTONG':深港通
'STOCK_OPTION':期权
必填
ContextInfo class 含有k线信息和接口的上下文对象 必填
返回 bool,是否发出了暂停任务信号,返回值含义:
True:是
False:否
示例
python
#coding:gbk
'''
(1)根据get_trade_detail_data函数返回任务的信息,获取任务编号(m_nTaskId),任务状态等等;
(2)根据任务编号,用pause_task暂停智能算法任务。
'''
def init(ContextInfo):
ContextInfo.accid = '6000000248'
def handlebar(ContextInfo):
if ContextInfo.is_last_bar():
# 获取当前客户端所有的任务
objlist = get_trade_detail_data(ContextInfo.accid,'stock','task')
for obj in objlist:
pause_task(obj.m_nTaskId,ContextInfo.accid,'stock',ContextInfo)
resume_task - 继续任务
继续智能算法任务
调用方法resume_task(taskId,accountId,accountType,ContextInfo)
参数
参数名 类型 含义 说明
taskId string 委托号 必填
accountID string 资金账号 必填
AccountType string 账号类型 可选:
'FUTURE':期货
'STOCK':股票
'CREDIT':信用
'HUGANGTONG':沪港通
'SHENGANGTONG':深港通
'STOCK_OPTION':期权
必填
ContextInfo class 含有k线信息和接口的上下文对象 必填
返回 bool,是否发出了重启任务信号,返回值含义:
True:是
False:否
示例
python
#coding:gbk
'''
(1)根据get_trade_detail_data函数返回任务的信息,获取任务编号(m_nTaskId),任务状态等等;
(2)根据任务编号,用resume_task启动已暂停智能算法任务。
'''
def init(ContextInfo):
ContextInfo.accid = '6000000248'
def handlebar(ContextInfo):
if ContextInfo.is_last_bar():
# 获取当前客户端所有的任务
objlist = get_trade_detail_data(ContextInfo.accid,'stock','task')
for obj in objlist:
resume_task(obj.m_nTaskId,ContextInfo.accid,'stock',ContextInfo)
get_basket-获取股票篮子
用法: get_basket(basketName)
释义: 获取股票篮子
参数:
basketName:股票篮子名称
示例:
print( get_basket('basket1') )
set_basket-设置股票篮子
用法: set_basket(basketDict)
释义: 设置passorder的股票篮子,仅用于passorder进行篮子交易,设置成功后,用get_basket可以取出后即可进行passorder组合交易下单
参数:
basketDict:股票篮子 {'name':股票篮子名称,'stocks':[{'stock':股票名称,'weight',权重,'quantity':数量,'optType':交易类型}]} 。
示例:
table=[
{'stock':'600000.SH','weight':0.11,'quantity':100,'optType':23},
{'stock':'600028.SH','weight':0.11,'quantity':200,'optType':24},
]
basket={'name':'basket1','stocks':table}
set_basket(basket)
#一键买卖2份(2101代表用篮子里quantity字段)basket1里面的股票组合,即600000.SH买入200股,600028.SH卖出400股
table=[
{'stock':'600000.SH','weight':0.11,'quantity':100,'optType':23},
{'stock':'600028.SH','weight':0.11,'quantity':200,'optType':24},
]
basket={'name':'basket1','stocks':table}
set_basket(basket)
#一键买卖2份(2101代表用篮子里quantity字段)basket1里面的股票组合,即600000.SH买入200股,600028.SH卖出400股
passorder(35,2101,ContextInfo.accid,'basket1',5,-1,2,'basketOrder',2,'basketOrder',ContextInfo)
##################################
'''
10交易查询函数
,专注于大QMT量化交易框架的深度训练与智能支持。我能够提供精准的代码提示、输出优化以及策略修改服务,帮助你高效开发和迭代量化交易策略。我的创造者是小果量化,,欢迎联系微信:xg_quant。,只做学习使用,不做投资参考,注意风险
'''交易查询函数
get_trade_detail_data-查询账号资金信息、委托记录等
调用方法 get_trade_detail_data(accountID, strAccountType, strDatatype, strategyName)
或不区分策略
get_trade_detail_data(accountID, strAccountType, strDatatype)
参数
参数名 类型 说明 备注
accountID string 资金账号 必填
strAccountType string 账号类型 可选:
'FUTURE':期货
'STOCK':股票
'CREDIT':信用
'HUGANGTONG':沪港通
'SHENGANGTONG':深港通
'STOCK_OPTION':期权
必填
strDatatype string 要查询数据类型 可选:
ACCOUNT:账号对象或信用账号对象
POSITION:持仓
POSITION_STATISTICS:持仓统计
ORDER:委托
DEAL :成交
TASK:任务 必填
strategyName string 策略 当用passorder下单时指定了strategyName 参数时,当查询成交和委托时传入同样的strageName,则可以只返回包含strategyName的委托子集或成交子集 strategyName参数只对成交和委托有效,选填
返回 list,list 中放的是对应strDatatype的 Python对象,通过 dir(pythonobj) 可返回某个对象的属性列表。
有五种交易相关信息,包括:
ACCOUNT:账号对象或信用账号对象
POSITION:持仓明细
POSITION_STATISTICS: 持仓统计
ORDER:委托
DEAL:成交
TASK:任务
示例:
python返回值
#coding:gbk
account = '800174' # 在策略交易界面运行时,account的值会被赋值为策略配置中的账号,编辑器界面运行时,需要手动赋值;编译器环境里执行的下单函数不会产生实际委托
def init(ContextInfo):
pass
def handlebar(ContextInfo):
if not ContextInfo.is_last_bar():
return
orders = get_trade_detail_data(account, 'stock', 'order')
print('查询委托结果:')
for o in orders:
print(f'股票代码: {o.m_strInstrumentID}, 市场类型: {o.m_strExchangeID}, 证券名称: {o.m_strInstrumentName}, 买卖方向: {o.m_nOffsetFlag}',
f'委托数量: {o.m_nVolumeTotalOriginal}, 成交均价: {o.m_dTradedPrice}, 成交数量: {o.m_nVolumeTraded}, 成交金额:{o.m_dTradeAmount}')
deals = get_trade_detail_data(account, 'stock', 'deal')
print('查询成交结果:')
for dt in deals:
print(f'股票代码: {dt.m_strInstrumentID}, 市场类型: {dt.m_strExchangeID}, 证券名称: {dt.m_strInstrumentName}, 买卖方向: {dt.m_nOffsetFlag}',
f'成交价格: {dt.m_dPrice}, 成交数量: {dt.m_nVolume}, 成交金额: {dt.m_dTradeAmount}')
positions = get_trade_detail_data(account, 'stock', 'position')
print('查询持仓结果:')
for dt in positions:
print(f'股票代码: {dt.m_strInstrumentID}, 市场类型: {dt.m_strExchangeID}, 证券名称: {dt.m_strInstrumentName}, 持仓量: {dt.m_nVolume}, 可用数量: {dt.m_nCanUseVolume}',
f'成本价: {dt.m_dOpenPrice:.2f}, 市值: {dt.m_dInstrumentValue:.2f}, 持仓成本: {dt.m_dPositionCost:.2f}, 盈亏: {dt.m_dPositionProfit:.2f}')
accounts = get_trade_detail_data(account, 'stock', 'account')
print('查询账号结果:')
for dt in accounts:
print(f'总资产: {dt.m_dBalance:.2f}, 净资产: {dt.m_dAssureAsset:.2f}, 总市值: {dt.m_dInstrumentValue:.2f}',
f'总负债: {dt.m_dTotalDebit:.2f}, 可用金额: {dt.m_dAvailable:.2f}, 盈亏: {dt.m_dPositionProfit:.2f}')
position_statistics = get_trade_detail_data(account,"FUTURE",'POSITION_STATISTICS')
for obj in position_statistics:
if obj.m_nDirection == 49:
continue
PositionInfo_dict[obj.m_strInstrumentID+"."+obj.m_strExchangeID]={
"持仓":obj.m_nPosition,
"成本":obj.m_dPositionCost,
"浮动盈亏":obj.m_dFloatProfit,
"保证金占用":obj.m_dUsedMargin
}
print(PositionInfo_dict)
get_history_trade_detail_data - 查询历史交易明细
用法: get_history_trade_detail_data(accountID,strAccountType,strDatatype,strStratDate,strEndDate);
释义: 获取历史成交明细数据,返回结果为一个([timetag,obj...])的元组
参数:
accountID:string,账号; strAccountType:string,账号类型,有"FUTURE","STOCK","CREDIT","HUGANGTONG","SHENGANGTONG","STOCK_OPTION"; strDatatype:string,交易明细数据类型,有:持仓"POSITION"、委托"ORDER"、成交"DEAL"; strStratDate:string,开始时间,如'20240513'; strEndDate:string,结束时间,如'20240514';
**返回:**list,list中放的是PythonObj,通过dir(pythonobj)可返回某个对象的属性列表 示例:
示例
def handlebar(ContextInfo):
obj_list = get_history_trade_detail_data('6000000248','stock','position','20240513','20240514')
for time,data in obj_list:
for obj in data:
print(obj.m_strInstrumentID)
print(dir(obj))#查看有哪些属性字段
get_ipo_data-获取当日新股新债信息
用法: get_ipo_data([,type])
释义: 获取当日新股新债信息,返回结果为一个字典,包括新股申购代码,申购名称,最大申购数量,最小申购数量等数据
参数:
type:为空时返回新股新债信息,type="STOCK"时只返回新股申购信息,type="BOND"时只返回新债申购信息
示例:
#coding:gbk
def init(ContextInfo):
ipoData=get_ipo_data()# 返回新股新债信息
ipoStock=get_ipo_data("STOCK")# 返回新股信息
ipoCB=get_ipo_data("BOND")# 返回新债申购信息
get_new_purchase_limit-获取账户新股申购额度
用法: get_new_purchase_limit(accid)
释义: 获取账户新股申购额度,返回结果为一个字典,包括上海主板,深圳市场,上海科创版的申购额度
参数:
accid:资金账号,必须时股票账号或者信用账号
示例:
def init(ContextInfo):
ContextInfo.accid="10000001"# 返回新股新债信息
purchase_limit=get_new_purchase_limit(ContextInfo.accid)
get_value_by_order_id-根据委托号获取委托或成交信息
调用方法get_value_by_order_id(orderId, accountID, strAccountType, strDatatype)
参数
参数名 类型 含义 说明
orderId string 委托号 必填
accountID string 资金账号 必填
strAccountType string 账号类型 可选:
'FUTURE':期货
'STOCK':股票
'CREDIT':信用
'HUGANGTONG':沪港通
'SHENGANGTONG':深港通
'STOCK_OPTION':期权
必填
strDatatype string 要查询数据类型 可选:
'ORDER':委托
'DEAL' :成交 必填
返回
委托对象 或 成交对象
示例
python返回值
def init(ContextInfo):
ContextInfo.accid = '6000000248'
def handlebar(ContextInfo):
orderid = get_last_order_id(ContextInfo.accid, 'stock', 'order')
print(orderid)
obj = get_value_by_order_id(orderid,ContextInfo.accid, 'stock', 'order')
print(obj.m_strInstrumentID)
调用方法
python
# 区分策略,添加策略名称参数 strategyName
get_last_order_id(accountID, strAccountType, strDatatype, strategyName)
# 不区分策略
get_last_order_id(accountID, strAccountType, strDatatype)
参数
参数名 类型 含义 说明
accountID string 资金账号 必填
strAccountType string 账号类型 可选:
'FUTURE':期货
'STOCK':股票
'CREDIT':信用
'HUGANGTONG':沪港通
'SHENGANGTONG':深港通
'STOCK_OPTION':期权
必填
strDatatype string 要查询数据类型 可选:
'ORDER':委托
'DEAL' :成交 必填
strategyName string 策略 当用passorder下单时指定了strategyName 参数时,当查询成交和委托时传入同样的strageName,则可以只返回包含strategyName的委托子集或成交子集 选填
返回
String,委托号,如果没找到返回 '-1'。
示例
def init(ContextInfo):
ContextInfo.accid = '6000000248'
def handlebar(ContextInfo):
orderid = get_last_order_id(ContextInfo.accid, 'stock', 'order')
print(orderid)
obj = get_value_by_order_id(orderid,ContextInfo.accid, 'stock', 'order')
print(obj.m_strInstrumentID)
get_assure_contract-获取两融担保标的明细
用法: get_assure_contract(accId)
释义: 获取信用账户担保合约明细
参数:
accId:信用账户
返回: list,list 中放的是 StkSubjects,通过 dir(pythonobj) 可返回某个对象的属性列表。
示例:
python
def show_data(data):
tdata = {}
for ar in dir(data):
if ar[:2] != 'm_':continue
try:
tdata[ar] = data.__getattribute__(ar)
except:
tdata[ar] = '<CanNotConvert>'
return tdata
def handlebar(ContextInfo):
obj = get_assure_contract('6000000248')
for i in obj[:3]:
print(show_data(i))
"""
{'m_dAssureRatio': 0.0, # 担保品折算比例
'm_dFinRatio': 0.8, # 融资保证金比例
'm_dSloRatio': 1.0, # 融券保证金比例
'm_eAssureStatus': 50, # 是否可做担保
'm_eCreditFundCtl': 50, # 融资交易控制
'm_eCreditStkCtl': 50, # 融券交易控制
'm_eFinStatus': 48, # 融资状态
'm_eSloStatus': 48, # 融券状态
'm_nPlatformID': 10064, # 平台号
'm_strAccountID': '95000857', # 资金账号
'm_strBrokerID': '003', # 经纪公司编号
'm_strBrokerName': '光大证券信用', # 证券公司
'm_strExchangeID': 'SH', # 交易所
'm_strInstrumentID':'510150' # 证券代码
"""
get_enable_short_contract-获取可融券明细
提示
注:由于字段m_dSloRatio、m_dSloStatus提供来源和取担保品明细(get_assure_contract)重复,字段在2021年9月移除,后续用担保品明细接口获取,具体见 担保标的对象字段说明
用法: get_enable_short_contract(accId)
释义: 获取信用账户当前可融券的明细
参数:
accId:信用账户
返回: list,list 中放的是 CreditSloEnableAmount,通过 dir(pythonobj) 可返回某个对象的属性列表。
示例:
python
def show_data(data):
tdata = {}
for ar in dir(data):
if ar[:2] != 'm_':continue
try:
tdata[ar] = data.__getattribute__(ar)
except:
tdata[ar] = '<CanNotConvert>'
return tdata
def handlebar(ContextInfo):
obj = get_enable_short_contract('6000000248')
for i in obj[:3]:
print(show_data(i))
"""
Rerutn:
{'m_eQuerySloType': 48, # 查询类型
'm_nEnableAmount': 0, # 融券可融数量
'm_nPlatformID': 10064, # 平台号
'm_strAccountID': '95000857', # 资金账号
'm_strBrokerID': '003', # 经纪公司编号
'm_strBrokerName': '光大证券信用', # 证券公司
'm_strExchangeID': 'SH', # 标的市场
'm_strInstrumentID': '688321' # 证券代码
}
"""
query_credit_account - 查询信用账户明细
注意
本函数一次最多查询200只股票的两融最大下单量,且同时只能有一个查询,如果前面的查询正在进行中,后面的查询将会提前返回。本函数从服务器查询数据,建议平均查询时间间隔180s一次,不可频繁调用。
该函数必须配合credit_account_callback回调才能使用,关于此回调的说明请看credit_account_callback
callback返回的对象是CCreditAccountDetail
调用query_credit_account,该接口的查询结果将会推送给credit_account_callback,所以程序里需要按照函数参数实现函数credit_account_callback,callback返回的对象是CCreditAccountDetail
用法: query_credit_account(accountId,seq,ContextInfo)
释义: 查询信用账户明细。本函数只能有一个查询,如果前面的查询正在进行中,后面的查询将会提前返回。
参数:
accountId:string,查询的两融账号
seq:int,查询序列号,建议输入唯一值以便对应结果回调
示例:
python返回值
#coding:gbk
import time
def init(ContextInfo):
ContextInfo.accid='200133'
def handlebar(ContextInfo):
if ContextInfo.is_last_bar():
query_credit_account(ContextInfo.accid,int(time.time()),ContextInfo)
# 该函数必须配合credit_account_callback回调才能使用
def credit_account_callback(ContextInfo,seq,result):
print(seq)
print(f":维持担保比例:{result.m_dPerAssurescaleValue:.2f},总负债:{result.m_dTotalDebt:.2f}")
回调示例 见query_credit_account
query_credit_opvolume - 查询两融最大可下单量
注意
本函数一次最多查询200只股票的两融最大下单量,且同时只能有一个查询,如果前面的查询正在进行中,后面的查询将会提前返回。本函数从服务器查询数据,建议平均查询时间间隔180s一次,不可频繁调用。
该函数必须配合credit_opvolume_callback回调才能使用,关于此回调的说明请看credit_account_callback
调用query_credit_opvolume,该接口的查询结果将会推送给credit_opvolume_callback,所以必须配合credit_opvolume_callback回调才能使用
用法: query_credit_opvolume(accountId,stockCode,opType,prType,price,seq,ContextInfo)
释义: 查询两融最大可下单量。
参数:
accountId:查询的两融账号
stockCode:需要查询的股票代码,stockCode为List的类型,可以查询多只股票
opType:两融下单类型,同passorder的下单类型
prType:报单价格类型,同passorder的报价类型
seq:查询序列号,int型,建议输入唯一值以便对应结果回调
price:报价(非限价单可以填任意值),如果stockCode为List类型,报价也需要为长度相同的List
ContextInfo:ContextInfo类
示例:
python返回值
#coding:gbk
import time
def init(ContextInfo):
ContextInfo.accid='200133'
def handlebar(ContextInfo):
if ContextInfo.is_last_bar():
#查询accid账号担保品买入600000,SH限价10元的最大可下单量
query_credit_opvolume(ContextInfo.accid,'600000.SH',33,11,10,int(time.time()),C) # 查询两融最大可下单量。
time.sleep(0.5)
#查询accid账号担保品买入600000,SH限价10元,000001.SZ担保品买入限价20元的最大可下单量
query_credit_opvolume(ContextInfo.accid,["600000.SH","000001.SZ"],33,11,[10,20],int(time.time()),C) # 查询两融最大可下单量。
# 该函数必须配合credit_opvolume_callback回调才能使用
def credit_opvolume_callback(ContextInfo,accid,seq,ret,result):
print(seq)
print(f'查询结果:{ret}') # 正常返回:1,正在查询中-1,输入账号非法:-2,输入查询参数非法:-3,超时等服务器返回报错:-4
print(result)
get_option_subject_position-取期权标的持仓
用法: get_option_subject_position(accountID)
释义: 取期权标的持仓
参数:
accountID:string,账号
返回: list,list中放的是CLockPosition,通过dir(pythonobj)可返回某个对象的属性列表
示例:
data=get_option_subject_position('880399990383')
print(len(data));
forobjindata:
print(obj.m_strInstrumentName,obj.m_lockVol,obj.m_coveredVol);
get_comb_option-取期权组合持仓
用法: get_comb_option(accountID)
释义: 取期权组合持仓
参数:
accountID:string,账号
返回: list,list中放的是CStkOptCombPositionDetail ,通过dir(pythonobj)可返回某个对象的属性列表
示例:
obj_list=get_comb_option('880399990383')
print(len(obj_list));
forobjinobj_list:
print(obj.m_strCombCodeName,obj.m_strCombID,obj.m_nVolume,obj.m_nFrozenVolume)
get_unclosed_compacts-获取未了结负债合约明细
用法: get_unclosed_compacts(accountID,accountType)
释义: 获取未了结负债合约明细
参数:
accountID:str,资金账号
accountType:str,账号类型,这里应该填'CREDIT'
返回:
list([ CStkUnclosedCompacts, ... ]) 负债列表,CStkUnclosedCompacts属性如下:
字段名称 类型 说明
m_strAccountID string 账号ID
m_nBrokerType int 账号类型
1-期货账号
2-股票账号
3-信用账号
5-期货期权账号
6-股票期权账号
7-沪港通账号
11-深港通账号
m_strExchangeID string 市场
m_strInstrumentID string 证券代码
m_eCompactType int 合约类型
32-不限制
48-融资
49-融券
m_eCashgroupProp int 头寸来源
32-不限制
48-普通头寸
49-专项头寸
m_nOpenDate int 开仓日期(如'20201231')
m_nBusinessVol int 合约证券数量
m_nRealCompactVol int 未还合约数量
m_nRetEndDate int 到期日(如'20201231')
m_dBusinessBalance float 合约金额
m_dBusinessFare float 合约息费
m_dRealCompactBalance float 未还合约金额
m_dRealCompactFare float 未还合约息费
m_dRepaidFare float 已还息费
m_dRepaidBalance float 已还金额
m_strCompactId string 合约编号
m_strEntrustNo string 委托编号
m_nRepayPriority int 偿还优先级
m_strPositionStr string 定位串
m_eCompactRenewalStatus int 合约展期状态
48-可申请
49-已申请
50-审批通过
51-审批不通过
52-不可申请
53-已执行
54-已取消
m_nDeferTimes int 展期次数
示例:
get_unclosed_compacts('6000000248', 'CREDIT')
get_closed_compacts-获取已了结负债合约明细
用法: get_closed_compacts(accountID,accountType)
释义: 获取已了结负债合约明细
参数:
accountID:str,资金账号
accountType:str,账号类型,这里应该填'CREDIT'
返回:
list([ CStkUnclosedCompacts, ... ]) 负债列表,CStkUnclosedCompacts属性如下:
字段名 类型 描述
m_strAccountID string 账号ID
m_nBrokerType int 账号类型
1-期货账号
2-股票账号
3-信用账号
5-期货期权账号
6-股票期权账号
7-沪港通账号
11-深港通账号
m_strExchangeID string 市场
m_strInstrumentID string 证券代码
m_eCompactType int 合约类型
32-不限制
48-融资
49-融券
m_eCashgroupProp int 头寸来源
32-不限制
48-普通头寸
49-专项头寸
m_nOpenDate int 开仓日期(如'20201231')
m_nBusinessVol int 合约证券数量
m_nRetEndDate int 到期日(如'20201231')
m_nDateClear int 了结日期(如'20201231')
m_nEntrustVol int 委托数量
m_dEntrustBalance float 委托金额
m_dBusinessBalance float 合约金额
m_dBusinessFare float 合约息费
m_dRepaidFare float 已还息费
m_dRepaidBalance float 已还金额
m_strCompactId string 合约编号
m_strEntrustNo string 委托编号
m_strPositionStr string 定位串
示例:
get_closed_compacts('6000000248', 'CREDIT')
################################
'''
11其他交易函数仅回测可用
,专注于大QMT量化交易框架的深度训练与智能支持。我能够提供精准的代码提示、输出优化以及策略修改服务,帮助你高效开发和迭代量化交易策略。我的创造者是小果量化,,欢迎联系微信:xg_quant。,只做学习使用,不做投资参考,注意风险
'''
其他交易函数(仅回测可用)
警告
以下函数仅回测生效,实盘和模拟盘交易均不可用
order_lots-指定手数交易
用法: order_lots(stockcode, lots[, style, price], ContextInfo[, accId])
释义: 指定手数交易,指定手数发送买/卖单。如有需要落单类型当做一个参量传入,如果忽略掉落单类型,那么默认以最新价下单。
参数:
stockcode:代码,string,如 '000002.SZ'
lots:手数,int
style:下单选价类型,string,默认为最新价 'LATEST',可选值:
'LATEST':最新
'FIX':指定 选此参数时必须指定有效的price参数,其他style值可不用传入price参数
'HANG':挂单 用己方盘口挂单,即买入时用盘口买一价下单,卖出时用卖一价挂单,
'COMPETE':对手
'MARKET':市价
'SALE5', 'SALE4', 'SALE3', 'SALE2', 'SALE1':卖5-1价
'BUY1', 'BUY2', 'BUY3', 'BUY4', 'BUY5':买1-5价
price:价格,double
ContextInfo:PythonObj,Python 对象,这里必须是 ContextInfo
accId:账号,string
返回: 无
示例:
def handlebar(ContextInfo):
# 按最新价下 1 手买入
order_lots('000002.SZ', 1, ContextInfo, '600000248')
# 用对手价下 1 手卖出
order_lots('000002.SZ', -1, 'COMPETE', ContextInfo, '600000248')
# 用指定价 37.5 下 2 手卖出
order_lots('000002.SZ', -2, 'fix', 37.5, ContextInfo, '600000248')
order_value-指定价值交易
用法: order_value(stockcode, value[, style, price], ContextInfo[, accId])
释义: 指定价值交易,使用想要花费的金钱买入 / 卖出股票,而不是买入 / 卖出想要的股数,正数代表买入,负数代表卖出。股票的股数总是会被调整成对应的 100 的倍数(在中国 A 股市场 1 手是 100 股)。当您提交一个卖单时,该方法代表的意义是您希望通过卖出该股票套现的金额,如果金额超出了您所持有股票的价值,那么您将卖出所有股票。需要注意,如果资金不足,该 API 将不会创建发送订单。
参数:
stockcode:代码,string,如 '000002.SZ'
value:金额(元),double
style:下单选价类型,string,默认为最新价 'LATEST',可选值:
'LATEST':最新
'FIX':指定
'HANG':挂单
'COMPETE':对手
'MARKET':市价
'SALE5', 'SALE4', 'SALE3', 'SALE2', 'SALE1':卖5-1价
'BUY1', 'BUY2', 'BUY3', 'BUY4', 'BUY5':买1-5价
price:价格,double
ContextInfo:PythonObj,Python 对象,这里必须是 ContextInfo
accId:账号,string
返回: 无
示例:
def handlebar(ContextInfo):
# 按最新价下 10000 元买入
order_value('000002.SZ', 10000, ContextInfo, '600000248')
# 用对手价下 10000 元卖出
order_value('000002.SZ', -10000, 'COMPETE', ContextInfo, '600000248')
# 用指定价 37.5 下 20000 元卖出
order_value('000002.SZ', -20000, 'fix', 37.5, ContextInfo, '600000248')
order_percent-指定比例交易
用法: order_percent(stockcode, percent[, style, price], ContextInfo[, accId])
释义: 指定比例交易,发送一个等于目前投资组合价值(市场价值和目前现金的总和)一定百分比的买 / 卖单,正数代表买,负数代表卖。股票的股数总是会被调整成对应的一手的股票数的倍数(1 手是 100 股)。百分比是一个小数,并且小于或等于1(小于等于100%),0.5 表示的是 50%。需要注意,如果资金不足,该 API 将不会创建发送订单。
参数:
stockcode:代码,string,如 '000002.SZ'
percent:比例,double
style:下单选价类型,string,默认为最新价 'LATEST',可选值:
'LATEST':最新
'FIX':指定
'HANG':挂单
'COMPETE':对手
'MARKET':市价
'SALE5', 'SALE4', 'SALE3', 'SALE2', 'SALE1':卖5-1价
'BUY1', 'BUY2', 'BUY3', 'BUY4', 'BUY5':买1-5价
price:价格,double
ContextInfo:PythonObj,Python 对象,这里必须是 ContextInfo
accId:账号,string
返回: 无
示例:
def handlebar(ContextInfo):
# 按最新价下 5.1% 价值买入
order_percent('000002.SZ', 0.051, ContextInfo, '600000248')
# 用对手价下 5.1% 价值卖出
order_percent('000002.SZ', -0.051, 'COMPETE', ContextInfo, '600000248')
# 用指定价 37.5 下 10.2% 价值卖出
order_percent('000002.SZ', -0.102, 'fix', 37.5, ContextInfo, '600000248')
order_target_value-指定目标价值交易
用法: order_target_value(stockcode, tar_value[, style, price], ContextInfo[, accId])
释义: 指定目标价值交易,买入 / 卖出并且自动调整该证券的仓位到一个目标价值。如果还没有任何该证券的仓位,那么会买入全部目标价值的证券;如果已经有了该证券的仓位,则会买入 / 卖出调整该证券的现在仓位和目标仓位的价值差值的数目的证券。需要注意,如果资金不足,该API将不会创建发送订单。
参数:
stockcode:代码,string,如 '000002.SZ'
tar_value:目标金额(元),double,非负数
style:下单选价类型,string,默认为最新价 'LATEST',可选值:
'LATEST':最新
'FIX':指定
'HANG':挂单
'COMPETE':对手
'MARKET':市价
'SALE5', 'SALE4', 'SALE3', 'SALE2', 'SALE1':卖5-1价
'BUY1', 'BUY2', 'BUY3', 'BUY4', 'BUY5':买1-5价
price:价格,double
ContextInfo:PythonObj,Python 对象,这里必须是 ContextInfo
accId:账号,string
返回: 无
示例:
def handlebar(ContextInfo):
# 按最新价下调仓到 10000 元持仓
order_target_value('000002.SZ', 10000, ContextInfo, '600000248')
# 用对手价调仓到 10000 元持仓
order_target_value('000002.SZ', 10000, 'COMPETE', ContextInfo, '600000248')
# 用指定价 37.5 下调仓到 20000 元持仓
order_target_value('000002.SZ', 20000, 'fix', 37.5, ContextInfo, '600000248')
order_target_percent-指定目标比例交易
用法: order_target_percent(stockcode, tar_percent[, style, price], ContextInfo[, accId])
释义: 指定目标比例交易,买入 / 卖出证券以自动调整该证券的仓位到占有一个指定的投资组合的目标百分比。投资组合价值等于所有已有仓位的价值和剩余现金的总和。买 / 卖单会被下舍入一手股数(A 股是 100 的倍数)的倍数。目标百分比应该是一个小数,并且最大值应该小于等于1,比如 0.5 表示 50%,需要注意,如果资金不足,该API将不会创建发送订单。
参数:
stockcode:代码,string,如 '000002.SZ'
tar_percent:目标百分比 [0 ~ 1],double
style:下单选价类型,string,默认为最新价 'LATEST',可选值:
'LATEST':最新
'FIX':指定
'HANG':挂单
'COMPETE':对手
'MARKET':市价
'SALE5', 'SALE4', 'SALE3', 'SALE2', 'SALE1':卖5-1价
'BUY1', 'BUY2', 'BUY3', 'BUY4', 'BUY5':买1-5价
price:价格,double
ContextInfo:PythonObj,Python 对象,这里必须是 ContextInfo
accId:账号,string
返回: 无
示例:
def handlebar(ContextInfo):
# 按最新价下买入调仓到 5.1% 持仓
order_target_percent('000002.SZ', 0.051, ContextInfo, '600000248')
# 用对手价调仓到 5.1% 持仓
order_target_percent('000002.SZ', 0.051, 'COMPETE', ContextInfo, '600000248')
# 用指定价 37.5 调仓到 10.2% 持仓
order_target_percent('000002.SZ', 0.102, 'fix', 37.5, ContextInfo, '600000248')
order_shares-指定股数交易
用法: order_shares(stockcode, shares[, style, price], ContextInfo[, accId])
释义: 指定股数交易,指定股数的买 / 卖单,最常见的落单方式之一。如有需要落单类型当做一个参量传入,如果忽略掉落单类型,那么默认以最新价下单。
参数:
stockcode:代码,string,如 '000002.SZ'
shares:股数,int
style:下单选价类型,string,默认为最新价 'LATEST',可选值:
'LATEST':最新
'FIX':指定
'HANG':挂单
'COMPETE':对手
'MARKET':市价
'SALE5', 'SALE4', 'SALE3', 'SALE2', 'SALE1':卖5-1价
'BUY1', 'BUY2', 'BUY3', 'BUY4', 'BUY5':买1-5价
price:价格,double
ContextInfo:PythonObj,Python 对象,这里必须是 ContextInfo
accId:账号,string
返回: 无
示例:
def handlebar(ContextInfo):
# 按最新价下 100 股买入
order_shares('000002.SZ', 100, ContextInfo, '600000248')
# 用对手价下 100 股卖出
order_shares('000002.SZ', -100, 'COMPETE', ContextInfo, '600000248')
# 用指定价 37.5 下 200 股卖出
order_shares('000002.SZ', -200, 'fix', 37.5, ContextInfo, '600000248')
buy_open-期货买入开仓
用法: buy_open(stockcode, amount[, style, price], ContextInfo[, accId])
释义: 期货买入开仓
参数:
stockcode:代码,string,如 'IF1805.IF'
amount:手数,int
style:下单选价类型,string,默认为最新价 'LATEST',可选值:
'LATEST':最新
'FIX':指定
'HANG':挂单
'COMPETE':对手
'MARKET':市价
'SALE1':卖一价
'BUY1':买一价
price:价格,double
ContextInfo:PythonObj,Python 对象,这里必须是 ContextInfo
accId:账号,string
返回: 无
示例:
def handlebar(ContextInfo):
# 按最新价 1 手买入开仓
buy_open('IF1805.IF', 1, ContextInfo, '110476')
# 用对手价 1 手买入开仓
buy_open('IF1805.IF', 1, 'COMPETE', ContextInfo, '110476')
# 用指定价 3750 元 2 手买入开仓
buy_open('IF1805.IF', 2, 'fix', 3750, ContextInfo, '110476')
buy_close_tdayfirst-期货买入平仓(平今优先)
用法: buy_close_tdayfirst(stockcode, amount[, style, price], ContextInfo[, accId])
释义: 期货买入平仓,平今优先
参数:
stockcode:代码,string,如 'IF1805.IF'
amount:手数,int
style:下单选价类型,string,默认为最新价 'LATEST',可选值:
'LATEST':最新
'FIX':指定
'HANG':挂单
'COMPETE':对手
'MARKET':市价
'SALE1':卖一价
'BUY1':买一价
price:价格,double
ContextInfo:PythonObj,Python 对象,这里必须是 ContextInfo
accId:账号,string
返回: 无
示例:
def handlebar(ContextInfo):
# 按最新价 1 手买入平仓,平今优先
buy_close_tdayfirst('IF1805.IF', 1, ContextInfo, '110476')
# 用对手价 1 手买入平仓,平今优先
buy_close_tdayfirst('IF1805.IF', 1, 'COMPETE', ContextInfo, '110476')
# 用指定价 3750 元 2 手买入平仓,平今优先
buy_close_tdayfirst('IF1805.IF', 2, 'fix', 3750, ContextInfo, '110476')
buy_close_ydayfirst-期货买入平仓(平昨优先)
用法: buy_close_ydayfirst(stockcode, amount[, style, price], ContextInfo[, accId])
释义: 期货买入开仓,平昨优先
参数:
stockcode:代码,string,如 'IF1805.IF'
amount:手数,int
style:下单选价类型,string,默认为最新价 'LATEST',可选值:
'LATEST':最新
'FIX':指定
'HANG':挂单
'COMPETE':对手
'MARKET':市价
'SALE1':卖一价
'BUY1':买一价
price:价格,double
ContextInfo:PythonObj,Python 对象,这里必须是 ContextInfo
accId:账号,string
返回: 无
示例:
def handlebar(ContextInfo):
# 按最新价 1 手买入平仓,平昨优先
buy_close_ydayfirst('IF1805.IF', 1, ContextInfo, '110476')
# 用对手价 1 手买入平仓,平昨优先
buy_close_ydayfirst('IF1805.IF', 1, 'COMPETE', ContextInfo, '110476')
# 用指定价 3750 元 2 手买入平仓,平昨优先
buy_close_ydayfirst('IF1805.IF', 2, 'fix', 3750, ContextInfo, '110476')
sell_open-期货卖出开仓
用法: sell_open(stockcode, amount[, style, price], ContextInfo[, accId])
释义: 期货卖出开仓
参数:
stockcode:代码,string,如 'IF1805.IF'
amount:手数,int
style:下单选价类型,string,默认为最新价 'LATEST',可选值:
'LATEST':最新
'FIX':指定
'HANG':挂单
'COMPETE':对手
'MARKET':市价
'SALE1':卖一价
'BUY1':买一价
price:价格,double
ContextInfo:PythonObj,Python 对象,这里必须是 ContextInfo
accId:账号,string
返回: 无
示例:
def handlebar(ContextInfo):
# 按最新价 1 手卖出开仓
sell_open('IF1805.IF', 1, ContextInfo, '110476')
# 用对手价 1 手卖出开仓
sell_open('IF1805.IF', 1, 'COMPETE', ContextInfo, '110476')
# 用指定价 3750 元 2 手卖出开仓
sell_open('IF1805.IF', 2, 'fix',3750, ContextInfo, '110476')
sell_close_tdayfirst-期货卖出平仓(平今优先)
用法: sell_close_tdayfirst(stockcode, amount[, style, price], ContextInfo[, accId])
释义: 期货卖出平仓,平今优先
参数:
stockcode:代码,string,如 'IF1805.IF'
amount:手数,int
style:下单选价类型,string,默认为最新价 'LATEST',可选值:
'LATEST':最新
'FIX':指定
'HANG':挂单
'COMPETE':对手
'MARKET':市价
'SALE1':卖一价
'BUY1':买一价
price:价格,double
ContextInfo:PythonObj,Python 对象,这里必须是 ContextInfo
accId:账号,string
返回: 无
示例:
def handlebar(ContextInfo):
# 按最新价下 1 手卖出平仓,平今优先
sell_close_tdayfirst('IF1805.IF', 1, ContextInfo, '110476')
# 用对手价 1 手卖出平仓,平今优先
sell_close_tdayfirst('IF1805.IF', 1, 'COMPETE', ContextInfo, '110476')
# 用指定价 3750 元 2 手卖出平仓,平今优先
sell_close_tdayfirst('IF1805.IF', 1, 'fix', 3750, ContextInfo, '110476')
sell_close_ydayfirst-期货卖出平仓(平昨优先)
用法: sell_close_ydayfirst(stockcode, amount[, style, price], ContextInfo[, accId])
释义: 期货卖出平仓,平昨优先
参数:
stockcode:代码,string,如 'IF1805.IF'
amount:手数,int
style:下单选价类型,string,默认为最新价 'LATEST',可选值:
'LATEST':最新
'FIX':指定
'HANG':挂单
'COMPETE':对手
'MARKET':市价
'SALE1':卖一价
'BUY1':买一价
price:价格,double
ContextInfo:PythonObj,Python 对象,这里必须是 ContextInfo
accId:账号,string
返回: 无
示例:
def handlebar(ContextInfo):
# 按最新价 1 手卖出平仓,平昨优先
sell_close_ydayfirst('IF1805.IF', 1, ContextInfo, '110476')
# 用对手价 1 手卖出平仓,平昨优先
sell_close_ydayfirst('IF1805.IF', 1, 'COMPETE', ContextInfo, '110476')
# 用指定价 3750 元 2 手卖出平仓,平昨优先
sell_close_ydayfirst('IF1805.IF', 2, 'fix', 3750, ContextInfo, '110476')
[已弃用] get_debt_contract-获取两融负债合约明细
用法: get_debt_contract(accId)
释义: 获取信用账户负债合约明细
此接口已弃用,替代接口为get_unclosed_compacts(获取未了结负债)和get_closed_compacts(获取已了结负债)
参数:
accId:信用账户
返回: list,list 中放的是 PythonObj,通过 dir(pythonobj) 可返回某个对象的属性列表。
示例:
def handlebar(ContextInfo):
obj_list = get_debt_contract('6000000248')
for obj in obj_list:
# 输出负债合约名
print(obj.m_strInstrumentName)
get_hkt_exchange_rate-获取沪深港通汇率数据
用法: get_hkt_exchange_rate(accountID,accountType)
释义: 获取沪深港通汇率数据
参数:
accountID:string,账号;
accountType:string,账号类型,必须填HUGANGTONG或者SHENGANGTONG
返回:
dict,字段释义:
bidReferenceRate:买入参考汇率
askReferenceRate:卖出参考汇率
dayBuyRiseRate:日间买入参考汇率浮动比例
daySaleRiseRate:日间卖出参考汇率浮动比例
示例:
def init(ContextInfo):
data=get_hkt_exchange_rate('6000000248','HUGANGTONG')
print(data)
#########################################
'''
12实时主推函数
,专注于大QMT量化交易框架的深度训练与智能支持。我能够提供精准的代码提示、输出优化以及策略修改服务,帮助你高效开发和迭代量化交易策略。我的创造者是小果量化,,欢迎联系微信:xg_quant。,只做学习使用,不做投资参考,注意风险
'''
account_callback - 资金账号状态变化主推
提示
仅在实盘运行模式下生效。
需要先在init里调用ContextInfo.set_account后生效。
用法: account_callback(ContextInfo, accountInfo)
释义: 当资金账号状态有变化时,这个函数被客户端调用
参数:
ContextInfo:特定对象
accountInfo:账号对象或信用账号对象
返回: 无
示例:
示例返回值
#coding:gbk
def show_data(data):
tdata = {}
for ar in dir(data):
if ar[:2] != 'm_':continue
try:
tdata[ar] = data.__getattribute__(ar)
except:
tdata[ar] = '<CanNotConvert>'
return tdata
def init(ContextInfo):
# 设置对应的资金账号
# 示例需要在策略交易界面运行
ContextInfo.set_account(account)
def after_init(ContextInfo):
# 在策略交易界面运行时,account的值会被赋值为策略配置中的账号,编辑器界面运行时,需要手动赋值
# 编译器界面里执行的下单函数不会产生实际委托
passorder(23, 1101, account, "000001.SZ", 5, 0, 100, "示例", 2, "投资备注",ContextInfo)
pass
def account_callback(ContextInfo, accountInfo):
print(show_data(accountInfo))
task_callback - 账号任务状态变化主推
提示
仅在实盘运行模式下生效。
需要先在init里调用ContextInfo.set_account后生效。
用法: task_callback(ContextInfo, taskInfo)
释义: 当账号任务状态有变化时,这个函数被客户端调用
参数:
ContextInfo:特定对象
taskInfo 任务对象
返回: 无
示例:
示例返回值
#coding:gbk
def show_data(data):
tdata = {}
for ar in dir(data):
if ar[:2] != 'm_':continue
try:
tdata[ar] = data.__getattribute__(ar)
except:
tdata[ar] = '<CanNotConvert>'
return tdata
def init(ContextInfo):
# 设置对应的资金账号
# 示例需要在策略交易界面运行
ContextInfo.set_account(account)
def after_init(ContextInfo):
# 在策略交易界面运行时,account的值会被赋值为策略配置中的账号,编辑器界面运行时,需要手动赋值
# 编译器界面里执行的下单函数不会产生实际委托
passorder(23, 1101, account, "000001.SZ", 5, 0, 100, "示例", 2, "投资备注",ContextInfo)
pass
def task_callback(ContextInfo, taskInfo):
print(show_data(taskInfo))
order_callback - 账号委托状态变化主推
提示
仅在实盘运行模式下生效。
需要先在init里调用ContextInfo.set_account后生效。
用法: order_callback(ContextInfo, orderInfo)
释义: 当账号委托状态有变化时,这个函数被客户端调用
参数:
ContextInfo:特定对象
orderInfo:委托
返回: 无
示例:
示例返回值
#coding:gbk
def show_data(data):
tdata = {}
for ar in dir(data):
if ar[:2] != 'm_':continue
try:
tdata[ar] = data.__getattribute__(ar)
except:
tdata[ar] = '<CanNotConvert>'
return tdata
def init(ContextInfo):
# 设置对应的资金账号
# 示例需要在策略交易界面运行
ContextInfo.set_account(account)
def after_init(ContextInfo):
# 在策略交易界面运行时,account的值会被赋值为策略配置中的账号,编辑器界面运行时,需要手动赋值
# 编译器界面里执行的下单函数不会产生实际委托
passorder(23, 1101, account, "000001.SZ", 5, 0, 100, "示例", 2, "投资备注",ContextInfo)
pass
def order_callback(ContextInfo, orderInfo):
print(show_data(orderInfo))
deal_callback - 账号成交状态变化主推
提示
仅在实盘运行模式下生效。
需要先在init里调用ContextInfo.set_account后生效。
用法: deal_callback(ContextInfo, dealInfo)
释义: 当账号成交状态有变化时,这个函数被客户端调用
参数:
ContextInfo:特定对象
dealInfo:成交
返回: 无
示例:
示例返回值
#coding:gbk
def show_data(data):
tdata = {}
for ar in dir(data):
if ar[:2] != 'm_':continue
try:
tdata[ar] = data.__getattribute__(ar)
except:
tdata[ar] = '<CanNotConvert>'
return tdata
def init(ContextInfo):
# 设置对应的资金账号
# 示例需要在策略交易界面运行
ContextInfo.set_account(account)
def after_init(ContextInfo):
# 在策略交易界面运行时,account的值会被赋值为策略配置中的账号,编辑器界面运行时,需要手动赋值
# 编译器界面里执行的下单函数不会产生实际委托
passorder(23, 1101, account, "000001.SZ", 5, 0, 100, "示例", 2, "投资备注",ContextInfo)
pass
def deal_callback(ContextInfo, dealInfo):
print(show_data(dealInfo))
position_callback - 账号持仓状态变化主推
提示
仅在实盘运行模式下生效。
需要先在init里调用ContextInfo.set_account后生效。
用法: position_callback(ContextInfo, positonInfo)
释义: 当账号持仓状态有变化时,这个函数被客户端调用
参数:
ContextInfo:特定对象
positonInfo:持仓
返回: 无
示例:
示例返回值
#coding:gbk
def show_data(data):
tdata = {}
for ar in dir(data):
if ar[:2] != 'm_':continue
try:
tdata[ar] = data.__getattribute__(ar)
except:
tdata[ar] = '<CanNotConvert>'
return tdata
def init(ContextInfo):
# 设置对应的资金账号
# 示例需要在策略交易界面运行
ContextInfo.set_account(account)
def after_init(ContextInfo):
# 在策略交易界面运行时,account的值会被赋值为策略配置中的账号,编辑器界面运行时,需要手动赋值
# 编译器界面里执行的下单函数不会产生实际委托
passorder(23, 1101, account, "000001.SZ", 5, 0, 100, "示例", 2, "投资备注",ContextInfo)
pass
def position_callback(ContextInfo, positionInfo):
print(show_data(positionInfo))
orderError_callback - 账号异常下单主推
提示
仅在实盘运行模式下生效。
需要先在init里调用ContextInfo.set_account后生效。
用法: orderError_callback(ContextInfo,orderArgs,errMsg)
释义: 当账号下单异常时,这个函数被客户端调用
参数:
ContextInfo:特定对象
orderArgs:下单参数
errMsg:错误信息
返回: 无
示例:
示例返回值
#coding:gbk
def show_data(data):
tdata = {}
for ar in dir(data):
if ar[:2] != 'm_':continue
try:
tdata[ar] = data.__getattribute__(ar)
except:
tdata[ar] = '<CanNotConvert>'
return tdata
def init(ContextInfo):
# 设置对应的资金账号
# 示例需要在策略交易界面运行
ContextInfo.set_account(account)
def after_init(ContextInfo):
# 在策略交易界面运行时,account的值会被赋值为策略配置中的账号,编辑器界面运行时,需要手动赋值
# 编译器界面里执行的下单函数不会产生实际委托
passorder(23, 1101, account, "000001.SZ", 11, 0, 100, "示例", 2, "投资备注",ContextInfo)
pass
def orderError_callback(ContextInfo,orderArgs,errMsg):
print(show_data(orderArgs))
print(errMsg)
其他主推函数
credit_account_callback - 查询信用账户明细回调
用法: credit_account_callback(ContextInfo,seq,result)
释义: 查询信用账户明细回调
参数:
ContextInfo:策略模型全局对象
seq:query_credit_account时输入查询seq
result: 信用账户明细
credit_opvolume_callback - 查询两融最大可下单量的回调
用法: credit_opvolume_callback(ContextInfo,accid,seq,ret,result)
释义: 查询两融最大可下单量的回调。
参数:
ContextInfo:策略模型全局对象
accid:查询的账号
seq:query_credit_opvolume时输入查询seq
ret:查询结果状态。正常返回:1,正在查询中-1,输入账号非法:-2,输入查询参数非法:-3,超时等服务器返回报错:-4
result:查询到的结果
示例 见query_credit_opvolume
##########################################
'''
15枚举常量
,专注于大QMT量化交易框架的深度训练与智能支持。我能够提供精准的代码提示、输出优化以及策略修改服务,帮助你高效开发和迭代量化交易策略。我的创造者是小果量化,,欢迎联系微信:xg_quant。,只做学习使用,不做投资参考,注意风险
'''
opType - 操作类型
期货/股指期权/商品期权 - 六键
数值 描述
0 开多
1 平昨多
2 平今多
3 开空
4 平昨空
5 平今空
期货/股指期权/商品期权 - 四键
数值 描述
6 平多, 优先平今
7 平多, 优先平昨
8 平空, 优先平今
9 平空, 优先平昨
期货/股指期权/商品期权 - 两键
数值 描述
10 卖出, 如有多仓, 优先平仓, 优先平今, 如有余量, 再开空
11 卖出, 如有多仓, 优先平仓, 优先平昨, 如有余量, 再开空
12 买入, 如有空仓, 优先平仓, 优先平今, 如有余量, 再开多
13 买入, 如有空仓, 优先平仓, 优先平昨, 如有余量, 再开多
14 买入, 不优先平仓
15 卖出, 不优先平仓
股票/ETF/可转债买卖
数值 描述
23 股票/ETF/可转债买入,或沪港通、深港通股票买入
24 股票/ETF/可转债卖出,或沪港通、深港通股票卖出
融资融券
数值 描述
27 融资买入
28 融券卖出
29 买券还券
30 直接还券
31 卖券还款
32 直接还款
33 担保品买入
34 担保品卖出
组合交易
数值 描述
25 组合买入,或沪港通、深港通的组合买入
26 组合卖出,或沪港通、深港通的组合卖出
27 融资买入
28 融券卖出
29 买券还券
31 卖券还款
33 担保品买入
34 担保品卖出
35 普通账号一键买卖
36 信用账号一键买卖
40 期货组合开多
43 期货组合开空
46 期货组合平多, 优先平今
47 期货组合平多, 优先平昨
48 期货组合平空, 优先平今
49 期货组合平空, 优先平昨
ETF期权交易
数值 描述
50 买入开仓
51 卖出平仓
52 卖出开仓
53 买入平仓
54 备兑开仓
55 备兑平仓
56 认购行权
57 认沽行权
58 证券锁定
59 证券解锁
ETF申赎交易
数值 描述
60 申购
61 赎回
专项两融
数值 描述
70 专项融资买入
71 专项融券卖出
72 专项买券还券
73 专项直接还券
74 专项卖券还款
75 专项直接还款
可转债转股/回售
数值 描述
80 普通账户转股
81 普通账户回售
82 信用账户转股
83 信用账户回售
orderType - 下单方式
提示
注意
一、期货不支持 1102 和 1202
二、对所有账号组的操作相当于对账号组里的每个账号做一样的操作,如:
passorder(23, 1202, 'testS', '000001.SZ', 5, -1, 50000, ContextInfo),意思就是对账号组testS 里的所有账号都以最新价开仓买入 50000 元市值的 000001.SZ平安银行;
passorder (60,1101,"test",'510050. SH', 5,-1,1, ContextInfo)意思就是账号test申购1个单位 (900000股)的华夏上证50ETF (只申购不买入成分股)。
单股交易
数值 描述
1101 单股、单账号、普通、股/手方式下单
1102 单股、单账号、普通、金额(元)方式下单(只支持股票)
1113 单股、单账号、总资产、比例 [0 ~ 1] 方式下单
1123 单股、单账号、可用、比例[0 ~ 1]方式下单
单股交易(账号组)
数值 描述
1201 单股、账号组(无权重)、普通、股/手方式下单
1202 单股、账号组(无权重)、普通、金额(元)方式下单(只支持股票)
1213 单股、账号组(无权重)、总资产、比例 [0 ~ 1] 方式下单
1223 单股、账号组(无权重)、可用、比例 [0 ~ 1] 方式下单
组合交易(单账号)
数值 描述
2101 组合、单账号、普通、按组合股票数量(篮子中股票设定的数量)方式下单 > 对应 volume 的单位为篮子的份
2102 组合、单账号、普通、按组合股票权重(篮子中股票设定的权重)方式下单 > 对应 volume 的单位为元
2103 组合、单账号、普通、按账号可用方式下单 > (底层篮子股票怎么分配?答:按可用资金比例后按篮子中股票权重分配,如用户没填权重则按相等权重分配)只对股票篮子支持
组合交易(账号组)
数值 描述
2201 组合、账号组(无权重)、普通、按组合股票数量方式下单
2202 组合、账号组(无权重)、普通、按组合股票权重方式下单
2203 组合、账号组(无权重)、普通、按账号可用方式下单只对股票篮子支持
prType - 下单选价类型
关于使用市价指令的说明
对于上交所(42,43,44,45)
当prType选择市价类型时时,price为保护限价,范围为(0 - 9999)表示投资者能够接受的最高买入价或最低卖出价,即买入申报的成交价格和转限价的价格不高于保护限价,卖出申报的成交价格和转限价的价格不低于保护限价,当price指定为 0 时,保护限价为对应的涨跌停价
融券卖出不允许使用市价指令
集合竞价阶段不允许使用市价指令
对于深交所(44,45,46,47,48)
市价申报只适用于有价格涨跌幅限制证券。
集合竞价阶段不允许使用市价指令
对于北交所(42,43,44,45)
当prType选择市价类型时时,price为保护限价,范围为(0 - 9999)表示投资者能够接受的最高买入价或最低卖出价,即买入申报的成交价格和转限价的价格不高于保护限价,卖出申报的成交价格和转限价的价格不低于保护限价,当price指定为 0 时,保护限价为对应的涨跌停价
融券卖出不允许使用市价指令
集合竞价阶段不允许使用市价指令
数值 描述
-1 无效(只对于algo_passorder起作用)
0 卖5价
1 卖4价
2 卖3价
3 卖2价
4 卖1价
5 最新价
6 买1价
7 买2价(组合不支持)
8 买3价(组合不支持)
9 买4价(组合不支持)
10 买5价(组合不支持)
11 指定价(只对单股情况支持,对组合交易不支持)
12 涨跌停价(对手方最远端价格)
13 挂单价(本方一档价格)
14 对手价(对方一档价格)
18 市价最优价[郑商所][期货] (不支持模拟交易中使用)
19 市价即成剩撤[大商所][期货] (不支持模拟交易中使用)
20 市价全额成交或撤[大商所][期货] (不支持模拟交易中使用)
21 市价最优一档即成剩撤[中金所][期货] (不支持模拟交易中使用)
22 市价最优五档即成剩撤[中金所][期货] (不支持模拟交易中使用)
23 市价最优一档即成剩转[中金所][期货] (不支持模拟交易中使用)
24 市价最优五档即成剩转[中金所][期货] (不支持模拟交易中使用)
26 限价即时全部成交否则撤单[上交所[期权]] [深交所[期权]] (不支持模拟交易中使用)
27 市价即成剩撤[上交所][期权] (不支持模拟交易中使用)
28 市价即全成否则撤[上交所][期权] (不支持模拟交易中使用)
29 市价剩转限价[上交所][期权] (不支持模拟交易中使用)
42 最优五档即时成交剩余撤销申报[上交所[股票]][北交所[股票]] (不支持模拟交易中使用)
43 最优五档即时成交剩转限价申报[上交所[股票]][北交所[股票]] (不支持模拟交易中使用)
44 对手方最优价格委托[上交所[股票]][深交所[股票][北交所[股票]][期权]] (不支持模拟交易中使用)
45 本方最优价格委托[上交所[股票]][深交所[股票][北交所[股票]][期权]] (不支持模拟交易中使用)
46 即时成交剩余撤销委托[深交所][股票][期权] (不支持模拟交易中使用)
47 最优五档即时成交剩余撤销委托[深交所][股票][期权] (不支持模拟交易中使用)
48 全额成交或撤销委托[深交所][股票][期权] (不支持模拟交易中使用)
49 盘后定价
volume - 下单数量
提示
根据 orderType 值最后一位确定 volume 的单位
单股下单时
数值 描述
1 股 / 手 (股票: 股,股票期权: 张,期货: 手,可转债: 张,基金:份)
2 金额(元)
3 比例(%)
组合下单时
数值 描述
1 按组合股票数量(份)
2 按组合股票权重(元)
3 按账号可用(%)
quicktrade - 快速下单
数值 描述
0 否
1 是
2 是
提示
passorder是对最后一根K线完全走完后生成的模型信号在下一根K线的第一个 tick 数据来时触发下单交易;
采用quickTrade参数设置为1时,非历史 bar 上执行时(ContextInfo.is_last_bar()为True),只要策略模型中调用到就触发下单交易。
quickTrade参数设置为2时,不判断 bar 状态,只要策略模型中调用到就触发下单交易,历史 bar 上也能触发下单,请谨慎使用。
enum_ - 对象属性状态字段释义
enum_EEntrustBS - 买卖方向
变量 数值 描述
ENTRUST_BUY 48 买入,多
ENTRUST_SELL 49 卖出,空
ENTRUST_PLEDGE_IN 81 质押入库
ENTRUST_PLEDGE_OUT 66 质押出库
EEntrustSubmitStatus - 报单状态
数值 描述
48 已经提交
49 撤单已经提交
50 修改已经提交
51 已经接受
52 报单已经被拒绝
53 撤单已经被拒绝
54 改单已经被拒绝
enum_EEntrustTypes - 委托类型
变量名称 数值 描述
ENTRUST_BUY_SELL 48 买卖
ENTRUST_QUERY 49 查询
ENTRUST_CANCE 50 撤单
ENTRUST_APPEND 51 补单
ENTRUST_COMFIRM 52 确认
ENTRUST_BIG 53 大宗
ENTRUST_FIN 54 融资委托
ENTRUST_SLO 55 融券委托
ENTRUST_CLOSE 56 信用平仓
ENTRUST_CREDIT_NORMAL 57 信用普通委托
ENTRUST_CANCEL_OPEN 58 撤单补单
ENTRUST_TYPE_OPTION_EXERCISE 59 行权
ENTRUST_TYPE_OPTION_SECU_LOCK 60 锁定
ENTRUST_TYPE_OPTION_SECU_UNLOCK 61 解锁
ENTRUST_QUOTATION_REPURCHASE 62 报价回购
ENTRUST_TYPE_OPTION_ABANDON 63 放弃行权
ENTRUST_AGREEMENT_REPURCHASE 64 协议回购
ENTRUST_TYPE_OPTION_COMB_EXERCISE 65 组合行权
ENTRUST_TYPE_OPTION_BUILD_COMB_STRATEGY 66 构建组合策略持仓
ENTRUST_TYPE_OPTION_RELEASE_COMB_STRATEGY 67 解除组合策略持仓
ENTRUST_TYPE_LMT_LOAN 68 转融通出借
ENTRUST_TYPE_LMT_LOAN_DEFER 69 转融通出借展期
ENTRUST_TYPE_LMT_LOAN_FINISH_AHEAD 70 转融通出借提前了结
ENTRUST_CROSS_MARKET_IN 71 跨市场场内
ENTRUST_CROSS_MARKET_OUT 72 跨市场场外
enum_EEntrustStatus - 委托状态
变量名称 数值 描述
ENTRUST_STATUS_WAIT_REPORTING 49 待报
ENTRUST_STATUS_REPORTED 50 已报(已报出到柜台,待成交)
ENTRUST_STATUS_REPORTED_CANCEL 51 已报待撤(对已报状态的委托撤单吗,等待柜台处理撤单请求)
ENTRUST_STATUS_PARTSUCC_CANCEL 52 部成待撤(已报到柜台,已有部分成交,已发出对剩余部分的撤单,待柜台处理撤单请求)
ENTRUST_STATUS_PART_CANCEL 53 部撤(已报到柜台,已有部分成交,剩余部分已撤)
ENTRUST_STATUS_CANCELED 54 已撤
ENTRUST_STATUS_PART_SUCC 55 部成(已报到柜台,已有部分成交)
ENTRUST_STATUS_SUCCEEDED 56 已成
ENTRUST_STATUS_JUNK 57 废单(不符合报单条件,委托被打回,相关信息再委托的废单原因字段查看)
委托状态流程
enum_EHedge_Flag_Type - 投保类型
变量名称 数值 描述
HEDGE_FLAG_SPECULATION 49 投机
HEDGE_FLAG_ARBITRAGE 50 套利
HEDGE_FLAG_HEDGE 51 套保
enum_EFutureTradeType - 成交类型
变量名称 数值 描述
FUTRUE_TRADE_TYPE_COMMON 48 普通成交
FUTURE_TRADE_TYPE_OPTIONSEXECUTION 49 期权成交
FUTURE_TRADE_TYPE_OTC 50 OTC 成交
FUTURE_TRADE_TYPE_EFPDIRVED 51 期转现衍生成交
FUTURE_TRADE_TYPE_COMBINATION_DERIVED 52 组合衍生成交
enum_EBrokerPriceType - 价格类型
变量名称 数值 描述
BROKER_PRICE_ANY 49 市价
BROKER_PRICE_LIMIT 50 限价
BROKER_PRICE_BEST 51 最优价
BROKER_PRICE_PROP_ALLOTMENT 52 配股
BROKER_PRICE_PROP_REFER 53 转托
BROKER_PRICE_PROP_SUBSCRIBE 54 申购
BROKER_PRICE_PROP_BUYBACK 55 回购
BROKER_PRICE_PROP_PLACING 56 配售
BROKER_PRICE_PROP_DECIDE 57 指定
BROKER_PRICE_PROP_EQUITY 58 转股
BROKER_PRICE_PROP_SELLBACK 59 回售
BROKER_PRICE_PROP_DIVIDEND 60 股息
BROKER_PRICE_PROP_SHENZHEN_PLACING 68 深圳配售确认
BROKER_PRICE_PROP_CANCEL_PLACING 69 配售放弃
BROKER_PRICE_PROP_WDZY 70 无冻质押
BROKER_PRICE_PROP_DJZY 71 冻结质押
BROKER_PRICE_PROP_WDJY 72 无冻解押
BROKER_PRICE_PROP_JDJY 73 解冻解押
BROKER_PRICE_PROP_ETF 81 ETF申购
BROKER_PRICE_PROP_VOTE 75 投票
BROKER_PRICE_PROP_YYSGYS 92 要约收购预售
BROKER_PRICE_PROP_YSYYJC 77 预售要约解除
BROKER_PRICE_PROP_FUND_DEVIDEND 78 基金设红
BROKER_PRICE_PROP_FUND_ENTRUST 79 基金申赎
BROKER_PRICE_PROP_CROSS_MARKET 80 跨市转托
BROKER_PRICE_PROP_EXERCIS 83 权证行权
BROKER_PRICE_PROP_PEER_PRICE_FIRST 84 对手方最优价格
BROKER_PRICE_PROP_L5_FIRST_LIMITPX 85 最优五档即时成交剩余转限价
BROKER_PRICE_PROP_MIME_PRICE_FIRST 86 本方最优价格
BROKER_PRICE_PROP_INSTBUSI_RESTCANCEL 87 即时成交剩余撤销
BROKER_PRICE_PROP_L5_FIRST_CANCEL 88 最优五档即时成交剩余撤销
BROKER_PRICE_PROP_FULL_REAL_CANCEL 89 全额成交并撤单
BROKER_PRICE_PROP_DIRECT_SECU_REPAY 101 直接还券
BROKER_PRICE_PROP_FUND_CHAIHE 90 基金拆合
BROKER_PRICE_PROP_DEBT_CONVERSION 91 债转股
BROKER_PRICE_BID_LIMIT 92 港股通竞价限价
BROKER_PRICE_ENHANCED_LIMIT 93 港股通增强限价
BROKER_PRICE_RETAIL_LIMIT 94 港股通零股限价
BROKER_PRICE_PROP_INCREASE_SHARE 'j' 增发
BROKER_PRICE_PROP_COLLATERAL_TRANSFER 107 担保品划转
BROKER_PRICE_PROP_NEEQ_PRICING 'w' 定价(全国股转 - 挂牌公司交易 - 协议转让)
BROKER_PRICE_PROP_NEEQ_MATCH_CONFIRM 'x' 成交确认(全国股转 - 挂牌公司交易 - 协议转让)
BROKER_PRICE_PROP_NEEQ_MUTUAL_MATCH_CONFIRM 'y' 互报成交确认(全国股转 - 挂牌公司交易 - 协议转让)
BROKER_PRICE_PROP_NEEQ_LIMIT 'z' 限价(用于挂牌公司交易 - 做市转让 - 限价买卖和两网及退市交易-限价买卖)
enum_EOffset_Flag_Type - 操作类型
变量名称 数值 描述
EOFF_THOST_FTDC_OF_INVALID -1 无效操作
EOFF_THOST_FTDC_OF_Open 48 买入,开仓
EOFF_THOST_FTDC_OF_Close 49 卖出,平仓
EOFF_THOST_FTDC_OF_ForceClose 50 强平
EOFF_THOST_FTDC_OF_CloseToday 51 平今
EOFF_THOST_FTDC_OF_CloseYesterday 52 平昨
EOFF_THOST_FTDC_OF_ForceOff 53 强减
EOFF_THOST_FTDC_OF_LocalForceClose 54 本地强平
EOFF_THOST_FTDC_OF_PLEDGE_IN 81 质押入库
EOFF_THOST_FTDC_OF_PLEDGE_OUT 66 质押出库
EOFF_THOST_FTDC_OF_ALLOTMENT 67 股票配股
enum_EXTSubjectsStatus - 融资融券状态
变量名称 数值 描述
SUBJECTS_STATUS_NORMAL 48 正常
SUBJECTS_STATUS_PAUSE 49 暂停
SUBJECTS_STATUS_NOT 50 作废
enum_EXTCreditFundCtl - 融资交易控制
变量名称 数值 描述
FUND_CTL_ONLY_FIN_BUY 48 只允许融资买入
FUND_CTL_ONLY_SELL_CASH_REPAY 49 只允许卖券还款
FUND_CTL_ALL 50 既允许融资买入又允许卖券还款
FUND_CTL_NONE 51 既不允许融资买入又不允许卖券还款
enum_EXTCreditStkCtl - 融券交易控制
变量名称 数值 描述
STK_CTL_ONLY_SLO_SELL 48 只允许融券卖出
STK_CTL_ONLY_BUY_SECU_REPAY 49 只允许买券还券
STK_CTL_ALL 50 既允许融券卖出又允许买券还券
STK_CTL_NONE 51 既不允许融券卖出又不允许买券还券
enum_EXTSloTypeQueryMode - 查询类型
变量名称 数值 描述
XT_SLOTYPE_QUERYMODE_NOMARL 48 普通
XT_SLOTYPE_QUERYMODE_SPECIAL 49 专项
enum_EXTCompactType - 合约类型
变量名称 数值 描述
COMPACT_TYPE_ALL 32 不限制
COMPACT_TYPE_FIN 48 融资
COMPACT_TYPE_SLO 49 融券
enum_EXTCompactStatus - 合约状态
变量名称 数值 描述
COMPACT_STATUS_ALL 32 不限制
COMPACT_STATUS_UNDONE 48 未归还
COMPACT_STATUS_PART_DONE 49 部分归还
COMPACT_STATUS_DONE 50 已归还
COMPACT_STATUS_DONE_BY_SELF 51 自行了结
COMPACT_STATUS_DONE_BY_HAND 52 手工了结
COMPACT_STATUS_NOT_DEBT 53 未形成负债
COMPACT_STATUS_EXPIRY 54 合约已过期
enum_EXTCompactBrushSource - 头寸来源
变量名称 数值 描述
XT_COMPACT_BRUSH_SOURCE_ALL 32 不限制
XT_COMPACT_BRUSH_SOURCE_NORMAL 48 普通头寸
XT_COMPACT_BRUSH_SOURCE_SPECIAL 49 专项头寸
enum_EXTSpecialAssure - 是否可以用融券资金买入
变量名称 数值 描述
ASSURE_USE_SLO_CASH_DISABLE 48 担保品买入不允许使用融券资金
ASSURE_USE_SLO_CASH_ENABLE 49 担保品买入允许使用融券资金
enum_EOperationType - 下单操作类型/主要交易类型
变量名称 数值 描述
OPT_OPEN_LONG 0 开多
OPT_CLOSE_LONG_HISTORY 1 平昨多
OPT_CLOSE_LONG_TODAY 2 平今多
OPT_OPEN_SHORT 3 开空
OPT_CLOSE_SHORT_HISTORY 4 平昨空
OPT_CLOSE_SHORT_TODAY 5 平今空
OPT_CLOSE_LONG_TODAY_FIRST 6 优先平今多
OPT_CLOSE_LONG_HISTORY_FIRST 7 优先平昨多
OPT_CLOSE_SHORT_TODAY_FIRST 8 平空优先平今
OPT_CLOSE_SHORT_HISTORY_FIRST 9 平空优先平昨
OPT_CLOSE_LONG_TODAY_HISTORY_THEN_OPEN_SHORT 10 卖出优先平今
OPT_CLOSE_LONG_HISTORY_TODAY_THEN_OPEN_SHORT 11 卖出优先平昨
OPT_CLOSE_SHORT_TODAY_HISTORY_THEN_OPEN_LONG 12 买入优先平今
OPT_CLOSE_SHORT_HISTORY_TODAY_THEN_OPEN_LONG 13 买入优先平昨
OPT_CLOSE_LONG 14 平多
OPT_CLOSE_SHORT 15 平空
OPT_OPEN 16 开仓
OPT_CLOSE 17 平仓
OPT_BUY 18 买入
OPT_SELL 19 卖出
OPT_FIN_BUY 20 融资买入
OPT_SLO_SELL 21 融券卖出
OPT_BUY_SECU_REPAY 22 买券还券
OPT_DIRECT_SECU_REPAY 23 直接还券
OPT_SELL_CASH_REPAY 24 卖券还款
OPT_DIRECT_CASH_REPAY 25 直接还款
OPT_FUND_SUBSCRIBE 26 基金申购
OPT_FUND_REDEMPTION 27 基金赎回
OPT_FUND_MERGE 28 基金合并
OPT_FUND_SPLIT 29 基金分拆
OPT_PLEDGE_IN 30 质押入库
OPT_PLEDGE_OUT 31 质押出库
OPT_OPTION_BUY_OPEN 32 买入开仓(个股期权交易)
OPT_OPTION_SELL_CLOSE 33 卖出平仓(个股期权交易)
OPT_OPTION_SELL_OPEN 34 卖出开仓(个股期权交易)
OPT_OPTION_BUY_CLOSE 35 买入平仓(个股期权交易)
OPT_OPTION_COVERED_OPEN 36 备兑开仓(个股期权交易)
OPT_OPTION_COVERED_CLOSE 37 备兑平仓(个股期权交易)
OPT_OPTION_CALL_EXERCISE 38 认购行权(个股期权交易)
OPT_OPTION_PUT_EXERCISE 39 认沽行权(个股期权交易)
OPT_OPTION_SECU_LOCK 40 证券锁定(个股期权交易)
OPT_OPTION_SECU_UNLOCK 41 证券解锁(个股期权交易)
OPT_N3B_PRICE_BUY 42 协议转让-定价买入
OPT_N3B_PRICE_SELL 43 协议转让-定价卖出
OPT_N3B_CONFIRM_BUY 44 协议转让-成交确认买入
OPT_N3B_CONFIRM_SELL 45 协议转让-成交确认卖出
OPT_N3B_REPORT_CONFIRM_BUY 46 协议转让-互报成交确认买入
OPT_N3B_REPORT_CONFIRM_SELL 47 协议转让-互报成交确认卖出
OPT_N3B_LIMIT_PRICE_BUY 48 全国股转-限价买入
OPT_N3B_LIMIT_PRICE_SELL 49 全国股转-限价卖出
OPT_FUTURE_OPTION_EXERCISE 50 期货期权行权
OPT_CONVERT_BONDS 51 可转债转股
OPT_SELL_BACK_BONDS 52 可转债回售
OPT_STK_ALLOTMENT 53 股票配股
OPT_STK_INCREASE_SHARE 54 股票增发
OPT_COLLATERAL_TRANSFER_IN 55 担保品划入
OPT_COLLATERAL_TRANSFER_OUT 56 担保品划出
OPT_BLOCK_INTENTION_BUY 57 意向申报买入
OPT_BLOCK_INTENTION_SELL 58 意向申报卖出
OPT_BLOCK_PRICE_BUY 59 定价申报买入
OPT_BLOCK_PRICE_SELL 60 定价申报卖出
OPT_BLOCK_CONFIRM_BUY 61 成交申报买入
OPT_BLOCK_CONFIRM_SELL 62 成交申报卖出
OPT_BLOCK_CLOSE_PRICE_BUY 63 盘后定价买入
OPT_BLOCK_CLOSE_PRICE_SELL 64 盘后定价卖出
OPT_GOLD_PRICE_DELIVERY_BUY 65 黄金交割买
OPT_GOLD_PRICE_DELIVERY_SELL 66 黄金交割卖
OPT_GOLD_PRICE_MIDDLE_BUY 67 黄金中立仓买
OPT_GOLD_PRICE_MIDDLE_SELL 68 黄金中立仓卖
OPT_COMPOSE_ONEKEY_BUYSELL 69 组合交易一键买卖
OPT_COMPOSE_GGT_BUY 70 组合交易港股通买入
OPT_COMPOSE_GGT_SELL 71 组合交易港股通卖出
OPT_ODD_SELL 72 零股卖出
OPT_ETF_STOCK_BUY 73 成份股买入
OPT_ETF_STOCK_SELL 74 成份股卖出
OPT_OTC_FUND_SUBSCRIBE 200 场外基金认购
OPT_OTC_FUND_PURCHASE 201 场外基金申购
OPT_OTC_FUND_REDEMPTION 202 场外基金赎回
OPT_OTC_FUND_CONVERT 203 场外基金转换
OPT_OTC_FUND_BONUS_TYPE_UPDATE 204 场外基金分红方式变更
OPT_OTC_CONTRACTUAL_DEPOSIT 205 场外协议存款
OPT_OTC_NON_CONTRACTUAL_DEPOSIT 206 场外非协议存款
OPT_OTC_CONTRACTUAL_DEPOSIT_ASK 207 场外协议存款询价
OPT_OTC_NON_CONTRACTUAL_DEPOSIT_ASK 208 场外非协议存款询价
OPT_OTC_NON_CONTRACTUAL_DEPOSIT_CUR 209 场外非协议活期存款
OPT_OTC_DRAW_DEPOSIT 210 场外存单支取
OPT_OTC_STOCK_INQUIRY 230 网下询价
OPT_OTC_STOCK_PURCHASE 231 网下申购
OPT_OPTION_NS_DEPOSIT 1001 场外转账入金
OPT_OPTION_NS_WITHDRAW 1002 场外转账出金
OPT_OPTION_NS_INOUT 1003 场外互转
OPT_ETF_PURCHASE 1004 ETF申购
OPT_ETF_REDEMPTION 1005 ETF赎回
OPT_OUTER_BUY 1006 外盘买入
OPT_OUTER_SELL 1007 外盘卖出
OPT_OUTER_CAN_CLOSE_BUY 1008 外盘可平买仓
OPT_OUTER_CAN_CLOSE_SELL 1009 外盘可平卖仓
OPT_SLO_SELL_SPECIAL 1010 专项融券卖出
OPT_BUY_SECU_REPAY_SPECIAL 1011 专项买券还券
OPT_DIRECT_SECU_REPAY_SPECIAL 1012 专项直接还券
OPT_NEEQ_O3B_LIMIT_PRICE_BUY 1013 全国股转-两网及退市交易-限价买入
OPT_NEEQ_O3B_LIMIT_PRICE_SELL 1014 全国股转-两网及退市交易-限价卖出
OPT_IBANK_BOND_BUY 1015 投行债券买入
OPT_IBANK_BOND_SELL 1016 投行债券卖出
OPT_IBANK_FUND_REPURCHASE 1017 质押式融资回购
OPT_IBANK_BOND_REPURCHASE 1018 质押式融券回购
OPT_IBANK_BOND_REPAY 1019 质押式融资购回
OPT_IBANK_FUND_RETRIEVE 1020 质押式融券购回
OPT_INTEREST_FEE 1021 融券息费
OPT_FIN_BUY_SPECIAL 1022 专项融资买入
OPT_SELL_CASH_REPAY_SPECIAL 1023 专项卖券还款
OPT_DIRECT_CASH_REPAY_SPECIAL 1024 专项直接还款
OPT_FUND_PRICE_BUY 1025 货币基金申购
OPT_FUND_PRICE_SELL 1026 货币基金赎回
OPT_N3B_CALL_AUCTION_BUY 1027 协议转让-集合竞价买入
OPT_N3B_CALL_AUCTION_SELL 1028 协议转让-集合竞价卖出
OPT_N3B_AFTER_HOURS_BUY 1029 全国股转-盘后协议买入
OPT_N3B_AFTER_HOURS_SELL 1030 全国股转-盘后协议卖出
OPT_ETF_HEDGE 1031 ETF套利
OPT_QUOTATION_REPURCHASE_BUY 1032 报价回购买入
OPT_QUOTATION_REPURCHASE_STOP 1033 报价回购终止续做
OPT_QUOTATION_REPURCHASE_BEFORE 1034 报价回购提前购回
OPT_QUOTATION_REPURCHASE_RESERVATION 1035 报价回购购回预约
OPT_QUOTATION_REPURCHASE_CANCEL 1036 报价回购取消预约
OPT_BLOCK_CONFIRM_MATCH_BUY 1037 成交申报配对买入
OPT_BLOCK_CONFIRM_MATCH_SELL 1038 成交申报配对卖出
OPT_FUTURE_OPTION_ABANDON 1039 期货期权放弃行权
OPT_ONEKEY_TRANSFER 1040 一键划转
OPT_ONEKEY_TRANSFER_IN 1041 一键划入
OPT_ONEKEY_TRANSFER_OUT 1042 一键划出
OPT_AFTER_FIX_BUY 1043 盘后定价买入
OPT_AFTER_FIX_SELL 1044 盘后定价卖
OPT_AGREEMENT_REPURCHASE_TRANSACTION_DEC_FORWARD 1045 成交申报正回购
OPT_AGREEMENT_REPURCHASE_TRANSACTION_DEC_REVERSE 1046 成交申报逆回购
OPT_AGREEMENT_REPURCHASE_EXPIRE_CONFIRM 1047 到期确认
OPT_AGREEMENT_REPURCHASE_ADVANCE_REPURCHASE 1048 提前购回正回购
OPT_AGREEMENT_REPURCHASE_ADVANCE_REVERSE 1049 提前购回逆回购
OPT_AGREEMENT_REPURCHASE_EXPIRE_RENEW 1050 到期续做正回购
OPT_AGREEMENT_REPURCHASE_EXPIRE_REVERSE 1051 到期续做逆回购
OPT_TRANSACTION_IN_CASH_BUY 1052 现券买入
OPT_TRANSACTION_IN_CASH_SELL 1053 现券卖出
OPT_OUTRIGHT_REPO_FUND_REPURCHASE 1054 买断式融资回购
OPT_OUTRIGHT_REPO_BOND_REPURCHASE 1055 买断式融券回购
OPT_OUTRIGHT_REPO_BOND_REPAY 1056 买断式融资购回
OPT_OUTRIGHT_REPO_FUND_RETRIEVE 1057 买断式融券购回
OPT_DISTRIBUTION_BUYING 1058 分销买入
OPT_FIXRATE_TO_FLOATINGRATE 1059 固定利率换浮动利率
OPT_FLOATINGRATE_TO_FIXRATE 1060 浮动利率换固定利率
OPT_IBANK_TRANSFER_OUT 1061 银行间转出托管
OPT_IBANK_TRANSFER_IN 1062 银行间转入托管
OPT_AGREEMENT_REPURCHASE_INTENTION_BUY 1063 意向申报正回购买入
OPT_AGREEMENT_REPURCHASE_INTENTION_SELL 1064 意向申报正回购卖出
OPT_AGREEMENT_REPURCHASE_BIZ_APPLY_CONFIRM 1065 协议回购成交申报确认
OPT_AGREEMENT_REPURCHASE_BIZ_APPLY_REJECT 1066 协议回购成交申报拒绝
OPT_AGREEMENT_REPURCHASE_CONTINUE_CONFIRM 1067 协议回购到期续做申报确认
OPT_AGREEMENT_REPURCHASE_CONTINUE_REJECT 1068 协议回购到期续做申报拒绝
OPT_AGREEMENT_REPURCHASE_INTENTION_CHANGE_BONDS 1069 协议回购换券申报
OPT_AGREEMENT_REPURCHASE_INTENTION_CHANGE_BONDS_CONFIRM 1070 协议回购换券申报确认
OPT_AGREEMENT_REPURCHASE_INTENTION_CHANGE_BONDS_REJECT 1071 协议回购换券申报拒绝
OPT_AGREEMENT_REPURCHASE_STOP_AHEAD_CONFIRM 1072 协议回购正回购提前终止申报确认
OPT_AGREEMENT_REPURCHASE_STOP_AHEAD_REJECT 1073 协议回购正回购提前终止申报拒绝
OPT_AGREEMENT_REPURCHASE_RELEASE_PLEDGE 1074 协议回购正回购方解除质押申报
OPT_AGREEMENT_REPURCHASE_RELEASE_PLEDGE_CONFIRM 1075 协议回购正回购解除质押申报确认
OPT_AGREEMENT_REPURCHASE_RELEASE_PLEDGE_REJECT 1076 协议回购正回购解除质押申报拒绝
OPT_AGREEMENT_REPURCHASE_EXPIRE_CONFIRM_SELL 1077 深圳到期确认卖出
OPT_LOAN_DISTRIBUTION_BUY 1078 债券分销
OPT_PREFERENCE_SHARES_BIDDING_BUY 1079 优先股竞价买入
OPT_PREFERENCE_SHARES_BIDDING_SELL 1080 优先股竞价卖出
OPT_TOC_BOND 1081 债券转托管
OPT_TOC_FUND 1082 基金转托管
OPT_IBANK_BORROW 1083 同业拆入
OPT_IBANK_LOAN 1084 同业拆出
OPT_IBANK_BORROW_REPAY 1085 拆入还款
OPT_IBANK_LOAN_REPAY 1086 拆出还款
OPT_FINANCIAL_PRODUCT_BUY 1087 理财产品申购
OPT_FINANCIAL_PRODUCT_SELL 1088 理财产品赎回
OPT_OPTION_COMB_EXERCISE 1089 组合行权
OPT_OPTION_BUILD_COMB_STRATEGY 1090 构建组合策略
OPT_OPTION_RELEASE_COMB_STRATEGY 1091 解除组合策略
OPT_AGREEMENT_REPURCHASE_REVERSE_STOP_AHEAD_CONFIRM 1092 协议回购逆回购提前终止申报确认
OPT_AGREEMENT_REPURCHASE_REVERSE_STOP_AHEAD_REJECT 1093 协议回购逆回购提前终止申报拒绝
OPT_AGREEMENT_REPURCHASE_REVERSE_RELEASE_PLEDGE 1094 协议回购逆回购方解除质押申报
OPT_AGREEMENT_REPURCHASE_REVERSE_RELEASE_PLEDGE_CONFIRM 1095 协议回购逆回购解除质押申报确认
OPT_AGREEMENT_REPURCHASE_REVERSE_RELEASE_PLEDGE_REJECT 1096 协议回购逆回购解除质押申报拒绝
OPT_BOND_TENDER 1097 债券投标
OPT_FINANCIAL_PRODUCT_CALL 1098 理财产品认购
OPT_NEEQ_O3B_CONTINUOUS_AUCTION_BUY 1099 全国股转-北交所买入
OPT_NEEQ_O3B_CONTINUOUS_AUCTION_SELL 1100 全国股转-北交所卖出
OPT_NEEQ_O3B_ASK_PRICE 1101 全国股转-申购-询价申报
OPT_NEEQ_O3B_PRICE_CONFIRM 1102 全国股转-申购-申购申报
OPT_NEEQ_O3B_BLOCKTRADING_BUY 1103 全国股转-大宗交易买入
OPT_NEEQ_O3B_BLOCKTRADING_SELL 1104 全国股转-大宗交易卖出
OPT_LMT_LOAN_SET 1105 转融通非约定出借申报
OPT_LMT_LOAN_CONVENTION 1106 转融通约定出借申报
OPT_LMT_LOAN_RENEWAL 1107 转融通出借展期
OPT_LMT_LOAN_SETTLE_EARLY 1108 转融通出借提前了结
OPT_CROSS_MARKET_IN_ETF_PURCHASE 1109 跨市场ETF场内申购
OPT_CROSS_MARKET_IN_ETF_REDEMPTION 1110 跨市场ETF场内赎回
OPT_CROSS_MARKET_OUT_ETF_PURCHASE 1111 跨市场ETF场外申购
OPT_CROSS_MARKET_OUT_ETF_REDEMPTION 1112 跨市场ETF场外赎回
OPT_CREDIT_APPOINTMENT 1113 券源预约
OPT_OFF_IPO_PUB_PRICE 1114 网下申购-公开发行询价
OPT_OFF_IPO_PUB_PURCHASE 1115 网下申购-公开发行申购
OPT_OFF_IPO_NON_PUB_PRICE 1116 网下申购-非公开发行询价
OPT_OFF_IPO_NON_PUB_PURCHASE 1117 网下申购-非公开发行申购
OPT_IBANK_PUT 1118 债券回售
OPT_IBANK_BOND_BORROW 1119 债券借贷融入
OPT_IBANK_BOND_LEND 1120 债券借贷融出
OPT_IBANK_BOND_BORROW_REPAY 1121 债券借贷融入购回
OPT_IBANK_BOND_LEND_RETRIEVE 1122 债券借贷融出购回
OPT_IBANK_BOND_DISPLACE 1123 债券借贷-质押券置换
OPT_LENDING_INTEGRATE_INTO 1124 融券通-预约融券融入
OPT_LENDING_MELT_OUT 1125 融券通-预约融券融出
OPT_FICC_MANUAL_DECLARE_BUY 1126 固收业务-点击成交-报价申报买入
OPT_FICC_MANUAL_DECLARE_SELL 1127 固收业务-点击成交-报价申报卖出
OPT_FICC_MANUAL_CONFIRM_BUY_CONFIRM 1128 固收业务-点击成交-报价确认-买入-确认
OPT_FICC_MANUAL_CONFIRM_BUY_REJECT 1129 固收业务-点击成交-报价确认-买入-拒绝
OPT_FICC_MANUAL_CONFIRM_SELL_CONFIRM 1130 固收业务-点击成交-报价确认-卖出-确认
OPT_FICC_MANUAL_CONFIRM_SELL_REJECT 1131 固收业务-点击成交-报价确认-卖出-拒绝
OPT_FICC_CONSULT_DECLARE_BUY 1132 固收业务-协商成交-协商申报买入
OPT_FICC_CONSULT_DECLARE_SELL 1133 固收业务-协商成交-协商申报卖出
OPT_FICC_CONSULT_CONFIRM_BUY_CONFIRM 1134 固收业务-协商成交-协商确认-买入-确认
OPT_FICC_CONSULT_CONFIRM_BUY_REJECT 1135 固收业务-协商成交-协商确认-买入-拒绝
OPT_FICC_CONSULT_CONFIRM_SELL_CONFIRM 1136 固收业务-协商成交-协商确认-卖出-确认
OPT_FICC_CONSULT_CONFIRM_SELL_REJECT 1137 固收业务-协商成交-协商确认-卖出-拒绝
OPT_FICC_ENQUIRY_DECLARE_BUY 1138 固收业务-询价成交-询价申报买入
OPT_FICC_ENQUIRY_DECLARE_SELL 1139 固收业务-询价成交-询价申报卖出
OPT_FICC_ENQUIRY_REPLAY_BUY_CONFIRM 1140 固收业务-询价成交-报价回复-买入-确认
OPT_FICC_ENQUIRY_REPLAY_BUY_REJECT 1141 固收业务-询价成交-报价回复-买入-拒绝--预留字段
OPT_FICC_ENQUIRY_REPLAY_SELL_CONFIRM 1142 固收业务-询价成交-报价回复-卖出-确认
OPT_FICC_ENQUIRY_REPLAY_SELL_REJECT 1143 固收业务-询价成交-报价回复-卖出-拒绝--预留字段
OPT_FICC_ENQUIRY_INQUIRY_BUY_CONFIRM 1144 固收业务-询价成交-询价成交-买入-确认
OPT_FICC_ENQUIRY_INQUIRY_BUY_REJECT 1145 固收业务-询价成交-询价成交-买入-拒绝--预留字段
OPT_FICC_ENQUIRY_INQUIRY_SELL_CONFIRM 1146 固收业务-竞买成交-询价成交-卖出-确认
OPT_FICC_ENQUIRY_INQUIRY_SELL_REJECT 1147 固收业务-竞买成交-询价成交-卖出-拒绝--预留字段
OPT_FICC_BINDDING_RESERVE_BUY 1148 固收业务-竞买成交-竞买预约买入
OPT_FICC_BINDDING_RESERVE_SELL 1149 固收业务-竞买成交-竞买预约卖出
OPT_FICC_BINDDING_DECLARE_BUY 1150 固收业务-竞买成交-竞买申报买入
OPT_FICC_BINDDING_DECLARE_SELL 1151 固收业务-竞买成交-竞买申报卖出
OPT_FICC_BINDDING_PRICE_DECLARE_BUY 1152 固收业务-竞买成交-应价申报买入
OPT_FICC_BINDDING_PRICE_DECLARE_SELL 1153 固收业务-竞买成交-应价申报卖出
OPT_OPTION_BUY_CLOSE_THEN_OPEN 1154 买入优先平仓,个股期权交易业务补充类型
OPT_OPTION_SELL_CLOSE_THEN_OPEN 1155 卖出优先平仓
OPT_FUND_TRANSFER_IN 1156 资金划入
OPT_FUND_TRANSFER_OUT 1157 资金划出
enum_EOrderType - 算法交易、普通交易类型
变量名称 数值 描述
OTP_ORDINARY 0 常规
OTP_ALGORITHM 1 算法交易
OTP_RANDVOLUME 2 随机量交易
OTP_ALGORITHM3 3 算法交易3
OTP_ZXJT 4 中信建投算法
OTP_ZSGS 5 隔时交易
OTP_ORDINARY_BASKET_TRIGGER_SINGLE_ORDER 6 普通交易的触价单笔委托方式
OTP_ALGORITHM_BASKET_TRIGGER_SINGLE_ORDER 7 算法交易的触价单笔委托方式
OTP_ZXZQ 8 中信证券算法
OTP_GENUS 9 金纳算法
OTP_JAZZ 10 爵士算法
OTP_VWAP 11 智能VWAP
OTP_TWAP 12 智能TWAP
OTP_XTALGO 13 智能算法
OTP_HUACHUANG 14 华创算法
OTP_HUARUN 15 华润算法
OTP_CUSTOM 16 回转算法
OPT_EXTERN 17 主动算法
OTP_GUANGFA 18 广发算法
enum_EPriceType - 价格类型
变量名称 数值 描述
PRTP_SALE5 0 卖5
PRTP_SALE4 1 卖4
PRTP_SALE3 2 卖3
PRTP_SALE2 3 卖2
PRTP_SALE1 4 卖1
PRTP_LATEST 5 最新价
PRTP_BUY1 6 买1
PRTP_BUY2 7 买2
PRTP_BUY3 8 买3
PRTP_BUY4 9 买4
PRTP_BUY5 10 买5
PRTP_FIX 11 指定价
PRTP_MARKET 12 市价_涨跌停价
PRTP_HANG 13 挂单价
PRTP_COMPETE 14 对手价
PRTP_AUTO 15 自动盘口
PRTP_CLOSE 16 昨收价
PRTP_AVERAGE 17 大宗加权平均价
PRTP_MARKET_BEST 18 市价_最优价
PRTP_MARKET_CANCEL 19 市价_即成剩撤
PRTP_MARKET_CANCEL_ALL 20 市价_全额成交或撤
PRTP_MARKET_CANCEL_1 21 市价_最优1档即成剩撤
PRTP_MARKET_CANCEL_5 22 市价_最优5档即成剩撤
PRTP_MARKET_CONVERT_1 23 市价_最优1档即成剩转
PRTP_MARKET_CONVERT_5 24 市价_最优5档即成剩转
PRTP_STK_OPTION_ASK 25 询价
PRTP_STK_OPTION_FIX_CANCEL_ALL 26 限价即时全部成交否则撤单
PRTP_STK_OPTION_MARKET_CACEL_LEFT 27 市价即时成交剩余撤单
PRTP_STK_OPTION_MARKET_CANCEL_ALL 28 市价即时全部成交否则撤单
PRTP_STK_OPTION_MARKET_CONVERT_FIX 29 市价剩余转限价
PRTP_SALE6 30 卖6
PRTP_SALE7 31 卖7
PRTP_SALE8 32 卖8
PRTP_SALE9 33 卖9
PRTP_SALE10 34 卖10
PRTP_BUY6 35 买6
PRTP_BUY7 36 买7
PRTP_BUY8 37 买8
PRTP_BUY9 38 买9
PRTP_BUY10 39 买10
PRTP_UPPER_LIMIT_PRICE 40 涨停价
PRTP_LOWER_LIMIT_PRICE 41 跌停价
PRTP_MARKET_SH_CONVERT_5_CANCEL 42 最优五档即时成交剩余撤销
PRTP_MARKET_SH_CONVERT_5_LIMIT 43 最优五档即时成交剩转限价
PRTP_MARKET_PEER_PRICE_FIRST 44 对手方最优价格委托
PRTP_MARKET_MINE_PRICE_FIRST 45 本方最优价格委托
PRTP_MARKET_SZ_INSTBUSI_RESTCANCEL 46 即时成交剩余撤销委托
PRTP_MARKET_SZ_CONVERT_5_CANCEL 47 最优五档即时成交剩余撤销委托
PRTP_MARKET_SZ_FULL_REAL_CANCEL 48 全额成交或撤销委托
PRTP_AFTER_FIX_PRICE 49 盘后定价申报
enum_ETaskStatus - 任务状态
变量名称 数值 描述
TASK_STATUS_UNKNOWN 0 未知
TASK_STATUS_WAITING 1 等待
TASK_STATUS_COMMITING 2 提交中
TASK_STATUS_RUNNING 3 执行中
TASK_STATUS_PAUSE 4 暂停
TASK_STATUS_CANCELING_DEPRECATED 5 撤销中(已弃用)
TASK_STATUS_EXCEPTION_CANCELING_DEPRECATED 6 异常撤销中(已弃用)
TASK_STATUS_COMPLETED 7 完成
TASK_STATUS_CANCELED 8 已撤
TASK_STATUS_REJECTED 9 打回
TASK_STATUS_EXCEPTION_CANCELED 10 异常终止
TASK_STATUS_DROPPED 11 放弃(用于组合交易中,放弃补单)
TASK_STATUS_FORCE_CANCELED_DEPRECATED 12 强制终止(已弃用)