策略回测指标

from:http://blog.sina.com.cn/s/blog_6a859e470102wtps.html

一、策略年化收益率:表示投资期限为一年的预期收益率

二、阿尔法:投资中面临着系统性风险(即Beta)和非系统性风险(即Alpha),Alpha是投资者获得与市场波动无关的回报,一般用来度量投资者的投资技艺。比如投资者获得了12%的回报,其基准获得了10%的回报,那么Alpha或者价值增值的部分就是2%

  • α>0,策略相对于风险,获得了超额收益
  • α=0,策略相对于风险,获得了适当收益
  • α<0,策略相对于风险,获得了较少收益 

三、贝塔:表示投资的系统性风险,反映了策略对大盘变化的敏感性。例如一个策略的Beta1.3,则大盘涨1%的时候,策略可能涨1.3%,反之亦然;如果一个策略的Beta-1.3,说明大盘涨1%的时候,策略可能跌1.3%,反之亦然

四、夏普比率:表示每承受一单位总风险,会产生多少的超额报酬,可以同时对策略的收益与风险进行综合考虑

策略收益波动率:用来测量资产的风险性,波动越大代表策略风险越高

五、信息比率:衡量单位超额风险带来的超额收益。信息比率越大,说明该策略单位跟踪误差所获得的超额收益越高,因此,信息比率较大的策略的表现要优于信息比率较低的基金。合理的投资目标应该是在承担适度风险下,尽可能追求高信息比率

六、最大回撤:描述策略可能出现的最糟糕的情况

七、换手率:描述策略变化的频率以及持有某只股票平均时间的长短。Turnover Rate具体计算方式为:买入总价值与卖出总价值中的较小者 / 虚拟账户平均价值

同时,如果您想要更详细的分析策略回测的结果,Strategy还提供了两个变量记录策略回测结果,您可以在一个code模式单元调用这两个变量:

同时,如果您想要更详细的分析策略回测的结果,Strategy还提供了两个变量记录策略回测结果,您可以在一个code模式单元调用这两个变量:

1、 bt

记录了每个交易日收盘之后虚拟账户的详细信息,包含日期(tradeDate)、现金头寸(cash)、股票头寸(security_position)、投资组合价值(portfolio_value)、基准收益率(benchmark_return)、交易指令明细表(blotter)等6列;

交易指令明细表(blotter)中记录了每个交易日的下单指令详情、订单成交状态、涨停/跌停等信息。

数据结构为pandas.DataFrame

2、 perf

记录了丰富的风险收益指标,数据类型是字典,关键词包含max_drawdown treasury_returninformation_coefficient benchmark_cumulative_valuesbenchmark_annualized_return turnover_rate cumulative_returns betabenchmark_volatility returns excess_return benchmark_returnsbenchmark_cumulative_returns sharpe alpha volatility information_ratioannualized_return cumulative_values

您可以根据具体的指标名称查询更加详细的指标内容。


在使用 VN.py 进行交易策略时,需要结合其模块化架构和内置工具进行设置与执行。以下是一个完整的方法指南: ### 环境准备 首先确保安装了 VN.py 及其相关模块,包括 `vnpy_ctp`、`vnpy_ctastrategy`、`vnpy_ctabacktester` 等核心组件[^1]。这些模块可以通过 pip 安装,例如: ```bash pip install vnpy_ctp vnpy_ctastrategy vnpy_ctabacktester ``` 此外,还需要安装如 `importlib_metadata` 和 `vnpy_sqlite` 等支持库以保证数据的存储和读取正常运行[^1]。 ### 创建策略 在编写策略前,可以参考已有案例来学习如何定义策略逻辑。例如,在《基于 Python 的螺纹钢 28 分钟策略》中展示了如何基于时间窗口和价格波动设计通道突破策略[^3]。该策略的核心思想是根据历史价格设定上下边界,并在价格突破边界时触发交易信号。 创建策略类时需继承 `CtaTemplate` 类并实现必要的调函数,例如 `on_init()` 初始化策略参数、`on_tick()` 或 `on_bar()` 处理行情数据等。 ### 配置引擎 VN.py 提供了 `BacktestingEngine` 来配置和执行任务。用户可以指定的时间范围、初始资金、手续费率以及滑点设置等关键参数。示例代码如下: ```python from vnpy.app.cta_backtester.engine import BacktestingEngine engine = BacktestingEngine() engine.set_parameters( vt_symbol="rb2401.SHFE", interval="1m", start="20230101", end="20231231", rate=0.3 / 10000, slippage=1, size=10, pricetick=1, capital=1_000_000, ) engine.add_strategy(MyStrategy, {}) ``` ### 数据加载与处理 在多策略过程中,如果遇到新历史数据更新,VN.py 会采用同步机制确保所有策略获取一致的数据版本。这种机制能够有效避免因数据不同步导致的评估偏差,从而提升结果的可靠性[^2]。对于特定期货市场的试,还可以通过 `CtptestGateway` 连接到穿透式试环境,以便更贴近实际交易场景[^4]。 ### 执行与分析 调用 `run_backtest()` 方法即可开始执行流程。完成后,可通过 `get_result()` 获取详细的绩效报告,包括收益率曲线、最大撤、夏普比率等指标。进一步地,利用 VN.py 内置的图表功能可对结果进行可视化展示,帮助深入理解策略表现。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值