# wmpy_document **Repository Path**: hftquant/document_for_wmpy ## Basic Information - **Project Name**: wmpy_document - **Description**: 量化平台文档,有问题或bug请提issue - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2021-05-07 - **Last Updated**: 2021-05-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 向量化回测平台wmpy文档 ### 更新 2021-03-26 - 增加一个事件驱动回测的例子`bar_demo`,请大家上传到自己组的服务器上阅读和运行,方便同学们进入策略开发的下一阶段。 - 同时还给出了一个说明文档`trading_scripts_document`供参考。 - 请同学们结合这两个文件,加上一开始的`future-platform-demo`和其配套的视频,尝试进行事件驱动下单脚本的编写(具体见之后的作业布置)。 ### 更新 2021-03-15 修复了`cal_daily_pnl`函数mode='mid'参数失效的问题,现在如果在`commission=False and mode='mid'`的情况下,传入相反的仓位,返回的收益也将是相反数。 ### 更新 2021-03-12 重写了`cal_daily_pnl`函数的内部逻辑,速度有所提升,且可以支持连续仓位的传入 **PS**: 目前的手续费计算上取了开平仓手续费的平均值,对于按比例收取手续费的品种会有微小的误差,但是对于旨在粗略且快速向量化回测来说,这样的取舍是可以接受的 : ) ### 更新 2021-03-11 ##### Feature 1. 增加了一个获取手续费信息的函数:`wmpy.trader.utility.get_commission` 2. 在单日回测中加入了手续费的选项: ```python cal_daily_pnl(position_ser, bar_df, commission_tuple=False, mode='take') # commission_tuple=False 代表不计算手续费 # commission_tuple若传入get_commission返回的结果 则按交易规则计算 # 返回值将收益区分为total_pnl, net_pnl, commission; total_pnl = net_pnl + commission; # 目前的回测函数仅能处理position为0,1,-1的计算;之后会改进。 例: result = cal_daily_pnl(position_ser, bar_df, commission_tuple=get_commission('IF', close_today=True)) ``` 3. 在多日回测中加入手续费的选项: ```python cal_all_pnl(start_date, end_date, strategy_func, parameter_dict, symbol=None, contract=None, mode='take', commission=False, rebate=0, bar_filter=None, workers=None, verbose=False) # commission可传入 False, 'today', 'yesterday' # cal_all_pnl函数将自动调用get_commission来传入cal_daily_pnl # 具体细节可参考更新后的notebook demo或者查阅源码 ``` ##### Bug Fix 1. 修复了`cal_daily_pnl`中返回值为int的bug,不够精确,现改为float ##### 其他 如果传入的仓位序列改变时,正好碰到合约出现涨停/跌停,收益计算会按0来算,造成当天pnl出现异常值 解决方法: 1. 在生成仓位序列时判断当前盘口是否涨停/跌停 2. 在绘制曲线时将当天异常的收益去掉,参考`demo_strategy_bar_factor In[15] ` #### 介绍 ipynb上传到服务器上通过notebook运行 仓库里给出了部分接口的源码,供查阅 之后有代码或功能上的更新会在这里发布 有bug或改进意见请提issue