-- 作者:CITSCWB
-- 发布时间:2010/9/20 13:59:03
-- 文华模型改成金字塔后无信号,请高手帮忙改写
BA:=BARPOS; VOL1:=IF(LLV(VOL,0)=0,1,INTPART(VOL*100)); HC:=LLV(IF(H-C=0,1000,H-C),0); CL:=LLV(IF(C-L=0,1000,ABS(C-L)),0); CO:=LLV(IF(C-O=0,1000,ABS(C-O)),0); ZXBD:=MIN(HC,MIN(CL,CO)); DFX:=REF(L,2)=LLV(L,15) and REF(L,1)>REF(L,2) and L>REF(L,2) and REF(L,2)<=REF(L,3); GFX:=REF(H,2)=HHV(H,9) and REF(H,1)<REF(H,2) and H<REF(H,2) and REF(H,2)>=REF(H,3); DFXI:=VALUEWHEN(DFX,BA); GFXI:=VALUEWHEN(GFX,BA); DDP1:=VALUEWHEN(DFX,REF(L,2)); GDP1:=VALUEWHEN(GFX,REF(H,2)); DDP:=VALUEWHEN(DFX and DDP1<>REF(DDP1,1),DDP1); GDP:=VALUEWHEN(GFX and GDP1<>REF(GDP1,1),GDP1); DFX1I:=VALUEWHEN(DFX,REF(DFXI,1)); DFX1P:=VALUEWHEN(DFX,REF(DDP,BA-DFX1I+1)); GFX1I:=VALUEWHEN(GFX,REF(GFXI,1)); GFX1P:=VALUEWHEN(GFX,REF(GDP,BA-GFX1I+1)); DFXP:=VALUEWHEN(DFX and DDP<>REF(DDP,1),MIN(DDP,MIN(DFX1P,REF(DDP,1)))); GFXP:=VALUEWHEN(GFX and GDP<>REF(GDP,1),MAX(GDP,MAX(GFX1P,REF(GDP,1)))); SA:=SAR(4,0.02,0.2); DZZ:=SA>0 and NOT(REF(SA,1)>0) or BA=0; GZZ:=SA<0 and NOT(REF(SA,1)<0) or BA=0; DZZI:=VALUEWHEN(DZZ,BA); GZZI:=VALUEWHEN(GZZ,BA); DZZ0I:=IF(NOT(VALUEWHEN(REF(SA,2)<0 and DFX and REF(L,2)=LLV(L,BA-GZZI+1),BA-2)>=0),0,VALUEWHEN((REF(DZZ,2)=1 and DFX) or (REF(SA,2) <0 and DFX and REF(L,2)=LLV (L,BA-GZZI+1)),BA-2)); GZZ0I:=IF(NOT(VALUEWHEN(REF(SA,2)>0 and GFX and REF(H,2)=HHV(H,BA-DZZI+1),BA-2)>=0),0,VALUEWHEN((REF(GZZ,2)=1 and GFX) or (REF(SA,2) >0 and GFX and REF(H,2)=HHV(H,BA-DZZI+1)),BA-2)); DD0I:=VALUEWHEN(DZZ or DZZ0I=0,DZZ0I); GD0I:=VALUEWHEN(GZZ or GZZ0I=0,GZZ0I); DZZ0P:=VALUEWHEN(DZZ and DZZI-GZZI>3,LLV(L,BA-GZZ0I+1)); GZZ0P:=VALUEWHEN(GZZ and GZZI-DZZI>3,HHV(H,BA-DZZ0I+1)); DD0P:=VALUEWHEN(DZZ,DZZ0P); GD0P:=VALUEWHEN(GZZ,GZZ0P); DD0RP:=VALUEWHEN(DZZ,REF(DD0P,1)); GD0RP:=VALUEWHEN(GZZ,REF(GD0P,1)); DZP:=VALUEWHEN(DZZ,MIN(DD0P,DD0RP)); GZP:=VALUEWHEN(GZZ,MAX(GD0P,GD0RP)); QSI:=IF(DZZ0I=0,0,VALUEWHEN(DZZ,REF(DZZ0I,BA-GZZI+1))); GQSI:=IF(GZZ0I=0,0,VALUEWHEN(GZZ,REF(GZZ0I,BA-DZZI+1))); SZR:=IF(SA>0,1,0); XDR:=IF(SA<0,1,0); XDTS2:=VALUEWHEN(DZZ and SUM(XDR,DZZI-GZZI+1)>3,SUM(XDR,DZZI-GZZI+1)); SZTS2:=VALUEWHEN(GZZ and SUM(SZR,GZZI-DZZI+1)>3,SUM(SZR,GZZI-DZZI+1)); XDTS2I:=VALUEWHEN(DZZ and SUM(XDR,DZZI-GZZI+1)>3,BA); SZTS2I:=VALUEWHEN(GZZ and SUM(SZR,GZZI-DZZI+1)>3,BA); XDTS1:=VALUEWHEN(DZZ and SUM(SZR,DZZI-REF(GZZI,BA-REF(DZZI,2))+1)<4,DZZI-REF(GZZI,BA-REF(DZZI,2))); XDTS1I:=VALUEWHEN(DZZ and SUM(SZR,DZZI-REF(GZZI,BA-REF(DZZI,2))+1)<4,BA); XDTS:=IF(DZZ and SUM(SZR,DZZI-REF(GZZI,BA-REF(DZZI,2))+1)<4,XDTS1,XDTS2); SZTS1:=VALUEWHEN(GZZ and SUM(XDR,GZZI-REF(DZZI,BA-REF(GZZI,2))+1)<4,GZZI-REF(DZZI,BA-REF(GZZI,2))); SZTS1I:=VALUEWHEN(GZZ and SUM(XDR,GZZI-REF(DZZI,BA-REF(GZZI,2))+1)<4,BA); SZTS:=IF(GZZ and SUM(XDR,GZZI-REF(DZZI,BA-REF(GZZI,2))+1)<4,SZTS1,SZTS2); DINI:=IF(BA=DZZ0I or BA-DZZ0I=1,SUM(L*VOL1,BA-QSI+1)/SUM(VOL1,BA-QSI+1),SUM(L*VOL1,BA-DZZ0I+1)/SUM(VOL1,BA-DZZ0I+1)); GINI:=IF(BA=GZZ0I or BA-GZZ0I=1,SUM(H*VOL1,BA-GQSI+1)/SUM(VOL1,BA-GQSI+1),SUM(H*VOL1,BA-GZZ0I+1)/SUM(VOL1,BA-GZZ0I+1)); DDT0:=DFX and (REF(C,2)<REF(DINI,2) or REF(C,3)<REF(DINI,3)); DDT0I:=VALUEWHEN(DDT0,DZZ0I); DDT01I:=VALUEWHEN(DDT0,REF(DDT0I,1)); DINI0:=IF(BA=DDT0I or BA-DDT0I=1,SUM(L*VOL1,BA-DDT01I+1)/SUM(VOL1,BA-DDT01I+1),SUM(L*VOL1,BA-DDT0I+1)/SUM(VOL1,BA- DDT0I+1)); DDT00:=(DZZ and SZTS<=XDTS and DZZI-GZZI>3); DDT00I:=IF(NOT(DDT00),0,VALUEWHEN(DDT00,DD0I)); DZ00I:=VALUEWHEN(DFX and (REF(C,3)<REF(DINI0,3) or REF(C,2)<REF(DINI0,2)),DZZ0I); DZ0I:=MAX(DDT00I,DZ00I); DZ0:=IF(BA=DZ0I or BA-DZ0I=1,(SUM(L*VOL1,BA-REF(DZ0I,1)+1))/(SUM(VOL1,BA-REF(DZ0I,1)+1)),(SUM(L*VOL1,BA-DZ0I+1))/(SUM (VOL1,BA-DZ0I+1))); DZ1I:=VALUEWHEN(DFX and (REF(C,3)<REF(DZ0,3) or REF(C,2)<REF(DZ0,2)),DZZ0I); DZ1:=IF(BA=DZ1I or BA-DZ1I=1,(SUM(L*VOL1,BA-REF(DZ1I,1)+1))/(SUM(VOL1,BA-REF(DZ1I,1)+1)),(SUM(L*VOL1,BA-DZ1I+1))/(SUM (VOL1,BA-DZ1I+1))); DZ2I:=VALUEWHEN(DFX and (REF(C,3)<REF(DZ1,3) or REF(C,2)<REF(DZ1,2)),DZZ0I); DZ2:=IF(BA=DZ2I or BA-DZ2I=1,(SUM(L*VOL1,BA-REF(DZ2I,1)+1))/(SUM(VOL1,BA-REF(DZ2I,1)+1)),(SUM(L*VOL1,BA-DZ2I+1))/(SUM (VOL1,BA-DZ2I+1))); DZ3I:=VALUEWHEN(DFX and (REF(C,3)<REF(DZ2,3) or REF(C,2)<REF(DZ2,2)),DZZ0I); DZ3:=IF(BA=DZ3I or BA-DZ3I=1,(SUM(L*VOL1,BA-REF(DZ3I,1)+1))/(SUM(VOL1,BA-REF(DZ3I,1)+1)),(SUM(L*VOL1,BA-DZ3I+1))/(SUM (VOL1,BA-DZ3I+1))); GDT0:=GFX and (REF(C,2)>REF(GINI,2) or REF(C,3)>REF(GINI,3)); GDT0I:=VALUEWHEN(GDT0,GZZ0I); GDT01I:=VALUEWHEN(GDT0,REF(GDT0I,1)); GINI0:=IF(BA=GDT0I or BA-GDT0I=1,SUM(H*VOL1,BA-GDT01I+1)/SUM(VOL1,BA-GDT01I+1),SUM(H*VOL1,BA-GDT0I+1)/SUM(VOL1,BA- GDT0I+1)); GDT00:=(GZZ and SZTS>=XDTS and GZZI-DZZI>3); GDT00I:=IF(NOT(GDT00),0,VALUEWHEN(GDT00,GD0I)); GZ00I:=VALUEWHEN(GFX and (REF(C,3)>REF(GINI0,3) or REF(C,2)>REF(GINI0,2)),GZZ0I); GZ0I:=MAX(GDT00I,GZ00I); GZ0:=IF(BA=GZ0I or BA-GZ0I=1,(SUM(H*VOL1,BA-REF(GZ0I,1)+1))/(SUM(VOL1,BA-REF(GZ0I,1)+1)),(SUM(H*VOL1,BA-GZ0I+1))/(SUM (VOL1,BA-GZ0I+1))); GZ1I:=VALUEWHEN(GFX and (REF(C,3)>REF(GZ0,3) or REF(C,2)>REF(GZ0,2)),GZZ0I); GZ1:=IF(BA=GZ1I or BA-GZ1I=1,(SUM(H*VOL1,BA-REF(GZ1I,1)+1))/(SUM(VOL1,BA-REF(GZ1I,1)+1)),(SUM(H*VOL1,BA-GZ1I+1))/(SUM (VOL1,BA-GZ1I+1))); GZ2I:=VALUEWHEN(GFX and (REF(C,3)>REF(GZ1,3) or REF(C,2)>REF(GZ1,2)),GZZ0I); GZ2:=IF(BA=GZ2I or BA-GZ2I=1,(SUM(H*VOL1,BA-REF(GZ2I,1)+1))/(SUM(VOL1,BA-REF(GZ2I,1)+1)),(SUM(H*VOL1,BA-GZ2I+1))/(SUM (VOL1,BA-GZ2I+1))); GZ3I:=VALUEWHEN(GFX and (REF(C,3)>REF(GZ2,3) or REF(C,2)>REF(GZ2,2)),GZZ0I); GZ3:=IF(BA=GZ3I or BA-GZ3I=1,(SUM(H*VOL1,BA-REF(GZ3I,1)+1))/(SUM(VOL1,BA-REF(GZ3I,1)+1)),(SUM(H*VOL1,BA-GZ3I+1))/(SUM (VOL1,BA-GZ3I+1))); DD:=FLOOR((DZ3+ZXBD)/ZXBD)*ZXBD-ZXBD; GD:=FLOOR((GZ3+ZXBD)/ZXBD)*ZXBD; GDW:=VALUEWHEN(CROSS(C,GD),BA); DDW:=VALUEWHEN(CROSS(DD,C),BA); DK:=IF(DDW>GDW,GD,DD); DD1:=FLOOR((DINI+ZXBD)/ZXBD)*ZXBD-ZXBD; GD1:=FLOOR((GINI+ZXBD)/ZXBD)*ZXBD; GDW11:=VALUEWHEN(CROSS(C,GD1),BA); DDW11:=VALUEWHEN(CROSS(DD1,C),BA); DKD:=IF(DDW11>GDW11,GD1,DD1); DWD:=VALUEWHEN(CROSS(C,DKD),BA); GWD:=VALUEWHEN(CROSS(DKD,C),BA); GDW1:=VALUEWHEN(CROSS(C,GFXP) or BA=0,BA); DDW1:=VALUEWHEN(CROSS(DFXP,C) or BA=0,BA); DKP:=IF(DDW1>GDW1,GFXP,DFXP); BZD:=MAX(DK,MAX(DKD,GFXP)); SZD:=MIN(DK,MIN(DKD,DFXP)); DTA:=CROSS(C,BZD); KTA:=CROSS(SZD,C); DTAI:=VALUEWHEN(DTA or BA=0,BA); KTAI:=VALUEWHEN(KTA or BA=0,BA); DTB:=C<DK and C<DKD and REF(CROSS(DKP,C),1)=1 and C>REF(DKP,2) and DFX; KTB:=C>DK and C>DKD and REF(CROSS(C,DKP),1)=1 and C<REF(DKP,2) and GFX; DTC:=C<DK and C<DKD and SUM(L<DKP and C>DKP,2)=2; KTC:=C>DK and C>DKD and SUM(H>DKP and C<DKP,2)=2; DTD:=C>DKD and SUM(C>DK,2)>=2 and SUM(DKD=DK,BA-DWD+1)=BA-DWD and DKD>DK and REF(DKD=DK,1)=1; KTD:=C<DKD and SUM(C<DK,2)>=2 and SUM(DKD=DK,BA-GWD+1)=BA-GWD and DKD<DK and REF(DKD=DK,1)=1; DTE:=CROSS(C,DK) and SUM(DK=DKD,BA-REF(DWD,1)+1)=BA-REF(DWD,1)+1; KTE:=CROSS(DK,C) and SUM(DK=DKD,BA-REF(GWD,1)+1)=BA-REF(GWD,1)+1; DTF:=CROSS(C,DK) and SUM(CROSS(C,GFXP),BA-1)=0; KTF:=CROSS(DK,C) and SUM(CROSS(DFXP,C),BA-1)=0; KTG:=C>DK and CROSS(DKD,C) and SUM(C>DK and C>DKP and L<DKD and C>DKD and O=L,BA-DWD+1)>=1; DTG0:=C>DK and CROSS(C,DKD) and SUM(KTG,BA-GWD+1)>=1; KTH:=REF(SUM(DK=DKD,2)=2 and CROSS(DK,C) and ISUP,1)=1 and C<REF(C,1); DTJ:=C>DKP and C<DK and CROSS(C,DKD) and SUM(C<DK and L<DKP and C>DKP and ISUP,BA-GWD+1)>=1; KTJ0:=C<DK and CROSS(DKD,C) and SUM(DTJ,BA-DWD+1)>=1; DTK:=C<DK and CROSS(C,DKD) and SUM(CROSS(DKP,C),BA-GWD+1)>=1 and ISUP and L>REF(H,1) and SUM(L<DK and C>DK,BA-GWD+1)>=1; KTK0:=C<DK and CROSS(DKD,C) and SUM(DTK,BA-DWD+1)>=1; KTL:=CROSS(DKD,C) and SUM(CROSS(C,DKP) and C>DKD and DKD>DK,BA-DWD+1); KTM:=CROSS(DKD,C) and SUM(SUM(L<DKD and C>DKD,2)=2,BA-DWD+1)>=1 and SUM(CROSS(C,DKP) or CROSS(C,DK),BA-DWD+1)=0; DTL:=CROSS(C,DKD) and O-L<0.5 and SUM(CROSS(DK,C) and DK<>DKD,BA-GWD+1); DT1:=DTA or DTC or DTB or DTD or DTE or DTF or DTG0 or DTJ or DTK or DTL; KT1:=KTA or KTC or KTB or KTD or KTE or KTF or KTG or KTH or KTJ0 or KTK0 or KTL or KTM; DTI:=VALUEWHEN(DT1 or BA=0,BA); KTI:=VALUEWHEN(KT1 or BA=0,BA);
{=多空开平信号条件=} 开多条件:=REF(DTI<=KTI,1)=1 and DTI>KTI; 平多条件:=REF(DTI>=KTI,1)=1 and DTI<KTI; 开空条件:=REF(DTI>=KTI,1)=1 and DTI<KTI; 平空条件:=REF(DTI<=KTI,1)=1 and DTI>KTI; Y:=1;
{=交易测评条件=} {平空} SELLSHORT(平空条件 and HOLDING<0,0,LIMITR,C); {开多} BUY(开多条件 AND HOLDING=0, Y,LIMITR,C); {平多} SELL(平多条件 and HOLDING>0,0,LIMITR,C); {开空} BUYSHORT(开空条件 and HOLDING=0,Y,LIMITR,C);
|