新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 698 1...691692693694695696697698699700701702703704705...1953 新评论 multiplicator 2018.11.22 09:49 #6971 Vitaly Muzichenko:直到你厌倦了写这些东西 真的吗?) Vitalii Ananev 2018.11.22 09:55 #6972 multiplicator: 真的吗?)是的,但作为一项规则,你不要写超过三个,因为这样的代码以后很难阅读,特别是在写完后已经过了很多时间的情况下。最好是将这些许多嵌套的ifs分成独立的函数。或使用开关操作员...案例 Andrei Sokolov 2018.11.23 16:04 #6973 Artyom Trishkin:讯息框()有什么方法可以使我在新的刻度线出现后点击,新的窗口不会出现,但会使用第一个窗口的值? void OnTick() { if (Orders()<1 && (1==message || !use_MessageBox)){ ticket=OrderSend(Symbol(), OP_SELL, lot, Bid, slippage, Ask+stopLoss*Point, Bid-takeProfit*Point, "", magic, 0, Red); message=0; } if (Orders()<1 && (message==0 || message==2) && use_MessageBox){ if(use_PlaySound) PlaySound ("tick"); message=-2; message =MessageBox("Текст, содержащий сообщение для отображения", "Необязательный текст для отображения в заголовке", IDOK); } if (Orders()<1 && (1==message || !use_MessageBox)){ ticket=OrderSend(Symbol(), OP_SELL, lot, Bid, slippage, Ask+stopLoss*Point, Bid-takeProfit*Point, "", magic, 0, Red); message=0; } } Ivan Rozhkov 2018.11.24 13:50 #6974 void Trailing() { for (int i=OrdersTotal() - 1; i>=0; i--) { if (OrderSelect(i, SELECT_BY_POS,MODE_TRADES)) { if (OrderMagicNumber() == MagicNumber && OrderSymbol() == Symbol()) { if (OrderType() == OP_BUY) { if (Bid - OrderOpenPrice() > TrailingStop*Point) { if (OrderStopLoss() < Bid-Point*(TrailingStop+TrailingStep) || OrderStopLoss() == 0) { if (!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-Point*TrailingStop,Digits),OrderTakeProfit(),0,Blue)) Print("error order modify"); } } } } } } if (OrderType() == OP_SELL) { if (OrderOpenPrice() - Ask > TrailingStop*Point) { if (OrderStopLoss() > Ask + Point * (TrailingStop+TrailingStep) || OrderStopLoss() == 0 ) { if (!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+Point*TrailingStop,Digits),OrderTakeProfit(),0,Red)) Print("error order modify"); } } } } //--------------------------------------------------------下午好,在测试中尾随工作如预期,但在现实生活中没有,或只是偶尔一次,不时出现错误的OrderModify错误4108,我不明白是什么问题,请纠正,我理解为EA没有正确选择订单 进行修改。 我想描述一下我的EA。 当两个MAs交叉时,用魔法打开2个位置,一个做空,一个做多。短的在武井或在MA交叉点关闭,长的应该拖网。选择拖网的长仓是根据神奇的数字进行的。 也许我在开仓时,在代码的某个部分犯了错误。 //BUY if (fast1>slow1&&fast2<slow2) { if (StopLoss_1>0) sl=NormalizeDouble(Bid-StopLoss_1*Point,Digits); else sl=0; if (TakeProfit_1>0) tp=NormalizeDouble(Ask+TakeProfit_1*Point,Digits); else tp=0; closeshrts(); OrderSend(Symbol(),OP_BUY,Lts,NormalizeDouble(Ask,Digits),5,sl,tp,NULL,0,0,Blue); } //BUY_2 if (fast1>slow1&&fast2<slow2) { if (StopLoss_2>0) sl=NormalizeDouble(Bid-StopLoss_2*Point,Digits); else sl=0; if (TakeProfit_2>0) tp=NormalizeDouble(Ask+TakeProfit_2*Point,Digits); else tp=0; closeshrts(); OrderSend(Symbol(),OP_BUY,Lts,NormalizeDouble(Ask,Digits),5,sl,tp,NULL,MagicNumber,0,Blue); } //SELL if(fast1<slow1&&fast2>slow2) { if (TakeProfit_1>0) sl=NormalizeDouble(Ask+StopLoss_1*Point,Digits); else sl=0; if (StopLoss_1>0) tp=NormalizeDouble(Bid-TakeProfit_1*Point,Digits); else tp=0; closelongs(); OrderSend(Symbol(),OP_SELL,Lts,NormalizeDouble(Bid,Digits),5,sl,tp,NULL,0,0,Red); } //SELL_2 if(fast1<slow1&&fast2>slow2) { if (TakeProfit_2>0) sl=NormalizeDouble(Ask+StopLoss_2*Point,Digits); else sl=0; if (StopLoss_2>0) tp=NormalizeDouble(Bid-TakeProfit_2*Point,Digits); else tp=0; closelongs(); OrderSend(Symbol(),OP_SELL,Lts,NormalizeDouble(Bid,Digits),5,sl,tp,NULL,MagicNumber,0,Red); } 我不知道,也许我应该通过一个循环打开订单? 如何正确编写这段代码,以便设置正确的止损和止盈? 正如我所写的--它只对卖出有效,对买入设置止损为0。 (请帮助我走上正轨))。 Zvezdochet 2018.11.26 13:13 #6975 你好,我的一个朋友问我一个关于MQL4字母的问题。 那么,西里尔字母的俄罗斯字母是字母表的一部分吗?而问号????,包括在字母表的字符集中?????。和反斜线\\\\\\\,它到底是不是字母表的一部分? Alexander Zhmurenko 2018.11.26 20:35 #6976 进入。 Zvezdochet 2018.11.27 12:01 #6977 Alexander Zhmurenko:)来的。你能详细说明进去的内容吗? 我写的是一个熟人的一句话。我只是把它复制并粘贴进去。他正试图教我MQL。我正在绞尽脑汁,所以请写下什么东西进去。 a) 问号( ?) b) backslash(反斜杠)。 Aleksey Lebedev 2018.11.27 12:42 #6978 Zvezdochet:你能详细说明进去的内容吗? 我写的是一个熟人的一句话。我只是把它复制并粘贴进去。他正试图教我MQL。我正在绞尽脑汁,所以请写下什么东西进去。 a)一个问号(?) b ) 反斜杠( ` )使用西里尔字符是一个没有记录的特征 可以在ID中使用的字符有:数字0-9,小写和大写字母a-z和A-Z,可识别为不同的字符,下划线字符(_)。第一个字符不能是数字。 语法。 Alexander Zhmurenko 2018.11.27 17:18 #6979 int OnInit() { //--- color желтый = clrAqua; //--- return(INIT_SUCCEEDED); } 变量也可以是 Dmitry Belov 2018.11.28 07:45 #6980 你好,请你告诉我为什么ZigD[0]在某些情况下没有输出? for(ww = 0; ww <= Bars-1; ww++) { zzz = iCustom(NULL, 0, "ZigZag", ExtDepth, ExtDeviation, ExtBackstep, 0, ww); if(zzz > 0.0) { ZigM[kk]=zzz; kk++; ZigD[dd]=ww; dd++; } } 1...691692693694695696697698699700701702703704705...1953 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
直到你厌倦了写这些东西
真的吗?)
是的,但作为一项规则,你不要写超过三个,因为这样的代码以后很难阅读,特别是在写完后已经过了很多时间的情况下。最好是将这些许多嵌套的ifs分成独立的函数。或使用开关操作员...案例
讯息框()
有什么方法可以使我在新的刻度线出现后点击,新的窗口不会出现,但会使用第一个窗口的值?
下午好,在测试中尾随工作如预期,但在现实生活中没有,或只是偶尔一次,不时出现错误的OrderModify错误4108,我不明白是什么问题,请纠正,我理解为EA没有正确选择订单 进行修改。
我想描述一下我的EA。
当两个MAs交叉时,用魔法打开2个位置,一个做空,一个做多。短的在武井或在MA交叉点关闭,长的应该拖网。选择拖网的长仓是根据神奇的数字进行的。
也许我在开仓时,在代码的某个部分犯了错误。
我不知道,也许我应该通过一个循环打开订单? 如何正确编写这段代码,以便设置正确的止损和止盈? 正如我所写的--它只对卖出有效,对买入设置止损为0。
(请帮助我走上正轨))。
)来的。
你能详细说明进去的内容吗? 我写的是一个熟人的一句话。我只是把它复制并粘贴进去。他正试图教我MQL。我正在绞尽脑汁,所以请写下什么东西进去。
a) 问号( ?)
b) backslash(反斜杠)。
你能详细说明进去的内容吗? 我写的是一个熟人的一句话。我只是把它复制并粘贴进去。他正试图教我MQL。我正在绞尽脑汁,所以请写下什么东西进去。
a)一个问号(?)
b ) 反斜杠( ` )
使用西里尔字符是一个没有记录的特征
可以在ID中使用的字符有:数字0-9,小写和大写字母a-z和A-Z,可识别为不同的字符,下划线字符(_)。第一个字符不能是数字。
语法。
你好,请你告诉我为什么ZigD[0]在某些情况下没有输出?