以文本方式查看主题

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

--  作者:c100011255
--  发布时间:2016/6/22 20:56:11
--  顾比倒数线
以上证指数解释当前如何画出顾比倒数线。首先,我们找到上证指数下跌趋势线的最低点(标注为1的那条蜡烛线),这是第一只“重要的蜡烛线”。然后沿着这条蜡烛线向左移动,直到遇见另一只“最高价高于蜡烛线1”的蜡烛线,这就是我们要找的第二只“重要的蜡烛线”。再沿着这只蜡烛线向左移动,直到遇见下一只“最高价的蜡烛线”,这就是第三只“重要的蜡烛线”。此时,沿着第三只蜡烛线的顶端画一条直线,这就是“顾比倒数线”。股指必须收在这点之上,才能确认新的上升趋势成立。至于何时站上才算有效,并无时间限制。
引用于http://baike.baidu.com/link?url=kMIU0bfN7GvWg30MTVXaMnUSqHAcicTbj5v4XdVpW_jLNZvqb2ICOuhGNgpdSKpTRr-_vmdrQLlhBLvN5zbLg_

以下是我做的公式原码,请老师指正

RUNMODE:1;
INPUT:N(5,1,100);
T:IF(h>=hhv(h,N) and h>ref(h,1),1,0),NODRAW;
B:IF(L<=LLV(L,N) AND L<REF(L,1),1,0),NODRAW;
TL:IF(T,L,REF(L,BARSLAST(T))),NODRAW;
BH:IF(B,H,REF(H,BARSLAST(B))),NODRAW;
TPOS:DATACOUNT-BARSLAST(T),NODRAW;
BPOS:DATACOUNT-BARSLAST(B),NODRAW;

IF TPOS>BPOS THEN 
BEGIN
FL:=LOW;
I:=TPOS;
    REPEAT 
I:=I-1;
LL:=FL[I];
UNTIL LL<TL;
TL1:LL,NODRAW;
    
    J:=I;
    REPEAT
    J:=J-1;
    LLL:=FL[J];
    UNTIL LLL<TL1;
    TL2:LLL;
END
    
IF BPOS>TPOS THEN 
BEGIN
FH:=HIGH;
I:=BPOS;
REPEAT 
I:=I-1;
HH:=FH[I];
UNTIL HH>BH;
BH1:HH,NODRAW;
    
    J:=I;
    REPEAT
    J:=J-1;
    HHH:=FH[J];
    UNTIL HHH>BH1;
    BH2:=HHH;
    GB(压力):BH2;
END


--  作者:yukizzc
--  发布时间:2016/6/23 9:57:18
--  
工作人员查看中,请稍后
--  作者:yukizzc
--  发布时间:2016/6/23 10:24:43
--  

条件都是如何定义的请问,光看这个解释工作人员很难处理的。百度上找了个通达信的源码,稍微翻译过来在金字塔下这么写

 

 

P:=21;
WH1:=IF(L=LLV(L,P),L,DRAWNULL);
WH2:=CONST(BARSLAST(WH1>0));
WH3:=CONST(IF(WH2=0,H,REF(H,WH2)));
WH4:=CONST(REF(BARSLAST(H>WH3),WH2+1)+WH2+1);
WH5:=CONST(IF(WH4=0,H,REF(H,WH4)));
WH6:=CONST(REF(BARSLAST(H>WH5),WH4+1)+WH4+1);
进场:IF(CURRBARSCOUNT<=WH2+21,CONST(IF(WH6=0,H,REF(H,WH6))),DRAWNULL),COLORRED;
IF(CURRBARSCOUNT<=WH2+1,IF(L=LLV(L,P),L,DRAWNULL),DRAWNULL),CIRCLEDOT,COLORRED;
DRAWTEXT(CURRBARSCOUNT=INTPART((WH2+21)*0.618),进场,\'进场线\'),COLORRED;
超跌进场:IF(CURRBARSCOUNT<=WH2+21,CONST(IF(WH4=0,H,REF(H,WH4))),DRAWNULL),COLORCB21BE;
DRAWTEXT(CURRBARSCOUNT=INTPART((WH2+21)*0.618),超跌进场,\'超跌进场线\'),COLORCB21BE;
H1:=IF(H=HHV(H,P),H,DRAWNULL);
H2:=CONST(BARSLAST(H1>0));
H3:=CONST(IF(H2=0,L,REF(L,H2)));
H4:=CONST(REF(BARSLAST(L<H3),H2+1)+H2+1);
H5:=CONST(IF(H4=0,L,REF(L,H4)));
H6:=CONST(REF(BARSLAST(L<H5),H4+1)+H4+1);
止损:IF(CURRBARSCOUNT<=H2+21,CONST(IF(H6=0,L,REF(L,H6))),DRAWNULL),COLORYELLOW;
IF(CURRBARSCOUNT<=H2+1,IF(H=HHV(H,P),H,DRAWNULL),DRAWNULL),CIRCLEDOT,COLORBLUE;
DRAWTEXT(CURRBARSCOUNT=INTPART((H2+21)*0.618),止损,\'止损线\'),COLORYELLOW;
止盈:IF(CURRBARSCOUNT<=H2+21,CONST(IF(H4=0,L,REF(L,H4))),DRAWNULL),COLORCB21BE;
DRAWTEXT(CURRBARSCOUNT=INTPART((H2+21)*0.618),止盈,\'止盈线\'),COLORCB21BE;


--  作者:c100011255
--  发布时间:2016/6/25 13:30:11
--  
顾比倒数线的重点是第三个重点位置,找到基准K线(高点或低点)后,找出比高点K线最低价更低的第三个K线的最低价或低点K线最高价更高的第三个K线的最高价,把这个最高价或最低价作为关键价位。
RUNMODE:1;//序列模式
INPUT:N(5,1,100);//输入参数
T:IF(h>=hhv(h,N) and h>ref(h,1),1,0),NODRAW;//N天内最高价且比前高更高视为顶
B:IF(L<=LLV(L,N) AND L<REF(L,1),1,0),NODRAW;//N天内最低价且前前低更低视为底
TL:IF(T,L,REF(L,BARSLAST(T))),NODRAW;//顶之最低价
BH:IF(B,H,REF(H,BARSLAST(B))),NODRAW;//底之最高价
TPOS:DATACOUNT-BARSLAST(T),NODRAW;//顶位置
BPOS:DATACOUNT-BARSLAST(B),NODRAW;//底位置

//以下找比顶最低价更低的第三个低价
BEGIN
FL:=LOW;//定义最低价
I:=TPOS;//顶位置
    REPEAT 
I:=I-1;//从顶K线前一个K线起算
LL:=FL[I];
UNTIL LL<TL;//当此K最低价小于顶部K线的最低价量
TL1:LL,NODRAW;//取此低价为第二个最低价
     J:=I;
     REPEAT
     J:=J-1;
     LLL:=FL[J];
UNTIL LLL<TL1;//当此K线最低价比第二个最低价更低
     TL2:LLL;//取此最低价为关键低价
  GB(支撑):TL2;//定义顾比
END
//以下找比底部最高价更高的第三个高价
BEGIN
FH:=HIGH;
I:=BPOS;
REPEAT 
I:=I-1;
HH:=FH[I];
UNTIL HH>BH;
BH1:HH,NODRAW;
J:=I;
    REPEAT
    J:=J-1;
    HHH:=FH[J];
    UNTIL HHH>BH1;
    BH2:=HHH;
    GB(压力):BH2;
END

--  作者:c100011255
--  发布时间:2016/7/2 19:07:56
--  
实际调用时经常会死机,怎么回事?
--  作者:jinzhe
--  发布时间:2016/7/4 9:08:53
--  
用户是否打开的k线图太多了?
--  作者:m1978xz
--  发布时间:2018/12/18 15:55:03
--  
J:=I;后边说语句末尾缺少分号。