首页 > 解决方案 > 为什么我的 MQL5 函数会收到此错误消息?

问题描述

我有这个错误信息:

',' - 意外令牌 testo.mq5 37 33

'信号' - 一些操作员预期 testo.mq5 37 25

'0' - 分号预期 testo.mq5 37 35

')' - 意外令牌 testo.mq5 37 36

表达式没有效果 testo.mq5 37 35

'1' - 一些操作员预期 testo.mq5 40 29

'1' - 一些操作员预期 testo.mq5 41 23

',' - 意外令牌 testo.mq5 42 31

'macd' - 一些操作员预期 testo.mq5 42 25

'1' - 分号预期 testo.mq5 42 33

')' - 意外令牌 testo.mq5 42 34

表达式没有效果 testo.mq5 42 33

',' - 意外令牌 testo.mq5 43 35

'信号' - 一些操作员预期 testo.mq5 43 27

'1' - 分号预期 testo.mq5 43 37

')' - 意外令牌 testo.mq5 43 38

我有以下功能:1:

double macd(const string mode, const int index)
{
   double macdArray[];
   ArraySetAsSeries(macdArray, true);
   int macdDef =iMACD(_Symbol,_Period,12,26,9,PRICE_CLOSE);
   if(mode == "macd")
   {
      CopyBuffer(macdDef,0,0,10,macdArray);
   }
   if(mode == "signal")
   {
      CopyBuffer(macdDef,1,0,10,macdArray);
   }
   if(mode != "macd"||mode != "signal")
   {
      macdArray[index] = NULL;
   }
   return macdArray[index];
}

2:

double sar(const int index)
{
   double sarArray[];
   ArraySetAsSeries(sarArray, true);
   int sarDef = iSAR(_Symbol,_Period,0.02,0.2);
   CopyBuffer(sarDef,0,0,10,sarArray);
   
   return sarArray[index];
}

3:

double ema200(const int index)
{
   double ema200Array[];
   ArraySetAsSeries(ema200Array, true);
   int ema200Def = iMA(_Symbol,_Period,200,0,MODE_EMA,PRICE_CLOSE);
   CopyBuffer(ema200Def,0,0,10,ema200Array);
   return ema200Array[index];
   
}

我在脚本的开头调用了一次函数,如下所示:

double ema200 = ema200(0);
double sar = sar(0);
double macd = macd("macd", 0);
double signal = macd("signal", 0);


double ema200_1 = ema200(1);
double sar_1 = sar(1);
double macd_1 = macd("macd", 1);
double signal_1 = macd("signal", 1);

那么为什么我会得到我的错误?

提前感谢您的任何答案。

标签: cfunctionmql5

解决方案


推荐阅读