🧠 概要:
概要
この記事では、ボリンジャーバンドとRSIを使用したトレンド表示インジケーター「Trend12_bbands_rsi」が紹介され、ソースコードが無料で公開されています。このインジケーターは、メインウィンドウにトレンドを視覚化し、エントリーポイントの判断をサポートします。
要約
- インジケーターの目的: ボリンジャーバンドとRSIを用いてトレンドを表示する。
- 設定内容:
- ボリンジャーバンドの期間: 20
- 標準偏差: 2σ
- RSIの期間: 9
- 買いシグナル: RSIが70%以上
- 売りシグナル: RSIが30%以下
- トレンド表示:
- 上昇トレンド: ローソク足がボリンジャーバンドの上ラインを上抜け、RSIが70%以上。
- 下降トレンド: ローソク足が下ラインを下抜け、RSIが30%以下。
- ポイントが2回出現した場合、より強いシグナルと見なされる。
- エントリーポイントの例:
- トレンド表示の線が水色または赤色になったタイミング。
- ダウンロード情報: 実行ファイル(ex4)及びソースコード(mq4)が無料でダウンロード可能。
- 技術的工夫: 処理を軽くしながら、視覚的に分かりやすい表示を実現している。
- 利用方法: ボリンジャーバンドを利用してレンジ相場からのブレイクを視覚化し、確度の高いエントリーを狙う。
この記事は、トレードを行うファンダメンタルや技術的な分析を行うトレーダー向けに、直感的で実用的なツールを提供することを目的としています。
今回は、ボリンジャーバンドとRSI使ったトレンド表示ツールをメインウィンドウに表示するトレンド表示インジケーターを公開します。
ボリバンの期間20、標準偏差2σのラインをローソク足が上抜けていて、かつRSIが70%以上を示している際に、上昇トレンドとしてボリバンの線を色付けします。
■Trend12_bbands_rsi インジケーター
▶動作サンプル画像
下降トレンド上昇トレンド
上昇から下降トレンド
レンジ相場
上昇トレンド
サブウィンドウにRSI(点線は70%と30%)を表示した場合
下降トレンドの場合は、標準設定がボリバンの期間20、標準偏差2σのラインをローソク足が下抜けていて、かつRSIが30%以下を示している際に、ボリバンの線を赤色に表示します。
レンジ相場の場合はどうしてもトレンド表示サインが右往左往します。
そういう意味では、同一方向へのトレンドを表示する色表示サインが2回出たタイミングを、より強いサインととらえてエントリー判断に使うといいかもしれないです。
メインウィンドウに表示されると、より直感的に分かりやすくなりますね。
▶エントリーポイント例
-
トレンドを示す水色/赤色の線が出現したタイミング
-
トレンドを示す水色/赤色の線が2回出現したタイミング
▶設定内容
▶ダウンロード
以下から実行ファイル(ex4)とソースコード(mq4)をダウンロード頂けます。
▶ソースコード
ソースコードの中身はこちらです。
double MainUpper[], MainLower[], UpUpper[], UpLower[], DownUpper[], DownLower[]; input string setting = ""; input int BB_Period = 20; input double BB_Deviation = 2.0; input int RSI_Period = 9; input int RSI_Sig_Buy = 70; input int RSI_Sig_Sell = 30; int OnInit(){ SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 1); SetIndexBuffer(0, MainUpper); SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 1); SetIndexBuffer(1, MainLower); SetIndexStyle(2, DRAW_LINE, STYLE_SOLID, 3); SetIndexBuffer(2, UpUpper); SetIndexStyle(3, DRAW_LINE, STYLE_SOLID, 3); SetIndexBuffer(3, UpLower); SetIndexStyle(4, DRAW_LINE, STYLE_SOLID, 3); SetIndexBuffer(4, DownUpper); SetIndexStyle(5, DRAW_LINE, STYLE_SOLID, 3); SetIndexBuffer(5, DownLower); IndicatorShortName("BB+RSI Trend Lines (Always Line)"); return(INIT_SUCCEEDED);} int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]){ int start = prev_calculated > 0 ? prev_calculated - 1 : rates_total - 1; for(int i = start; i >= 0; i--) { double bb_upper = iBands(NULL, 0, BB_Period, BB_Deviation, 0, PRICE_CLOSE, MODE_UPPER, i); double bb_lower = iBands(NULL, 0, BB_Period, BB_Deviation, 0, PRICE_CLOSE, MODE_LOWER, i); double rsi = iRSI(NULL, 0, RSI_Period, PRICE_CLOSE, i); MainUpper[i] = bb_upper; MainLower[i] = bb_lower; UpUpper[i] = UpLower[i] = DownUpper[i] = DownLower[i] = EMPTY_VALUE; if(rsi >= RSI_Sig_Buy) { UpUpper[i] = bb_upper; UpLower[i] = bb_lower; } else if(rsi <= RSI_Sig_Sell) { DownUpper[i] = bb_upper; DownLower[i] = bb_lower; } } return(rates_total);}
■編集後記
MQL4は、考えなしに実装すると、処理が重くなりがちです。
処理を軽く維持しながら、便利に使える表示をする工夫を入れて、今回もインジケーターを作ってみました。
ボリバンを使うと、レンジ相場からのブレイクが分かりやすくていいですね。もっと大きなトレンドの流れも掴みながら、それに沿ったブレイクをボリバンで掴めば、より確度の高いエントリーができると思います。
それではまた!
Views: 0