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


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

   

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


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

主题:求波幅平均值

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


加好友 发短信
等级:新手上路 帖子:69 积分:0 威望:0 精华:0 注册:2017/5/25 16:51:06
求波幅平均值  发帖心情 Post By:2017/8/6 20:18:09    Post IP:60.191.66.218[只看该作者]

请教老师:
我想以KD金叉和死叉作为波段的分界,求100个波段的平均值,按理说它只会在交叉的当天变值,其它的K线位置时平均值是不变的。
可是下面的代码结果是:平均值在随着K线移动而变化,前一波幅FRONTBoFu也是同样的问题。
特请教,谢谢!

RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:SMA(RSV,3,1),LINETHICK1;
D:SMA(K,3,1),LINETHICK1;
J:=3*K-2*D;

//KD金死叉 
bjKDjc:=cross(K,D),linethick0;
bjKDsc:=cross(D,K),linethick0;

// KD 平均波段值,同时作为钝化的辅助定义。
bjkdBoDuanLLV:=ref(llv(l,5),sumbars(bjkdjc,1)),linethick0;              //波段低点
bjkdBoDuanHHV:=ref(hhv(h,5),sumbars(bjkdsc,1)),linethick0;       //波段高点

if  bjkdjc or bjkdsc then
begin
   frontBoFu:=abs(bjkdBoDuanHHV-bjkdBoDuanLLV),linethick0;                   //前一波幅
// pjBoFu:=(pjBoFu*CountBoDuan+FrontBoFu)/(CountBoDuan+1),linethick0;//平均波段值
// Countboduan:=Countboduan+1;                                                            //波段计数
 end
  pjBoFu:   ma(FrontBoFu,100),linethick0;                   //平均波段值
 bjKDFrontBoFuMulti: FrontBoFu/pjBoFu,linethick0;     //前一波大于平均波段倍数








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


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2017/8/7 8:52:21    Post IP:180.169.30.6[只看该作者]


variable:FrontBoFu[]=0;

用数组定义切保存,其他保持不变


 


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


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

Variable: frontBoFu[]=0;

RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:SMA(RSV,3,1),LINETHICK1;
D:SMA(K,3,1),LINETHICK1;
J:=3*K-2*D;

//KD金死叉 
bjKDjc:=cross(K,D),linethick0;
bjKDsc:=cross(D,K),linethick0;

// KD 平均波段值,同时作为钝化的辅助定义。
bjkdBoDuanLLV:=ref(llv(l,5),sumbars(bjkdjc,1)),linethick0;              //波段低点
bjkdBoDuanHHV:=ref(hhv(h,5),sumbars(bjkdsc,1)),linethick0;       //波段高点

if  bjkdjc or bjkdsc then
begin
   frontBoFu:=abs(bjkdBoDuanHHV-bjkdBoDuanLLV),linethick0;                   //前一波幅
 end
  pjBoFu:   ma(FrontBoFu,100),linethick0;                   //平均波段值
 bjKDFrontBoFuMulti: FrontBoFu/pjBoFu,linethick0;     //前一波大于平均波段倍数


结果1:如上代码的结果:无输出显示,去掉linethick0也无显示。
结果2:将变量定义中的【】去掉如:
         Variable: frontBoFu=0;有显示,但每一根K线pjBoFu 和 bjKDFrontBoFuMulti 均在变化。可以肯定得到的pjBoFu不是ma(波幅,100)。
特求助,谢谢!

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


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

你的问题,通过yukizzc的方式也处理不了,这个是应sma(ema)函数算法造成的,数据发生过变化其值就可能发生变化,尤其是数据量的影响。

建议你限制死数据起始位置、

[此贴子已经被作者于2017/8/7 14:44:52编辑过]


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


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

答错帖子了吧?

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2017/8/7 14:56:07    Post IP:180.169.30.6[只看该作者]

以下是引用新华字典1949在2017/8/7 14:47:00的发言:
答错帖子了吧?

你的K和D不是用到了SMA嘛



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

说的就是这个


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


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

想通过类似下面 的方法来代替 ma(FrontBoFu,100)
for i=1 to 100
begin
 pjBoFu:=(pjBoFu*CountBoDuan+FrontBoFu)/(CountBoDuan+1),linethick0;//平均波段值
Countboduan:=Countboduan+1;                                                            //波段计数‘
后面加一根K,前面减一根K,
。。。。。
end
   
不知道怎么写,麻烦帮我编一段代码,来代替 ma(FrontBoFu,100),
起始时间可以限定在框架内左边第一K,不够100个波段的有多少取多少个波段,或者你认为合适的起始时间也行。
谢谢了!

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


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

限定其实位置是通过,k线时间坐标轴上右键进行的。

至于你说的代替方式,要看你自己是有什么替代方案了。

 

[此贴子已经被作者于2017/8/7 16:42:26编辑过]


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


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

假设我用MA(c,5)和ma(c,20)交叉来代替KD交叉,求100个波段的平均值,求助,代码怎么写?谢谢。

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