RCIのダウンロードと解説|MT4インジケーター

RCIアイキャッチ
  • URLをコピーしました!

RCIというインジケーターがMT4に欲しいです。

RCIはどんなインジケーターですか?

ホシノ

FXの不労所得だけで年収2000万を達成しました。
このお悩みに誠意をもって回答します。

BBF_MQL5-202400601
リアルトレード公開|EA BBF

このページでわかること・できること

インジケーター「RCI」のダウンロード

RCIの計算や使い方

目次

RCIのダウンロード|MT4インジケーター

ここからインジケーターのダウンロードが可能。
ダウンロードするインジケーターファイルは.ex4ファイルとなる。
MT4のインジケーターフォルダへ移動すれば使用可能だ。

RCIのインストール

ダウンロードしたインジケーターはMT4のデータフォルダからindicatorsフォルダを探しファイルを移動する。

ファイル>データフォルダを開く>MQL4>indicators

indicatorsフォルダにRCIのファイルを移動し、MT4を再起動するとインストールが完了する。

RCIはどんなインジケーターなのか?

RCIチャート画像
RCI

RCI(Rank Correlation Index、順位相関指数)は、価格の推移に基づいてトレンドの強さや方向を評価するテクニカル指標のひとつ。以下にRCIの概要とその計算方法、使い方について解説する。

RCIの概要

RCIは価格データのランク(順位)を用いて価格のトレンドを評価する。RCIは主に以下のような点で利用される。

  • トレンドの確認: RCIの値が高い場合は上昇トレンド、低い場合は下降トレンドを示す。
  • 逆張りシグナル: 極端に高いまたは低いRCIの値は、買われ過ぎや売られ過ぎを示し、逆張りのシグナルとして利用される。

RCIの計算方法

RCI(Relative Currency Index)の計算方法は、通貨ペアの価格データからその相対的な強さや弱さを示すための指標だ。RCIは、価格の日付ごとの順位と価格の期間内の順位の差に基づいて計算される。以下に、RCIの計算方法を詳しく説明する。

  1. 日付の順位の計算:
    • 日付の順位は、当日が1として、過去の日付に遡るにつれて順位が増加する。つまり、最新の日付が1、2番目に新しい日付が2、以降順に順位が増加していく。
  2. 価格の順位の計算:
    • 価格の順位は、期間内の最高価格が1として、それ以外の価格がその高さに応じて順位が付けられる。つまり、期間内の価格が高いほど、それに対応する順位が低くなる。
  3. 日付の順位と価格の順位の差の計算:
    • 日付の順位と価格の順位を比較し、その差を2乗する。そして、その差の2乗を期間中の日付数だけ合計する。
  4. RCIの計算:
    • RCIは、以下の式で計算される:
      [math]RCI = \left(1 – \frac{6 \times d}{n^3 – n}\right) \times 100[/math]

      ここで、[math]d[/math]は日付の順位と価格の順位の差の2乗の合計、[math]n[/math]は期間の日付数を表す。
  5. 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[]: 各バーのスプレッドデータ配列。

計算ロジック

  1. データ数の確認:if(rates_total < period) // データ数が期間未満の場合は計算しない return 0;
    • 使用可能なバーの数が設定した期間未満の場合、計算をスキップ。
  2. 変数と配列の宣言:int i, j, k; double sum_d, d; int rank_price[]; int rank_time[];
    • 計算に使用する変数と配列を宣言。
  3. 配列のリサイズ:ArrayResize(rank_price, period); ArrayResize(rank_time, period);
    • rank_pricerank_time 配列のサイズを設定期間にリサイズする。
  4. 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_pricerank_time を用いてランクの差の二乗和 (sum_d) を計算する。
    • 最終的にRCIを計算し、RCI_Buffer に結果を格納。
  5. 戻り値:return(rates_total);
    前回計算したバーの数を返す。これにより、次回呼び出されたときにどこから計算を再開するかがわかる。

MT4インジケーターまとめ

  • URLをコピーしました!
  • URLをコピーしました!

このEAを使って、将来の見通しが立ちました

収入を増やしたい、将来のための資産が欲しい、支払いに縛られない自由な生活がしたい

このEAを使うと将来が見通せます。

22年以上で無敗の安定取引。リスク0%運用も可能なロジック。年利100%越えの上級者向け取引も可能。

マネーマシンとして育て上げることで大きな不労所得を得られます。

BBF-Girl
ドリームEA_BBF 無料ダウンロード
BBF_MQL5-202400601
リアルトレード公開|EA BBF

ポジション監視の時間

集中力は続いてますか?


オートクローズツールを使ってポジション管理を自動化


自動ポジション管理だから万が一でも大丈夫

あなたは空いた時間を自由に、効率的に使えます

自動決済ルールは独自にカスタム可能

ストップ、リミット変更にも対応。

エントリー後のポジション管理をすべて自動化できるトレーディングサポートツール。

トレード中のちょっとした離席など、念のためセットといった使い方も可能。

MT4用自動決済ツール【AutoCloseTool】は無料で入手できます。

オートクローズツール

取引ごとにキャッシュバックが発生します

もらわないだけ損している
取引ごとに毎回発生する現金のキャッシュバック
海外FXのキャッシュバックはメリットしかないサービスです

取引ごとにキャッシュバック
目次