Appearance
类
Context - 策略上下文
python
class rqalpha.core.strategy_context.StrategyContext
属性 | 类型 | 说明 |
---|---|---|
future_account | Account | 期货账户 |
now | datetime | 当前 Bar/Tick 所对应的时间 |
portfolio | Portfolio | 策略投资组合,可通过该对象获取当前策略账户、持仓等信息 |
run_info | RunInfo | 策略运行信息 |
stock_account | Account | 股票账户 |
universe | Set[str] | 在运行 update_universe(), subscribe() 或者 unsubscribe() 的时候,合约池会被更新。 需要注意,合约池内合约的交易时间(包含股票的策略默认会在股票交易时段触发)是 handle_bar 被触发的依据。 |
RunInfo - 策略运行信息
python
class rqalpha.core.strategy_context.RunInfo(config)
属性 | 类型 | 说明 |
---|---|---|
commission_multiplier | float | 手续费倍率 |
end_date | date | 策略的结束日期 |
frequency | str | '1d'或'1m' |
future_starting_cash | float | 期货账户初始资金 |
futures_commission_multiplier | float | 期货手续费倍率 |
margin_multiplier | float | 保证金倍率 |
matching_type | str | 撮合方式 |
run_type | str | 运行类型 |
slippage | float | 滑点水平 |
start_date | date | 策略的开始日期 |
stock_commission_multiplier | float | 股票手续费倍率 |
stock_starting_cash | float | 股票账户初始资金 |
Bar - k 线行情
python
class rqalpha.model.bar.BarObject(instrument, data, dt=None)
Bases: rqalpha.model.bar.PartialBarObject
属性 | 类型 | 说明 |
---|---|---|
close | float | 收盘价 |
datetime | datetime.datetime | 时间戳 |
high | float | 最高价 |
is_trading | bool | 是否有成交量 |
last | float | 当前最新价 |
limit_down | float | 跌停价 |
limit_up | float | 涨停价 |
low | float | 最低价 |
open | float | 开盘价 |
open_interest | float | 截止到当前的持仓量(期货专用) |
order_book_id | str | 交易标的代码 |
prev_close | float | 昨日收盘价 |
prev_settlement | float | 昨日结算价(期货专用) |
settlement | float | 结算价(期货专用) |
symbol | str | 合约简称 |
total_turnover | float | 截止到当前的成交额 |
volume | float | 截止到当前的成交量 |
基金 bar 说明
当开启基金 mod 时,货币基金 bar 数据新增下列字段,基金的高开低收(high/open/low/close)字段为单位净值(unit_net_value)字段
属性 | 类型 | 说明 |
---|---|---|
daily_profit | float | 每万元收益(日结型货币基金专用) |
weekly_yield | float | 7 日年化收益率(日结型货币基金专用) |
subscribe_status | str | 订阅状态。开放 - Open, 暂停 - Suspended, 限制大额申购 - Limited, 封闭期 - Close |
redeem_status | str | 赎回状态。开放 - Open, 暂停 - Suspended, 限制大额赎回 - Limited, 封闭期 - Close |
subscribe_upper_limit | float | 申购上限(金额) |
subscribe_lower_limit | float | 申购下限(金额) |
redeem_lower_limit | float | 赎回下限(份额) |
Tick - 快照行情
python
class rqalpha.model.tick.TickObject(instrument, tick_dict)
Bases: object
属性 | 类型 | 说明 |
---|---|---|
ask_vols | list | 卖出报盘数量,ask_vols[0]代表盘口卖一档报盘数量 |
asks | list | 卖出报盘价格,asks[0]代表盘口卖一档报盘价 |
bid_vols | list | 买入报盘数量,bids_vols[0]代表盘口买一档报盘数量 |
bids | list | 买入报盘价格,bids[0]代表盘口买一档报盘价 |
datetime | datetime.datetime | 当前快照数据的时间戳 |
high | float | 截止到当前的最高价 |
last | float | 当前最新价 |
limit_down | float | 跌停价 |
limit_up | float | 涨停价 |
low | float | 截止到当前的最低价 |
open | float | 当日开盘价 |
open_interest | float | 截止到当前的持仓量(期货专用) |
order_book_id | str | 标的代码 |
prev_close | float | 昨日收盘价 |
prev_settlement | float | 昨日结算价(期货专用) |
total_turnover | float | 截止到当前的成交额 |
volume | float | 截止到当前的成交量 |
Order - 订单
python
class rqalpha.model.order.Order
Bases: object
属性 | 类型 | 说明 |
---|---|---|
avg_price | float | 成交均价 |
datetime | datetime.datetime | 订单创建时间 |
filled_quantity | int | 订单已成交数量 |
frozen_price | float | 冻结价格 |
init_frozen_cash | float | 冻结资金 |
message | str | 信息。比如拒单时候此处会提示拒单原因 |
order_book_id | str | 合约代码 |
order_id | int | 唯一标识订单的 id |
position_effect | POSITION_EFFECT | 订单开平(期货专用) |
price | float | 订单价格,只有在订单类型为'限价单'的时候才有意义 |
quantity | int | 订单数量 |
secondary_order_id | str | 实盘交易中交易所产生的订单 ID |
side | SIDE | 订单方向 |
status | ORDER_STATUS | 订单状态 |
style | ORDER_STYLE | 订单类型 |
trading_datetime | datetime.datetime | 订单的交易日期(对应期货夜盘) |
transaction_cost | float | 费用 |
type | ORDER_TYPE | 订单类型 |
unfilled_quantity | int | 订单未成交数量 |
Portfolio - 投资组合
python
class rqalpha.portfolio.Portfolio(starting_cash, init_positions, financing_rate, start_date, data_proxy, event_bus)
Bases: object
投资组合,策略所有账户的集合
属性 | 类型 | 说明 |
---|---|---|
accounts | Dict[DEFAULT_ACCOUNT_TYPE, Account] | 账户字典 |
annualized_returns | float | 累计年化收益率 |
cash | float | 可用资金 |
cash_liabilities | float | 现金负债 |
daily_pnl | float | 当日盈亏 |
daily_returns | float | 当前最新一天的日收益 |
deposit_withdraw | method | 出入金,deposit_withdraw(account_type, amount, receiving_days=0) |
finance_repay | method | 融资还款,finance_repay(amount, account_type) |
frozen_cash | float | 冻结资金 |
future_account | FutureAccount | 期货账户 |
market_value | float | 市值 |
pnl | float | 收益 |
portfolio_value | Deprecated | 总权益 |
positions | dict | 持仓字典 |
start_date | datetime.datetime | 策略投资组合的开始日期 |
starting_cash | float | 初始资金 |
static_unit_net_value | float | 昨日净值 |
stock_account | StockAccount | 股票账户 |
total_returns | float | 累计收益率 |
total_value | float | 总权益 |
transaction_cost | float | 交易成本(税费) |
unit_net_value | float | 实时净值 |
units | float | 份额 |
Account - 账户
python
class rqalpha.portfolio.account.Account(account_type, total_cash, init_positions, financing_rate)
账户,多种持仓和现金的集合。
不同品种的合约持仓可能归属于不同的账户,如股票、转债、场内基金、ETF 期权归属于股票账户,期货、期货期权归属于期货账户
属性 | 类型 | 说明 |
---|---|---|
buy_margin | float | 多方向保证金 |
cash | float | 可用资金 |
cash_liabilities | float | 现金负债 |
cash_liabilities_interest | float | 现金负债当日的利息 |
daily_pnl | float | 当日盈亏 |
deposit_withdraw | method | 出入金,deposit_withdraw(account_type, amount, receiving_days=0) |
finance_repay | method | 融资还款 ,finance_repay(amount) |
frozen_cash | float | 冻结资金 |
get_position | Position | 获取某个标的的持仓对象, get_position(order_book_id, direction=POSITION_DIRECTION.LONG) order_book_id (str) -- 标的编号 direction (POSITION_DIRECTION) -- 持仓方向 |
get_positions | Iterable[Position] | 获取所有持仓对象列表 |
management_fees | float | 该账户的管理费用总计 |
market_value | float | 市值 |
position_equity | float | 持仓总权益 |
position_pnl | float | 昨仓盈亏 |
register_management_fee_calculator | None | 设置管理费用计算逻辑,该方法需要传入一个函数, 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_margin | float | 空方向保证金 |
set_management_fee_rate | None | 管理费用计算费率,set_management_fee_rate(rate) |
total_cash | float | 账户总资金 |
total_value | float | 账户总权益 |
trading_pnl | float | 交易盈亏 |
transaction_cost | float | 总费用 |
StockPosition - 股票持仓
python
class rqalpha.mod.rqalpha_mod_sys_accounts.position_model.StockPosition(order_book_id, direction, init_quantity=0, init_price=None)
属性 | 类型 | 说明 |
---|---|---|
avg_price | float | 开仓均价 |
closable | int | 可平仓位 |
direction | POSITION_DIRECTION | 返回当前持仓的方向 |
dividend_receivable | float | 应收分红 |
last_price | float | 当前最新价 |
market_value | float | 返回当前持仓的市值 |
order_book_id | str | 返回当前持仓的 order_book_id |
pnl | float | 返回该持仓的累积盈亏 |
position_pnl | float | 返回当前持仓当日的持仓盈亏 |
prev_close | float | 昨日收盘价 |
quantity | int | 返回当前持仓量 |
today_closable | int | 返回今仓中的可平仓位 |
trading_pnl | float | 返回当前持仓当日的交易盈亏 |
FuturePosition - 期货持仓
python
class rqalpha.mod.rqalpha_mod_sys_accounts.position_model.FuturePosition(order_book_id, direction, init_quantity=0, init_price=None)
属性 | 类型 | 说明 |
---|---|---|
avg_price | float | 开仓均价 |
closable | int | 可平仓位 |
direction | POSITION_DIRECTION | 返回当前持仓的方向 |
last_price | float | 当前最新价 |
margin | float | 保证金 = 持仓量 * 最新价 * 合约乘数 * 保证金率 |
market_value | float | 返回当前持仓的市值 |
order_book_id | str | 返回当前持仓的 order_book_id |
pnl | float | 返回该持仓的累积盈亏 |
position_pnl | float | 返回当前持仓当日的持仓盈亏 |
prev_close | float | 昨日收盘价 |
quantity | int | 返回当前持仓量 |
today_closable | int | 返回今仓中的可平仓位 |
trading_pnl | float | 返回当前持仓当日的交易盈亏 |
FundPosition - 基金持仓
python
class rqalpha_mod_fund.position.FundPosition
属性 | 类型 | 说明 |
---|---|---|
avg_price | float | 开仓均价 |
closable | int | 可平仓位 |
close_queue | list | 平仓时需要按队列平仓 |
direction | POSITION_DIRECTION | 返回当前持仓的方向 |
dividend_receivable | float | 应收分红 |
equity | float | 净值 |
last_price | float | 当前最新价 |
market_value | float | 返回当前持仓的市值 |
order_book_id | str | 返回当前持仓的 order_book_id |
pnl | float | 返回该持仓的累积盈亏 |
position_pnl | float | 返回当前持仓当日的持仓盈亏 |
prev_close | float | 昨日收盘价 |
quantity | int | 已到账份额 |
receivable_cash | float | 未到账金额 |
receivable_quantity | int | 未到账份额 |
today_closable | int | 返回今仓中的可平仓位 |
trading_pnl | float | 返回当前持仓当日的交易盈亏 |
Instrument - 交易标的
python
class rqalpha.model.instrument.Instrument
属性 | 类型 | 说明 |
---|---|---|
order_book_id | str | 股票:证券代码,证券的独特的标识符。应以'.XSHG'或'.XSHE'结尾,前者代表上证,后者代表深证。期货:期货代码,期货的独特的标识符(郑商所期货合约数字部分进行了补齐。例如原有代码'ZC609'补齐之后变为'ZC1609')。主力连续合约 UnderlyingSymbol+88,例如'IF88' ;指数连续合约命名规则为 UnderlyingSymbol+99 |
symbol | str | 股票:证券的简称,例如'平安银行'。期货:期货的简称,例如'沪深 1005'。 |
abbrev_symbol | str | 证券的名称缩写,在中国 A 股就是股票的拼音缩写,例如:'PAYH'就是平安银行股票的证券名缩写;在期货市场中例如'HS1005',主力连续合约与指数连续合约都为'null'。 |
round_lot | int | 股票:一手对应多少股,中国 A 股一手是 100 股。期货:一律为 1。 |
sector_code | str | 板块缩写代码,全球通用标准定义(股票专用) |
sector_code_name | str | 以当地语言为标准的板块代码名(股票专用) |
industry_code | str | 国民经济行业分类代码,具体可参考下方“Industry 列表”(股票专用) |
industry_name | str | 国民经济行业分类名称(股票专用) |
listed_date | str | 股票:该证券上市日期。期货:期货的上市日期,主力连续合约与指数连续合约都为'0000-00-00'。 |
de_listed_date | str | 股票:退市日期;期货:交割日期 |
type | str | 合约类型,目前支持的类型有:'CS','INDX','LOF','ETF','Future','FUND'等 |
concept_names | str | 概念股分类,如'铁路基建','基金重仓'等(股票专用) |
exchange | str | 交易所。股票:'XSHE' - 深交所, 'XSHG' - 上交所。期货:'DCE' - 大连商品交易所, 'SHFE' - 上海期货交易所,'CFFEX' - 中国金融期货交易所, 'CZCE'- 郑州商品交易所 |
board_type | str | 板块类别,'MainBoard'-主板,'GEM'-创业板(股票专用) |
status | str | 合约状态,合约状态。'Active' - 正常上市, 'Delisted' - 终止上市, 'TemporarySuspended' - 暂停上市, 'PreIPO' - 发行配售期间, 'FailIPO' - 发行失败(股票专用) |
special_type | str | 特别处理状态,特别处理状态。'Normal' - 正常上市, 'ST' - ST 处理, 'StarST' - *ST 代表该股票正在接受退市警告, 'PT' - 代表该股票连续 3 年收入为负,将被暂停交易, 'Other' - 其他(股票专用) |
contract_multiplier | float | 合约乘数,如沪深 300 股指期货的乘数为 300.0(期货专用) |
underlying_order_book_id | str | 合约标的代码,目前除股指期货(IH, IF, IC)之外的期货合约,这一字段全部为'null'(期货专用) |
underlying_symbol | str | 合约标的名称,例如 IF1005 的合约标的名称为 'IF'(期货专用) |
maturity_date | str | 期货到期日,主力连续合约与指数连续合约都为'0000-00-00'(期货专用) |
settlement_method | str | 交割方式,'CashSettlementRequired'-现金交割,'PhysicalSettlementRequired'-实物交割(期货专用) |
product | str | 产品类型,'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,即“一跳”的水平。