[原创]请教问题 (文华财经WH8赢智V8.2)

投资者咨询:[原创]请教问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-5-23 9:57
 老师能帮我把下列公式变成文华9嘛


//周期引用

TR : MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));

ATR : MA(TR,26),COLORYELLOW;

 

//IFICIH上回测,3.102

#IMPORT[MIN,15,ZZ01] AS VAR

ATR:VAR.ATR;

ATR1:REF(ATR,DAYBARPOS);  //跨周期引用15分钟的ATR

 

NN:=BARSLAST(DATE<>REF(DATE,1))+1;

KK5:REF(MA(C,5),NN-5);//开盘5分钟均价

KK20:=REF(HHV(H,20),NN-20);//十分钟最高点

O1:=REF(O,DAYBARPOS-1);//今日开盘价

H1:=HHV(H,DAYBARPOS);//今日最高价

L1:=LLV(L,DAYBARPOS);//今日最低价

O2:=REF(O1,DAYBARPOS);//昨日开盘价

C2:=REF(CLOSE,DAYBARPOS);//昨日收盘价

H2:=REF(H1,DAYBARPOS);//昨日最高价

L2:=REF(L1,DAYBARPOS);//昨日最低价

LL2:=MIN(O2,C2);//开盘价与收盘价中最低价

HH2:=MAX(O2,C2);//开盘价与收盘价中最高价

MA10:MA(C,10);

AA:(H2-L2)/O1>0.011 AND C2<O2 AND (HH2-LL2)/(H2-L2)>0.11  AND MA10<KK20;

M1:1+0.01*M;

//开仓方式1

IF TIME>=1000 AND TIME<=1130 THEN BEGIN

COUNT(BARSSK=1,DAYBARPOS)<1 AND AA AND MA(C,5)<HH2,SK;

TRADE_OTHER('AUTO');

END

 

(KK5-L1)<ATR1 AND DAYBARPOS>30,BP;//开盘90分钟判断,未跌破ATR止损出局

C>SKPRICE+20,BP;

 

CLOSEMINUTE<=2,BP;

CLOSEMINUTE<=2,SP;

AUTOFILTER;

技术人员回复
日期:2018-5-23 10:10

您1楼思路很简单,用wh8就可以直接实现,为什么非要转用MQ呢

 

wh8就是为您这样的个人程序化用户设计的,麦语言编写简单易懂,自己就可以编写契合自己思路的模型


而MQ适合有专业编程团队的机构用户使用,相应的语言也更复杂,没有编程基础的话学习难度很大

 

所以如果您没有别的特别需求,建议继续使用wh8软件,更适合您

投资者咨询:[原创]请教问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-5-23 9:57
 因为实盘只考虑买一个软件,而公司其他人员用的是文华9,所以麻烦老师转换下
投资者咨询:[原创]请教问题 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-5-23 9:57
 私募基金
技术人员回复
日期:2018-5-23 11:10

您1楼模型,部分代码写法不正确,改写同时给改正了(见注释部分),改写参考,

 

Params
    Numeric Length(26);
Vars
    Numeric TR;
    Numeric ATR;
    Numeric ATR1;
    Numeric N;
Begin
    TR = TrueRange;
    ATR = Ma(TR, Length);//求Length个周期内的TR的简单移动平均
  N=BarsLast(Date<>Ref(Date,1))+1;
  ATR1 = Ref(ATR, N);
    PlotNumeric("TR",TR);
    PlotNumeric("ATR",ATR);
    PlotNumeric("ATR1",ATR1);
End

 

以上指标请保存并命名为 ZZ01

 

 

跨周期主模型:

 

Vars
    Numeric ATR1;  
    Numeric NN; 
    Numeric N1; 
    Numeric MA5; 
    Numeric KK5; 
    Numeric N2; 
    Numeric HH; 
    Numeric KK20; 
    Numeric O1;  
    Numeric H1; 
    Numeric L1; 
    Numeric O2; 
    Numeric C2; 
    Numeric H2; 
    Numeric L2; 
    Numeric LL2; 
    Numeric HH2; 
    Numeric MA10; 
    Numeric AA; 
Setting
 Trade_Other:Auto;
ImPort
   #ImPort [Min,15,ZZ01] As Var1    
Begin
    ATR1=Var1.ATR1;   //这里您是想引用昨天的ATR,需要在被引用指标里重新定义昨天的再引用
  NN=BarsLast(Date<>Ref(Date,1))+1;
  N1=IIF(NN<=5,NN,InvalidNumeric);
  MA5=Ma(Close,N1);
  KK5=ValueWhen(NN==5,MA5); //这里您想求开盘5分钟均价吧,这样改下,以加载1分钟K线为例,开盘5分钟内均线返回值见前面1行MA5指标
  N2=IIF(NN<=10,NN,InvalidNumeric);
  HH=HHV(High,N2);
  KK20=ValueWhen(NN==10,HH);//这里是想求开盘十分钟的最高点吧,方法同上
  O1=ValueWhen(NN==1,Open);//今日开盘价
  H1=HHV(High,NN);//今日最高价
  L1=LLV(Low,NN);//今日最低价
  O2=Ref(O1,NN);//昨日开盘价
  C2=Ref(Close,NN);//昨日收盘价
  H2=Ref(H1,NN);//昨日最高价
  L2=Ref(L1,NN);//昨日最低价
  LL2=Min(O2,C2);//开盘价与收盘价中最低价
  HH2=Max(O2,C2);//开盘价与收盘价中最高价
  MA10=Ma(Close,10);
  AA=(H2-L2)/O1>0.011 && C2<O2 && (HH2-LL2)/(H2-L2)>0.11 && MA10<KK20;

  If(Time>=1000 && Time<=1130 && Count(BarsSellShort==1,NN)<1 && AA && Ma(Close,5)<HH2)
 {
 SellShort;
 }
   If((KK5-L1) < ATR1 && NN>30)//开盘90分钟判断,未跌破ATR止损出局
   {
      BuyToCover;
   }
   If(Close > SKPrice + 20)
   {
      BuyToCover;
   }
   If(CloseMinute<=2)
   {
      BuyToCover;
   }
End