大佬帮忙修补一下,不开单,菜鸟不胜感激

 

就是简单KD指标的D线上破85平多单, 开空单, D线下坡15平空单,开多单,

//--- input parameters
input int                     kperiod=30;           //K周期
input int                     dperiod=6;           //D周期
input int                     slow=6;              //慢速
input ENUM_MA_METHOD          mam=MODE_SMA;        //移动平均
input ENUM_STO_PRICE          sto=STO_CLOSECLOSE;  //价格字段
input int                     level1=97;           //上提醒水平位
input int                     level2=3;           //下提醒水平位

bool     ifalert=false;
datetime atime=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {

   LabelCreate("KDALERT",15,20,"KD信号提醒",8);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {

   ObjectDelete(0,"KDALERT");
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   string tfperiod;
   switch(Period())
     {
      case 1     :tfperiod="1M" ; break;
      case 2     :tfperiod="2M" ; break;
      case 3     :tfperiod="3M" ; break;
      case 4     :tfperiod="4M" ; break;
      case 5     :tfperiod="5M" ; break;
      case 6     :tfperiod="6M" ; break;
      case 10    :tfperiod="10M"; break;
      case 12    :tfperiod="12M"; break;
      case 15    :tfperiod="15M"; break;
      case 20    :tfperiod="20M"; break;
      case 30    :tfperiod="30M"; break;
      case 60    :tfperiod="1H" ; break;
      case 120   :tfperiod="2H" ; break;
      case 180   :tfperiod="3H" ; break;
      case 240   :tfperiod="4H" ; break;
      case 360   :tfperiod="6H" ; break;
      case 480   :tfperiod="8H" ; break;
      case 720   :tfperiod="12H"; break;
      case 1440  :tfperiod="1D" ; break;
      case 10080 :tfperiod="1W" ; break;
      case 43200 :tfperiod="1MN"; break;
      default    :tfperiod=IntegerToString(Period());
     }
   if(atime!=0 && Time[0]>atime)
     {
      ifalert=false;
     }
   double kdm1=iStochastic(NULL,0,kperiod,dperiod,slow,mam,sto,MODE_MAIN,1);
   double kdm2=iStochastic(NULL,0,kperiod,dperiod,slow,mam,sto,MODE_MAIN,2);
   double kds1=iStochastic(NULL,0,kperiod,dperiod,slow,mam,sto,MODE_SIGNAL,1);
   double kds2=iStochastic(NULL,0,kperiod,dperiod,slow,mam,sto,MODE_SIGNAL,2);
   if(kdm1>kds1 && kdm2<kds2 && kds1<level2 && kds2<level2 && ifalert==false)
     {
      Alert(Symbol()+" "+tfperiod+" KD 出现多单信号");
       SendMail(Symbol()+" "+tfperiod+" KD 出现多单信号","");
      ifalert=true;
      atime=Time[0];
     }
   if(kdm1<kds1 && kdm2>kds2 && kds1>level1 && kds2>level1 && ifalert==false)
     {
      Alert(Symbol()+" "+tfperiod+" KD 出现空单信号");
      SendMail(Symbol()+" "+tfperiod+" KD 出现空单信号","");
      ifalert=true;
      atime=Time[0];
     }
  }
//+------------------------------------------------------------------+
//| Create Label                                                     |
//+------------------------------------------------------------------+
bool LabelCreate(string name,int xdt,int ydt,string txt,int size)
  {
   ResetLastError();
   if(!ObjectCreate(0,name,OBJ_LABEL,0,0,0))
     {
      Print(__FUNCTION__,
            ": failed to create text label! Error code = ",GetLastError());
      return(false);
     }
   ObjectSetInteger(0,name,OBJPROP_XDISTANCE,xdt);
   ObjectSetInteger(0,name,OBJPROP_YDISTANCE,ydt);
   ObjectSetInteger(0,name,OBJPROP_CORNER,CORNER_LEFT_UPPER);
   ObjectSetString(0,name,OBJPROP_TEXT,txt);
   ObjectSetString(0,name,OBJPROP_FONT,"黑体");
   ObjectSetInteger(0,name,OBJPROP_FONTSIZE,size);
   ObjectSetDouble(0,name,OBJPROP_ANGLE,0);
   ObjectSetInteger(0,name,OBJPROP_ANCHOR,ANCHOR_LEFT);
   ObjectSetInteger(0,name,OBJPROP_COLOR,clrWhite);
   ObjectSetInteger(0,name,OBJPROP_BACK,false);
   ObjectSetInteger(0,name,OBJPROP_SELECTABLE,false);
   ObjectSetInteger(0,name,OBJPROP_SELECTED,false);
   ObjectSetInteger(0,name,OBJPROP_HIDDEN,true);
   ObjectSetInteger(0,name,OBJPROP_ZORDER,0);
   ObjectSetString(0,name,OBJPROP_TOOLTIP,"\n");
   return(true);
  }
//+------------------------------------------------------------------+
//| End of the code                                                  |
//+------------------------------------------------------------------+

 
源码里没有订单发生的指令,当然不会开单了
 
我请很多个人写过多个指标在周期共振!但是就是无法正确在周期上显示其它周期指标实时信号?例如:在一分钟看到其它周期是没有信号!但是其实在其它周期指标已经是多或者已经是空了!这个问题有时候会发生!不准确有时候准确!尤其在大准确看一分钟4小时,1小时有时候是1天的准确看一分钟就是不准确!意思是1分钟准确指标是多或者空了!但是在大周期屏幕那看到的是无信号!很多帮我写的都写不准确!就是无法实时显示?有那位老师知道是为什么吗?