スポンサーサイト





上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

タグ :

Return to page top

  • Comments (Close): -
  • TrackBack (Close): -

RSIを描画





移動平均線、ポリンジャーバンドに続いて、相対力指数(RSI)を描画するプログラムを作成します。

RSI(Relative Strength index)とは、「相対力指数」と呼ばれ、相場の買われすぎ・売られすぎをチェックするためのオシレーター系のテクニカル指標です。

20110210_1


RSIとは


RSIは、一定期間(14日で計算することが多い)における、上昇した日の値幅の比率です。たとえば、、14日間で上昇した日の値幅の合計と、下落した日の値幅の合計の比率が8:2になっていたら、RSIは80となります。

逆張り的な売買タイミングとしては、RSIが30を割り込んで転換すると買いサイン、70を上に抜けて転換すると売りサインとするのが一案です。

ただし、トレンドが非常に強いときはRSIが30を割り込んだまま下げ続けることもあれば、70を突き抜けたまま上げ続けるときもあり、過熱感のサインにもなります。そこで、相場観によっては順張り的に、RSIが30を割り込んだことを売りサインととらえ、70を上に抜けてたことを買いサインととらえることもありえます。


RSIを計算する関数


RSIの算出には、iRSI()関数を用います。引数は、既出のものばかりです。

double iRSI(string symbol, int timeframe, int period, int applied_price, int shift)




RSIをプログラミングする


SampleIndicatorファイルに、RSIを描画するコードを記述しましょう。

今回は、ウィザードを使わずにコードを直接書き変える方法で作成します。

まず基本設定を考えますが、RSIは移動平均線やポリンジャーバンドと異なり、チャートのメインウインドウでなくサブウインドウに表示します。

描くのは1本の線だけなので、配列は1つだけ。外部変数は期間を変更できるようにすればいいでしょう。

ということで、ヘッダ部分を書きます。期間を RSI_Period、値を格納する配列を RSI_Bufferと名づけました。

#property copyright "Busuibon"
#property link "http://metatradermania.blog24.fc2.com/"

#property indicator_separate_window //サブウインドウに表示
#property indicator_buffers 1
#property indicator_color1 Yellow

//---- input parameters
extern int RSI_Period=14;

//---- buffers
double RSI_Buffer[];



init()関数は、配列に RSI_Bufferを指定します。

int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,RSI_Buffer);
//----
return(0);
}



start()関数も、必要な部分だけ書き換えます。

int start()
{
int counted_bars=IndicatorCounted();

if(counted_bars<0) return(-1);

int limit=Bars-counted_bars;
for(int i=0; i<limit; i++) {
RSI_Buffer[i]=iRSI(NULL,0,RSI_Period,PRICE_CLOSE,i);
}

return(0);
}



これで実行してみます。

20110210_2


これでいちおう描画できましたが、目盛りが見にくいですね。RSIは0から100までの範囲で動くのですが、現在は16.347から81.8184の範囲となっています。

また、重要ラインである30と70を強調したいところです。

そこで、プリプロセッサ命令で設定します。赤い部分を書き加えます。

#property copyright "Busuibon"
#property link "http://metatradermania.blog24.fc2.com/"

#property indicator_separate_window //サブウインドウに表示
#property indicator_buffers 1
#property indicator_color1 Yellow
#property indicator_minimum 0
#property indicator_maximum 100
#property indicator_level1 30
#property indicator_level2 70


//---- input parameters
extern int RSI_Period=14;

//---- buffers
double RSI_Buffer[];



indicator_minimum と indicator_maximum でサブウインドウの目盛の最小値・最大値を設定します。

indicator_level では、サブウインドウの目盛の最小値・最大値の範囲内で水平ラインを引くことができます。8つまで設定可能です。

上の書き換えたコードで再び実行しました。チャート上でいったん削除してから実行しないと設定は反映されないようです。

20110210_1





スポンサーサイト

タグ :

Return to page top

Comments:

Comment Form
Only inform the site author.

Trackback+Pingback:

TrackBack URL for this entry
http://metatradermania.blog24.fc2.com/tb.php/37-cce5b2fb
Listed below are links to weblogs that reference
from ど素人のMetaTrader入門
Bookmark
検索フォーム
RSSリンクの表示
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。