易得程序化交易技术论坛

登录 | 注册

积分: 0 |用户组: 游客

搜索
查看: 3025|回复: 0

易得程序化的成交量复权算法

[复制链接]

22

主题

65

帖子

1423

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1423
发表于 2022-6-25 20:17:17 | 显示全部楼层 |阅读模式
本帖最后由 易得君1号 于 2022-6-25 20:16 编辑

成交量复权的原理是在送股、配股、增发等历史流通股本变动后,保持历史成交量的换手率不变。

易得程序化提供了两种成交量复权的算法:一种是以除权数据送股配股变动粗略计算(兼容飞狐通达信),另一种是以历史流通股本变动数据精细计算。  

1_副本.png

第一种以除权数据送股配股变动粗略计算(兼容飞狐通达信), 因为除权数据中只含有送股配股两种股本变动数据,不包含有增发、转增、新股上市等数据。所以计算结果稍显粗略。此算法也是跟易得函数Splitv相同算法。

如果写成易得公式,代码如下:

  1. // 使用除权数据计算复权成交量
  2. Variable: v1 = 1;

  3. 红股 := SPLITDATA(1);
  4. 配股 := SPLITDATA(2);

  5. v1 := v1*(1+(红股+配股)/10);
  6. d  := v1;

  7. lastx : RefX(d, CurrBarsCount-1);
  8. ratio : lastx / d;   // ratio也就是函数Splitv的结果

  9. 复权量 : ovol*ratio, VolStick;

  10. 复权量1 : ovol*Splitv;
复制代码

第二种以历史流通股本变动数据精细计算,历史流通股本变动数据包含了送股、配股、增发、转增、新股上市等全部股本变动数据,所以计算结果更加精细。此算法也是跟易得函数SplitvEx相同算法。

如果写成易得公式,代码如下:

  1. // 使用历史流通盘变动计算复权成交量
  2. Variable:v1=1;

  3. v1 := v1 * if(barpos=1,1, Capital/ref(Capital,1));
  4. d := v1;

  5. lastx : RefX(d, CurrBarsCount-1);
  6. ratio : lastx / d;  // ratio也就是函数SplitVex的结果

  7. 复权量 : ovol * ratio, VolStick;

  8. 复权量1 : ovol * SplitVex;
复制代码

检验成交量复权的准确性,因为成交量除权的核心原理就是换手率不变,使用下列公式代码,理论上两个线在图形显示上是完全重合的。

  1. 换手 : ovol / Capital * 100;
  2. 成交量 : vol, NoAxis;
复制代码

2_副本.png


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|易得程序化 ( 粤ICP备2022064048号 )

GMT+8, 2025-4-28 06:59 , Processed in 0.057388 second(s), 21 queries .

快速回复 返回顶部 返回列表