9qihuo.com
我们只提供有用的干货

请求修改代码 (文华财经)

投资者咨询:请求修改代码 (文华财经)
来源:文华财经  日期:2020-9-8 17:10
   ZD11=Low<LLLB ;
  ZD22 =Close>LLLB && LLLB>Ref(LLLB,1)||Close>LLLB && UUUB<Ref(UUUB,1);
  ZD1= ZD22==1 && REF(EXIST(ZD11,DAYBARPOS),1) && COUNT(ZD22,DAYBARPOS)==1;
  ZDP1=BKHigh>UUUB;
  ZDP11= High>LLLB;
  ZDP22= Close<LLLB;
  ZDP2=ZDP22 && ZDP11;

  ZK11=High>UUUB ;
  ZK22 =Close<UUUB && LLLB>Ref(LLLB,1) ||Close<UUUB && UUUB<Ref(UUUB,1) ;
  ZK1= ZK22==1 && REF(EXIST(ZK11,DAYBARPOS),1) && COUNT(ZK22,DAYBARPOS)==1; 
  ZKP1=SKLow<LLLB;
ZKP11= Low<UUUB;
ZKP22= Close>UUUB;
ZKP2=ZKP22 && ZKP11;

老师,帮我看一眼。我想表达的意思是,以做多为例,当Low<LLLB(K线打出下轨)出现之后,K线运行,之后出现zd22的条件,这时入场。然后出场条件有两个,zdp1是止盈,即BKHigh>UUUB就走。zdp2是止损,即当

zdp11之后(K线回到轨道内),没往上走,这时zdp22(K线再次打出下轨)时出场。

我现在这么写出来,就出现头一个信号,之后就没有了。求老师帮我改改。我现在就是想一一对应,当zd11出现之后,一定会出现两个结果,就是要么打下轨要么返回上轨,当这个过程结束之后,等待新的下一次K线

的high>UUUB或是Low<LLLB 出现再下单。

技术人员回复
日期:2020-9-8 17:12
您提供下完整源码,我们分析下
投资者咨询:请求修改代码 (文华财经)
来源:文华财经  日期:2020-9-8 17:10
 Setting
MultSig:0,0,1,0;
    Trade_Other:Auto;

Vars
  
   Numeric N; //下单手数
   Numeric T; //时间间隔
   Numeric SH; //平仓参数
 
   Numeric MTR2; //三重指数中线
   Numeric OPFLG; //模型处理标志
   Numeric NOW; //当前时间
   Numeric TIME1; //开盘限制时间
   Numeric TIME2; //尾盘闭市平仓时间
    Numeric TIME3; //尾盘闭市平仓时间
   Numeric SJ; //可开仓的交易时间
   Numeric BIDP; //买一价
   Numeric ASKP; //卖一价
   Numeric RLP; //涨停价
   Numeric FLP; //跌停价
   Numeric BRP; //多头可用持仓
   Numeric SRP; //空头可用持仓
   Numeric BKDFLG; //买开处理标志
   Numeric SKDFLG; //卖开处理标志
   Numeric BPDFLG; //买平处理标志
   Numeric SPDFLG; //卖平处理标志
   
    Numeric BOLL; //
   Numeric UUUB; //
   Numeric UUB; //
   Numeric UB; //
   Numeric LB; //
   Numeric LLB; //
   Numeric LLLB; //
   
   
   Numeric KMID; //可用资金
   Global_Numeric SIGIDA; //记录指令序号
   Global_Numeric KCP; //记录K线位置
   Global_Numeric KCPB; //记录K线位置
   Global_Numeric SIGF; //信号类型标志
   Global_Numeric SIGCF; //当前信号类型
   Global_Numeric SIGCN; //信号出现次数
   Global_Numeric SIGXN; //信号消失次数
   Global_Numeric SIGXT; //信号消失时间
   Global_Numeric SIGFLG; //信号处理标志
   Global_Numeric BKID,SKID; //开仓委托
   Global_Numeric BPID,SPID; //平仓委托
   Global_Numeric BKFLG,SKFLG; //开仓标志
   Global_Numeric BPFLG,SPFLG; //平仓标志
   Global_Numeric BKDEL,SKDEL; //开仓撤单标志
   Global_Numeric BPDEL,SPDEL; //平仓撤单标志
   Global_Numeric BKM,SKM; //开仓委托手数
   Global_Numeric BPM,SPM; //平仓委托手数
   Global_Numeric BKP,SKP; //开仓委托价格
   Global_Numeric BPP,SPP; //平仓委托价格
   Global_Numeric BKT,SKT; //开仓委托时间
   Global_Numeric BPT,SPT; //平仓委托时间
   Numeric P1,P2; //资金比例
    Numeric NP; //开仓单手资金
   Numeric NEWP; //最新价
   Numeric MRT; //保证金率
   Numeric UNT; //交易单位
   Numeric EQT; //账户权益
   Numeric ZJYP; //资金使用率
   Numeric FRM; //可用资金
   Global_Numeric ZD1; //做多条件1
   Global_Numeric ZD11; //做多条件1
   Global_Numeric ZD22; //做多条件2
   Global_Numeric ZDP11; //做多条件1
   Global_Numeric ZDP22; //做多条件2
   Global_Numeric ZDP1; //做多条件1
   Global_Numeric ZDP2; //做多条件2
 Global_Numeric ZK1; //做多条件1
   Global_Numeric ZK11; //做多条件1
   Global_Numeric ZK22; //做多条件2
   Global_Numeric ZKP11; //做多条件1
   Global_Numeric ZKP22; //做多条件2
   Global_Numeric ZKP1; //做多条件1
   Global_Numeric ZKP2; //做多条件2
  

   Global_String BKSIG,SKSIG; //开仓委托信号
   Global_String BPSIG,SPSIG; //平仓委托信号
Global_Numeric  MZD60 ; 
   Global_Numeric  MZK60  ;
  
Begin
//------------------------信号发出------------------------//
   If(1) //信号发出
   {
     //N = Money*0.8/(Close*MarginRatio*ContractUnit1);
     N = 1;
     BOLL=MA(CLOSE,29);
     UUUB=BOLL+3*STD(CLOSE,29);
     UUB=BOLL+2*STD(CLOSE,29);
     UB=BOLL+1*STD(CLOSE,29);
     LB=BOLL-1*STD(CLOSE,29);
     LLB=BOLL-2*STD(CLOSE,29);
     LLLB=BOLL-3*STD(CLOSE,29);
    


   PlotLine(" UUUB ", UUUB  ); //超长均线
 PlotLine("  UUB",   UUB ); //超长均线ANGELLUDAYQJ
 PlotLine(" UB ", UB  ); //超长均线
  PlotLine(" BOLL", BOLL ); //超长均线ANGELLUDAYQJ
 PlotLine(" LB ", LB  ); //超长均线
  PlotLine("  LLB",   LLB); //超长均线ANGELLUDAYQJ
 PlotLine(" LLLB ", LLLB  ); //超长均线


ZD11=Low<LLLB ;
ZD22 =Close>LLLB &&LLLB>Ref(LLLB,1)||Close>LLLB && UUUB<Ref(UUUB,1)  ;
ZD1= ZD22==1 && REF(EXIST(ZD11,DAYBARPOS),1); 
ZDP1=hhv(high,barsbk)>UUUB;
ZDP11= exist(High>LLLB,barsbk);
ZDP22= Close<LLLB;
ZDP2=ZDP22 && ZDP11;
ZK11=High>UUUB ;
ZK22 =Close<UUUB &&LLLB>Ref(JJXLLLB,1) ||Close<UUUB &&UUUB<Ref(UUUB,1) ;
ZK1= ZK22==1 && REF(EXIST(ZK11,DAYBARPOS),1); 
ZKP1=llv(low,barssk)<LLLB;
ZKP11= exist(Low<UUUB,barssk);
ZKP22= Close>UUUB;
ZKP2=ZKP22 && ZKP11;

    //做多开平仓
  If( ZD1 ==1   && SJ == 1&& MarketPosition == 0) //如果满足做多条件
   {
    BK(N,Open); //发出做多信号 5代表5秒 若60代表60秒
    }
 //If( ZD2 ==1  && TIME1 >3 && SJ == 1&& MarketPosition == 0) //如果满足做多条件
   //{
   // BK(N,Open); //发出做多信号 5代表5秒 若60代表60秒
   // }
   If(ZDP1 ==1  &&  MarketPosition == 1) //如果满足平多条件
  {
  SP(BKVol,Open); //发出平多信号
   }     
  If(ZDP2 ==1  &&  MarketPosition == 1) //如果满足平多条件
  {
 SP(BKVol,Open); //发出平多信号
   }     
 
  
 
 
//做空开平仓
  If( ZK1 ==1  && TIME1 >3   && SJ == 1&& MarketPosition == 0) //如果满足做多条件
   {
   SK(N,Open); //发出做空信号 5代表5秒 若60代表60秒
   }
 
 If(ZKP1==1   && MarketPosition == -1) //如果满足平空条件
  {
   BP(SKVol,Open); //发出平空信号
    }
 If(ZKP2==1   && MarketPosition == -1) //如果满足平空条件
  {
  BP(SKVol,Open); //发出平空信号
  }


谢谢老师了 
技术人员回复
日期:2020-9-8 17:27
 分析后回复
投资者咨询:请求修改代码 (文华财经)
来源:文华财经  日期:2020-9-8 17:10
 老师 这个做出来信号可能会很多 就是能达到对应的效果就行 其他的不用管 谢谢老师
投资者咨询:请求修改代码 (文华财经)
来源:文华财经  日期:2020-9-8 17:10
 老师不忙的时候一定帮我写一下 谢谢
技术人员回复
日期:2020-9-8 19:05
 您的思路较为复杂,分析后在此回复

请您耐心等待
投资者咨询:请求修改代码 (文华财经)
来源:文华财经  日期:2020-9-8 17:10
 那好那好 谢谢老师 我不着急了 
投资者咨询:请求修改代码 (文华财经)
来源:文华财经  日期:2020-9-8 17:10
 ZD11=Low<LLLB ;
ZD22 =Close>LLLB &&LLLB>Ref(LLLB,1)||Close>LLLB && UUUB<Ref(UUUB,1)  ;
ZD1= ZD22==1 && REF(EXIST(ZD11,DAYBARPOS),1); 
ZDP1=hhv(high,barsbk)>UUUB;
ZDP11= exist(High>LLLB,barsbk);
ZDP22= Close<LLLB;
ZDP2=ZDP22 && ZDP11;
ZK11=High>UUUB ;
ZK22 =Close<UUUB &&LLLB>Ref(JJXLLLB,1) ||Close<UUUB &&UUUB<Ref(UUUB,1) ;
ZK1= ZK22==1 && REF(EXIST(ZK11,DAYBARPOS),1); 
ZKP1=llv(low,barssk)<LLLB;
ZKP11= exist(Low<UUUB,barssk);
ZKP22= Close>UUUB;
ZKP2=ZKP22 && ZKP11;

老师 麻烦你看一眼这个 我觉得这个代码不符合条件的地方就是zd1里面的DAYBARPOS,用这个就只能是出现一次打上轨就全天都做一个方向了,没法做到对应,即打完上轨平仓了之后,回下轨开空仓,老师能不能想想办法把DAYBARPOS换成别的?
投资者咨询:请求修改代码 (文华财经)
来源:文华财经  日期:2020-9-8 17:10
 老师,实在不行设置一个区间?K线从下轨到直至上轨 设置成一个区间 反正再设一个?