'Open' - 未声明的标识符
'Open' - undeclared identifier
有人知道为什么 .mqh
文件中的这段代码会抛出错误 'Open' - undeclared identifier
吗?
Open
、Close
、High
、Low
函数似乎 "detected" 不在我的库中。 (其他系统功能如 Print()
已正确加载)。
bool isBlueCandle( int candle ) export {
return Open[candle] < Close[candle];
}
不完全是,既不是1:1副本,也不是任何MOD,return任何错误:
//+------------------------------------------------------------------+
//| isBlueCandle TESTs MetaLang.exe: Build 1154 |
//+------------------------------------------------------------------+
bool isBlueCANDLE_TEST( int candle ) export
{
return Open[candle] < Close[candle];
}
bool isBlueCANDLE_TEST2( int candle ) export {
return Open[candle] < Close[candle];
}
bool isBlueCANDLE_TEST3( const int candle ) export {
return Open[candle] < Close[candle];
}
bool isBlueCANDLE_TEST4( const int candle ) export {
return( Open[candle] < Close[candle] );
}
如以上评论中所述,缺少上下文将有助于追踪您所述问题的根本原因。
Post MetaLang.exe 错误描述的完整副本。
使用鼠标右键单击 + 复制(在 [错误] 页面上的 MetaLang.exe-工具箱 window 中 + 将完整描述粘贴到 Whosebug 上)
举个例子:
return value of 'OrderModify' should be checked
FOREX_SimpleSAR_EA_msMOD_0.00.mq4 227 19
为了清楚起见:
MQL4
识别函数 ( Print()
) 和其他对象 ( Open
),并使用特定的访问协议来处理它们。在函数的情况下,通过 "arguments" 与函数的期望兼容。
Open
、High
、Volume
等,不是函数,而是数组,而且,这些数组比较特殊在内部 MT4 引擎中精心构建,以提供非常快速和非常有效的操作。
MetaQuotes 称其为 TimeSeries 对象,一个反向步进索引
(否则正常)array.
因此,您的函数 isBlueCandle()
确实是一个函数,但是,在内部它不调用函数,但它比较 [=44 的单元格值=]Open
([anIntIndexAsPtrIntoTimeSeriesOrderedARRAY]
-*引用的单元格)
针对 Close
的值(即 [anIntIndexAsPtrIntoTimeSeriesOrderedARRAY]
-*引用的单元格)构建 bool
isBlueCandle()
函数即将 return.
有人知道为什么 .mqh
文件中的这段代码会抛出错误 'Open' - undeclared identifier
吗?
Open
、Close
、High
、Low
函数似乎 "detected" 不在我的库中。 (其他系统功能如 Print()
已正确加载)。
bool isBlueCandle( int candle ) export {
return Open[candle] < Close[candle];
}
不完全是,既不是1:1副本,也不是任何MOD,return任何错误:
//+------------------------------------------------------------------+
//| isBlueCandle TESTs MetaLang.exe: Build 1154 |
//+------------------------------------------------------------------+
bool isBlueCANDLE_TEST( int candle ) export
{
return Open[candle] < Close[candle];
}
bool isBlueCANDLE_TEST2( int candle ) export {
return Open[candle] < Close[candle];
}
bool isBlueCANDLE_TEST3( const int candle ) export {
return Open[candle] < Close[candle];
}
bool isBlueCANDLE_TEST4( const int candle ) export {
return( Open[candle] < Close[candle] );
}
如以上评论中所述,缺少上下文将有助于追踪您所述问题的根本原因。
Post MetaLang.exe 错误描述的完整副本。 使用鼠标右键单击 + 复制(在 [错误] 页面上的 MetaLang.exe-工具箱 window 中 + 将完整描述粘贴到 Whosebug 上)
举个例子:
return value of 'OrderModify' should be checked
FOREX_SimpleSAR_EA_msMOD_0.00.mq4 227 19
为了清楚起见:
MQL4
识别函数 ( Print()
) 和其他对象 ( Open
),并使用特定的访问协议来处理它们。在函数的情况下,通过 "arguments" 与函数的期望兼容。
Open
、High
、Volume
等,不是函数,而是数组,而且,这些数组比较特殊在内部 MT4 引擎中精心构建,以提供非常快速和非常有效的操作。
MetaQuotes 称其为 TimeSeries 对象,一个反向步进索引 (否则正常)array.
因此,您的函数 isBlueCandle()
确实是一个函数,但是,在内部它不调用函数,但它比较 [=44 的单元格值=]Open
([anIntIndexAsPtrIntoTimeSeriesOrderedARRAY]
-*引用的单元格)
针对 Close
的值(即 [anIntIndexAsPtrIntoTimeSeriesOrderedARRAY]
-*引用的单元格)构建 bool
isBlueCandle()
函数即将 return.