以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- MA(X,N),N的含义 (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=69639) |
-- 作者:cssfortune -- 发布时间:2014/9/5 13:36:38 -- MA(X,N),N的含义 MA(X,N),请问N是包含当根K的计数,还是说在不包含当根K、之前N个K线的? |
-- 作者:netfox -- 发布时间:2014/9/5 13:38:36 -- 必须包含当根 |
-- 作者:cssfortune -- 发布时间:2014/9/5 14:01:09 -- 好,那为啥我下面这段代码(海龟里面计算N的那个),N计算不出来?M,TR都计算的出来,就是N始终显示##. //atrcyc是N计算的周期,默认为10;
m:=ref(ma(tr,atrcyc),1); pretr:=ref(tr,1); if Barpos>=11 then BEGIN If Barpos=11 then N:=M; If DayCount=5 or Barpos=11 then begin N:=(9*N+preTR)/10; //指数移动平均法 DayCount:=0; end daycount:=daycount+1; END //改成下面那样了,就能计算出来了;因为我的atrcyc参数默认为10;所以下面与上面的区别就是取了第12根K线,而不是第11根K线开始。 m:=ref(ma(tr,atrcyc),1); pretr:=ref(tr,1); if Barpos>=(atrcyc+2) then //因为最开 m 取的是ref( ,1),所以从11开始不够,要从12开始?? BEGIN If Barpos=(atrcyc+2) then N:=M; If DayCount=5 or Barpos=(atrcyc+2)then //每5周期换一次or 每 atrcyc/2 周期换一次呢?这里仍用5周期换一次 begin N:=((atrcyc-1)*N+preTR)/atrcyc; //指数移动平均法 DayCount:=0; end daycount:=daycount+1; END |
-- 作者:jinzhe -- 发布时间:2014/9/5 14:08:23 -- 你这个n初始值什么定义的? |
-- 作者:cssfortune -- 发布时间:2014/9/5 14:31:51 -- 初始值就是m, 然后在atrcyc+1开始、用指数移动平均法更换为atr, 其中tr取的也是前一期; m:=ref(ma(tr,atrcyc),1);
pretr:=ref(tr,1); |
-- 作者:jinzhe -- 发布时间:2014/9/5 14:50:31 -- 是 TR需要多一个计算周期,你用CLOSE,HIGH之类的替代TR就完全不需要多一个计算周期 |
-- 作者:cssfortune -- 发布时间:2014/9/5 15:26:50 -- 为啥?因为我取11的时候,preTR能计算显示出来啊,就是N算不出来。 比如,计算preTR的话,K=11的时候,用到K=9的close;K=12的时候,用到K=10的close, 并没有不满足啊、
|
-- 作者:jinzhe -- 发布时间:2014/9/5 15:49:52 -- 你的daycount是怎么定义的? |
-- 作者:cssfortune -- 发布时间:2014/9/5 15:54:35 -- 初始值为0,每走一根K加1。如果加满了5,置0,走完这个K之前是又+1,即显示为1。 所以图表上它的取值范围是1-5. so ?
|
-- 作者:jinzhe -- 发布时间:2014/9/5 16:14:45 -- 全局变量还是普通变量 |