以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 请教自定义的移动平均如何实现 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=10757) |
-- 作者:macro -- 发布时间:2012/3/26 14:17:25 -- 请教自定义的移动平均如何实现 开盘时MA的特殊处理,即不管它是否跳空,MA均从开盘第一笔开始计算,请问如何实现?下面的实现有何问题? thanks. fc:=close; fd:=day; dc:=datacount; VARIABLE:mysum[dc]=0,myma[dc]=0; variable:j=0; for i=1 to datacount do begin if fd[i]>fd[i-1] then begin myma[i] := fc[i]; j := 1; mysum[i] := fc[i]; end; else begin j := j + 1; if (j < n) then begin mysum[i] := mysum[i-1] + fc[i]; myma[i] := mysum[i]/j; end; else begin myma[i] := (fc[i]+fc[i-1]+fc[i-2]+fc[i-3]+fc[i-4])/n; //n暂定为5 end; end; end myma1: myma; |
-- 作者:just -- 发布时间:2012/3/26 14:40:27 -- if barslast(date<>ref(date,1))+1 then begin //从每天第一根K线开始算起。 |
-- 作者:macro -- 发布时间:2012/3/26 15:09:11 -- 不好意思,还是不太明白,请给个详细实现,thanks. |
-- 作者:just -- 发布时间:2012/3/26 15:54:55 -- ma5:=ma(c,5); ma10:=ma(c,10); if barslast(date<>ref(date,1))+1 then begin//从每天第一根K线开始算起 buy(cross(ma5,ma10),1,market);//当5周期均线上穿10周期均线时开多。
|
-- 作者:macro -- 发布时间:2012/3/26 16:47:58 -- 请教: 当求n个周期内的最低值,每次计算从每天的第一根K线计算起,下面代码为何不正确? ctl := barslast(date<>ref(date,1))+1; if (ctl < n) then begin myllv := llv(low,ctl); end; else begin myllv := llv(low,n); end; myllv1: myllv; 但求HHV好象是正确的,为什么?
|
-- 作者:just -- 发布时间:2012/3/26 17:16:03 -- n:=barslast(date<>ref(date,1))+1 hh:hhv(h,n); ll:llv(l,n); |