Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time

sys_simulation Mod

RQAlpha 回测 Mod,启用该模块开启回测功能。

该模块是系统模块,不可删除

开启或关闭策略回测/模拟 Mod

# 关闭策略回测/模拟 Mod
$ rqalpha mod disable sys_simulation

# 启用策略回测/模拟 Mod
$ rqalpha mod enable sys_simulation

模块配置项

您可以通过直接修改 sys_simulation Mod 的配置信息来更改默认配置项

默认配置项如下:

{
    # 开启信号模式:该模式下,所有通过风控的订单将不进行撮合,直接产生交易
    "signal": False,
    # 撮合方式,其中:
    #   日回测的可选值为 "current_bar"|"vwap"(以当前 bar 收盘价|成交量加权平均价撮合)
    #   分钟回测的可选值有 "current_bar"|"next_bar"|"vwap"(以当前 bar 收盘价|下一个 bar 的开盘价|成交量加权平均价撮合)
    #   tick 回测的可选值有 "last"|"best_own"|"best_counterparty"(以最新价|己方最优价|对手方最优价撮合)和 "counterparty_offer"(逐档撮合)
    "matching_type": "current_bar",
    # 开启对于处于涨跌停状态的证券的撮合限制
    "price_limit": True,
    # 开启对于对手盘无流动性的证券的撮合限制(仅在 tick 回测下生效)
    "liquidity_limit": False,
    # 开启成交量限制
    #   开启该限制意味着每个 bar 的累计成交量将不会超过该时间段内市场上总成交量的一定比值(volume_percent)
    #   开启该限制意味着每个 tick 的累计成交量将不会超过当前tick与上一个tick的市场总成交量之差的一定比值
    "volume_limit": True,
    # 每个 bar/tick 可成交数量占市场总成交量的比值,在 volume_limit 开启时生效
    "volume_percent": 0.25,
    # 滑点模型,可选值有 "PriceRatioSlippage"(按价格比例设置滑点)和 "TickSizeSlippage"(按跳设置滑点)
    #    亦可自己实现滑点模型,选择自己实现的滑点模型时,此处需传入包含包和模块的完整类路径
    #    滑点模型类需继承自 rqalpha.mod.rqalpha_mod_sys_simulation.slippage.BaseSlippage
    "slippage_model": "PriceRatioSlippage",
    # 设置滑点值,对于 PriceRatioSlippage 表示价格的比例,对于 TickSizeSlippage 表示跳的数量
    "slippage": 0,
    # 开启对于当前 bar 无成交量的标的的撮合限制(仅在日和分钟回测下生效)
    "inactive_limit": True,
    # 账户每日计提的费用,需按照(账户类型,费率)的格式传入,例如[("STOCK", 0.0001), ("FUTURE", 0.0001)]
    "management_fee": [],
}

您可以通过如下方式来修改模块的配置信息,比如下面的示例中介绍了如何设置滑点

from rqalpha import run
config = {
    "base": {
        "strategy_file": "strategy.py",
        "start_date": "2015-01-09",
        "end_date": "2015-03-09",
        "frequency": "1d",
        "accounts": {
            "stock": 100000
        }
    }
    "mod": {
        "sys_simulation": {
            "enabled": True,
            "slippage": 0.01
        }
    }
}
run(config)

扩展命令

在启用该 Mod 的情况下,您可以使用如下功能:

  • rqalpha run 命令增加 --signal 选项,您可以指定使用信号方式来直接按照下单价格成交,从而屏蔽订单细节。
  • rqalpha run 命令增加 --slippage / -sp 选项,您可以指定成交所产生的滑点,目前支持按照当前价格的百分比的方式计算滑点。
  • rqalpha run 命令增加 --commission-multiplier / --cm 选项,您可以指定手续费乘数
  • rqalpha run 命令增加 --matching-type / --mt 选项,您可以指定撮合的锚定价格及对应的方式

注意事项

  • 在tick级别回测频率下,开盘集合竞价期间的撮合将无视 matching_type 的设置,一律用last撮合。
  • 默认情况下Tick回测使用DefaultTickMatcher,日频和分钟频率回测使用DefaultBarMatcher。