input:n1(5,1,999,1);
input:n2(10,1,999,1);
input:n3(20,1,999,1);
input:n4(60,1,999,1);
input:n5(100,1,999,1);
input:n6(300,1,999,1);
input:n7(900,1,999,1);
input:n8(150,1,999,1);
//input:P(26,1,100,8);
//input:S(12,5,40,4);
//input:M(9,2,60,6);
ma5:=rounds(ma(C,n1),4),COLORWHITE;
ma10:=rounds(ma(C,n2),4),COLORWHITE;
ma20:=rounds(ma(C,n3),4),COLORWHITE;
ma60:=rounds(ma(C,n4),4),COLORWHITE;
ma100:=rounds(ma(C,n5),4),COLORWHITE;
ma180:=rounds(ma(c,180),4),colorwhite;
ma300:=rounds(ma(C,n6),4),COLORWHITE;
ma900:=rounds(ma(C,n7),4),COLORWHITE;
ma150:=rounds(ma(C,n8),4),COLORWHITE;
cond:=day<>ref(day,1);
n:barslast(cond)+1,COLORWHITE,NODRAW;
NN:TODAYBAR,COLORWHITE,NODRAW;
jj:sum(amount,n)/sum(vol,n)/multiplier;
cond1:=(hhv(h,todaybar)-jj)/jj<0.005;
cond2:=(jj-llv(l,todaybar))/jj<0.005;
ZD:=STKINDIEX('HG00','Formula2.ZD',0,1,-1,1000),NODRAW;
ZK:=STKINDIEX('HG00','Formula2.ZK',0,1,-1,1000),NODRAW;
CYC:=barslast(date<>ref(date,1))+1;
DayMa:rounds(sum(amount,CYC)/sum(vol,CYC)/multiplier,1),COLORWHITE,NODRAW;//适用日线及日线以下周期的K线,也试用所有品种
//Up:=Rounds(DYNAINFO(14)*100,2),COLORWHITE,NODRAW;
//DayMa:DYNAINFO(11),COLORWHITE,NODRAW;
ZGJ:HHV(Ref(H,1),TODAYBAR),COLORRED;
ZDJ:LLV(Ref(L,1),TODAYBAR),COLORWHITE;
DRAWTEXT(h=zgj,h,'H',COLORWHITE);
DRAWTEXT(l=zdj,l,'L',COLORWHITE);
FlagHigh:Ref(H,ENTERBARS);
FlagLow:Ref(L,ENTERBARS);
Duo1: = H>ZGJ and H>ma180 and Ma5>Ma60 and Ma10>Ma60 and Ma20>Ma60 and Ma150>Ma900 ,COLORWHITE,NODRAW;
//NOAXIS;//,
Kong1:= L<ZDJ and L<ma180 and Ma5<Ma60 and Ma10<Ma60 and Ma20<Ma60 and Ma150<Ma900 ,COLORGREEN,NODRAW;//NOAXIS;//,
Duo2: =L<ma180 or L<FlagLow ,COLORGREEN,NODRAW;//NOAXIS;
Kong2:=H>ma180 or H>FlagHigh ,colorwhite,nodraw;//NOAXIS;
VARIABLE:UpTimes=0,DnTimes=0;
UPTP:H>ZGJ,NODRAW;
DNTP:L<ZDJ,NODRAW;
if Duo2=1 then
UpTimes:=0;
if Kong2=1 then
DnTimes:=0;
if UPTP=1 then begin //or Duo2=1
DnTimes:=0;
if UpTimes>=0 then
UpTimes:=UpTimes+1;
end
if DNTP=1 then begin //or Kong2=1
UpTimes:=0;
if DnTimes>=0 then
DnTimes:=DnTimes+1;
end
Up:UpTimes,NODRAW;
Dn:DnTimes,NODRAW;
//DRAWTEXT(Up=1,h,'上',COLORWHITE);
//DRAWTEXT(Dn=1,l,'下',COLORWHITE);
//DRAWTEXT(Duo=1,h,'d',COLORWHITE);
//DRAWTEXT(Kong=1,l,'k',COLORWHITE);
KD:=Duo1=1; //开多条件
PD:=Duo2=1; //平多条件
KK:=Kong1=1; //开空条件
PK:=Kong2=1; //平空条件
平空:SELLSHORT(PK,1,THISCLOSE); //平空信号
开多:BUY(KD AND HOLDING=0,1,THISCLOSE); //开多信号
平多:SELL(PD,1,THISCLOSE); //平多信号
开空:BUYSHORT(KK AND HOLDING=0,1,THISCLOSE); //开空信号
Duo:if(holding=1,1,if(holding<1,-1,0)),COLORWHITE,NODRAW;
Kong:if(holding=-1,1,if(holding>0,-1,0)),COLORWHITE,NODRAW;
DRAWTEXTEX(1,1,0,0,STKLABEL+':'+Numtostr(Duo,0)+','+Numtostr(Kong,0));//
+','+Numtostr(Duo1,0)+','+Numtostr(Kong1,0));
这是一个VBA程序的进场模型,我的目的是对进场条件DUO1,KONG1,怎么能限制在第一时间进场,比如突破,第一时间符合条件突破了,后面继续突破也是符合条件,那么我用VBA程序控制的时候不一定是第一时间进场,因为后面不断突破高点都是符合条件的,
1.按照均线分析里的进场条件做幅度排名前三的品种,这一步,你是怎么实现的,你遇到了什么困难
2.找出排名前三的品种,满足什么条件,你会交易,最好能配上你的图,来说明这些问题
首先这是我找人写的一个VBA程序,我本身不懂,但是写程序的人解决不了这个问题,所以请教你们
这是一个自动刷选的程序,包括几个方面,首先是把需要交易的品种选择到动态显示牌,y用代码对动态显示牌的品种按照幅度大小进行多空排序,可以自由选择多空前几位的品种,根据均线分析里面的条件进行进场,你能看到我发给你的程序原代码吗,
问题一不是问题,程序可以做到,
问题二
ZGJ:HHV(Ref(H,1),TODAYBAR),COLORRED;
ZDJ:LLV(Ref(L,1),TODAYBAR),COLORWHITE;
DRAWTEXT(h=zgj,h,'H',COLORWHITE);
DRAWTEXT(l=zdj,l,'L',COLORWHITE);
FlagHigh:Ref(H,ENTERBARS);
FlagLow:Ref(L,ENTERBARS);
多头开仓条件: = H>ZGJ and H>ma180 and Ma5>Ma60 and Ma10>Ma60 and Ma20>Ma60 and Ma150>Ma900 ,COLORWHITE,NODRAW;
//NOAXIS;//,
空头开仓条件:= L<ZDJ and L<ma180 and Ma5<Ma60 and Ma10<Ma60 and Ma20<Ma60 and Ma150<Ma900 ,COLORGREEN,NODRAW;//NOAXIS;//,
多头平仓条件: =L<ma180 ,COLORGREEN,NODRAW;//NOAXIS;
空头平仓条件:=H>ma180 ,colorwhite,nodraw;//NOAXIS;
我现在的问题是对满足多头或者空头开仓条件的第一时间点进行计数,我不知道你明白不明白,在满足开仓第一时间点开始计数一直到符合平仓结束,一分钟周期,
意思就是对第一符合开仓时间点进行计数