iHighest()関数は、一定の範囲内のバーのうち、最高値を示現したバーの位置を取得するために使用します。
iHighest()関数は、以下のように定義されています。
int iHighest(
string symbol,
int timeframe,
int type,
int count,
int start
);
各引数の意味は、以下のとおりです。
- string symbol
最高値を示現したバーの位置を取得したい通貨ペア名を指定します。
通貨ペア名は、「気配値表示ウィンドウ」に表示されているとおりに記述します。
特定の通貨ペア名を指定せず、EA等を適用したチャートの通貨ペアの最高値を示現したバーの位置を取得したい場合は、「NULL」と記述します。 - int timeframe
以下の表に従って、最高値を示現したバーの位置を取得する時間軸を指定します。timeframeの種類
種 類 定 数 内 容 PERIOD_CURRENT 0 現在の時間足 PERIOD_M1 1 1分足 PERIOD_M5 5 5分足 PERIOD_M15 15 15分足 PERIOD_M30 30 30分足 PERIOD_H1 60 1時間足 PERIOD_H4 240 4時間足 PERIOD_D1 1440 日 足 PERIOD_W1 10080 週 足 PERIOD_MN1 43200 月 足 - int type
以下の表に従って、最高値を判定するデータを格納している配列を指定します。計算に使用する配列の種類
種 類 定数 内 容 MODE_OPEN 0 始 値 MODE_LOW 1 安 値 MODE_HIGH 2 高 値 MODE_CLOSE 3 終 値 MODE_VOLUME 4 出来高
iLowest()関数とiHighest()関数で使用 MODE_TIME 5 バーの形成開始時刻
ArrayCopySeries()関数で使用 - int count
最高値を検索するバーの数を指定します。
バーの数は現在から過去へ向かって数えます。
すべてのバーを対象として最高値を検索する場合は、「0」と記述します。 - int start
最高値の検索を始めるバーの位置を指定します。
具体例
USD/JPY(=ドル/円)の1時間足のチャートにおいて、4本前のバーから20本前のバー(=現在のバーの24本前のバー)の間の最高値を取得したい場合は、以下のように記述します。
int Index
= iHighest(“USDJPY”,PERIOD_H1,MODE_HIGH,20,4);
double High_Price = High[Index];
- iLowest()関数の詳細については「こちら」を参照してください。
- ArrayCopySeries()関数の詳細については「こちら」を参照してください。
- High[]の詳細については「こちら」を参照してください。