MQL5のテクニカル指標関数の使い方

MQL5でのテクニカル指標関数の使い方をすぐ忘れるので、コピペできるようにコードを貼っておく。

環境

  • MetaEditor Version: 5.00 build 3300

iAC ACオシレーター

int handle=iAC(NULL,0);//テクニカル指標のハンドル
double ac[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,ac);//テクニカル指標を配列に格納
ArrayReverse(ac,0,10);//テクニカル指標を逆に並べ替え

iADX 平均方向性指数

int handle=iADX(NULL,0,14);//テクニカル指標のハンドル
double adx[10];//テクニカル指標を格納する配列
double pdi[10];//テクニカル指標を格納する配列
double mdi[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,adx);//テクニカル指標を配列に格納
CopyBuffer(handle,1,0,10,pdi);//テクニカル指標を配列に格納
CopyBuffer(handle,2,0,10,mdi);//テクニカル指標を配列に格納
ArrayReverse(adx,0,10);//テクニカル指標を逆に並べ替え
ArrayReverse(pdi,0,10);//テクニカル指標を逆に並べ替え
ArrayReverse(mdi,0,10);//テクニカル指標を逆に並べ替え

iAMA 適応型移動平均

int handle=iAMA(NULL,0,9,2,30,0,PRICE_CLOSE);//テクニカル指標のハンドル
double ama[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,ama);//テクニカル指標を配列に格納
ArrayReverse(ama,0,10);//テクニカル指標を逆に並べ替え

iAO オーサムオシレーター

int handle=iAO(NULL,0);//テクニカル指標のハンドル
double ao[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,ao);//テクニカル指標を配列に格納
ArrayReverse(ao,0,10);//テクニカル指標を逆に並べ替え

iATR ATR

int handle=iATR(NULL,0,14);//テクニカル指標のハンドル
double atr[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,atr);//テクニカル指標を配列に格納
ArrayReverse(atr,0,10);//テクニカル指標を逆に並べ替え

iBands ボリンジャーバンド

int handle=iBands(NULL,0,20,0,2,PRICE_CLOSE);//テクニカル指標のハンドル
double middle[10];//テクニカル指標を格納する配列
double upper[10];//テクニカル指標を格納する配列
double lower[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,middle);//テクニカル指標を配列に格納
CopyBuffer(handle,1,0,10,upper);//テクニカル指標を配列に格納
CopyBuffer(handle,2,0,10,lower);//テクニカル指標を配列に格納
ArrayReverse(middle,0,10);//テクニカル指標を逆に並べ替え
ArrayReverse(upper,0,10);//テクニカル指標を逆に並べ替え
ArrayReverse(lower,0,10);//テクニカル指標を逆に並べ替え

iBearsPower ベアパワー

int handle=iBearsPower(NULL,0,13);//テクニカル指標のハンドル
double bears_power[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,bears_power);//テクニカル指標を配列に格納
ArrayReverse(bears_power,0,10);//テクニカル指標を逆に並べ替え   

iBullsPower ブルパワー

int handle=iBullsPower(NULL,0,13);//テクニカル指標のハンドル
double bulls_power[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,bulls_power);//テクニカル指標を配列に格納
ArrayReverse(bulls_power,0,10);//テクニカル指標を逆に並べ替え  

iCCI コモディティチャンネルインデックス

int handle=iCCI(NULL,0,14,PRICE_TYPICAL);//テクニカル指標のハンドル
double cci[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,cci);//テクニカル指標を配列に格納
ArrayReverse(cci,0,10);//テクニカル指標を逆に並べ替え   

iDEMA 2重指数移動平均

int handle=iDEMA(NULL,0,14,0,PRICE_CLOSE);//テクニカル指標のハンドル
double dema[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,dema);//テクニカル指標を配列に格納
ArrayReverse(dema,0,10);//テクニカル指標を逆に並べ替え   

iDemarker デマーカー

int handle=iCCI(NULL,0,14,PRICE_TYPICAL);//テクニカル指標のハンドル
double de_marker[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,de_marker);//テクニカル指標を配列に格納
ArrayReverse(de_marker,0,10);//テクニカル指標を逆に並べ替え   

iEnvelopes エンベローブ

int handle=iEnvelopes(NULL,0,14,0,MODE_SMA,PRICE_CLOSE,0.1);//テクニカル指標のハンドル
double upper[10];//テクニカル指標を格納する配列
double lower[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,upper);//テクニカル指標を配列に格納
CopyBuffer(handle,1,0,10,lower);//テクニカル指標を配列に格納
ArrayReverse(upper,0,10);//テクニカル指標を逆に並べ替え
ArrayReverse(lower,0,10);//テクニカル指標を逆に並べ替え

iFrAMA フラクタル適応型移動平均

int handle=iFrAMA(NULL,0,14,0,PRICE_CLOSE);//テクニカル指標のハンドル
double fr_ama[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,fr_ama);//テクニカル指標を配列に格納
ArrayReverse(fr_ama,0,10);//テクニカル指標を逆に並べ替え

iIchimoku 一目均衡表

int handle=iIchimoku(NULL,0,9,26,52);//テクニカル指標のハンドル
double tenkan_sen[10];//テクニカル指標を格納する配列
double kijun_sen[10];//テクニカル指標を格納する配列
double senkou_span_a[10];//テクニカル指標を格納する配列
double senkou_span_b[10];//テクニカル指標を格納する配列
double chinkou_span[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,tenkan_sen);//テクニカル指標を配列に格納
CopyBuffer(handle,1,0,10,kijun_sen);//テクニカル指標を配列に格納
CopyBuffer(handle,2,0,10,senkou_span_a);//テクニカル指標を配列に格納
CopyBuffer(handle,3,0,10,senkou_span_b);//テクニカル指標を配列に格納
CopyBuffer(handle,4,0,10,chinkou_span);//テクニカル指標を配列に格納
ArrayReverse(tenkan_sen,0,10);//テクニカル指標を逆に並べ替え
ArrayReverse(kijun_sen,0,10);//テクニカル指標を逆に並べ替え
ArrayReverse(senkou_span_a,0,10);//テクニカル指標を逆に並べ替え
ArrayReverse(senkou_span_b,0,10);//テクニカル指標を逆に並べ替え
ArrayReverse(chinkou_span,0,10);//テクニカル指標を逆に並べ替え

iMA 移動平均

int handle=iMA(NULL,0,20,0,MODE_SMA,PRICE_CLOSE);//テクニカル指標のハンドル
double ma[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,ma);//テクニカル指標を配列に格納
ArrayReverse(ma,0,10);//テクニカル指標を逆に並べ替え

iMACD 移動平均収束拡散法

int handle=iMACD(NULL,0,12,26,9,PRICE_CLOSE);//テクニカル指標のハンドル
double macd[10];//テクニカル指標を格納する配列
double signal[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,macd);//テクニカル指標を配列に格納
CopyBuffer(handle,1,0,10,signal);//テクニカル指標を配列に格納
ArrayReverse(macd,0,10);//テクニカル指標を逆に並べ替え
ArrayReverse(signal,0,10);//テクニカル指標を逆に並べ替え

iRSI 相対力指数

int handle=iRSI(NULL,0,14,PRICE_CLOSE);//テクニカル指標のハンドル
double rsi[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,rsi);//テクニカル指標を配列に格納
ArrayReverse(rsi,0,10);//テクニカル指標を逆に並べ替え

iRVI 相対活力指数

int handle=iRVI(NULL,0,10);//テクニカル指標のハンドル
double rvi[10];//テクニカル指標を格納する配列
double signal[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,rvi);//テクニカル指標を配列に格納
CopyBuffer(handle,1,0,10,signal);//テクニカル指標を配列に格納
ArrayReverse(rvi,0,10);//テクニカル指標を逆に並べ替え
ArrayReverse(signal,0,10);//テクニカル指標を逆に並べ替え

iSAR パラボリック停止・リバースシステム

int handle=iSAR(NULL,0,0.02,0.2);//テクニカル指標のハンドル
double sar[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,sar);//テクニカル指標を配列に格納
ArrayReverse(sar,0,10);//テクニカル指標を逆に並べ替え

iStochastic ストキャスティックス

MQL5のストキャスティックスは2本しか線を描けない仕様のようである。iStochastic関数の第5引数はスローイングで、これを1に設定すると%Kと%Dを返し、2以上に設定すると%Dとスロー%Dを返すらしい。

%Kと%D

int handle=iStochastic(NULL,0,14,3,1,MODE_SMA,STO_LOWHIGH);//テクニカル指標のハンドル
double k[10];//テクニカル指標を格納する配列
double d[10];//テクニカル指標を格納する配列
CopyBuffer(handle,MAIN_LINE,0,10,k);//テクニカル指標を配列に格納
CopyBuffer(handle,SIGNAL_LINE,0,10,d);//テクニカル指標を配列に格納
ArrayReverse(k,0,10);//テクニカル指標を逆に並べ替え
ArrayReverse(d,0,10);//テクニカル指標を逆に並べ替え

%Dとスロー%D

int handle=iStochastic(NULL,0,14,3,3,MODE_SMA,STO_LOWHIGH);//テクニカル指標のハンドル
double d[10];//テクニカル指標を格納する配列
double sd[10];//テクニカル指標を格納する配列
CopyBuffer(handle,MAIN_LINE,0,10,d);//テクニカル指標を配列に格納
CopyBuffer(handle,SIGNAL_LINE,0,10,sd);//テクニカル指標を配列に格納
ArrayReverse(d,0,10);//テクニカル指標を逆に並べ替え
ArrayReverse(sd,0,10);//テクニカル指標を逆に並べ替え

iTEMA 3重指数移動平均

int handle=iTEMA(NULL,0,14,0,PRICE_CLOSE);//テクニカル指標のハンドル
double tema[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,tema);//テクニカル指標を配列に格納
ArrayReverse(tema,0,10);//テクニカル指標を逆に並べ替え

iTriX 3重指数移動平均オシレーター

int handle=iTriX(NULL,0,10,PRICE_CLOSE);//テクニカル指標のハンドル
double trix[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,trix);//テクニカル指標を配列に格納
ArrayReverse(trix,0,10);//テクニカル指標を逆に並べ替え

iWPR ウィリアムパーセントレンジ

int handle=iWPR(NULL,0,14);//テクニカル指標のハンドル
double wpr[10];//テクニカル指標を格納する配列
CopyBuffer(handle,0,0,10,wpr);//テクニカル指標を配列に格納
ArrayReverse(wpr,0,10);//テクニカル指標を逆に並べ替え