以文本方式查看主题

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

--  作者:myrajj
--  发布时间:2019/8/12 15:57:33
--  文华转金字塔求助
请老师帮忙修改,谢谢!
CURRBARSCOUNT:=DATACOUNT-BARPOS+1;
N:=33;

UR:=6;

LR:=6;

TC1:=IF(H=HHV(H,8*UR),H,NULL);

TC2:=REFX1(BARSLAST(TC1=H),10000)+1;

UPPER:=REFX1(IF(TC2=1,H,REF(H,TC2-1)),10000);

BC1:=IF(L=LLV(L,8*LR),L,NULL);

BC2:=REFX1(BARSLAST(BC1=L),10000)+1;

LOWER:=REFX1(IF(BC2=1,L,REF(L,BC2-1)),10000);


NOD:=(IF(TC2>BC2,TC2,BC2)-IF(TC2>BC2,BC2,TC2));


LR1:=FORCAST(C,NOD+1);

NP:=IF(CURRBARSCOUNT<=MAX(BC2,TC2),REFX1(IF(MIN(TC2,BC2)=1,LR1,REF(LR1,MIN(TC2,BC2)-1)),10000),NULL),POINTDOT,COLORFFFFFF;


LR2:=SLOPE(C,NOD+1);

LR3:=REFX1(IF(MIN(TC2,BC2)=1,LR2,REF(LR2,MIN(TC2,BC2)-1)),10000);

FP:=NP-LR3*(NOD),POINTDOT,COLORFFFFFF;


EQU:=(NP+FP)/2,POINTDOT,COLORFFFFFF;


AD:=ABS(NP-FP);


DBL:=BARSLAST(NOT(ISNULL(BC1)) )+1;

DBH:=BARSLAST(NOT(ISNULL( TC1)))+1;

BSP:=IF(BC2>TC2,DBL,DBH)-1;

LRL:=IF(NP>FP,FP+AD/NOD*BSP,FP-AD/NOD*BSP);

AT1:=IF(BETWEEN(CURRBARSCOUNT,BC2,TC2) AND H>LRL,H,LRL);

AT2:=HHV(AT1-LRL,MAX(BC2,TC2));

AT3:=REFX1(BARSLAST(AT1-LRL=AT2),10000);

AT4:=REFX1(IF(AT3=0,H,REF(H,AT3)),10000);

AT5:=REFX1(IF(AT3=0,AT1-LRL,REF(AT1-LRL,AT3)),10000);

ATL:=LRL+AT5;

UT1:=IF(BETWEEN(CURRBARSCOUNT,BC2,TC2) AND L<LRL,L,LRL);

UT2:=HHV(LRL-UT1,MAX(BC2,TC2));
UT3:=REFX1(BARSLAST(LRL-UT1=UT2),10000);

UT4:=REFX1(IF(UT3=0,H,REF(H,UT3)),10000);

UT5:=REFX1(IF(UT3=0,LRL-UT1,REF(LRL-UT1,UT3)),10000);

UTL:=LRL-UT5;

RH:=IF(CURRBARSCOUNT>=MIN(BC2,TC2)-10,ATL,REFX1(REF(ATL,MIN(BC2,TC2)-11),10000));

RL:=IF(CURRBARSCOUNT>=MIN(BC2,TC2)-10,UTL,REFX1(REF(UTL,MIN(BC2,TC2)-11),10000));

IF(NP>FP,IF(ATL<=RH,ATL,NULL),IF(ATL>=RL,ATL,NULL)),COLORYELLOW;

IF(NP>FP,IF(UTL<=RH,UTL,NULL),IF(UTL>=RL,UTL,NULL)),COLORFFFFFF;




--  作者:FireScript
--  发布时间:2019/8/12 16:22:57
--  
 这个你要怎么修改?你这个代码原先是什么代码 ,请务必把需求说明清楚。

--  作者:myrajj
--  发布时间:2019/8/12 17:20:09
--  
老师,是文华的代码,想改成金字塔能用的,谢谢老师
--  作者:FireScript
--  发布时间:2019/8/12 17:34:02
--  
 CURRBARSCOUNT_:=DATACOUNT-BARPOS+1;
len:=if(DATACOUNT-BARPOS>10000,10000,DATACOUNT-BARPOS);
N:=33;

UR:=6;

LR:=6;

TC1:=IF(H=HHV(H,8*UR),H,0);

TC2:=REFX(BARSLAST(TC1=H),len)+1;

UPPER:=REFX(IF(TC2=1,H,REF(H,TC2-1)),len);

BC1:=IF(L=LLV(L,8*LR),L,0);

BC2:=REFX(BARSLAST(BC1=L),len)+1;

LOWER:=REFX(IF(BC2=1,L,REF(L,BC2-1)),len);


NOD:=(IF(TC2>BC2,TC2,BC2)-IF(TC2>BC2,BC2,TC2));


LR1:=FORCAST(C,NOD+1);

NP:=IF(CURRBARSCOUNT_<=MAX(BC2,TC2),REFX(IF(MIN(TC2,BC2)=1,LR1,REF(LR1,MIN(TC2,BC2)-1)),len),0),POINTDOT,COLORFFFFFF;


LR2:=SLOPE(C,NOD+1);

LR3:=REFX(IF(MIN(TC2,BC2)=1,LR2,REF(LR2,MIN(TC2,BC2)-1)),len);
FP:=NP-LR3*(NOD),POINTDOT,COLORFFFFFF;
EQU:=(NP+FP)/2,POINTDOT,COLORFFFFFF;

AD:=ABS(NP-FP);


DBL:=BARSLAST(NOT(BC1) )+1;

DBH:=BARSLAST(NOT(TC1))+1;

BSP:=IF(BC2>TC2,DBL,DBH)-1;

LRL:=IF(NP>FP,FP+AD/NOD*BSP,FP-AD/NOD*BSP);

AT1:=IF(BETWEEN(CURRBARSCOUNT_,BC2,TC2) AND H>LRL,H,LRL);

AT2:=HHV(AT1-LRL,MAX(BC2,TC2));

AT3:=REFX(BARSLAST(AT1-LRL=AT2),len);

AT4:=REFX(IF(AT3=0,H,REF(H,AT3)),len);

AT5:=REFX(IF(AT3=0,AT1-LRL,REF(AT1-LRL,AT3)),len);

ATL:=LRL+AT5;

UT1:=IF(BETWEEN(CURRBARSCOUNT_,BC2,TC2) AND L<LRL,L,LRL);
UT2:=HHV(LRL-UT1,MAX(BC2,TC2));
UT3:=REFX(BARSLAST(LRL-UT1=UT2),len);
UT4:=REFX(IF(UT3=0,H,REF(H,UT3)),len);
UT5:=REFX(IF(UT3=0,LRL-UT1,REF(LRL-UT1,UT3)),len);
UTL:=LRL-UT5;
RH:=IF(CURRBARSCOUNT_>=MIN(BC2,TC2)-10,ATL,REFX(REF(ATL,MIN(BC2,TC2)-11),len));
RL:=IF(CURRBARSCOUNT_>=MIN(BC2,TC2)-10,UTL,REFX(REF(UTL,MIN(BC2,TC2)-11),len));
IF(NP>FP,IF(ATL<=RH,ATL,0),IF(ATL>=RL,ATL,0)),COLORYELLOW;
IF(NP>FP,IF(UTL<=RH,UTL,0),IF(UTL>=RL,UTL,0)),COLORFFFFFF;


我把不一致的地方进行了替换。但是毕竟软件不一样,有些地方实现上可能还是难免有差异,即使代码一致,背后的机制也肯定不一样。

--  作者:myrajj
--  发布时间:2019/8/14 7:55:28
--  
谢谢老师