欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 求波幅平均值

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4648人关注过本帖树形打印复制链接

主题:求波幅平均值

帅哥哟,离线,有人找我吗?
wenarm
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2017/8/9 14:39:51    Post IP:180.169.30.6[只看该作者]

我在问题二中已经说明了具体原因。这种问题你只能限制自己的k线使用量。你因为不断调试扩充数据造成BARPOS越来越大,自然就会这样。

 

因为  my_bar:BARPOS; 这个因为k线数据量不断增加barpos定位的值就越大,造成后面其作为分母参与计算的值pjBoFu越来越小,同时也造成了FrontBoFu[my_bar]/pjBoFu越开越大,反比关系。

 

要么你自己控制数据量的计算,或者你能提供更好的处理逻辑、

 

 

下面是进行从新调整的,之前是sum(frontBoFu,bar)占整个的参与计算范围的比例,现在改成100个波段的sum(frontBoFu,bar)之和占100个波段数据量的比例

要是这种方式也不行,那就没办法了,但是不会像前面造成这么大的变动

pjBoFu : sum(frontBoFu,bar)/bar;                           //平均波段值
bjKDFrontBoFuMulti: FrontBoFu[my_bar]/pjBoFu,linethick0;       //前一波大于平均波段倍数

[此贴子已经被作者于2017/8/9 14:50:08编辑过]


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
新华字典1949
  22楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2017/5/25 16:51:06
  发帖心情 Post By:2017/8/9 15:19:17    Post IP:60.191.66.218[只看该作者]

真心感谢您的耐心解答。

我就是有一点想不通:

相同点:
1、收盘价C是变化的数组序列,应该没有递归算法的,
2、MA5与ma10交叉的波幅也同样是一个变化的数组序列,应该也是没有递归算法的。

结果不同:
1、无论是100根K线还是500根K线,MA(c,10)           不会   随着K线的数量的变化而变化。
2、为什么100根K线 与  500根K线,MA(波幅,10)    会   随着K线的数量的变化而变化?

 回到顶部
帅哥哟,离线,有人找我吗?
新华字典1949
  23楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2017/5/25 16:51:06
  发帖心情 Post By:2017/8/9 15:24:45    Post IP:60.191.66.218[只看该作者]

看帮助文档,看不太懂,抄了一段,也许类似下面的这种写法可能有效?

INPUT:N(5,2,500);      //参数申明 

RUNMODE:0;            //工作于 逐K线模式

IF BARPOS <= N THEN //从计算周期开始计算 

 EXIT; 

  

MA1:C; 

FOR J=1 TO N-1 DO 

 MA1:=MA1+CLOSE[BARPOS-J]; 

MA1:=MA1/N;



连同上一帖,如果我说的有点道理,麻烦再帮我看看,如果我说的没有道理,就放弃算了,不要再在这个问题上折腾了。我也不用这个 指标了。


 回到顶部
帅哥哟,离线,有人找我吗?
新华字典1949
  24楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2017/5/25 16:51:06
  发帖心情 Post By:2017/8/9 15:27:51    Post IP:60.191.66.218[只看该作者]

会不会是因为前面的算法中,把 0值 和 0值所占的K线数量一并计入有关?因为0值计入后,总波幅没有增加,K线数量却增加了,平均波幅就降低了,得把0值的K线数量不计入才行,可惜我不会写,麻烦再帮我看看?


[此贴子已经被作者于2017/8/9 15:29:03编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  25楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2017/8/9 15:42:51    Post IP:180.169.30.6[只看该作者]

22楼中的问题,请你仔细看下21楼中的红字表述部分。其中递归算法的sma有一定影响,但是不会这大,根本原因是其中的一个因子使用了barpos这个量作为计算分母造成的。在这个算法中递归计算的sma的结果与barpos作为分母影响比较,微乎其微了。

 

 

21楼中的代码已经调整了pjBoFu参与分母计算的变量,之前是pjBoFu : sum(frontBoFu,bar)/my_bar;

从逻辑梳理上理解,求平均值通过波段总和除以100个波段的周期总数。更为合理一些。
你可以在看一下,另外,你的这个需求实现中本地测试情况下在进行for循环处理,效率会变得很低。

 

pjBoFu : sum(frontBoFu,bar)/bar;                           //平均波段值     

bjKDFrontBoFuMulti: FrontBoFu[my_bar]/pjBoFu,linethick0;       //前一波大于平均波段倍数

 

[此贴子已经被作者于2017/8/9 15:56:34编辑过]


编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
新华字典1949
  26楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2017/5/25 16:51:06
  发帖心情 Post By:2017/8/9 16:15:22    Post IP:60.191.66.218[只看该作者]

你这样一说估计能解了。再次谢谢!

 回到顶部
总数 26 上一页 1 2 3