- 金币:
-
- 奖励:
-
- 热心:
-
- 注册时间:
- 2002-9-8
|
|

楼主 |
发表于 2007-8-19 18:16
|
显示全部楼层
原帖由 flybull 于 2007-8-19 16:54 发表 
对于分笔买卖计算方法,我一贯使用的是老大的“主动买卖”公式,近来偶尔看到另一个计算方式,测试之下发现跟老大的有极大偏差。现在我贴出公式源码,老大能否指点一下?
新的分笔计算方法:
{分笔计算公式 ...
这个公式写法还是不错的,与以前分析家5。0公式的写法差不多,还要进一步研究,但这句:XS:=10000*n/c/100;有问题,应改为:
大单买:=if(AMOUNT>=50000 ,买入,0);
大对买:=if(AMOUNT>=50000 ,对敲买,0);
大单卖:=if(AMOUNT>=50000 ,卖出,0);
大对卖:=if(AMOUNT>=50000 ,对敲卖,0);
大涨停:=if(AMOUNT>=50000 ,涨停,0);
大跌停:=if(AMOUNT>=50000 ,跌停,0);
公式如下
分笔精解
V1:=TIME;
a1:=COUNT(BARSCOUNT(C)=1 and time<102000 ,0 );
开盘分:=if(V1<130000,(FLOOR(V1/10000)-9.5)*60+(FLOOR(V1/100)-100*FLOOR(V1/10000)),
(FLOOR(V1/10000)-11)*60+(FLOOR(V1/100)-100*FLOOR(V1/10000)));
a:=BARSCOUNT(C);
买卖人气:=if(a1>0,a/开盘分,a/(开盘分-60));
量:=V;
总:=sum(量,0);
fsbs:=BARSCOUNT(CLOSE);
Var1:=IF(BUYVOL<=REF(ASKVOL(1),1) AND CLOSE=REF(ASKPRICE(1),1),BUYVOL,0);
Var2:=IF(BUYVOL<=(REF(ASKVOL(1),1)+REF(ASKVOL(2),1)) AND CLOSE=REF(ASKPRICE(2),1),BUYVOL,0);
Var3:=IF(BUYVOL<=(REF(ASKVOL(1),1)+REF(ASKVOL(2),1)+REF(ASKVOL(3),1)) AND CLOSE=REF(ASKPRICE(3),1),BUYVOL,0);
Var3A:=IF(BUYVOL>(REF(ASKVOL(1),1)+REF(ASKVOL(2),1)+REF(ASKVOL(3),1)) AND REF(ASKPRICE(3),1)>0 AND CLOSE>REF(ASKPRICE(3),1),BUYVOL,0);
Var41:=IF(CLOSE<REF(ASKPRICE(1),1) AND REF(BIDVOL(1),1)>0 AND REF(ASKVOL(1),1)>0,BUYVOL,0);
Var41a:=if(Var41>0 and Var41<REF(ASKVOL(1),1),Var41-Var41,0);
Var42:=IF((BUYVOL>REF(ASKVOL(1),1) AND CLOSE=REF(ASKPRICE(1),1) AND REF(BIDVOL(1),1)>0){ or (CLOSE<REF(ASKPRICE(1),1) AND REF(BIDVOL(1),1)>0 AND REF(ASKVOL(1),1)>0)},BUYVOL,0);
Var42a:=IF(Var42>0,Var42-REF(ASKVOL(1),1),0);
Var4b:=Var41a+Var42a;
Var4:=Var41+Var42;
Var51:=IF(BUYVOL>REF(ASKVOL(1),1) AND CLOSE>REF(ASKPRICE(1),1) AND CLOSE<REF(ASKPRICE(3),1),BUYVOL,0);
Var51a:=if(Var51>0 AND Var51>(REF(ASKVOL(1),1)+REF(ASKVOL(2),1)),Var51-(REF(ASKVOL(1),1)+REF(ASKVOL(2),1)),0);
Var52:=IF(BUYVOL>(REF(ASKVOL(1),1)+REF(ASKVOL(2),1)) AND CLOSE=REF(ASKPRICE(2),1) AND REF(BIDVOL(1),1)>0,BUYVOL,0);
Var52a:=IF(Var52>0,Var52-(REF(ASKVOL(1),1)+REF(ASKVOL(2),1)),0);
Var5b:=Var51a+Var52a;
Var5:=Var51+Var52;
Var61:=IF(BUYVOL>(REF(ASKVOL(1),1)+REF(ASKVOL(2),1)) AND CLOSE>REF(ASKPRICE(2),1) AND CLOSE<REF(ASKPRICE(3),1),BUYVOL,0);
Var62:=IF(BUYVOL>(REF(ASKVOL(1),1)+REF(ASKVOL(2),1)+REF(ASKVOL(3),1)) AND CLOSE=REF(ASKPRICE(3),1) AND REF(BIDVOL(1),1)>0,BUYVOL,0);
Var62a:=IF( Var62>0,Var62-(REF(ASKVOL(1),1)+REF(ASKVOL(2),1)+REF(ASKVOL(3),1)),0);
Var62b:=IF((REF(BIDVOL(1),1)+REF(BIDVOL(2),1)+REF(BIDVOL(3),1))=0 AND(REF(ASKVOL(1),1)+REF(ASKVOL(2),1)+REF(ASKVOL(3),1))=0,BUYVOL,0);
Var6b:=Var61+Var62a+Var62b;
Var6:=Var61+Var62+Var62b;
Var6:=Var61+Var62+Var62b;Var7:=IF(SELLVOL<=REF(BIDVOL(1),1) AND CLOSE=REF(BIDPRICE(1),1),SELLVOL,0);
Var8:=IF(SELLVOL<=(REF(BIDVOL(1),1)+REF(BIDVOL(2),1)) AND CLOSE=REF(BIDPRICE(2),1),SELLVOL,0);
Var9:=IF(SELLVOL<=(REF(BIDVOL(1),1)+REF(BIDVOL(2),1)+REF(BIDVOL(3),1)) AND CLOSE=REF(BIDPRICE(3),1),SELLVOL,0);
Var9A:=IF(SELLVOL>(REF(BIDVOL(1),1)+REF(BIDVOL(2),1)+REF(BIDVOL(3),1)) AND CLOSE<REF(BIDPRICE(3),1),SELLVOL,0);
VarA1:=IF(CLOSE>REF(BIDPRICE(1),1) AND REF(ASKVOL(1),1)>0 AND REF(BIDVOL(1),1)>0,SELLVOL,0);
VarA2:=IF(SELLVOL>REF(BIDVOL(1),1) AND CLOSE=REF(BIDPRICE(1),1) AND REF(ASKVOL(1),1)>0,SELLVOL,0);
VarAa:=IF(VarA2>0,SELLVOL-REF(BIDVOL(1),1),0);
VarA:=VarA1+VarA2;
VarB1:=IF(SELLVOL>REF(BIDVOL(1),1) AND CLOSE<REF(BIDPRICE(1),1) AND CLOSE>REF(BIDPRICE(2),1),SELLVOL,0);
VarB1a:=if(VarB1>0 and SELLVOL>(REF(BIDVOL(1),1)+REF(BIDVOL(2),1)),VarB1-(REF(BIDVOL(1),1)+REF(BIDVOL(2),1)),0);
VarB2:=IF(SELLVOL>(REF(BIDVOL(1),1)+REF(BIDVOL(2),1)) AND CLOSE=REF(BIDPRICE(2),1) AND REF(ASKVOL(1),1)>0,SELLVOL,0);
VarBa:=if(VarB2>0,SELLVOL-(REF(BIDVOL(1),1)+REF(BIDVOL(2),1)),0);
VarAb:=VarB1a+VarBa;
VarB:=VarB1+VarB2;
VarC1:=IF(SELLVOL>REF(BIDVOL(1),1)+REF(BIDVOL(2),1) AND CLOSE<REF(BIDPRICE(2),1) AND CLOSE>REF(BIDPRICE(3),1),SELLVOL,0);
VarC2:=IF(SELLVOL>(REF(BIDVOL(1),1)+REF(BIDVOL(2),1)+REF(BIDVOL(3),1)) AND CLOSE=REF(BIDPRICE(3),1) AND REF(ASKVOL(1),1)>0,SELLVOL,0);
VarCa:=if(VarC2>0,SELLVOL-(REF(BIDVOL(1),1)+REF(BIDVOL(2),1)+REF(BIDVOL(3),1)),0);
VarAc:=VarC1+VarCa;
VarC:=VarC1+VarC2;
VarD:=if((ASKVOL(1)+ASKVOL(2)+ASKVOL(3))=0 AND REF((ASKVOL(1)+ASKVOL(2)+ASKVOL(3)),1 )=0 and REF(BIDVOL(1),1)>0,BUYVOL,0);
VarE:=if((BIDVOL(1)+BIDVOL(2)+BIDVOL(3))=0 AND REF((BIDVOL(1)+BIDVOL(2)+BIDVOL(3)),1 )=0 and REF(ASKVOL(1),1)>0,SELLVOL,0);
VarF:=IF(ASKVOL(1)<REF(ASKVOL(1),1) AND ASKPRICE(1)=REF(ASKPRICE(1),1) AND CLOSE<REF(ASKPRICE(1),1) AND (REF(ASKVOL(1),1)-ASKVOL(1))<>SELLVOL,REF(ASKVOL(1),1)-ASKVOL(1),0);
Var10:=IF(ASKVOL(3)<REF(ASKVOL(3),1) AND ASKPRICE(3)=REF(ASKPRICE(3),1) AND CLOSE<REF(ASKPRICE(3),1),REF(ASKVOL(3),1)-ASKVOL(3),0);
Var11:=IF((REF(BIDVOL(1),1)+REF(BIDVOL(2),1)+REF(BIDVOL(3),1))=0 AND REF(ASKVOL(1),1)>0 AND (REF(ASKVOL(1),1)-ASKVOL(1))<SELLVOL AND ASKVOL(1)<REF(ASKVOL(1),1) AND ASKPRICE(1)=REF(ASKPRICE(1),1) AND CLOSE<REF(ASKPRICE(1),1),REF(ASKVOL(1),1)-ASKVOL(1),0);
Var12:=IF(ASKVOL(2)<REF(ASKVOL(3),1) AND ASKPRICE(2)=REF(ASKPRICE(3),1) AND CLOSE<REF(ASKPRICE(3),1),REF(ASKVOL(3),1)-ASKVOL(2),0);
Var13:=IF(ASKVOL(3)<REF(ASKVOL(2),1) AND ASKPRICE(3)=REF(ASKPRICE(2),1) AND CLOSE<REF(ASKPRICE(2),1),REF(ASKVOL(2),1)-ASKVOL(3),0);
Var14:=IF(BIDVOL(1)<REF(BIDVOL(1),1) AND BIDPRICE(1)=REF(BIDPRICE(1),1) AND CLOSE>REF(BIDPRICE(1),1) AND REF(BIDVOL(1),1)-BIDVOL(1)<>BUYVOL,REF(BIDVOL(1),1)-BIDVOL(1),0);
Var15:=IF(BIDVOL(3)<REF(BIDVOL(3),1) AND BIDPRICE(3)=REF(BIDPRICE(3),1) AND CLOSE>REF(BIDPRICE(3),1),REF(BIDVOL(3),1)-BIDVOL(3),0);
Var16:=IF(REF(ASKVOL(1),1)+REF(ASKVOL(2),1)+REF(ASKVOL(3),1)=0 AND REF(BIDVOL(1),1)>0 AND REF(BIDVOL(1),1)-BIDVOL(1)<BUYVOL AND BIDVOL(1)<REF(BIDVOL(1),1) AND BIDPRICE(1)=REF(BIDPRICE(1),1) AND CLOSE=REF(BIDPRICE(1),1),REF(BIDVOL(1),1)-BIDVOL(1),0);
Var17:=IF(BIDVOL(2)<REF(BIDVOL(3),1) AND BIDPRICE(2)=REF(BIDPRICE(3),1) AND CLOSE>REF(BIDPRICE(3),1),REF(BIDVOL(3),1)-BIDVOL(2),0);
Var18:=IF(BIDVOL(3)<REF(BIDVOL(2),1) AND BIDPRICE(3)=REF(BIDPRICE(2),1) AND CLOSE>REF(BIDPRICE(2),1),REF(BIDVOL(2),1)-BIDVOL(3),0);
Var19:=IF(BUYVOL<=REF(ASKVOL(1),1)+REF(ASKVOL(2),1)+REF(ASKVOL(3),1) AND CLOSE>=REF(ASKPRICE(3),1),BUYVOL,0);
Var1A:=IF(SELLVOL<=REF(BIDVOL(1),1)+REF(BIDVOL(2),1)+REF(BIDVOL(3),1) AND CLOSE<=REF(BIDPRICE(3),1),SELLVOL,0);
涨跌停:=VarD+VarE;
涨停:=if(SELLVOL=(VarD+VarE),(VarD+VarE),0);
跌停:=if(BUYVOL=(VarD+VarE),(VarD+VarE),0);
敲买:=Var4+Var5+Var6;
买入:=if((Var1+Var2+Var3+Var3A)>0,(Var1+Var2+Var3+Var3A)-(VarD+VarE),if (敲买>0,((Var4+Var5+Var6)-(Var4b+Var5b+Var6b)),0));
对敲买:=(Var4b+Var5b+Var6b);
敲卖:=VarA+VarB+VarC;
卖出:=if((Var7+Var8+Var9+Var9A)>0,(Var7+Var8+Var9+Var9A),if(敲卖>0, (VarA+VarB+VarC)-(VarAa+VarAb+VarAc),0));
对敲卖:=(VarAa+VarAb+VarAc);
大单买:=if(AMOUNT>=50000 ,买入,0);
大对买:=if(AMOUNT>=50000 ,对敲买,0);
大单卖:=if(AMOUNT>=50000 ,卖出,0);
大对卖:=if(AMOUNT>=50000 ,对敲卖,0);
大涨停:=if(AMOUNT>=50000 ,涨停,0);
大跌停:=if(AMOUNT>=50000 ,跌停,0);
总大买:=大单买+大对买+大跌停;
总大卖:=大单卖+大对卖+大涨停;
dsv:=If((总大买+总大卖)>0,1,0);
大单笔数:sum(dsv,0),LINETHICK0;
大单买入:sum(总大买,0);
大单卖出:sum(总大卖,0);
大对敲买:sum(大对买,0);
大对敲卖:sum(大对卖,0);
分析家5。0公式
分笔分析
{ F分笔分析--- 对分笔数据进行"买卖性质"分析,以曲线形式表达}
Var1:=IF(BUYVOL<=REF(ASKVOL(1),1) AND CLOSE=REF(ASKPRICE(1),1),BUYVOL,0);
Var2:=IF(BUYVOL<=REF(ASKVOL(1),1)+REF(ASKVOL(2),1) AND CLOSE=REF(ASKPRICE(2),1),BUYVOL,0);
Var3:=IF(BUYVOL<=REF(ASKVOL(1),1)+REF(ASKVOL(2),1)+REF(ASKVOL(3),1) AND CLOSE=REF(ASKPRICE(3),1),BUYVOL,0);
Var4:=IF(CLOSE<REF(ASKPRICE(1),1) AND REF(BIDVOL(1),1)>0 AND REF(ASKVOL(1),1)>0,BUYVOL,0);
Var5:=IF(BUYVOL>REF(ASKVOL(1),1) AND CLOSE>REF(ASKPRICE(1),1) AND CLOSE<REF(ASKPRICE(2),1),BUYVOL,0);
Var6:=IF(BUYVOL>REF(ASKVOL(1),1)+REF(ASKVOL(2),1) AND CLOSE>REF(ASKPRICE(2),1) AND CLOSE<REF(ASKPRICE(3),1),BUYVOL,0);
Var7:=IF(SELLVOL<=REF(BIDVOL(1),1) AND CLOSE=REF(BIDPRICE(1),1),SELLVOL,0);
Var8:=IF(SELLVOL<=REF(BIDVOL(1),1)+REF(BIDVOL(2),1) AND CLOSE=REF(BIDPRICE(2),1),SELLVOL,0);
Var9:=IF(SELLVOL<=REF(BIDVOL(1),1)+REF(BIDVOL(2),1)+REF(BIDVOL(3),1) AND CLOSE=REF(BIDPRICE(3),1),SELLVOL,0);
VarA:=IF(CLOSE>REF(BIDPRICE(1),1) AND REF(ASKVOL(1),1)>0 AND REF(BIDVOL(1),1)>0,SELLVOL,0);
VarB:=IF(SELLVOL>REF(BIDVOL(1),1) AND CLOSE<REF(BIDPRICE(1),1) AND CLOSE>REF(BIDPRICE(2),1),SELLVOL,0);
VarC:=IF(SELLVOL>REF(BIDVOL(1),1)+REF(BIDVOL(2),1) AND CLOSE<REF(BIDPRICE(2),1) AND CLOSE>REF(BIDPRICE(3),1),SELLVOL,0);
VarD:=IF(REF(ASKVOL(1),1)+REF(ASKVOL(2),1)+REF(ASKVOL(3),1)=0 AND REF(BIDVOL(1),1)>0,BUYVOL,0);
VarE:=IF(REF(BIDVOL(1),1)+REF(BIDVOL(2),1)+REF(BIDVOL(3),1)=0 AND REF(ASKVOL(1),1)>0,SELLVOL,0);
VarF:=IF(ASKVOL(1)<REF(ASKVOL(1),1) AND ASKPRICE(1)=REF(ASKPRICE(1),1) AND CLOSE<REF(ASKPRICE(1),1) AND REF(ASKVOL(1),1)-ASKVOL(1)<>SELLVOL,REF(ASKVOL(1),1)-ASKVOL(1),0);
Var10:=IF(ASKVOL(3)<REF(ASKVOL(3),1) AND ASKPRICE(3)=REF(ASKPRICE(3),1) AND CLOSE<REF(ASKPRICE(3),1),REF(ASKVOL(3),1)-ASKVOL(3),0);
Var11:=IF(REF(BIDVOL(1),1)+REF(BIDVOL(2),1)+REF(BIDVOL(3),1)=0 AND REF(ASKVOL(1),1)>0 AND REF(ASKVOL(1),1)-ASKVOL(1)<SELLVOL AND ASKVOL(1)<REF(ASKVOL(1),1) AND ASKPRICE(1)=REF(ASKPRICE(1),1) AND CLOSE<REF(ASKPRICE(1),1),REF(ASKVOL(1),1)-ASKVOL(1),0);
Var12:=IF(ASKVOL(2)<REF(ASKVOL(3),1) AND ASKPRICE(2)=REF(ASKPRICE(3),1) AND CLOSE<REF(ASKPRICE(3),1),REF(ASKVOL(3),1)-ASKVOL(2),0);
Var13:=IF(ASKVOL(3)<REF(ASKVOL(2),1) AND ASKPRICE(3)=REF(ASKPRICE(2),1) AND CLOSE<REF(ASKPRICE(2),1),REF(ASKVOL(2),1)-ASKVOL(3),0);
Var14:=IF(BIDVOL(1)<REF(BIDVOL(1),1) AND BIDPRICE(1)=REF(BIDPRICE(1),1) AND CLOSE>REF(BIDPRICE(1),1) AND REF(BIDVOL(1),1)-BIDVOL(1)<>BUYVOL,REF(BIDVOL(1),1)-BIDVOL(1),0);
Var15:=IF(BIDVOL(3)<REF(BIDVOL(3),1) AND BIDPRICE(3)=REF(BIDPRICE(3),1) AND CLOSE>REF(BIDPRICE(3),1),REF(BIDVOL(3),1)-BIDVOL(3),0);
Var16:=IF(REF(ASKVOL(1),1)+REF(ASKVOL(2),1)+REF(ASKVOL(3),1)=0 AND REF(BIDVOL(1),1)>0 AND REF(BIDVOL(1),1)-BIDVOL(1)<BUYVOL AND BIDVOL(1)<REF(BIDVOL(1),1) AND BIDPRICE(1)=REF(BIDPRICE(1),1) AND CLOSE=REF(BIDPRICE(1),1),REF(BIDVOL(1),1)-BIDVOL(1),0);
Var17:=IF(BIDVOL(2)<REF(BIDVOL(3),1) AND BIDPRICE(2)=REF(BIDPRICE(3),1) AND CLOSE>REF(BIDPRICE(3),1),REF(BIDVOL(3),1)-BIDVOL(2),0);
Var18:=IF(BIDVOL(3)<REF(BIDVOL(2),1) AND BIDPRICE(3)=REF(BIDPRICE(2),1) AND CLOSE>REF(BIDPRICE(2),1),REF(BIDVOL(2),1)-BIDVOL(3),0);
Var19:=IF(BUYVOL<=REF(ASKVOL(1),1)+REF(ASKVOL(2),1)+REF(ASKVOL(3),1) AND CLOSE>=REF(ASKPRICE(3),1),BUYVOL,0);
Var1A:=IF(SELLVOL<=REF(BIDVOL(1),1)+REF(BIDVOL(2),1)+REF(BIDVOL(3),1) AND CLOSE<=REF(BIDPRICE(3),1),SELLVOL,0);
买入: Var1+Var2+Var3, COLORRED;
对敲买: Var4+Var5+Var6, COLORMAGENTA;
卖出: Var7+Var8+Var9, COLORGREEN;
总买:SUM(买入,0);
总卖:SUM(卖出,0);
总卖卖差:总买-总卖;
对敲卖: VarA+VarB+VarC, COLORCYAN;
撤卖: IF(VarF+Var10+Var11+Var12+Var13>BUYVOL,VarF+Var10+Var11+Var12+Var13-BUYVOL,0), COLORYELLOW;
撤买: IF(Var14+Var15+Var16+Var17+Var18>SELLVOL,Var14+Var15+Var16+Var17+Var18-SELLVOL,0), COLORWHITE;
涨跌停: VarD+VarE ;
DRAWTEXT(Var19>100 AND Var19<500,BUYVOL+50,'扫盘'), COLORYELLOW;
DRAWTEXT(Var19>=500,BUYVOL-100,'扫盘'), COLORYELLOW;
DRAWTEXT(Var1A>100 AND Var1A<500,SELLVOL+50,'扫盘'), COLORWHITE;
DRAWTEXT(Var1A>=500,SELLVOL-100,'扫盘'), COLORWHITE; |
|
|