Skip to content

Latest commit

 

History

History
47 lines (41 loc) · 2.39 KB

复权.md

File metadata and controls

47 lines (41 loc) · 2.39 KB

复权

  1. 前复权。新价格不动,老价格进行调整。可以看持仓成本
    1. 老价格发生成了变化,直接使用将引入了未来数据
    2. 可能导致以前的价格出现负数
  2. 后复权。老价格不动,新价格进行调整。可以看持有收益
    1. 可用于计算收益率
    2. 计算技术指标与使用习惯不对应
  3. 动态前复权。每天都为观察点,进行前复权,记录下最新一天结果,然后将所有最新一天结果合并。
    1. 最真实的应用场景
    2. 迭代速度慢
    3. 可用于计算指标

案例

  1. rank(close),由于没有时序指标参与,所以直接计算,也不用复权。计算的结果取最后一行值保存与全量计算结果是一样的
  2. sma(close), 时序指标,需要动态复权然后计算
  3. sma(sma(close)). 取最后值进行拼接的操作应当只在最外层结果才做
  4. rank(sma(close)),可以将sma的结果取最后一行后拼接然后rank,与最后拼接结果一样
  5. sma(rank(close)), rank是否复权影响sma结果、如何做,还需考虑

总结

  1. 指标都存在时序窗口期。
    1. 窗口期=1. 不受复权影响。以下简化成1()
    2. 窗口期>1. 需要动态复权。以下简化成2()
  2. 指标是嵌套使用的。
    1. 1(1())。不受复权影响
    2. 2(2())。需要动态复权
    3. 1(2())。内层先复权拼接,与最外层统一拼接结果一样。因为外层不改变最终结论
    4. 2(1())。复权影响1()前后的结果
  3. 动态复权,整体拼接。结构最统一

方案

  1. 先提前取复权因子,截取到不需要复权部分,统一计算。
  2. 遇到要复权时进行大块循环

新想法

同指标或同原理指标,进行相对操作时,产生信号的时间是一样的,所以不需要进行动态前复权,只需要提前后复权即可。

例如:

  1. SMA快速和慢速,不同复权方式,金叉死叉发生的时间是不变的
  2. ATR,不同复权,绝对值不同,但与Close的相对比值是不变的。所以3倍ATR止损发生的时机也是一样的
  3. STD,同上
  4. 其它指标是否有此特性需要根据算法进行研究

所以,如果使用相对值,就可以统一后复权?需要写代码验证一下

  1. MA的CROSS,MA5/MA10,达到预期
  2. STDDEV10/STDDEV20, 达到预期
  3. VAR10/CLOSE**2, 达到预期,即VAR是STDDEV的二次方,所以收盘价也得二次方