新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1789

 
MakarFX #:

从截图来看,这些条件并没有得到满足

//+------------------------------------------------------------------+
//| Открытие ордера                                                  |
//+------------------------------------------------------------------+
void SendFirsOrder(int so=-1)
  {
   double tp=0;
   if(so==0)
     {
      if(OrderSend(Symbol(),OP_BUY, Lots(),Ask,slip,0, 0, "The first purchase order", Magic,0,clrBlue))
        {
         Print("Open Buy: ",_Symbol);
        }
      else
        {
         Print("Error Open Buy: ",_Symbol," / ",GetLastError());
        }
     }
   if(so==1)
     {
      if(OrderSend(Symbol(),OP_SELL, Lots(),Bid,slip,0, 0, "The first sell order", Magic,0,clrRed))
        {
         Print("Open Sell: ",_Symbol);
        }
      else
        {
         Print("Error Open Sell: ",_Symbol," / ",GetLastError());
        }
     }
  }
 
EVGENII SHELIPOV #:

如果你的OrderStopLoss()等于0,在条件中,拖网如何工作?

        if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic && OrderProfit() > 0 && OrderStopLoss() != 0)
 
Nerd Trader #:

这对任何人来说都不是问题。
如果注释 前后有空行

该ID将插入



不过这些都不重要,我们只是需要使用一个不同的意识形态。

为什么在注释行和函数声明之间使用空行?

 

下午好!

我最近转到MT5,读了很多文章,但没有找到我问题的答案。

我没有找到问题的答案。 MT5允许我启用 "慢速优化 "类型(完全搜索参数)。我必须选择一个工具进行优化。

MT5在测试器中是否有一个功能,你可以选择几个符号,用它们来优化一切。也就是说,先尝试第一种,然后是第二种,等等。最后,你会为每个符号得到一份单独的报告?或者,对于这个问题,也许有一些其他的解决方案,或者有其他的程序来解决这个问题?

我们的想法是,当测试工具结束时,不要在电脑旁等待。并立即设置所有必要的,让它整天计数。

 
Kot 优化 "类型(完全搜索参数)。我可以选择一个工具进行优化。

MT5在测试器中是否有一个功能,你可以选择几个符号,用它们来优化一切。也就是说,先尝试第一种,然后是第二种,等等。最后,你会为每个符号得到一份单独的报告?或者,对于这个问题,也许有一些其他的解决方案,或者有其他的程序来解决这个问题?

我们的想法是,当测试工具结束时,不要在电脑旁等待。并立即设置所有必要的,让它整天计数。

运行几个终端,每一对都有一个
 

一个按钮被释放 而无视一个条件时,ObjectDelete()总是因为某种原因而被执行,即使对象被删除。

void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{
   ...
  if(ObjectGetInteger(0,"Button Stop Order",OBJPROP_STATE)){
      if(ChartXYToTimePrice(window,x,y,window,dt,price)){
         ...
  }else if(ObjectFind("order setup") || ObjectFind("Stop Loss"))
      Print(line_name," delete ",ObjectDelete(line_name)," error ", GetLastError());

2021.12.05 21:43:14.040 USDCHF,M1: Stop Loss delete false error 0
2021.12.05 21:43:14.040 USDCHF,M1: Stop Loss delete false error 0
2021.12.05 21:43:14.030 USDCHF,M1: Stop Loss delete false error 0
2021.12.05 21:43:14.030 USDCHF,M1: Stop Loss delete false error 0
2021.12.05 21:43:14.030 USDCHF,M1: Stop Loss delete false error 0
2021.12.05 21:43:14.030 USDCHF,M1: Stop Loss delete false error 0
2021.12.05 21:43:14.030 USDCHF,M1: Stop Loss delete false error 0
2021.12.05 21:43:14.020 USDCHF,M1: Stop Loss delete false error 0
2021.12.05 21:43:14.020 USDCHF,M1: Stop Loss delete false error 0
2021.12.05 21:43:14.020 USDCHF,M1: Stop Loss delete false error 0
2021.12.05 21:43:14.020 USDCHF,M1: Stop Loss delete false error 0
 
Alexey Viktorov #:

为什么在注释行和函数声明之间有空行?

所以你的意思是说,当ide在未经你同意的情况下在你的代码中插入一些狗屎时,就可以了?
 
Nerd Trader 一个按钮被释放 而无视一个条件时,ObjectDelete()总是因为某种原因而被执行,即使对象被删除。
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
{
   ...
  if(ObjectGetInteger(0,"Button Stop Order",OBJPROP_STATE)){
      if(ChartXYToTimePrice(window,x,y,window,dt,price)){
         ...
  }else if(ObjectFind("order setup")==0 || ObjectFind("Stop Loss")==0){
      Print(line_name," delete ",ObjectDelete(line_name)," error ", GetLastError());
 
MakarFX #:
是的,好吧,我已经到了这里。
 
Nerd Trader #:
是啊,我真他妈的受够了。
我以前给你写过信