初学者的问题 MQL4 MT4 MetaTrader 4 - 页 206 1...199200201202203204205206207208209210211212213...261 新评论 Valeriy Yastremskiy 2020.06.15 16:17 #2051 a.lxrn: 这是一个来自初学者的问题)代码中的条件为例,请帮助。如何使一条消息在真实条件下被输出一次,即price>ma输出一条消息(而不是多条),我想你知道我的意思。如何正确地开出柜台? if(Work==false) // Критическая ошибка { if(AlertWork==false) // Если Алерта еще не было { Alert("Критическая ошибка. Эксперт не работает."); AlertWork=true; } return; } 怎么说呢,但你没有一次需要显示警报,分别的标志就得重置。 Alexey Kazmin 2020.06.15 20:08 #2052 你好,你能告诉我如何对一个自定义指标 进行编程,以便在指标连接到图表时不显示额外的线条(缓冲区)? Igor Makanu 2020.06.15 20:26 #2053 Alexey Kazmin:你好,你能告诉我如何对一个自定义指标 进行编程,以便在指标连接到图表时不显示额外的线条(缓冲区)? 使用这些属性 #property indicator_buffers 5 #property indicator_plots 1 Vitaly Muzichenko 2020.06.16 17:03 #2054 Vitaly Muzichenko: 关于交易、自动交易系统和策略测试的论坛 初学者的常见问题 MQL4 MT4 MetaTrader 4 Vitaly Muzichenko, 2020.06.14 16:29 在MT5中可以使用,但在MT4中使用同样的设置,我得到了沉默。 建1260 奇怪的事情。昨天和今天我的发送不成功,而刚才已经成功了,信息已经发送。根本没有改变或重建任何东西。 Alexey Kazmin 2020.06.17 20:45 #2055 Igor Makanu:使用这些属性 谢谢,我会试一试的。 Nauris Zukas 2020.06.18 11:36 #2056 我对图形对象感到困惑,我搞不清楚如何从CORNER_RIGHT_UPPER获得X Y坐标High[0]的像素?计算int X和int Y的函数是什么? Aleksei Krasilnikov 2020.06.24 13:50 #2057 Valeriy Yastremskiy:不知何故,但你必须显示警告不止一次,所以必须重新设置标志。 if(sizeBar && maxmin) { while(true) { int ticket = OrderSend(Symbol(), OP_BUY, 0.01, Ask, 5, sl, tp); if(ticket>0) break; } } 我还是不明白 假设有一个开仓的条件,比如说价格应该在手腕之上,并且开了一个买入订单。 这个条件将在很长一段时间内为真,在每一次迭代中,将由这个代码打开一个订单 我应该如何使一个订单被这个条件打开,这将是它? Valeriy Yastremskiy 2020.06.24 14:38 #2058 a.lxrn:我不明白。我们假设有一个开仓的条件,我们假设价格应该高于手腕,买入订单 将被打开。这个条件将在很长一段时间内为真,在每一次迭代中,将由这个代码打开一个订单我应该如何使一个订单被这个条件打开,这将是它? 如果开单条件为真,开单标志为假,则开单并将开单标志设为真。 Valeriy Yastremskiy 2020.06.24 14:38 #2059 a.lxrn:我不明白。我们假设有一个开仓的条件,我们假设价格应该高于手腕,买入订单 将被打开。这个条件将在很长一段时间内为真,在每一次迭代中,将由这个代码打开一个订单我应该如何使一个订单被这个条件打开,这将是它? 如果开单条件为真,开单标志为假,则开单并将开单标志设为真。 d4vv 2020.06.26 14:29 #2060 删除订单 请帮助我找到代码中的错误。编译器和测试器都没有显示错误,但限制没有被删除......。 void OnTick() if (Low[1] < val2 && BUY() == 0 && BUYLIMIT1() == 0 && BUYLIMIT2() == 0) { SL = NormalizeDouble(Ask - StopLoss*Point, 5); TP = NormalizeDouble(Ask + TakeProfit*Point, 5); ticket = OrderSend(Symbol(), OP_BUY, Lots, price, 3, SL, TP, "EU buy", Magic, 0, Red); if(ticket<0) Print("Не удалось открыть ордер"); } { if (BUY() == 1 && BUYLIMIT1() == 0 && BUYLIMIT2() == 0) { SL = NormalizeDouble(price1 - StopLoss1*Point, 5); TP = NormalizeDouble(price1 + TakeProfit1*Point, 5); ticket1 = OrderSend(Symbol(), OP_BUYLIMIT, Lots1, price1, 3, SL, TP, "EU buy", Magic1, 0, Red); { if (BUY() == 0 && BUYLIMIT1() == 1) { for(int i=OrdersTotal()-1; i>=X; i--) if(OrderSelect(i,SELECT_BY_TICKET,MODE_TRADES)&& OrderType() == OP_BUYLIMIT && OrderMagicNumber()==Magic1) { res=OrderDelete(OrderTicket(),clrWhite); Print("OrderDelete error ",GetLastError()); } return;} } } } { if (BUYLIMIT1() == 1 && BUYLIMIT2() == 0) { SL = NormalizeDouble(price2 - StopLoss2*Point, 5); TP = NormalizeDouble(price2 + TakeProfit2*Point, 5); ticket2 = OrderSend(Symbol(), OP_BUYLIMIT, Lots2, price2, 3, SL, TP, "GU buy", Magic2, 0, Red); { if (BUY1() == 0 && BUYLIMIT2() == 1) { for(int i=OrdersTotal()-1; i>=X; i--) if(OrderSelect(i,SELECT_BY_TICKET,MODE_TRADES)&& OrderType() == OP_BUYLIMIT && OrderMagicNumber()==Magic2) { res=OrderDelete(OrderTicket(),clrWhite); Print("OrderDelete error ",GetLastError()); } return;} } } } } //+------------------------------------------------------------------+ int BUY() { int count = 0; for(int i=OrdersTotal()-1; i>=X; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true && OrderMagicNumber() == Magic && OrderType() == OP_BUY) { count++; } } return(count); } //+------------------------------------------------------------------+ int BUYLIMIT1() { int count = 0; for(int i=OrdersTotal()-1; i>=X; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true && OrderMagicNumber() == Magic1 && OrderType() == OP_BUYLIMIT) { count++; } } return(count); } //+------------------------------------------------------------------+ int BUY1() { int count = 0; for(int i=OrdersTotal()-1; i>=X; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true && OrderMagicNumber() == Magic1 && OrderType() != OP_BUYLIMIT) { count++; } } return(count); } //+------------------------------------------------------------------+ int BUYLIMIT2() { int count = 0; for(int i=OrdersTotal()-1; i>=X; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true && OrderMagicNumber() == Magic2 && OrderType() == OP_BUYLIMIT) { count++; } } return(count); } //+------------------------------------------------------------------+ int BUY2() { int count = 0; for(int i=OrdersTotal()-1; i>=X; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true && OrderMagicNumber() == Magic2 && OrderType() != OP_BUYLIMIT) { count++; } } return(count); } 1...199200201202203204205206207208209210211212213...261 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这是一个来自初学者的问题)代码中的条件为例,请帮助。
如何使一条消息在真实条件下被输出一次,即price>ma输出一条消息(而不是多条),我想你知道我的意思。
如何正确地开出柜台?
怎么说呢,但你没有一次需要显示警报,分别的标志就得重置。
你好,你能告诉我如何对一个自定义指标 进行编程,以便在指标连接到图表时不显示额外的线条(缓冲区)?
你好,你能告诉我如何对一个自定义指标 进行编程,以便在指标连接到图表时不显示额外的线条(缓冲区)?
使用这些属性
关于交易、自动交易系统和策略测试的论坛
初学者的常见问题 MQL4 MT4 MetaTrader 4
Vitaly Muzichenko, 2020.06.14 16:29
在MT5中可以使用,但在MT4中使用同样的设置,我得到了沉默。
建1260
奇怪的事情。昨天和今天我的发送不成功,而刚才已经成功了,信息已经发送。根本没有改变或重建任何东西。
使用这些属性
谢谢,我会试一试的。
不知何故,但你必须显示警告不止一次,所以必须重新设置标志。
我还是不明白
假设有一个开仓的条件,比如说价格应该在手腕之上,并且开了一个买入订单。
这个条件将在很长一段时间内为真,在每一次迭代中,将由这个代码打开一个订单
我应该如何使一个订单被这个条件打开,这将是它?
我不明白。
我们假设有一个开仓的条件,我们假设价格应该高于手腕,买入订单 将被打开。
这个条件将在很长一段时间内为真,在每一次迭代中,将由这个代码打开一个订单
我应该如何使一个订单被这个条件打开,这将是它?
我不明白。
我们假设有一个开仓的条件,我们假设价格应该高于手腕,买入订单 将被打开。
这个条件将在很长一段时间内为真,在每一次迭代中,将由这个代码打开一个订单
我应该如何使一个订单被这个条件打开,这将是它?
删除订单
请帮助我找到代码中的错误。编译器和测试器都没有显示错误,但限制没有被删除......。