2006年04月22日

MT4入門(11) - 組込みインディケータの使い方(1)

MetaTrader4入門の第11回目です。

ちょっと間が空いてしまいましたが、今回から組込みインディケータを使ってカスタムインディケータを作る方法について説明します。

実際、カスタムインディケータを0から作るよりも、既存のインディケータを組み合わせる方が簡単です。

またMT4では、オープンしているチャート上のインディケータだけでなく、違うペアのインディケータや違うタイムフレームのインディケータを使って別のインディケータを作ることもできます。

MT4のプログラムで利用することができる組込みインディケータはこれだけあります。

iAC() - Accelerator Oscillator
iAD() - Accumulation/Distribution
iAlligator() - Alligator
iADX() - Average Directional Movement Index
iATR() - Average True Range
iAO() - Awesome Oscillator
iBearsPower() - Bears Power
iBands() - Bollinger Bands
iBullsPower() - Bulls Power
iCCI() - Commodity Channel Index
iCustom() - Custom Indicator
iDeMarker() - DeMarker
iEnvelopes() - Envelopes
iForce() - Force Index
iFractals() - Fractals
iGator() - Gator Oscillator
iIchimoku() - Ichimoku Kinko Hyo
iBWMFI() - Market Facilitation Index (Bill Williams)
iMomentum() - Momentum
iMFI() - Money Flow Index
iMA() - Moving Average
iOsMA() - Moving Average of Oscillator
iMACD() - Moving Averages Convergence/Divergence
iOBV() - On Balance Volume
iSAR() - Parabolic SAR
iRSI() - Relative Strength Index
iRVI() - Relative Vigor Index
iStdDev() - Standard Deviation
iStochastic() - Stochastic Oscillator
iWPR() - William's Percent Range

私も使ったことがないものが多いですので、それぞれの説明はできません。
ここでは、使用例として基本のMA(移動平均)を取り上げます。

iMA() の関数は次のような書式として定義されており、括弧の中の7個のパラメータを取ります。

double iMA( string symbol, int timeframe, int period, int ma_shift, int ma_method, int applied_price, int shift)

それぞれのパラメータの意味は、

symbol : 通貨ペアのシンボルを表す文字列。NULL は現在のチャートのシンボルを表します。
timeframe : タイムフレーム。0は現在のチャートのタイムフレームを表します。
period : 移動平均を取る期間。
ma_shift : 移動平均をシフトする(右方向へずらす)バーの数。
ma_method : 移動平均の方法。
applied_price : 適用する価格。
shift : 現在バーからのシフト数。

この説明だけではよくわからないと思うので、具体例を見てみます。

iMA() 関数は移動平均の結果全体を返すわけではなく、ある時間における移動平均の値を返すだけなので、これを使うときは次のようにfor文の中で繰り返す必要があります。

int limit=Bars-IndicatorCounted();
for(int i=limit-1; i>=0; i--)
{
 Buf0[i]=iMA(NULL,0,5,0,MODE_SMMA,PRICE_CLOSE,i);
}

通常、移動平均のパラメータは期間、移動平均の方法、適用する価格の3種類だと思います。それぞれ、period, ma_method, applied_price に対応しています。それ以外については、アタッチするチャート上のインディケータをそのまま計算させるのであれば、symbol=NULL, timeframe=0, ma_shift=0, shift=i としておきます。但し、最後の i は、for文中の変数 i と同じものです。

用途に応じて設定すべきパラメータとして、period期間なので適当な整数値を代入すればいいですが、移動平均の方法 ma_method, 適応する価格 applied_price については、次のような予約定数が準備されています。

ma_method

MODE_SMA :Simple moving average,
MODE_EMA :Exponential moving average,
MODE_SMMA :Smoothed moving average,
MODE_LWMA :Linear weighted moving average.

applied_price

PRICE_CLOSE : Close price.
PRICE_OPEN : Open price.
PRICE_HIGH : High price.
PRICE_LOW : Low price.
PRICE_MEDIAN : Median price, (high+low)/2.
PRICE_TYPICAL : Typical price, (high+low+close)/3.
PRICE_WEIGHTED : Weighted close price, (high+low+close+close)/4.

移動平均の方法については、よく使われるのが単純移動平均(SMA)と指数平滑化移動平均(EMA)だと思います。ここでは移動平均そのものの説明は省略しますが、LWMAはSMAの仲間でちょっと反応が早いもの、SMMAは原理的には EMA と同じもので、パラメータの計算方法がちょっと違うものと思ってもらえればいいかと思います。

詳しくは以前の「移動平均」の記事をご参照ください。

長くなるといけないので、今回の説明はここまでとしておきます。
5日SMAと5日EMAを同時に表示するプログラムを Sample8_Ind.mq4 としてアップロードしておきます。
Download Sample8_Ind.mq4

チャートにアタッチするとこんな感じになります。

次回は組込みインディケータを組み合わせる方法について説明します。

にほんブログ村 為替ブログへ為替ブログランキング 現在11位
「次の記事も読んでみたい!」
と思った方はクリックにご協力ください。↑

Trackback on "MT4入門(11) - 組込みインディケータの使い方(1)"

このエントリーのトラックバックURL: 

"MT4入門(11) - 組込みインディケータの使い方(1)"へのトラックバックはまだありません。

Comment on "MT4入門(11) - 組込みインディケータの使い方(1)"

 ※当コメントは相互リンクをされている方を対象に送っています。

 いつもお世話になります。相場哲学のSHARKです。
 この度、皆様のご支援を受けて為替売買シグナル配信サービス
 「SHARK FUND」を立ち上げる事となりました。

 相互リンクについてですが
 当方のサイトではリンクを貼らせて頂いております。

 当方のサイトでは個人投資家のサイトを応援していきます。

 リンク先は現ブログサイトでもいいのですが
 出来れば以下のサイトに変更して頂けると幸いです。

 サイト名:SHARK FUND
 URL: http://www.shark-fund.com/ 

 今後とも一層のご愛顧をお願い申し上げます。

サンプルプログラム Sample8_Ind.mq4 で間違えて SMAではなく、SMMA になっていました。
SMA にするためには、MODE_SMMA をMODE_SMA に書き換えてください。

大変ご無沙汰していてすみません。MQL4はトレードに関わる機能が充実していて、慣れれば売買プログラムを組むのも、かなり楽になりそうですね。いざとなれば、DLLをインポートすることで、MQL4以外の言語で組んだプログラムが使えるというのも拡張性があって良いです。