【移植#85】色つきRCIとStochasticを同じ窓で比べる — 似た線でも計算は別¶

この記事の3行まとめ
- RCIは終値の時間順位と価格順位を比べ、Stochasticは終値が期間内の高値・安値のどこにあるかを測ります
- 同じ30本で計算しても、EURUSD H1の検証500本では正規化した2線の差が最大1.487でした
- MT5の実機で5バッファ×確定500本×3回、計7,500値を独立照合し、不一致はありませんでした
「似ている」から一歩進めて数値を比べる¶
前回の移植#84では、MAクロスを仮想約定した損益線の読み方を扱いました。今回の元記事は2010年4月20日公開の「色つきRCIはStochastic に似ていた。」です。著者は、00-RCI_v101.mq4とColor Stochastic.mq4を合成した色つきRCIを示し、期間を調整すると両者が似て見えると述べています。一方で、同列に扱ってよいかは分からない、と留保していました。
原典の配布ページから00-RCI_v101Color.mq4を確認しました。色分けはRCIが+0.6を超えるか、-0.6を下回るかで決まります。RCI本体は期間内の終値を高い順に並べ、同じ価格には新しい足から順に別の順位を付けます。これは平均順位を使う方式とは異なります。順位規則については移植#13でも検証しています。
今回のMT5版は、原典のRCI順位と厳密な閾値を引き継ぎ、比較用のStochasticを追加しました。原典の画面や入力設定を丸ごと再現するものではありません。
RCIは順位、Stochasticは値幅を見る¶
同じ期間 (n=30) でも、両者が読んでいる情報は違います。RCIでは、直近足を0位とする時間順位 (t_i) と、終値を高い順に並べた価格順位 (p_i) の差を使います。
Stochasticは、その足の終値 (C) と期間内の最高値 (H)、最安値 (L) から、未平滑の位置を求めます。画面で比較しやすいよう、一般的な0〜100の値を-1〜+1へ変換しました。
| 項目 | RCI | 今回のStochastic |
|---|---|---|
| 入力 | 30本の終値の並び | 30本の高値・安値と現在の終値 |
| 主に示すもの | 時間が進むほど終値の順位が上がったか | 終値が期間の値幅のどこにあるか |
| 同値の扱い | 原典互換の連続した整数順位 | 順位付けをしない |
| 画面の尺度 | -1〜+1 | 0〜100を-1〜+1へ変換 |
高値と安値が同じ場合、Stochasticは割り算できないので空値にします。RCIの終値が同値でも、原典互換の順位付けで数値を出します。この違いだけでも、2本を代用品として一括りにはできません。
3色のRCIと比較線を読む¶
MT5版では、RCIを中立の灰色、+0.6超を緑、-0.6未満を赤で描きます。青線はRCIの単純移動平均10本、黄線は未平滑Stochastic30本です。RCIとStochasticの差もバッファへ記録しますが、表示尺度を壊さないよう差分線は描きません。
| バッファ | 内容 |
|---|---|
| 0 | RCI |
| 1 | RCIの色番号(中立0、上側1、下側2) |
| 2 | RCIのSMA |
| 3 | 正規化した未平滑Stochastic |
| 4 | RCI − Stochastic(データのみ) |
形成中の0番足は価格が動くたびに更新されます。後から確定した過去の値を見て「この時点で必ず同じ色だった」とは言えません。確認には確定足を使ってください。
使い方と入力¶
85_RCI_Stochastic_Comparison_v1_00.mq5 をダウンロード
MT5のデータフォルダにあるMQL5/Indicatorsへ保存し、MetaEditorでコンパイルしてからチャートへ適用します。発注するEAではなく、表示専用のインジケーターです。
| 入力 | 既定値 | 内容 |
|---|---|---|
InpPeriod | 30 | RCIとStochasticで共通の期間 |
InpMAPeriod | 10 | RCIの単純移動平均期間 |
InpUpper / InpLower | +0.6 / -0.6 | RCIの厳密な色分け境界 |
InpMaxBars | 1,200 | 描画する直近の最大本数 |
原典にある適用価格の選択、RCI移動平均のEMA・SMMA・LWMAは含めていません。終値RCIとSMAへ限定して、Stochasticとの計算差が読めるようにしました。MT5標準Stochasticの平滑化された%Kや%Dとも数値が一致する設定ではありません。
MT5で独立照合した結果¶
専用MT5 Build 6182、EURUSD H1で配布指標と独立の検証EAを実行しました。両方ともコンパイル0エラー・0警告です。検証EAは指標の計算関数を呼ばず、OHLCから高い順の選択を繰り返してRCIを求め、別に最高値・最安値からStochasticを計算しました。
| 検査 | 結果 |
|---|---|
| 確定足 | 500本 |
| 5バッファ×500本×3回 | 7,500値一致、不一致0 |
| 正規化した2線の最大絶対差 | 1.487(この検証区間) |
| RCIを0.01ずらす負対照 | 一致判定が拒否 |
| 価格履歴 | 検査の前後で確定足の時刻とOHLCが一致 |
| 注文数・ポジション数 | 変更なし |
3回は同じ確定足を繰り返し照合した回数です。異なる1,500本を調査したという意味ではありません。最大差もこの銘柄・時間足・期間の観測値で、他の相場へ一般化できません。
冒頭の画像は検証時にMT5から撮影した実画面です。白・緑・赤がRCI、青がRCIのSMA、黄がStochasticです。2本が同方向に動く場面はありますが、黄線が動いてもRCIがほぼ横ばいの場面があり、色分けのタイミングまで同じとは言えません。
これだけでは分からないこと¶
この比較は値の定義と表示の一致を確かめるものです。RCIとStochasticのどちらが売買で優れるか、閾値を越える売買で利益が出るかは調べていません。売買成績を知るには、エントリー・決済・コストを定義し、別期間でも検証する必要があります。
次: 【移植#86】Bid・Askから離れた水平線を引く — pointsと複数インスタンスの扱い