以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- ------自己改写的双轨道交易系统 ,为神马回测是0呢 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=142081) |
-- 作者:TomRidder716 -- 发布时间:2016/11/1 18:06:08 -- ------自己改写的双轨道交易系统 ,为神马回测是0呢 不是数据导入的问题 ,因为 其余的系统策略回测没有问题 代码如下 ,测试编译没有问题 //中间变量 INPUT:N(16,1,30,1),K1(0.4,0.1,1,0.1),K2(0.8,0.1,1,0.1),NMIN(6,1,10,1),SS(100,100,1000,100); //INPUT:P1(3,1,5,1),P2(80,10,100,10);{计算最大回撤止损}; VARIABLE:P2=80; variable:MAXPROFIT:=0; variable:PROFIT:=0; variable:DOWNPROFIT:=0; variable: EX=0; CYC:=BARSLAST(DATE<>REF(DATE,1))+1; LHIGH:=CALLSTOCK(STKLABEL,VTHIGH,6,-1); LLOW:=CALLSTOCK(STKLABEL,VTLOW,6,-1); LCLOSE:=CALLSTOCK(STKLABEL,VTCLOSE,6,-1); TOPEN:=VALUEWHEN(CYC=1,OPEN); HH:=HHV(LHIGH,N);//N日HIGH的最高价 HC:=HHV(LCLOSE,N);//N日CLOSE的最高价 LC:=LLV(LCLOSE,N);//N日CLOSE的最低价 LL:=LLV(LLOW,N);//N日LOW的最低价 MOVING:=MAX(HH-LL,HC-LL);//RANGE T1:=TIME>=090200 AND TIME<=145000+NMIN*100; T2:=TIME>=145000+NMIN*100 AND TIME<=150000; HOLDER:=SS; 幅度:=0; UP:TOPEN+K1*MOVING; DOWN:TOPEN-K2*MOVING; BUYCON:=C>UP AND HOLDING=0 ; BUYSHORTCON:=C<DOWN AND HOLDING=0 ; 亏跳:=10; 盈跳:=200; { 多头浮亏10跳止损条件: (ENTERPRICE-C)>5*MINDIFF(); 空头浮亏10跳止损条件: (C-ENTERPRICE)>5*MINDIFF(); } //移动动态止损部分 ///每天的 开盘的时候 持仓为0 开仓为0 IF TIME =090100 THEN BEGIN EXTGBDATASET(\'B\',0);//A 代表是否有仓位 b代表是否开过仓位 EXTGBDATASET(\'A\',0); END /// //持有空仓的情况 IF HOLDING=0 THEN BEGIN IF T1 THEN BEGIN IF BUYCON THEN BEGIN BUY( EXTGBDATA(\'B\')=0 AND EXTGBDATA(\'A\')=0,HOLDER,MARKET); EXTGBDATASET(\'A\',1); EXTGBDATASET(\'B\',1); END IF BUYSHORTCON THEN BEGIN BUYSHORT( EXTGBDATA(\'B\')=0 AND EXTGBDATA(\'A\')=0,HOLDER,MARKET); EXTGBDATASET(\'A\',-1); EXTGBDATASET(\'B\',1); END END END IF HOLDING>0 THEN BEGIN IF T1 THEN BEGIN //最高价格 浮亏10跳 止盈操作 //浮亏10跳 止损 IF ( AVGENTERPRICE()-DYNAINFO( 7)>10*MINDIFF) THEN BEGIN SELL(1,HOLDER,MARKET); EXTGBDATASET(\'A\',0); EXTGBDATASET(\'B\',1); END // END IF T2 THEN BEGIN SELL(1,HOLDER,MARKET); EXTGBDATASET(\'A\',0); EXTGBDATASET(\'B\',0); END END IF HOLDING<0 THEN BEGIN IF T1 THEN BEGIN IF ( DYNAINFO( 7)-AVGENTERPRICE()>10*MINDIFF) THEN BEGIN SELLSHORT(1,HOLDER,MARKET); EXTGBDATASET(\'A\',0); EXTGBDATASET(\'B\',1); END END IF T2 THEN BEGIN SELLSHORT(1,HOLDER,MARKET); EXTGBDATASET(\'A\',0); EXTGBDATASET(\'B\',0); END END //交易系统 { 开多:BUY(开多条件 AND T1 AND CYC>1,手数,MARKET); 开空:BUYSHORT(开空条件 AND T1 AND CYC>1,手数,MARKET); 收盘平多:SELL(T2,手数,MARKET); 收盘平空:SELLSHORT(T2,手数,MARKET); } 当前持仓:HOLDING,COLORGRAY,LINETHICK0; 当前资产:ASSET,NOAXIS,COLORGRAY;//输出当前资产,但不影响坐标最高最低值 |
-- 作者:jinzhe -- 发布时间:2016/11/2 9:00:42 -- 图表交易不要用dynainfo这一系列的动态行情函数,会有问题 图表交易不要用后台全局变量extgbdata,会有问题 |
-- 作者:TomRidder716 -- 发布时间:2016/11/2 19:07:48 -- 1.如果非要用 该用什么替代他们呢 |
-- 作者:TomRidder716 -- 发布时间:2016/11/2 19:10:56 -- 用 一般的变量代替 extgbdata 用什么代替最新的 dynainfo (7)呢 |
-- 作者:jinzhe -- 发布时间:2016/11/3 9:03:23 -- 用variable和close |