RCIのダウンロードと解説|MT4インジケーター
RCIというインジケーターがMT4に欲しいです。
RCIはどんなインジケーターですか?
FXの不労所得だけで年収2000万を達成しました。
このお悩みに誠意をもって回答します。
このページでわかること・できること
インジケーター「RCI」のダウンロード
RCIの計算や使い方
RCIのダウンロード|MT4インジケーター
ここからインジケーターのダウンロードが可能。
ダウンロードするインジケーターファイルは.ex4ファイルとなる。
MT4のインジケーターフォルダへ移動すれば使用可能だ。
RCIのインストール
ダウンロードしたインジケーターはMT4のデータフォルダからindicatorsフォルダを探しファイルを移動する。
indicatorsフォルダにRCIのファイルを移動し、MT4を再起動するとインストールが完了する。
RCIはどんなインジケーターなのか?
RCI(Rank Correlation Index、順位相関指数)は、価格の推移に基づいてトレンドの強さや方向を評価するテクニカル指標のひとつ。以下にRCIの概要とその計算方法、使い方について解説する。
RCIの概要
RCIは価格データのランク(順位)を用いて価格のトレンドを評価する。RCIは主に以下のような点で利用される。
- トレンドの確認: RCIの値が高い場合は上昇トレンド、低い場合は下降トレンドを示す。
- 逆張りシグナル: 極端に高いまたは低いRCIの値は、買われ過ぎや売られ過ぎを示し、逆張りのシグナルとして利用される。
RCIの計算方法
RCI(Relative Currency Index)の計算方法は、通貨ペアの価格データからその相対的な強さや弱さを示すための指標だ。RCIは、価格の日付ごとの順位と価格の期間内の順位の差に基づいて計算される。以下に、RCIの計算方法を詳しく説明する。
- 日付の順位の計算:
- 日付の順位は、当日が1として、過去の日付に遡るにつれて順位が増加する。つまり、最新の日付が1、2番目に新しい日付が2、以降順に順位が増加していく。
- 価格の順位の計算:
- 価格の順位は、期間内の最高価格が1として、それ以外の価格がその高さに応じて順位が付けられる。つまり、期間内の価格が高いほど、それに対応する順位が低くなる。
- 日付の順位と価格の順位の差の計算:
- 日付の順位と価格の順位を比較し、その差を2乗する。そして、その差の2乗を期間中の日付数だけ合計する。
- RCIの計算:
- RCIは、以下の式で計算される:
[math]RCI = \left(1 – \frac{6 \times d}{n^3 – n}\right) \times 100[/math]
ここで、[math]d[/math]は日付の順位と価格の順位の差の2乗の合計、[math]n[/math]は期間の日付数を表す。
- RCIは、以下の式で計算される:
- RCIの解釈:
- RCIがプラスのゾーンにある場合、価格は時間の推移とともに上昇している。つまり、上昇局面にある。また、RCIがマイナスのゾーンにある場合、価格は時間の推移とともに下落している。つまり、下落局面にある。
RCIは、価格の動向に対する相対的な強さや弱さを示すための指標であり、トレンドの転換点を特定するのに役立つインジケーターだ。
RCIの解釈と利用法
- RCIが +100 に近い場合: 強い上昇トレンドを示す。価格が直近の高値付近にあることを意味している。
- RCIが -100 に近い場合: 強い下降トレンドを示す。価格が直近の安値付近にあることを意味している。
- RCIが 0 付近の場合: トレンドが明確でない、またはレンジ相場を示す。
- 逆張りシグナル: RCIが +80 以上または -80 以下になると、買われ過ぎまたは売られ過ぎを示し、反転の可能性が高まるため逆張りのシグナルとして利用される。
まとめ
RCIは、価格のランク付けに基づいてトレンドを評価するためのテクニカル指標だ。シンプルな計算方法とわかりやすい解釈で、トレンドの強さや逆張りのタイミングを把握するのに役立てやすい。
RCIインジケーターのプログラム
//+------------------------------------------------------------------+
//| RCI-1.0 |
//| Copyright 2024, FX-Bonus.net |
//| https://fx-bonus.net/ |
//+------------------------------------------------------------------+
property copyright "Copyright 2024, FX-Bonus.net"
property link "https://fx-bonus.net/"
property version "1.00"
property strict
property indicator_separate_window // サブウィンドウに表示
property indicator_buffers 1
property indicator_color1 White
//--- input parameters
input int period = 14; // RCIの期間
//--- indicator buffers
double RCI_Buffer[];
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
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[])
{
if(rates_total < period) // データ数が期間未満の場合は計算しない
return 0;
int i, j, k;
double sum_d, d;
int rank_price[];
int rank_time[];
// 配列サイズをperiodに設定
ArrayResize(rank_price, period);
ArrayResize(rank_time, period);
for (i = period - 1; i < rates_total; i++)
{
// Calculate ranks of price and time
for (j = 0; j < period; j++)
{
rank_price[j] = 1;
rank_time[j] = 1;
for (k = 0; k < period; k++)
{
if (close[i - j] < close[i - k])
rank_price[j]++;
if (j < k)
rank_time[j]++;
}
}
// Calculate d
sum_d = 0;
for (j = 0; j < period; j++)
{
d = rank_price[j] - rank_time[j];
sum_d += d * d;
}
// Calculate RCI
RCI_Buffer[i] = 1 - (6 * sum_d) / (period * (period * period - 1));
RCI_Buffer[i] *= 100;
}
//--- return value of prev_calculated for next call
return(rates_total);
}
プログラムの解説
プロパティ宣言
#property strict #property indicator_separate_window // サブウィンドウに表示 #property indicator_buffers 1 #property indicator_color1 White
#property strict
: 厳格なコード検査を有効にふる。これにより、より安全でエラーの少ないコードが書ける。#property indicator_separate_window
: インジケーターをメインチャートとは別のサブウィンドウに表示することを指定する。#property indicator_buffers 1
: インジケーターが使用するバッファの数を1つに設定する#property indicator_color1 White
: インジケーターラインの色を白に設定する。
入力パラメータとバッファの定義
//--- input parameters input int period = 14; // RCIの期間 //--- indicator buffers double RCI_Buffer[];
input int period = 14
: ユーザーが設定できるインジケーターの期間を定義する。デフォルト値は14。double RCI_Buffer[]
: インジケーターのデータを保存するためのバッファを定義する。このバッファはRCIの計算結果を格納。
計算関数
//+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ 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[]) { if(rates_total < period) // データ数が期間未満の場合は計算しない return 0; int i, j, k; double sum_d, d; int rank_price[]; int rank_time[]; // 配列サイズをperiodに設定 ArrayResize(rank_price, period); ArrayResize(rank_time, period); for (i = period - 1; i < rates_total; i++) { // Calculate ranks of price and time for (j = 0; j < period; j++) { rank_price[j] = 1; rank_time[j] = 1; for (k = 0; k < period; k++) { if (close[i - j] < close[i - k]) rank_price[j]++; if (j < k) rank_time[j]++; } } // Calculate d sum_d = 0; for (j = 0; j < period; j++) { d = rank_price[j] - rank_time[j]; sum_d += d * d; } // Calculate RCI RCI_Buffer[i] = 1 - (6 * sum_d) / (period * (period * period - 1)); RCI_Buffer[i] *= 100; } //--- return value of prev_calculated for next call return(rates_total); }
関数引数
rates_total
: 計算に利用可能な全バーの数。prev_calculated
: 前回計算したバーの数。time[]
: 時間データ配列。open[]
,high[]
,low[]
,close[]
: 各バーの価格データ配列。tick_volume[]
: ティックボリューム配列。volume[]
: 実際のボリュームデータ配列。spread[]
: 各バーのスプレッドデータ配列。
計算ロジック
- データ数の確認:
if(rates_total < period) // データ数が期間未満の場合は計算しない return 0;
- 使用可能なバーの数が設定した期間未満の場合、計算をスキップ。
- 変数と配列の宣言:
int i, j, k; double sum_d, d; int rank_price[]; int rank_time[];
- 計算に使用する変数と配列を宣言。
- 配列のリサイズ:
ArrayResize(rank_price, period); ArrayResize(rank_time, period);
rank_price
とrank_time
配列のサイズを設定期間にリサイズする。
- RCIの計算:
for (i = period - 1; i < rates_total; i++) { // Calculate ranks of price and time for (j = 0; j < period; j++) { rank_price[j] = 1; rank_time[j] = 1; for (k = 0; k < period; k++) { if (close[i - j] < close[i - k]) rank_price[j]++; if (j < k) rank_time[j]++; } } // Calculate d sum_d = 0; for (j = 0; j < period; j++) { d = rank_price[j] - rank_time[j]; sum_d += d * d; } // Calculate RCI RCI_Buffer[i] = 1 - (6 * sum_d) / (period * (period * period - 1)); RCI_Buffer[i] *= 100; }
- 各バーについて、価格と時間のランクを計算する。
rank_price
とrank_time
を用いてランクの差の二乗和 (sum_d
) を計算する。- 最終的にRCIを計算し、
RCI_Buffer
に結果を格納。
- 戻り値:
return(rates_total);
前回計算したバーの数を返す。これにより、次回呼び出されたときにどこから計算を再開するかがわかる。
MT4インジケーターまとめ
-
PivotPointsピボットポイントのダウンロードと解説|MT4インジケーター
-
GMMA・グッピーのダウンロードと解説|MT4インジケーター
-
T3のダウンロードと解説|MT4インジケーター
-
TSIのダウンロードと解説|MT4インジケーター
-
SuperTrendスーパートレンドのダウンロードと解説|MT4インジケーター
-
MT4からインジケーターを無料でダウンロード|1350種類から検索
-
TMAのダウンロードと解説|MT4インジケーター
-
Aroonのダウンロードと解説|MT4インジケーター
-
RCIのダウンロードと解説|MT4インジケーター
-
【MT4】ピボットのインジケーター特集【無料】
-
市場の時間をチャートに表示するMT4インジケーター|MarketCrock
-
BSIのダウンロードと解説|MT4インジケーター
-
平均足をサブウィンドウに表示するMT4インジケーター
-
1日の区切りに垂直ラインを引くMT4インジケーター|OneDayLine
-
平均足Smoothdのダウンロードと解説|MT4インジケーター
-
【海外FX】ボリンジャーバンドを使ったMT4のインジケーター特集【無料】
-
【MT4】高値と安値がわかる無料インジケーター特集|High Low【海外FX】
-
Donchian channelのダウンロードと解説|MT4インジケーター
-
【MT4】スキャルピングで使えるオシレーター解説【無料インジケーター】
-
ボリンジャーバンドをサブウインドウに表示するMT4インジケーター
-
Schaff Trend Cycleのダウンロードと解説|MT4インジケーター
-
【無料】スキャルピングトレードのサインがでるMT4インジケーター特集【最新23選】
-
ローソク足の残り時間をカウントダウン表示するMT4インジケーター
-
エントリーサインをだすMT4インジケーター特集