以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  为什么REFX引用不到后面K线的值呢?  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=47548)

--  作者:g13977133201
--  发布时间:2013/1/8 22:45:28
--  为什么REFX引用不到后面K线的值呢?
公式如下,序列模式
EMA4:=EMA(Close,4);
EMA9:=EMA(Close,9);
UpCross:=Cross(EMA4,EMA9);
DownCross:=Cross(EMA9,EMA4);

W:BARSLAST(UpCross OR DownCross OR BARPOS=1),LINETHICK0;
WW:=BARSLAST(REFX(W,1)=0 OR ISLASTBAR OR BARPOS=1);
ST:=SetVal(WW=0,W+1,-W,W+1);
A1:=HHVBars(High,ST);
A2:=If(WW=0,A1,0);
DrawNumber(1,Low,A2,0,ColorWhite);
A3:=REFX(A2,A2);
DrawNumber(1,High,A3,0,ColorYellow);

到A2为止,能正确计算出A2的值,如图所示。
然后我想让A3引用A2周期后的A2值,但A3都为0,为何引用不上呢?
请高手指教。

图片点击可在新窗口打开查看此主题相关图片如下:aaa.jpg
图片点击可在新窗口打开查看


--  作者:g13977133201
--  发布时间:2013/1/8 22:56:26
--  补个更清楚的图
这张图更清楚点,标明了A3出问题的K线

图片点击可在新窗口打开查看此主题相关图片如下:ddd.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2013-1-8 22:57:16编辑过]

--  作者:jinzhe
--  发布时间:2013/1/9 8:56:18
--  

逻辑错误

 

第一个圈的地方求的是

refx(a2,0),那么A3是0

第二个圈的地方求的是

refx(a2,6),那么A3还是0


--  作者:g13977133201
--  发布时间:2013/1/9 9:58:07
--  
是哦,这么简单的错误!真是脑子进水了。谢谢Jinzhe提醒。

再请教一下,一楼公式中A3赋值语句改成如下代码:
If A2>0 then
A3:=5;
DrawNumber(1,High,A3,0,COLORMAGENTA);

A3依然不能成功赋值,显示为-1,又是为何啊?

--  作者:jinzhe
--  发布时间:2013/1/9 10:05:46
--  

代码有问题,A3肯定在公式里面还有其他的定义


--  作者:g13977133201
--  发布时间:2013/1/9 12:24:26
--  没有其他代码了,全部代码如下,您可以试试
//序列模式

EMA4:=EMA(Close,4);
EMA9:=EMA(Close,9);
UpCross:=Cross(EMA4,EMA9);
DownCross:=Cross(EMA9,EMA4);

W:BARSLAST(UpCross OR DownCross OR BARPOS=1),LINETHICK0;
WW:=BARSLAST(REFX(W,1)=0 OR ISLASTBAR OR BARPOS=1);
ST:=SetVal(WW=0,W+1,-W,W+1);
A1:=HHVBars(High,ST);
A2:=If(WW=0,A1,0);
DrawNumber(1,Low,A2,0,ColorWhite);
If A2>0 then
A3:=5;
DrawNumber(1,High,A3,0,COLORMAGENTA);

[此贴子已经被作者于2013-1-9 12:25:41编辑过]