|
|
缠轮在金字塔软件里的公式
var1:="[email=chzhshch@kxian]chzhshch@kxian[/email]"; {处理K线}
var2:="[email=chzhshch@bi]chzhshch@bi[/email]"; {处理笔关系}
var3:="[email=chzhshch@duan]chzhshch@duan[/email]"; {处理段关系}
{显示笔结束点位}
drawnumber(var2=1,h,h,1),pxup12,colorred,align0;
drawnumber(var2=-1,l,l,1),pxdn2,colorwhite,align0;
drawline(var2=1,h,var2=-1,l,0),color555555;
drawline(var2=-1,l,var2=1,h,0),color555555;
drawline(var3=1,h,var3=-1,l,0),linedash,LINETHICK1,color0000ff;
drawline(var3=-1,l,var3=1,h,0),linedash,LINETHICK1,color0000ff;
b1:=barslast(var3<>0); //段最后一次信号后的周期
b2:=ref(var3,b1); //段信号 -1为下跌段结束点 +1为上涨段结束点
a1:=barslast(var2<>0); //笔最后一次信号后的周期
a2:=ref(var2,a1); //笔信号 -1为下跌笔结束点 +1为上涨笔结束点
aa1:=ref(a1+1,1); //最后信号到现在的周期
aa2:=-ref(a2,1); //最近信号取反,如果是-1,就变为+1
aa3:=AA1+REF(AA1+1,AA1); //倒数第二个端点的周期
AA4:=AA3+REF(AA1+1,AA3); //倒数第三个端点的周期
H1:=barslast(var2=1); //高点到现在的周期
H2:=ref(var2,H1); //高点笔方向 +1
HH1:=ref(H1+1,1); //最后高点信号到现在的周期
HH2:=-ref(H2,1); //高点方向取反 -1
L1:=barslast(var2=-1);
L2:=ref(var2,L1);
LL1:=ref(L1+1,1);
LL2:=-ref(L2,1);
//G1-G5为倒数的第一至第五个高点的价位
G:=REF(H,h1); //所有高点连线
G1:=REF(H,HH1);
G2:=REF(G1,HH1);
G3:=REF(G2,HH1);
G4:=REF(G3,HH1);
G5:=REF(G4,HH1);
//D1-D5为倒数的第一至第五个低点的价位
D:=REF(L,l1); //所有低点连线
D1:=REF(L,LL1);
D2:=REF(D1,LL1);
D3:=REF(D2,LL1);
D4:=REF(D3,LL1);
D5:=REF(D4,LL1);
//取前一周期的行情数据
_Open:=ref(O,1);
_Close:=ref(C,1);
_High:=ref(H,1);
_Low:=ref(L,1);
//if barpos=1 then //只在第一周期连接数据库
// database('provider=microsoft.jet.oledb.4.0;data source=d:\GuZhi\UserData.mdb');
////保存到数据库(可以正常执行的代码,不要删除)
//if islastbar then begin //只在最后一周期保存到数据库
// sql1:='insert into tblGuzhi1 (stockdate,stocktime,stockopen,stockhigh,stocklow,stockclose,var2,var3,D1,D2,G1,G2,A1,A2,Code,Market,Period)
// values("'+numtostr(year,0)+'-'+numtostr(month,0)+'-'+numtostr(day,0)+'",'+numtostr(time,0)+','+numtostr(_open,1)
// +','+numtostr(_high,1)+','+numtostr(_low,1)+','+numtostr(_close,1)+','+numtostr(var2,0)+','+numtostr(var3,0)+','
// +numtostr(D1,1)+','+numtostr(D2,1)+','+numtostr(G1,1)+','+numtostr(G2,1)+','+numtostr(A1,1)+','+numtostr(A2,1)
// +',"'+ stklabel + '","' + Marketlabel +'",'+numtostr(datatype,0)+')';
// dbexecute(sql1);
//end;
MA1:=EMA(CLOSE,13);
MA2:=EMA(CLOSE,34);
MA3:=EMA(CLOSE,89);
MA4:=EMA(CLOSE,233);
MA5:=EMA(CLOSE,610);
MA6:=EMA(CLOSE,1597);
A:=MAX(MAX(MA1,MA2),MA3),LINETHICK0;
B:=MIN(MIN(MA1,MA2),MA3),LINETHICK0;
三线粘合:=IF(RANGE(100*(A-B)/B,0,5),100*(A-B)/B,DRAWNULL),LINETHICK1;
SA:=MAX(MAX(MA1,MA2),MAX(MA3,MA4)),LINETHICK0;
SB:=MIN(MIN(MA1,MA2),MIN(MA3,MA4)),LINETHICK0;
四线粘合:=IF(RANGE(100*(SA-SB)/SB,0,10),100*(SA-SB)/SB,DRAWNULL),LINETHICK1;
SxNh:=四线粘合;
WA:=MAX(max(MAX(MA1,MA2),MAX(MA3,MA4)),MA5),LINETHICK0;
WB:=MIN(min(MIN(MA1,MA2),MIN(MA3,MA4)),MA5),LINETHICK0;
五线粘合:=IF(RANGE(100*(WA-WB)/WB,0,15),100*(WA-WB)/WB,DRAWNULL),LINETHICK1;
WxNh:=五线粘合;
LA:=MAX(max(MAX(MA1,MA2),MAX(MA3,MA4)),MAX(MA5,MA6)),LINETHICK0;
LB:=MIN(min(MIN(MA1,MA2),MIN(MA3,MA4)),MIN(MA5,MA6)),LINETHICK0;
六线粘合:=IF(RANGE(100*(LA-LB)/LB,0,20),100*(LA-LB)/LB,DRAWNULL),LINETHICK1;
LxNh:=六线粘合;
M5:=EMA(CLOSE,13) colorwhite;
M11:=EMA(CLOSE,34) color999999;
M21:=EMA(CLOSE,89) colormagenta,LINETHICK2 ;
M55:=EMA(CLOSE,233) colorblue;
M234:=EMA(CLOSE,610) coloryellow;
VAR20:EMa(CLOSE,34);
PARTLINE(VAR20>REF(VAR20,1),VAR20),LINETHICK2,colorFF;
PARTLINE(VAR20=REF(VAR20,1),VAR20),LINETHICK2,colorFF0000;
PARTLINE(VAR20<REF(VAR20,1),VAR20),LINETHICK2,colorFF00;
VAR55:EMa(CLOSE,89);
PARTLINE(VAR55>REF(VAR55,1),VAR55),LINETHICK2,colormagenta;
PARTLINE(VAR55=REF(VAR55,1),VAR55),LINETHICK2,colorFF0000;
PARTLINE(VAR55<REF(VAR55,1),VAR55),LINETHICK2,colorFF00;
//一下代码将行情数据传送到VBS后台,开单操作在后台实现
//60周期均线
Ma60:=Ma4;
Ma61:=ref(ma4,1);
Ma62:=ref(ma4,2);
Ma63:=ref(ma4,3);
Ma64:=ref(ma4,4);
//20周期均线
Ma20:=Ma3;
Ma21:=ref(ma3,1);
Ma22:=ref(ma3,2);
Ma23:=ref(ma3,3);
Ma24:=ref(ma3,4);
//10周期均线
Ma10:=Ma2;
Ma11:=ref(ma2,1);
Ma12:=ref(ma2,2);
Ma13:=ref(ma2,3);
Ma14:=ref(ma2,4);
if islastbar then
T:=SendToVBA(A2,A1,B2,B1,D1,D2,D3,D4,G1,G2,G3,G4,SxNh,WxNh,LxNh,Ma60,Ma61,Ma62,Ma63,Ma64,Ma20,Ma21,Ma22,Ma23,Ma24,Ma10,Ma11,Ma12,Ma13,Ma14);
drawnumber(islastbar,l,a2,1);
If A2=-1 then begin
If D1>D2 And D2>D3 then //低点依次升高
TargetHigh:=2*G1-D2;
Else If D1>D2 then //最近两低点升高
TargetHigh:=G1+D1-D2;
Else If D1<D2 And D2>D3 And Abs(D1-D4)<=3 then //最近的低点跌到第4低点附近
TargetHigh:=D1+(G1-D1)/2;
Else
TargetHigh:=G1+(G1-D1)/2;
Drawnumber(isLastBar,H,TargetHigh,1),pxup30,align2;
End
If A2=1 then begin
If G1>G2 And G2>G3 then //高点依次升高
TargetLow:=2*D1-G2;
Else If G1>G2 then //最近高点高过前一高点
TargetLow:=G1+D1-G2;
Else If G1<G2 And G2>G3 And Abs(G1-G4)<=3 then //最近的高点涨到第4高点附近
TargetLow:=G1-(G1-D1)/2;
Else
TargetLow:=D1-(G1-D1)/2;
Drawnumber(isLastBar,L,TargetLow,1),pxDn30,align2;
End
[ 本帖最后由 杨太极 于 2012-2-14 08:40 编辑 ] |
|
|