一目均衡表を独自に開発したインジケーターやEAに組み込む時ときには、
MT4が既に用意しているiIchimoku()関数を使うと便利です。
iIchimoku()関数とはなにか?
iIchimoku()関数は、一目均衡表の各インジケーター(転換線、基準線、先行スパン、遅行線)の値を取得するために使用します(一目均衡表の詳細については「こちら」を参照してください。)。
iIchimoku()関数は、以下のように定義されています。
サンプルコード
double iIchimoku(
string symbol,
int timeframe,
int tenkan_sen,
int kijun_sen,
int senkou_span_b,
int mode,
int shift
);
各引数の意味は、以下のとおりです。
- 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 tenkan_sen
転換線の値を計算する期間を指定します。
通常は「9」です。 - int kijun_sen
基準線の値を計算する期間を指定します。
通常は「26」です。 - int senkou_span_b
先行スパンの値を計算する期間を指定します。
通常は「52」です。 - int mode
ライン番号を指定します。
転換線の値を取得したい場合は「1」と記述します。
基準線の値を取得したい場合は「2」と記述します。
先行スパンAの値を取得したい場合は「3」と記述します。
先行スパンBの値を取得したい場合は「4」と記述します。
遅行線の値を取得したい場合は「5」と記述します。 - int shift
一目均衡表の各インジケーターの値を取得したいバーの位置を指定します。
一目均衡表の各インジケーターの値を取得したいバーが現在のバーであれば「0」、1本前のバーであれば「1」、2本前のバーであれば「2」……と記述します。
具体例
2本前のバーの転換線の値が基準線の値以下で、1本前のバーの転換線の値が基準線の値よりも大きい場合に、買いエントリーしたい場合は、以下のように記述します。
サンプルコード
double Tenkan_1 = iIchimoku(Symbol(),0,9,26,52,1,1);
double Tenkan_2 = iIchimoku(Symbol(),0,9,26,52,1,2);
double Kijun_1 = iIchimoku(Symbol(),0,9,26,52,2,1);
double Kijun_2 = iIchimoku(Symbol(),0,9,26,52,2,2);
if(Tenkan_2 <= Kijun_2 && Tenkan_1 > Kijun_1)
{
int Ticket
= OrderSend(Symbol(),OP_BUY,0.1,Ask,10,0,0,
NULL,2539,0,Magenta);
}