以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 求波幅平均值 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=156545) |
||
-- 作者:新华字典1949 -- 发布时间:2017/8/6 20:18:09 -- 求波幅平均值 请教老师: 我想以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 -- 发布时间:2017/8/7 8:52:21 --
用数组定义切保存,其他保持不变
|
||
-- 作者:新华字典1949 -- 发布时间:2017/8/7 13:38:27 --
|
||
-- 作者:wenarm -- 发布时间:2017/8/7 14:43:17 -- 你的问题,通过yukizzc的方式也处理不了,这个是应sma(ema)函数算法造成的,数据发生过变化其值就可能发生变化,尤其是数据量的影响。 建议你限制死数据起始位置、 [此贴子已经被作者于2017/8/7 14:44:52编辑过]
|
||
-- 作者:新华字典1949 -- 发布时间:2017/8/7 14:47:00 -- 答错帖子了吧? |
||
-- 作者:FireScript -- 发布时间:2017/8/7 14:56:07 -- 以下是引用新华字典1949在2017/8/7 14:47:00的发言:
答错帖子了吧? 你的K和D不是用到了SMA嘛 |
||
-- 作者:wenarm -- 发布时间:2017/8/7 15:02:20 -- 说的就是这个 |
||
-- 作者:新华字典1949 -- 发布时间:2017/8/7 16:25:39 -- 想通过类似下面 的方法来代替 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 -- 发布时间:2017/8/7 16:32:44 -- 限定其实位置是通过,k线时间坐标轴上右键进行的。 至于你说的代替方式,要看你自己是有什么替代方案了。
[此贴子已经被作者于2017/8/7 16:42:26编辑过]
|
||
-- 作者:新华字典1949 -- 发布时间:2017/8/7 16:50:12 -- 假设我用MA(c,5)和ma(c,20)交叉来代替KD交叉,求100个波段的平均值,求助,代码怎么写?谢谢。 |