iMACD
iMACDの説明
MACDの値を取得する。
double iMACD(①string symbol,②int timeframe,③int fast_ema_period,④int slow_ema_period,⑤int signal_period,⑥int applied_price,⑦int mode,⑧int shift);
①string symbol(通貨ペア)
通貨ペア名を指定せず、チャートの通貨ペアのMACDの値を取得したい場合は、「NULL」。
②int timeframe(時間軸)
MACDの値を計算する時間軸の指定。
種類 |
定数 |
説明 |
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 fast_ema_period
ファーストEMA(短期指数移動平均線)の値を計算する期間を指定。
④int slow_ema_period
スローEMA(長期指数移動平均線)の値を計算する期間を指定。
⑤int signal_period
MACDのシグナルの値を計算する期間を指定。
⑥int applied_price
MACDの値の計算に使用する価格データの指定。
種類 |
定数 |
説明 |
PRICE_CLOSE |
0 |
終値 |
PRICE_OPEN |
1 |
始値 |
PRICE_HIGH |
2 |
高値 |
PRICE_LOW |
3 |
安値 |
PRICE_MEDIAN |
4 |
中央値
(高値+安値)÷2
|
PRICE_TYPICAL |
5 |
代表値
(高値+安値+終値)÷3
|
PRICE_WEIGHTED |
6 |
加重終値
(高値+安値+終値+終値)÷4
|
⑦int mode
ライン番号を指定。
MACDの値を取得したい場合は「0」。または、MODE_MAIN。
MACDシグナル線の値を取得したい場合は「1」。または、MODE_SIGNAL。
⑧int shift
MACDの値を取得したいバーの位置の指定。
MACDの値を取得したいバーが現在のバーのときは「0」、1本前のバーのときは「1」、2本前のバーのときは「2」......x本前のバーのときは「x」。
ソースコード例
int OnInit()
{
double a = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,1);
double b = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,1);
Comment("MACDの値は、\nメインライン:"+a+"\nシグナルライン:"+b);
return(0);
}
表示例
注意事項
iMACDでMACDの値を取得する場合は、double型になります。
そのため、上記表示例のように小数点以下がとても長くなります。
また、MACDの値は、0.000001単位の値になるので、桁数が表示しきれなくなります。
この場合、数字の最後にe-05というように表示がされます。
このeは、exponential の頭文字で、指数を表し、e-05は10^(-5)=0.00001という意味です。
つまり、-8e-05の場合、-8×0.00001=-0.00008を表します。
小数点以下を指定する場合は、
NormalizeDouble()関数で四捨五入などをして桁を調整する必要があります。
関連ページ