新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 500 1...493494495496497498499500501502503504505506507...1953 新评论 Ihor Herasko 2018.03.23 18:13 #4991 Konstantin Seredkin:我只是举个例子,还有很多其他的算法,放在这个按钮上就好了,价差扩大了,按钮被按下了,我的手机上传来一条短信,说机器人停止了,或者4个机器人在账户上交易,第5个机器人控制账户保证金,当保证金降到设定值的时候,我们就切断自动交易,所有的机器人都吸了,直到我过来看什么,哪里进入缩水状态了。但是,从图表中删除一个机器人是对兔子的大炮......按钮是一个复杂的解决方案,允许你通过预定的算法杀死所有的机器人。 我在某处看到过一个针对mql5的解决方案,但我找不到了。这就是我所说的--这是一个激进的解决方案。正确的解决方案是修改专家顾问的代码,以便在某些情况下,它将不执行交易行为和与之相关的一切。例如,传播控制是初级的。 void OnTick() { double fPoint = Point(); if (fPoint <= 0.0) return; int nSpread = int(MathRound((Ask - Bid) / fPoint)); if (nSpread > 50) return; ... Действия советника при нормальном спреде } Ihor Herasko 2018.03.23 18:20 #4992 嗯,自动交易按钮可以通过模拟Ctrl+E来按下/取消。但是,正如我所说,这是在WinAPI的帮助下。 #include <WinUser32.mqh> #define VK_CONTROL 0x11 #define KEY_CODE 'E' void PressOrReleaseAutotrade() { keybd_event(VK_CONTROL, 0, 0, 0); keybd_event(KEY_CODE, 0, 0, 0); keybd_event(KEY_CODE, 0, 2, 0); keybd_event(VK_CONTROL, 0, 2, 0); } [删除] 2018.03.23 21:52 #4993 Ihor Herasko:嗯,自动交易按钮可以通过模拟Ctrl+E来按下/取消。但是,正如我所说,这已经是在使用WinAPI了。 谢谢!还有,你怎么能让一个笑脸变得悲伤呢?) Konstantin Seredkin 2018.03.24 00:53 #4994 Ihor Herasko:嗯,自动交易按钮可以通过模拟Ctrl+E来按下/取消。但是,正如我所说,这是用WinAPI。 正是如此,我认为这是一个痛苦的简单方法,我忘记了这个库。谢谢,现在我们可以做我们想做的事了 Maxim Khrolenko 2018.03.24 09:27 #4995 做了MQL4脚本(代码如下),可以画出矩形(如下图),但问题在这里。对于虚线STYLE_DOT来说,只有宽度为1的才有效,而宽度为2或更多的则画出实线。你能告诉我,我的错误在哪里,还是有什么东西被隐瞒了? #property strict void OnStart() { //--- RectCreate("rect1",Time[1],Low[1],Time[10],High[10],clrYellow,STYLE_DOT, 1, false); RectCreate("rect2",Time[11],Low[11],Time[20],High[20],clrRed, STYLE_DOT, 2, false); //--- Sleep(20*1000); ObjectsDeleteAll(0); } //--- Function creates rectangle void RectCreate(const string f_name, // rectangle name datetime f_time1, // first point time double f_price1, // first point price datetime f_time2, // second point time double f_price2, // second point price const color f_color, // rectangle color const ENUM_LINE_STYLE f_style, // style of rectangle lines const int f_width, // width of rectangle lines const bool f_fill) // filling rectangle with color { if(ObjectCreate(0,f_name,OBJ_RECTANGLE,0,f_time1,f_price1,f_time2,f_price2)) { ObjectSetInteger(0,f_name,OBJPROP_COLOR,f_color); ObjectSetInteger(0,f_name,OBJPROP_STYLE,f_style); ObjectSetInteger(0,f_name,OBJPROP_WIDTH,f_width); ObjectSetInteger(0,f_name,OBJPROP_FILL,f_fill); ObjectSetInteger(0,f_name,OBJPROP_BACK,false); ObjectSetInteger(0,f_name,OBJPROP_SELECTABLE,false); ObjectSetInteger(0,f_name,OBJPROP_SELECTED,false); } } Artyom Trishkin 2018.03.24 09:29 #4996 Maxim Khrolenko:做了MQL4脚本(代码如下),可以画出矩形(如下图),但问题在这里。对于虚线STYLE_DOT来说,只有宽度为1的才有效,而宽度为2或更多的则画出实线。你能告诉我,我的错误在哪里,还是有什么东西被隐瞒了? 并手动绘制和改变风格和厚度试?那么从这些实验中可以得出什么结论呢? Maxim Khrolenko 2018.03.24 10:24 #4997 Artyom Trishkin: 你是否尝试过手动绘制并改变样式和厚度?那么从这些实验中可以得出什么结论呢?我想我已经找到了答案。这里说,"行文风格。它只在线条厚度为0或1 "时使用。这一定是宽度为2和更大的线条不能与实心线以外的线条一起工作的原因。 Konstantin Erin 2018.03.24 18:35 #4998 Maxim Khrolenko:我想我已经找到了答案。这里说,"行文风格。只在线条厚度为0或1 "时使用。这一定是实心线以外的线条在厚度为2或更厚时不工作的原因。完全正确。我也去过那里。 Вадим Мотеюнас 2018.03.24 18:49 #4999 先生们,请指教,我从Kim那里拿了一个函数,返回最后开仓的条数或-1。 int NumberOfBarOpenLastPos(string sym="",int tf=0,int op=-1,int mn=-1) { datetime oot; int i,k=OrdersTotal(); if(sym=="") sym=Symbol(); for(i=0; i<k; i++) { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==sym) { if(OrderType()==OP_BUY || OrderType()==OP_SELL || OrderType()==OP_BUYLIMIT || OrderType()==OP_SELLLIMIT) { if(op<0 || OrderType()==op) { if(mn<0 || OrderMagicNumber()==mn) { if(oot<OrderOpenTime()) oot=OrderOpenTime(); } } } } } } return(iBarShift(sym, tf, oot, True)); } 我调用这个函数并写了一个条件 if(Open[2]>Close[2] && Open[1]>Close[1] && Close[1]<Low[2]) { Comment("цена входа = ",DoubleToStr(Low[2],Digits)); if(NumberOfBarOpenLastPos("",0,-1,-1)!=0)//вызвал здесь ticket=OrderSend(Symbol(),OP_SELLLIMIT,0.1,Low[2],2,0,0,magic,0); if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) TP=NormalizeDouble(OrderOpenPrice()-tp*Point,Digits); SL=NormalizeDouble(OrderOpenPrice()+sl*Point,Digits); modify=OrderModify(ticket,OrderOpenPrice(),SL,TP,0); } 我查看了Print,发现这个函数返回-1,起初我以为没有订单,但过了一会儿,订单重新出现了,在同一个柱子上,停止后有一笔交易被打开。 dimkh87 2018.03.24 19:54 #5000 下午好。你知道在MT4和MT5中,是否可以用不同的TF叠加一个工具的图表,以及这些TF的指标?例如,我想在一个窗口中显示欧元/美元对 的3张图表,其中有TFs:日、4小时和小时,还可以叠加这些TFs的滑动指标。这有可能吗?我期待着任何帮助。 1...493494495496497498499500501502503504505506507...1953 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我只是举个例子,还有很多其他的算法,放在这个按钮上就好了,价差扩大了,按钮被按下了,我的手机上传来一条短信,说机器人停止了,或者4个机器人在账户上交易,第5个机器人控制账户保证金,当保证金降到设定值的时候,我们就切断自动交易,所有的机器人都吸了,直到我过来看什么,哪里进入缩水状态了。但是,从图表中删除一个机器人是对兔子的大炮......按钮是一个复杂的解决方案,允许你通过预定的算法杀死所有的机器人。
我在某处看到过一个针对mql5的解决方案,但我找不到了。
这就是我所说的--这是一个激进的解决方案。正确的解决方案是修改专家顾问的代码,以便在某些情况下,它将不执行交易行为和与之相关的一切。例如,传播控制是初级的。
嗯,自动交易按钮可以通过模拟Ctrl+E来按下/取消。但是,正如我所说,这是在WinAPI的帮助下。
嗯,自动交易按钮可以通过模拟Ctrl+E来按下/取消。但是,正如我所说,这已经是在使用WinAPI了。
谢谢!还有,你怎么能让一个笑脸变得悲伤呢?)
嗯,自动交易按钮可以通过模拟Ctrl+E来按下/取消。但是,正如我所说,这是用WinAPI。
正是如此,我认为这是一个痛苦的简单方法,我忘记了这个库。谢谢,现在我们可以做我们想做的事了
做了MQL4脚本(代码如下),可以画出矩形(如下图),但问题在这里。对于虚线STYLE_DOT来说,只有宽度为1的才有效,而宽度为2或更多的则画出实线。你能告诉我,我的错误在哪里,还是有什么东西被隐瞒了?
做了MQL4脚本(代码如下),可以画出矩形(如下图),但问题在这里。对于虚线STYLE_DOT来说,只有宽度为1的才有效,而宽度为2或更多的则画出实线。你能告诉我,我的错误在哪里,还是有什么东西被隐瞒了?
你是否尝试过手动绘制并改变样式和厚度?那么从这些实验中可以得出什么结论呢?
我想我已经找到了答案。这里说,"行文风格。它只在线条厚度为0或1 "时使用。这一定是宽度为2和更大的线条不能与实心线以外的线条一起工作的原因。
我想我已经找到了答案。这里说,"行文风格。只在线条厚度为0或1 "时使用。这一定是实心线以外的线条在厚度为2或更厚时不工作的原因。
完全正确。我也去过那里。
先生们,请指教,我从Kim那里拿了一个函数,返回最后开仓的条数或-1。
我调用这个函数并写了一个条件
我查看了Print,发现这个函数返回-1,起初我以为没有订单,但过了一会儿,订单重新出现了,在同一个柱子上,停止后有一笔交易被打开。