以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://www.weistock.com/bbs/index.asp) -- 高级功能研发区 (http://www.weistock.com/bbs/list.asp?boardid=5) ---- 这是一个模型求帮助 (http://www.weistock.com/bbs/dispbbs.asp?boardid=5&id=98104) |
-- 作者:FACAI123456 -- 发布时间:2016/6/1 14:54:43 -- 这是一个模型求帮助 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程序控制的时候不一定是第一时间进场,因为后面不断突破高点都是符合条件的, |
-- 作者:jinzhe -- 发布时间:2016/6/1 14:59:42 -- VBA体现在哪里? |
-- 作者:FACAI123456 -- 发布时间:2016/6/1 15:20:17 -- 这是一个均线分析,VBA就是依据这里的条件进场的,能在这里面设置我说的那些功能吗,就是在第一时间进场,对第一时间符合条件的一分钟时间点进行计数,比如10点符合第一时间点进场从10点开始计数, |
-- 作者:FACAI123456 -- 发布时间:2016/6/1 15:21:08 -- 这里怎么上传VBA程序 |
-- 作者:jinzhe -- 发布时间:2016/6/1 15:33:22 -- 上传时添加附件, |
-- 作者:yukizzc -- 发布时间:2016/6/1 15:42:19 -- 用stkindi取获取你模型里的条件值,这个在vba里有这个方法的,您可以在vba编程信息搜下 然后剩下的那些计数点这些,这个你vb里都可以处理的 |
-- 作者:FACAI123456 -- 发布时间:2016/6/1 15:50:59 -- 这个模型的运行是自动刷新按照幅度排序的多空前几位的品种,他的缺陷在于解决不了是不是第一时间点进场的问题,比如按照均线分析里的进场条件做幅度排名前三的品种,我的本意是进场条件符合条件的第一时间点,这个第一时间点符合的时候在前三就进场,如果过了第一时间点就算是继续突破幅度从第五上升到前三也不进场
|
-- 作者:FACAI123456 -- 发布时间:2016/6/1 16:08:38 -- 你会改吗,我把VBA模型给你啊,能帮忙改一下吗 |
-- 作者:fly -- 发布时间:2016/6/2 9:20:13 -- 合理的解决办法,耐心的将问题分解,逐步请教老师。通过这个过程学习程序编写.
你要学会理清思路,将问题分解,工作人员才能具体的帮助到你,而不是将所有代码都发出来。
比如, 1.按照均线分析里的进场条件做幅度排名前三的品种,这一步,你是怎么实现的,你遇到了什么困难
2.找出排名前三的品种,满足什么条件,你会交易,最好能配上你的图,来说明这些问题 |
-- 作者:FACAI123456 -- 发布时间:2016/6/2 9:47:16 -- 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; 我现在的问题是对满足多头或者空头开仓条件的第一时间点进行计数,我不知道你明白不明白,在满足开仓第一时间点开始计数一直到符合平仓结束,一分钟周期, 意思就是对第一符合开仓时间点进行计数 |