初学者的问题 MQL5 MT5 MetaTrader 5 - 页 967

 

我怎样才能正确地获得一个条形图的开盘价,如果我未能获得开盘价就退出?

勾勒出了几个选项。但也许有一个更好更正确的代码?

   if(iOpen(Symbol(),Period(),0)==0)
     {
      return;
     }
     {
      if(iOpen(Symbol(),Period(),0)!=0)
        {
         double   open=iOpen(Symbol(),Period(),0);
        }
     }
  if(iOpen(Symbol(),Period(),0)==0.0)
     {
      return;
     }
     {
      if(iOpen(Symbol(),Period(),0)!=0.0)
        {
         double   open=iOpen(Symbol(),Period(),0);
        }
     } 
  if(iOpen(Symbol(),Period(),0)==0 && iOpen(Symbol(),Period(),0)==0.0)
     {
      return;
     }
     {
      if(iOpen(Symbol(),Period(),0)!=0 && iOpen(Symbol(),Period(),0)!=0.0)
        {
         double   open=iOpen(Symbol(),Period(),0);
        }
     }     
 
ilvic:

我怎样才能正确地获得一个条形图的开盘价,如果我未能获得开盘价就退出?

勾勒出了几个选项。但也许有一个更好更正确的代码?

iXXXX函数只有在你运行一个一次性请求时才有意义,没有循环,也没有调用任何其他iXXXX函数。

如果你只需要得到一次开盘价,那么请看iOpen的 帮助。

返回值

*** 0,如果有错误。

因此,你需要查询价格,并检查它是否为零:如果它不为零,那么价格就收到了,如果它为零,则是一个错误。

double open=iOpen(Symbol(),Period(),0);
if(open==0.0)
   retutn;
 
你能告诉我如何用网格(#CL)插入参数9,使编译器不产生错误吗?
enum Symboll_
  {
   AUDUSD=0,
   NZDUSD=1,
   USDCAD=2,
   USDCHF=3,
   USDJPY=4,
   EURJPY=5,
   EURUSD=6,
   GBPUSD=7,
   #CL   =8
  };
 
Vladimir Karputov:

iXXXX函数只有在你运行一个一次性请求时才有意义,没有循环,也没有调用任何其他iXXXX函数。

如果你只需要获得一次开盘价,请参阅iOpen 帮助。

返回值

*** 0,如果有错误。

因此,你需要查询价格,并检查它是否为零:如果它不为零,那么价格就收到了,如果它为零,那么就是一个错误。

谢谢你。还有一个问题。我们应该在这段代码中使用括号,还是没有区别?

   double   open=iOpen(Symbol(),Period(),0);
   if(open==0.0)
     {
      return;
     }
 
xxz:
你能告诉我如何用网格插入9号参数(#CL),使编译器不产生错误吗?

像这样。

   enum MySymbol
     {
      symbol_0=0,// AUDUSD
      symbol_1=1,// NZDUSD
      symbol_2=2,// USDCAD
      symbol_3=3,// USDCHF
      symbol_4=4,// USDJPY
      symbol_5=5,// EURJPY
      symbol_6=6,// EURUSD
      symbol_7=7,// GBPUSD
      symbol_8=8,// #CL
     };
 
ilvic:

谢谢你。还有一个问题。在这段代码中应该使用括号还是没有区别?

   double   open=iOpen(Symbol(),Period(),0);
   if(open==0.0)
      return;

它可以做到。一般来说,括号是为一组动作准备的。如果只有一个动作,它们就没有用处。

int n;
double y;
if(бла-бла-бла)
         n = бла-бла;
else
  {
         n = бла-бла;
         y = бла;
  )
 
Vladimir Karputov:

你去吧。

非常感谢您!

因为我试过这样做,但没有效果。

  enum  Symboll_
  {
   SIM_0,  //AUDUSD
   SIM_1,  //NZDUSD
   SIM_2,  //USDCAD
   SIM_3,  //USDCHF
   SIM_4,  //USDJPY
   SIM_5,  //EURJPY
   SIM_6,  //EURUSD
   SIM_7   //#CL
  };  
 
xxz:

非常感谢您!

因为我试过这样做,但没有效果。

或者像这样。

   enum MySymbol
     {
      symbol_0=0,// AUDUSD
      symbol_1=1,// NZDUSD
      symbol_2=2,// USDCAD
      symbol_3=3,// USDCHF
      symbol_4=4,// USDJPY
      symbol_5=5,// EURJPY
      symbol_6=6,// EURUSD
      symbol_7=7,// GBPUSD
      symbol_8=8,// #CL
     };
   string my_symbol[9]=
     {
      "AUDUSD",
      "NZDUSD",
      "USDCAD",
      "USDCHF",
      "USDJPY",
      "EURJPY",
      "EURUSD",
      "GBPUSD",
      "#CL"
     };
 
Vladimir Karputov:

或者这样。

这就是那个人!

在那些变体中,它出来的时候要么只有一个序列号,要么是SIM_1,......等等。

 
在测试多币种EA 时,手数出现了问题。我有一个固定的0.03,但在测试期间,订单出现的量是0.1。图表上立即出现了一个故障。只有我吗?