以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  BARSLAST函数问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=54061)

--  作者:tom2046
--  发布时间:2013/7/18 11:46:59
--  BARSLAST函数问题
局部低点预选A:=BACKSET(LLV(L,5)<REF(LLV(L,4),1),4);
局部低点预选B:=BACKSET(局部低点预选A=0 AND REF(局部低点预选A,1)=1,2);
局部低点预选C:=IF(局部低点预选B=1 AND REF(局部低点预选B,1)=0,-1,0);
局部高点预选A:=BACKSET(HHV(H,5)>REF(HHV(H,4),1),4);
局部高点预选B:=BACKSET(局部高点预选A=0 AND REF(局部高点预选A,1)=1,2);
局部高点预选C:=IF(局部高点预选B=1 AND REF(局部高点预选B,1)=0,1,0);
缺口判断:=IF(L>REF(H,1),1,IF(H<REF(L,1),-1,0));
距前高天:=BARSLAST(局部高点预选C=1);
距前低天:=BARSLAST(局部低点预选C=-1);

错误提示:未定义的变量:局部高点预选CLOSE

问题:明明前面已经定义了“局部高点预选C”,为什么编译时还提示上面的问题?谢谢

--  作者:王锋
--  发布时间:2013/7/18 12:45:37
--  
“局部高点预选C” 这个变量改到 “局部高点预选D”,
--  作者:tom2046
--  发布时间:2013/7/18 14:49:03
--  
谢谢回复,另外想请教通达信函数PLOYLINE的问题:

ZSG:PLOYLINE(DISP=2,REF(ZSD,BARSLAST(TJ8))),CROSSDOT,COLORLIRED;

这句应该如何改写?谢谢

--  作者:jinzhe
--  发布时间:2013/7/18 14:56:38
--  
这个函数是何用处,这段代码表何意思?
--  作者:tom2046
--  发布时间:2013/7/18 15:05:07
--  
是一个画中枢买卖点的公式里的语句,这句前面还有如下这些:

{N1:1,100,10;N2:1,100,10;DISP:=1,3,2};
N1:=10;N2:=10;DISP:=2;
K:=IF(PERIOD=5,1,{日}
IF(PERIOD=6,1,{周}
IF(PERIOD=7,1,{月}
IF(PERIOD=8,1,{多分钟}
IF(PERIOD=9,1,{多日}
IF(PERIOD=10,1,{季}
IF(PERIOD=11,2,{年}
IF(PERIOD=4,1,{60F}
IF(PERIOD=3,1,{30F}
IF(PERIOD=2,1,{15F}
IF(PERIOD=1,1{5F},1{1F})))))))))))/10;

P1:=PEAK(1,K*N1,1);
P2:=PEAK(1,K*N1,2);
WP1:=PEAKBARS(1,K*N1,1);
WP2:=PEAKBARS(1,K*N1,2);
T1:=TROUGH(2,K*N2,1);
T2:=TROUGH(2,K*N2,2);
WT1:=TROUGHBARS(2,K*N2,1);
WT2:=TROUGHBARS(2,K*N2,2);
TJ1:=P1>T1 AND P2>T2 ;
ZD:=MAX(T1,T2);
ZG:=MIN(P1,P2);
LL:=MIN(T1,T2);
HH:=MAX(P1,P2);
TJ2:=FILTER(ZG>ZD,2);
TJ3:=ZG=REF(ZG,BARSLAST(TJ2)) OR ZD=REF(ZD,BARSLAST(TJ2));
TJ4:=TJ1&&TJ2&&NOT(TJ3);
TJ5:=BETWEEN(ZD,REF(ZD,REF(BARSLAST(TJ4),1)),REF(ZG,REF(BARSLAST(TJ4),1)));
TJ6:=BETWEEN(ZG,REF(ZD,REF(BARSLAST(TJ4),1)),REF(ZG,REF(BARSLAST(TJ4),1)));
TJ7:=ZG>REF(ZG,REF(BARSLAST(TJ4),1))&&ZD<REF(ZD,REF(BARSLAST(TJ4),1));
TJ8:=TJ4&&NOT(TJ5 OR TJ6 OR TJ7);
ZSD:=IF(TJ8,ZD,DRAWNULL);
ZSG:=IF(TJ8,ZG,DRAWNULL);
ZSH:=IF(TJ8,HH,DRAWNULL);
ZSL:=IF(TJ8,LL,DRAWNULL);
STICKLINE(TJ8,ZSH,ZSL,0,-1),COLORMAGENTA;
STICKLINE(TJ8,ZSD,ZSG,IF(DISP=1,3,0),1),COLORMAGENTA;
DRAWTEXT(DISP=2,ZSH,\'中枢\'),COLORRED;
ZSG:PLOYLINE(DISP=2,REF(ZSD,BARSLAST(TJ8))),CROSSDOT,COLORLIRED;
ZSD:PLOYLINE(DISP=2,REF(ZSG,BARSLAST(TJ8))),CROSSDOT,COLORLIGREEN;
ZSZG:PLOYLINE(DISP=2,REF(ZSH,BARSLAST(TJ8))),POINTDOT,COLORRED;
ZSZD:PLOYLINE(DISP=2,REF(ZSL,BARSLAST(TJ8))),POINTDOT,COLORGREEN;
QSG:PLOYLINE(DISP=3,ZIG(1,K*N1)),COLORLIBLUE;
QSD:PLOYLINE(DISP=3,ZIG(2,K*N2)),COLORLIBLUE;
………………………………………………

后面还长

--  作者:jinzhe
--  发布时间:2013/7/18 15:08:27
--  

抱歉我没说清楚

PLOYLINE这个函数是何意?

ZSG:PLOYLINE(DISP=2,REF(ZSD,BARSLAST(TJ8))),CROSSDOT,COLORLIRED;这句代码是何意?

--  作者:tom2046
--  发布时间:2013/7/18 15:13:38
--  
你们站里以前有个帖子对这个函数的说明比较详细,这是链接:http://www.weistock.com/bbs/dispbbs.asp?BoardID=2&ID=51605&replyID=131499&skin=1
--  作者:jinzhe
--  发布时间:2013/7/18 15:16:46
--  

折线函数POLYLINE( , , , )

使用方法参考说明


--  作者:tom2046
--  发布时间:2013/7/18 15:19:37
--  
这句的意思是:

输出ZSG:当满足条件DISP=2时以上次TJ8距今天数日前的ZSD位置为顶点画折线连接,CROSSDOT,画淡红色

--  作者:tom2046
--  发布时间:2013/7/18 15:20:58
--  
PLOYLINE用法:
 PLOYLINE(COND,PRICE),当COND条件满足时,以PRICE位置为顶点画折线连接.
 例如: PLOYLINE(HIGH>=HHV(HIGH,20),HIGH)表示在创20天新高点之间画折线