1

.mqhファイル内のこのコードがエラーをスローする理由を誰かが知っています'Open' - undeclared identifierか?

Open私のライブラリではClose、、、、関数が「検出」されていないようです。(その他のシステム機能は適切にロードされます)。HighLowPrint()

bool isBlueCandle( int candle ) export {
   return Open[candle] < Close[candle];
}
4

1 に答える 1

1

正確には、1:1 コピーも MOD もエラーを返しません。

//+------------------------------------------------------------------+
//|  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] );
}

上記のコメントに投稿されているように、欠落しているコンテキストは、指定された問題の根本原因を追跡するのに役立ちます.

MetaLang.exe エラーの説明の完全なコピーを投稿してください。マウスの右クリック + コピー ([エラー] ページの MetaLang.exe-Toolbox ウィンドウで + StackOverflow に完全な説明を貼り付けます) を使用します。

例として:

return value of 'OrderModify' should be checked
FOREX_SimpleSAR_EA_msMOD_0.00.mq4   227 19

わかりやすくするために:

MQL4Print()は、関数 ( ) とその他のオブジェクト ( Open) の両方を特定のアクセス プロトコルで認識し、それらを操作します。関数の場合、関数の期待と互換性のある「引数」を渡します。

Open、、、その他は関数ではありませんが、High配列さらに、これらの配列は特別であり、非常に高速で効率的な操作を提供するために、内部 MT4 エンジンで慎重に構築されています。Volume

MetaQuotes は、これをTimeSeriesオブジェクト、逆ステッピング インデックス (それ以外の場合は通常の) 配列と呼びます。

したがって、関数isBlueCandle()は実際には関数ですが、内部的には関数を呼び出しませんが、( -* 参照セル ) のセル値をOpen( [anIntIndexAsPtrIntoTimeSeriesOrderedARRAY]-* 参照セル ) の 値と比較して、 Closewhich[anIntIndexAsPtrIntoTimeSeriesOrderedARRAY]を構築しboolますisBlueCandle()関数が返されようとしています。

于 2015-08-19T16:34:12.383 に答える