Skip to content

Context - 策略上下文

python
class rqalpha.core.strategy_context.StrategyContext
属性类型说明
future_accountAccount期货账户
nowdatetime当前 Bar/Tick 所对应的时间
portfolioPortfolio策略投资组合,可通过该对象获取当前策略账户、持仓等信息
run_infoRunInfo策略运行信息
stock_accountAccount股票账户
universeSet[str]在运行 update_universe(), subscribe() 或者 unsubscribe() 的时候,合约池会被更新。
需要注意,合约池内合约的交易时间(包含股票的策略默认会在股票交易时段触发)是 handle_bar 被触发的依据。

RunInfo - 策略运行信息

python
class rqalpha.core.strategy_context.RunInfo(config)
属性类型说明
commission_multiplierfloat手续费倍率
end_datedate策略的结束日期
frequencystr'1d'或'1m'
future_starting_cashfloat期货账户初始资金
futures_commission_multiplierfloat期货手续费倍率
margin_multiplierfloat保证金倍率
matching_typestr撮合方式
run_typestr运行类型
slippagefloat滑点水平
start_datedate策略的开始日期
stock_commission_multiplierfloat股票手续费倍率
stock_starting_cashfloat股票账户初始资金

Bar - k 线行情

python
class rqalpha.model.bar.BarObject(instrument, data, dt=None)

Bases: rqalpha.model.bar.PartialBarObject

属性类型说明
closefloat收盘价
datetimedatetime.datetime时间戳
highfloat最高价
is_tradingbool是否有成交量
lastfloat当前最新价
limit_downfloat跌停价
limit_upfloat涨停价
lowfloat最低价
openfloat开盘价
open_interestfloat截止到当前的持仓量(期货专用)
order_book_idstr交易标的代码
prev_closefloat昨日收盘价
prev_settlementfloat昨日结算价(期货专用)
settlementfloat结算价(期货专用)
symbolstr合约简称
total_turnoverfloat截止到当前的成交额
volumefloat截止到当前的成交量

基金 bar 说明

当开启基金 mod 时,货币基金 bar 数据新增下列字段,基金的高开低收(high/open/low/close)字段为单位净值(unit_net_value)字段

属性类型说明
daily_profitfloat每万元收益(日结型货币基金专用)
weekly_yieldfloat7 日年化收益率(日结型货币基金专用)
subscribe_statusstr订阅状态。开放 - Open, 暂停 - Suspended, 限制大额申购 - Limited, 封闭期 - Close
redeem_statusstr赎回状态。开放 - Open, 暂停 - Suspended, 限制大额赎回 - Limited, 封闭期 - Close
subscribe_upper_limitfloat申购上限(金额)
subscribe_lower_limitfloat申购下限(金额)
redeem_lower_limitfloat赎回下限(份额)

Tick - 快照行情

python
class rqalpha.model.tick.TickObject(instrument, tick_dict)

Bases: object

属性类型说明
ask_volslist卖出报盘数量,ask_vols[0]代表盘口卖一档报盘数量
askslist卖出报盘价格,asks[0]代表盘口卖一档报盘价
bid_volslist买入报盘数量,bids_vols[0]代表盘口买一档报盘数量
bidslist买入报盘价格,bids[0]代表盘口买一档报盘价
datetimedatetime.datetime当前快照数据的时间戳
highfloat截止到当前的最高价
lastfloat当前最新价
limit_downfloat跌停价
limit_upfloat涨停价
lowfloat截止到当前的最低价
openfloat当日开盘价
open_interestfloat截止到当前的持仓量(期货专用)
order_book_idstr标的代码
prev_closefloat昨日收盘价
prev_settlementfloat昨日结算价(期货专用)
total_turnoverfloat截止到当前的成交额
volumefloat截止到当前的成交量

Order - 订单

python
class rqalpha.model.order.Order

Bases: object

属性类型说明
avg_pricefloat成交均价
datetimedatetime.datetime订单创建时间
filled_quantityint订单已成交数量
frozen_pricefloat冻结价格
init_frozen_cashfloat冻结资金
messagestr信息。比如拒单时候此处会提示拒单原因
order_book_idstr合约代码
order_idint唯一标识订单的 id
position_effectPOSITION_EFFECT订单开平(期货专用)
pricefloat订单价格,只有在订单类型为'限价单'的时候才有意义
quantityint订单数量
secondary_order_idstr实盘交易中交易所产生的订单 ID
sideSIDE订单方向
statusORDER_STATUS订单状态
styleORDER_STYLE订单类型
trading_datetimedatetime.datetime订单的交易日期(对应期货夜盘)
transaction_costfloat费用
typeORDER_TYPE订单类型
unfilled_quantityint订单未成交数量

Portfolio - 投资组合

python
class rqalpha.portfolio.Portfolio(starting_cash, init_positions, financing_rate, start_date, data_proxy, event_bus)

Bases: object

投资组合,策略所有账户的集合

属性类型说明
accountsDict[DEFAULT_ACCOUNT_TYPE, Account]账户字典
annualized_returnsfloat累计年化收益率
cashfloat可用资金
cash_liabilitiesfloat现金负债
daily_pnlfloat当日盈亏
daily_returnsfloat当前最新一天的日收益
deposit_withdrawmethod出入金,deposit_withdraw(account_type, amount, receiving_days=0)
finance_repaymethod融资还款,finance_repay(amount, account_type)
frozen_cashfloat冻结资金
future_accountFutureAccount期货账户
market_valuefloat市值
pnlfloat收益
portfolio_valueDeprecated总权益
positionsdict持仓字典
start_datedatetime.datetime策略投资组合的开始日期
starting_cashfloat初始资金
static_unit_net_valuefloat昨日净值
stock_accountStockAccount股票账户
total_returnsfloat累计收益率
total_valuefloat总权益
transaction_costfloat交易成本(税费)
unit_net_valuefloat实时净值
unitsfloat份额

Account - 账户

python
class rqalpha.portfolio.account.Account(account_type, total_cash, init_positions, financing_rate)

账户,多种持仓和现金的集合。

不同品种的合约持仓可能归属于不同的账户,如股票、转债、场内基金、ETF 期权归属于股票账户,期货、期货期权归属于期货账户

属性类型说明
buy_marginfloat多方向保证金
cashfloat可用资金
cash_liabilitiesfloat现金负债
cash_liabilities_interestfloat现金负债当日的利息
daily_pnlfloat当日盈亏
deposit_withdrawmethod出入金,deposit_withdraw(account_type, amount, receiving_days=0)
finance_repaymethod融资还款 ,finance_repay(amount)
frozen_cashfloat冻结资金
get_positionPosition获取某个标的的持仓对象,
get_position(order_book_id, direction=POSITION_DIRECTION.LONG)
    order_book_id (str) -- 标的编号
    direction (POSITION_DIRECTION) -- 持仓方向
get_positionsIterable[Position]获取所有持仓对象列表
management_feesfloat该账户的管理费用总计
market_valuefloat市值
position_equityfloat持仓总权益
position_pnlfloat昨仓盈亏
register_management_fee_calculatorNone设置管理费用计算逻辑,该方法需要传入一个函数,
def management_fee_calculator(account, rate):
    return len(account.positions) * rate
def init(context):
    context.portfolio.accounts["STOCK"].set_management_fee_calculator(management_fee_calculator)
sell_marginfloat空方向保证金
set_management_fee_rateNone管理费用计算费率,set_management_fee_rate(rate)
total_cashfloat账户总资金
total_valuefloat账户总权益
trading_pnlfloat交易盈亏
transaction_costfloat总费用

StockPosition - 股票持仓

python
class rqalpha.mod.rqalpha_mod_sys_accounts.position_model.StockPosition(order_book_id, direction, init_quantity=0, init_price=None)
属性类型说明
avg_pricefloat开仓均价
closableint可平仓位
directionPOSITION_DIRECTION返回当前持仓的方向
dividend_receivablefloat应收分红
last_pricefloat当前最新价
market_valuefloat返回当前持仓的市值
order_book_idstr返回当前持仓的 order_book_id
pnlfloat返回该持仓的累积盈亏
position_pnlfloat返回当前持仓当日的持仓盈亏
prev_closefloat昨日收盘价
quantityint返回当前持仓量
today_closableint返回今仓中的可平仓位
trading_pnlfloat返回当前持仓当日的交易盈亏

FuturePosition - 期货持仓

python
class rqalpha.mod.rqalpha_mod_sys_accounts.position_model.FuturePosition(order_book_id, direction, init_quantity=0, init_price=None)
属性类型说明
avg_pricefloat开仓均价
closableint可平仓位
directionPOSITION_DIRECTION返回当前持仓的方向
last_pricefloat当前最新价
marginfloat保证金 = 持仓量 * 最新价 * 合约乘数 * 保证金率
market_valuefloat返回当前持仓的市值
order_book_idstr返回当前持仓的 order_book_id
pnlfloat返回该持仓的累积盈亏
position_pnlfloat返回当前持仓当日的持仓盈亏
prev_closefloat昨日收盘价
quantityint返回当前持仓量
today_closableint返回今仓中的可平仓位
trading_pnlfloat返回当前持仓当日的交易盈亏

FundPosition - 基金持仓

python
class rqalpha_mod_fund.position.FundPosition
属性类型说明
avg_pricefloat开仓均价
closableint可平仓位
close_queuelist平仓时需要按队列平仓
directionPOSITION_DIRECTION返回当前持仓的方向
dividend_receivablefloat应收分红
equityfloat净值
last_pricefloat当前最新价
market_valuefloat返回当前持仓的市值
order_book_idstr返回当前持仓的 order_book_id
pnlfloat返回该持仓的累积盈亏
position_pnlfloat返回当前持仓当日的持仓盈亏
prev_closefloat昨日收盘价
quantityint已到账份额
receivable_cashfloat未到账金额
receivable_quantityint未到账份额
today_closableint返回今仓中的可平仓位
trading_pnlfloat返回当前持仓当日的交易盈亏

Instrument - 交易标的

python
class rqalpha.model.instrument.Instrument
属性类型说明
order_book_idstr股票:证券代码,证券的独特的标识符。应以'.XSHG'或'.XSHE'结尾,前者代表上证,后者代表深证。期货:期货代码,期货的独特的标识符(郑商所期货合约数字部分进行了补齐。例如原有代码'ZC609'补齐之后变为'ZC1609')。主力连续合约 UnderlyingSymbol+88,例如'IF88' ;指数连续合约命名规则为 UnderlyingSymbol+99
symbolstr股票:证券的简称,例如'平安银行'。期货:期货的简称,例如'沪深 1005'。
abbrev_symbolstr证券的名称缩写,在中国 A 股就是股票的拼音缩写,例如:'PAYH'就是平安银行股票的证券名缩写;在期货市场中例如'HS1005',主力连续合约与指数连续合约都为'null'。
round_lotint股票:一手对应多少股,中国 A 股一手是 100 股。期货:一律为 1。
sector_codestr板块缩写代码,全球通用标准定义(股票专用)
sector_code_namestr以当地语言为标准的板块代码名(股票专用)
industry_codestr国民经济行业分类代码,具体可参考下方“Industry 列表”(股票专用)
industry_namestr国民经济行业分类名称(股票专用)
listed_datestr股票:该证券上市日期。期货:期货的上市日期,主力连续合约与指数连续合约都为'0000-00-00'。
de_listed_datestr股票:退市日期;期货:交割日期
typestr合约类型,目前支持的类型有:'CS','INDX','LOF','ETF','Future','FUND'等
concept_namesstr概念股分类,如'铁路基建','基金重仓'等(股票专用)
exchangestr交易所。股票:'XSHE' - 深交所, 'XSHG' - 上交所。期货:'DCE' - 大连商品交易所, 'SHFE' - 上海期货交易所,'CFFEX' - 中国金融期货交易所, 'CZCE'- 郑州商品交易所
board_typestr板块类别,'MainBoard'-主板,'GEM'-创业板(股票专用)
statusstr合约状态,合约状态。'Active' - 正常上市, 'Delisted' - 终止上市, 'TemporarySuspended' - 暂停上市, 'PreIPO' - 发行配售期间, 'FailIPO' - 发行失败(股票专用)
special_typestr特别处理状态,特别处理状态。'Normal' - 正常上市, 'ST' - ST 处理, 'StarST' - *ST 代表该股票正在接受退市警告, 'PT' - 代表该股票连续 3 年收入为负,将被暂停交易, 'Other' - 其他(股票专用)
contract_multiplierfloat合约乘数,如沪深 300 股指期货的乘数为 300.0(期货专用)
underlying_order_book_idstr合约标的代码,目前除股指期货(IH, IF, IC)之外的期货合约,这一字段全部为'null'(期货专用)
underlying_symbolstr合约标的名称,例如 IF1005 的合约标的名称为 'IF'(期货专用)
maturity_datestr期货到期日,主力连续合约与指数连续合约都为'0000-00-00'(期货专用)
settlement_methodstr交割方式,'CashSettlementRequired'-现金交割,'PhysicalSettlementRequired'-实物交割(期货专用)
productstr产品类型,'Index'-股指期货,'Commodity'-商品期货,'Government'-国债期货(期货专用)

Instrument 对象也支持如下方法:

合约已上市天数:

python
instruments(order_book_id).days_from_listed()

如果合约首次上市交易,天数为 0;如果合约尚未上市或已经退市,则天数值为-1

合约距离到期天数:

python
instruments(order_book_id).days_to_expire()

如果策略已经退市,则天数值为-1

最小价格变动单位:

python
instruments(order_book_id).tick_size()

例如,instruments('IF1608').tick_size()获取的就是股指期货的最小价格变动单位,为 0.2,即“一跳”的水平。