Context - 策略上下文

class rqalpha.core.strategy_context.StrategyContext

策略上下文

property future_account

期货账户

Return type

Account

property now

当前 Bar/Tick 所对应的时间

Return type

datetime

property portfolio

策略投资组合,可通过该对象获取当前策略账户、持仓等信息

Return type

Portfolio

property run_info

测略运行信息

Return type

RunInfo

property stock_account

股票账户

Return type

Account

property universe

在运行 update_universe(), subscribe() 或者 unsubscribe() 的时候,合约池会被更新。

需要注意,合约池内合约的交易时间(包含股票的策略默认会在股票交易时段触发)是handle_bar被触发的依据。

Return type

Set[str]

RunInfo - 策略运行信息

class rqalpha.core.strategy_context.RunInfo(config)

策略运行信息

property commission_multiplier

手续费倍率

Return type

float

property end_date

策略的结束日期

Return type

date

property frequency

'1d'或'1m'

Return type

str

property future_starting_cash

期货账户初始资金

Return type

float

property margin_multiplier

保证金倍率

Return type

float

property matching_type

撮合方式

Return type

str

property run_type

运行类型

Return type

str

property slippage

滑点水平

Return type

float

property start_date

策略的开始日期

Return type

date

property stock_starting_cash

股票账户初始资金

Return type

float

Bar - k 线行情

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 - 快照行情

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

Bases: object

property ask_vols

[list] 卖出报盘数量,ask_vols[0]代表盘口卖一档报盘数量

property asks

[list] 卖出报盘价格,asks[0]代表盘口卖一档报盘价

property bid_vols

[list] 买入报盘数量,bids_vols[0]代表盘口买一档报盘数量

property bids

[list] 买入报盘价格,bids[0]代表盘口买一档报盘价

property datetime

[datetime.datetime] 当前快照数据的时间戳

property high

[float] 截止到当前的最高价

property last

[float] 当前最新价

property limit_down

[float] 跌停价

property limit_up

[float] 涨停价

property low

[float] 截止到当前的最低价

property open

[float] 当日开盘价

property open_interest

[float] 截止到当前的持仓量(期货专用)

property order_book_id

[str] 标的代码

property prev_close

[float] 昨日收盘价

property prev_settlement

[float] 昨日结算价(期货专用)

property total_turnover

[float] 截止到当前的成交额

property volume

[float] 截止到当前的成交量

Order - 订单

class rqalpha.model.order.Order

Bases: object

property avg_price

[float] 成交均价

property datetime

[datetime.datetime] 订单创建时间

property filled_quantity

[int] 订单已成交数量

property frozen_price

[float] 冻结价格

property init_frozen_cash

[float] 冻结资金

property message

[str] 信息。比如拒单时候此处会提示拒单原因

property order_book_id

[str] 合约代码

property order_id

[int] 唯一标识订单的id

Return type

int

property position_effect

[POSITION_EFFECT] 订单开平(期货专用)

property price

[float] 订单价格,只有在订单类型为'限价单'的时候才有意义

property quantity

[int] 订单数量

property secondary_order_id

[str] 实盘交易中交易所产生的订单ID

property side

[SIDE] 订单方向

Return type

SIDE

property status

[ORDER_STATUS] 订单状态

property trading_datetime

[datetime.datetime] 订单的交易日期(对应期货夜盘)

property transaction_cost

[float] 费用

property type

[ORDER_TYPE] 订单类型

property unfilled_quantity

[int] 订单未成交数量

Portfolio - 投资组合

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

Bases: object

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

property accounts

账户字典

Return type

Dict[DEFAULT_ACCOUNT_TYPE, Account]

property annualized_returns

[float] 累计年化收益率

property cash

[float] 可用资金

property daily_pnl

[float] 当日盈亏

property daily_returns

[float] 当前最新一天的日收益

deposit_withdraw(account_type, amount)

出入金

property frozen_cash

[float] 冻结资金

property future_account

[FutureAccount] 期货账户

property market_value

[float] 市值

property pnl

[float] 收益

property portfolio_value

[Deprecated] 总权益

property positions

[dict] 持仓字典

property start_date

[datetime.datetime] 策略投资组合的开始日期

property starting_cash

[float] 初始资金

property static_unit_net_value

[float] 昨日净值

property stock_account

[StockAccount] 股票账户

property total_returns

[float] 累计收益率

property total_value

[float]总权益

property transaction_cost

[float] 交易成本(税费)

property unit_net_value

[float] 实时净值

property units

[float] 份额

Account - 账户

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

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

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

property buy_margin

多方向保证金

Return type

float

property cash

可用资金

Return type

float

property daily_pnl

当日盈亏

Return type

float

deposit_withdraw(amount)

出入金

Return type

None

property equity

持仓总权益

Return type

float

property frozen_cash

冻结资金

Return type

float

get_position(order_book_id, direction=POSITION_DIRECTION.LONG)

获取某个标的的持仓对象

Parameters
Return type

Position

get_positions()

获取所有持仓对象列表,

Return type

Iterable[Position]

property management_fees

该账户的管理费用总计

Return type

float

property market_value

[float] 市值

Return type

float

property position_pnl

昨仓盈亏

Return type

float

register_management_fee_calculator(calculator)

设置管理费用计算逻辑 该方法需要传入一个函数


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)

Return type

None

property sell_margin

空方向保证金

Return type

float

set_management_fee_rate(rate)

管理费用计算费率

Return type

None

property total_cash

账户总资金

Return type

float

property total_value

账户总权益

Return type

float

property trading_pnl

交易盈亏

Return type

float

property transaction_cost

总费用

Return type

float

Position - 持仓

class rqalpha.portfolio.position.Position(order_book_id, direction, init_quantity=0, init_price=None)
property closable

可平仓位

Return type

int

property direction

返回当前持仓的方向

Return type

POSITION_DIRECTION

property market_value

返回当前持仓的市值

Return type

float

property order_book_id

返回当前持仓的 order_book_id

Return type

str

property pnl

返回该持仓的累积盈亏

Return type

float

property position_pnl

返回当前持仓当日的持仓盈亏

Return type

float

property quantity

返回当前持仓量

Return type

int

property today_closable

返回今仓中的可平仓位

Return type

int

property trading_pnl

返回当前持仓当日的交易盈亏

Return type

float

FundPosition - 基金持仓

class rqalpha_mod_fund.position.FundPosition

基金持仓 _quantity 预期持仓份额 = 已到账份额 + 未到账份额 _old_quantity _logical_old_quantity + 今日对昨仓的操作 _logical_old_quantity 今日开盘时已到账的份额

property closable

可平仓位

property direction

返回当前持仓的方向

Return type

POSITION_DIRECTION

property dividend_receivable

应收分红

Return type

float

property equity

净值 = 预期持仓金额 + 赎回金额

property market_value

返回当前持仓的市值

Return type

float

property order_book_id

返回当前持仓的 order_book_id

Return type

str

property pnl

返回该持仓的累积盈亏

Return type

float

property position_pnl

返回当前持仓当日的持仓盈亏

Return type

float

property quantity

已到账份额 = 预期持有份额 - 未到账份额

property receivable_cash

未到账金额

property receivable_quantity

未到账份额

property today_closable

返回今仓中的可平仓位

property trading_pnl

返回当前持仓当日的交易盈亏

Return type

float

Instrument - 交易标的

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', 'FenjiMu', 'FenjiA', 'FenjiB', 'Future'

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对象也支持如下方法:

合约已上市天数:

instruments(order_book_id).days_from_listed()

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

合约距离到期天数:

instruments(order_book_id).days_to_expire()

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

最小价格变动单位:

instruments(order_book_id).tick_size()