大佬帮忙修补一下,不开单,菜鸟不胜感激 新评论 yunyuna 2021.12.05 02:52 就是简单KD指标的D线上破85平多单, 开空单, D线下坡15平空单,开多单, //--- input parametersinput 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 | //+------------------------------------------------------------------+ 爆仓卫士源代码-Brust guard source code 专家顾问 - 杂项问题 Any questions from newcomers on MQL4 and MQL5, help and discussion on algorithms and codes Fan Tie Ceng 2021.12.05 10:35 #1 源码里没有订单发生的指令,当然不会开单了 leida265 liao 2021.12.05 16:59 #2 我请很多个人写过多个指标在周期共振!但是就是无法正确在周期上显示其它周期指标实时信号?例如:在一分钟看到其它周期是没有信号!但是其实在其它周期指标已经是多或者已经是空了!这个问题有时候会发生!不准确有时候准确!尤其在大准确看一分钟4小时,1小时有时候是1天的准确看一分钟就是不准确!意思是1分钟准确指标是多或者空了!但是在大周期屏幕那看到的是无信号!很多帮我写的都写不准确!就是无法实时显示?有那位老师知道是为什么吗? 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
就是简单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 |
//+------------------------------------------------------------------+