您现在的位置:程序化交易>> 期货公式>> 文华财经>> 文华财经知识>>正文内容

代码求助,恒温器代码求助!急急急 [文华财经]

  • 咨询内容:   

    代码

     

    //策略:恒温器系统
    //类型:中长期通道突破
    //版本:1.0
    //修订时间:2012.11.6
    //Designed By Rogarz

     

    //中间变量
    input:m(50,5,300,30),N(1.25,0.1,10,0.1),ss(1,1,100,1),k1(0.5,0.1,1,0.1),k2(0.75,0.1,1,0.1);
    variable:A:=0;//0表示仓位是在趋势模式下下单  1表示在震荡模式下下单
    MID :  MA(CLOSE,M);//布林中轨
    UPPER:MID + N*STD(CLOSE,M);//布林上轨
    LOWER:MID - N*STD(CLOSE,M);//布林下轨
    今开:=callstock(stklabel,vtopen,6,0);
    CMI:=abs(close-ref(close,29))/(hhv(high,30)-LLV(L,30))*100;//0-100 取值越大,说明趋势越强,CMI<20震荡模式,反之为趋势
    关键价:(high+low+close)/3;//关键价的计算,国外常称作中枢价格(pivot point)
    ATR10:=ma(tr,10);
    3日均低价:=ma(L,3);

    3日均高价:=ma(h,3);

    手数:=ss;

     

    //交易条件
    if C<关键价 then begin
    趋买市开多平空条件:=C>max(今开+k1*ATR10,3日均低价);
    趋买市开空平多条件:=C<min(今开-k2*ATR10,3日均高价);
    end
        
    if c>关键价 then begin
    趋卖市开多平空条件:=C>max(今开+k2*atr10,3日均低价);
    趋卖市开空平多条件:=C<min(今开-k1*atr10,3日均高价);
    end

    趋势开多条件:=c>upper;
    趋势开空条件:=c<lower;
    趋势平多条件:=c<mid;
    趋势平空条件:=c>mid;

    震荡多单平仓条件:=c<=enterprice-3*atr10;
    震荡空单平仓条件:=c>=enterprice+3*ATR10;


    //交易系统
    if cmi<20 then begin {震荡模式}
       if C<关键价 then begin
       趋买市平空:sellshort(趋买市开多平空条件 and holding<=0,手数,market);
       趋买市平多:sell(趋买市开空平多条件 and holding>=0,手数,market);
       趋买市开多:buy(趋买市开多平空条件 and holding<=0,手数,market);
       趋买市开空:buyshort(趋买市开空平多条件 and holding>=0,手数,market);
       A:=1;
       end
       if c>关键价 then begin
       趋卖市平空:sellshort(趋卖市开多平空条件 and holding<=0,手数,market);
       趋卖市平多:sell(趋卖市开空平多条件 and holding>=0,手数,market);
       趋卖市开多:buy(趋卖市开多平空条件 and holding<=0,手数,market);
       趋卖市开空:buyshort(趋卖市开空平多条件 and holding>=0,手数,market);
       a:=1;
       end
    ENd

    if cmi>=20 then BEGIN {趋势模式}
     if a=1 then begin //趋势模式下 原震荡模式下 仓位处理
        震荡多单平仓:sell(震荡多单平仓条件 and holding>0,手数,market);
        震荡空单平仓:sellshort(震荡空单平仓条件 and holding<0,手数,market);
        a:=0;
        end
        
        if a=0 then begin
     趋势平空:sellshort(趋势平空条件 and holding<0,手数,market);
     趋势平多:sell(趋势平多条件 and holding>0,手数,market);
     趋势开多:buy(趋势开多条件 and holding<=0,手数,market);
     趋势开空:buyshort(趋势开空条件 and holding>=0,手数,market);
     A:=0;
     end
    ENd
    //注意先平后开原则


    在论坛看见写的代码如下,可是不能识别代码啊,看看能否帮我改写一下,在wh6上使用谢谢!

    //新建指标 JZT

    3ZD:=HHV(L,3);  
    3ZG:=LLV(H,3);
    3JD:=MA(L,3);  
    3JG:=MA(H,3);

    GJJ:REF((HIGH+LOW+CLOSE)/3,1);

    //
    M:=50;
    N:=1.25;
    K1:=0.5;
    K2:=0.75;
    MID :MA(CLOSE,M);//布林中轨 
    TOP:MID + N*STD(CLOSE,M);//布林上轨
    BOTTOM:MID - N*STD(CLOSE,M);//布林下轨 
    N1:=BARSLAST(DATE<>REF(DATE,1))+1;
    KP:=REF(O,N1-1);
    CMIA:=ABS(CLOSE-REF(CLOSE,29))/(HHV(HIGH,30)-LLV(L,30))*100;
    CMI:=MA(CMIA,2);//

    TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
    ATR:=MA(TR,10);

    #IMPORT[DAY,1,JZT] AS VAR
    3D:=VAR.3JD;  
    3G:=VAR.3JG;
    ZG:=VAR.3ZG;
    ZD:=VAR.3ZD;
    PIVOT:VAR.GJJ;
    QS:MAX(KP+0.5*ATR,3D);
    QX:MIN(KP-0.5*ATR,3G);
    //引用日周期均线
    //震荡市1
    CMI<=20&&C<PIVOT&&C>MAX(KP+0.5*ATR,3D)&&BKVOL=0,BPK('A');//
    CMI<=20&&C<PIVOT&&C<MIN(KP-0.75*ATR,3G)&&SKVOL=0,SPK('A');
    //震荡市2
    CMI<=20&&C>PIVOT&&C>MAX(KP+0.75*ATR,ZD)&&BKVOL=0,BPK('A');
    CMI<=20&&C>PIVOT&&C<MIN(KP-0.5*ATR,ZG)&&SKVOL=0,SPK('A');//
    C<BKPRICE-3*ATR,SP('A');
    C>SKPRICE+3*ATR,BP('A');

    //趋势


    C>TOP&&BKVOL=0,BK('B');
    C<BOTTOM&&SKVOL=0,SK('B');
    C<MID,SP('B');
    C>MID,BP('B');

    AUTOFILTER;

     

  • 文华技术人员:  wh6不支持跨周期引用的,您需要加载在wh4或wh8.2实现

     

  • 文华客服:  我在wh8 也用不上 

     

  • 网友回复:  //新建指标 JZT

    3ZD:=HHV(L,3);  
    3ZG:=LLV(H,3);
    3JD:=MA(L,3);  
    3JG:=MA(H,3);

    GJJ:REF((HIGH+LOW+CLOSE)/3,1);

    //


    这一段是需要新建一个名称为JZT的指标的。


    下面的程序再加载在主图上。

     我们这里是测试成功的。

 

有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友

可联系技术人员 QQ: 511411198  点击这里给我发消息进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容