介绍下DCF现金流折现估值法
项目背景:
交易部门发现某些债券的估值有问题,该估值原本应该由上游组件提供。但他们团队无法快速做一个修复。
一个应急的折中方案,就是在我们的引擎里计算出这个债券估值,然后喂给更下游组件。
交易团队需要DCF法对债券做一个估值,因此我有机会了解下现金流折现估值法。
DCF解释:
DCF全程叫做Discounted Cash Flow现金流折现估值法,本质就是把企业未来特定期间内的预期现金流还原为现值。
由于通货膨胀的存在,现金购买力在下降,未来的100块的购买力肯定不如现在的100块。打个比方:假设现在猪肉价格是100块一斤,一年后卖105块;也就是说,1年后的105块折算到现在就是100块,一年期的贴现率为5%=(105-100)/100 ;如果这个值保持恒定,后一年的现金折算到现金需要除以2次(1+5%),以此类推。
假设企业的未来1~n年的现金流为D1、D2、D3……Dn,假设折现率为恒定的r,那么未来n年的现金流折现到现在的公式如下:
使用公司类型:
DCF模型只适合那些处于稳定期的企业,赚钱能力已经定型,企业*现金流可以预期,公司未来基本定型(甚至是销售合同或销售价格都有合同约束,那么就越适宜用现金流折现)。比如污水处理厂、签有PPA协议的电厂、高速公路等。
关键假设:
第一,假设公司未来是稳定增长的。
第二,假设公司未来现金流可预测。
第三,假设公司未来存续期可期。
第四,假设社会无风险利率维持固定水平。
介绍下EfficiencyRatio策略
1.“EfficiencyRatio效率比值” 概念是美国交易员 Perry J. Kaufman 佩里·考夫曼 提出的,是一种趋势强度的衡量。它的计算公式是:
- ER = N期间内价格总变化 / N期间内个别价格变化的绝对值
- 取值范围为-1.0到1.0; -1.0代表最强烈的下跌趋势,1.0代表最强烈的上涨趋势, 0.0代表无方向性的波动
2. 在我们的项目中,使用ER策略对期货进行回测交易,参数因子池包含了5个参数,分别是:
- K线的长度M:也就是说选取M分钟(该策略是日内策略)的K线(就是下图的每个红色/绿色的K线:K线也分1分钟K线,5分钟K线,天K线,周K线,年K线,等)
- 回望周期N:就是指计算ER时使用了几根上一步的K线
- 追踪止损的比例L:止盈止损的比例,触发时会平掉持有的头寸
- 多仓ER阈值:当ER值到达多大的正值,开多仓
- 空仓ER阈值:当ER值到达多大的负值,开空仓
项目中,我们遍历60个交易日,选出最好的一组参数,给接下来的20个交易日使用。以此类推,动态获取最优参数。
3. 我的主要贡献:
- 代码的补充实现:以及bug fix - 策略收益一直从15年的某一刻(回测期2014.01-2016-12)开始持续异常下跌,原因是代码在特定条件下的开多开空逻辑颠倒
- 策略的完善:原本的参数池只有4个因子,开多仓和开空仓的阈值始终保持一致。之后,我就改为分开设置,多仓空仓的信号阈值不同。
- 原本的夏普率:1.42,年化收益率:18%,最大回撤:14.8%
- 修改后夏普率:1.29,年化收益率:21%,最大回撤:13.4%
- 结论:夏普率下降0.2个点,年化收益率上升2个点,最大回撤下降2个点
注意:该策略是日内策略,会在每个交易日的最后一条K时,强制平仓