MT4 オリジナルRCIの間違いについてなど
RCIというのは、それなりに人気があるようで、幾度となくお客様からの
ご依頼で触ってきました。
しかし、基本的にはあまり興味が無く、深く内容について考えていません
でした。(実を言うと、性能に対しては、今もあまり興味がないです。)
オリジナル版の計算は、まどろっこしくて無駄の多い手順となっている為、
単純化及び後々に扱いやすい形にしてみようかなと思い、何となくの好奇心
から今回のツールを作ってみました。
興味のある方は、お試し下さい。

↓バナー↓を応援クリックして下さい。
クリックして頂くと、ダウンロードリンクが以下に展開表示されます。
1.チャートにセットすると、基本的には普通のRCIが表示されるだけです。
2.今回はソースファイル(mq4)で公開しています。
オリジナルのインジケーターやEAでRCIの条件を利用し易い様、
1つの関数の形でRCIをまとめています。(63~95行目)
iRCI(string symbol、ENUM_TIMEFRAMES timeframe、int period、int index)
という内容で、簡単に利用可能です。
必要に応じて、コピペする等して、ご自由にご利用ください。
※MT5にコピペしても使えるようにしておきました。
3.iRCI関数の下(97行目以降)に、オリジナルのRCI(SpearmanRankCorr)と
同じ値を出力するバージョンもオマケで残してあります。
どうしてもオリジナルと同じ値を利用したい場合は、そちらをご利用
下さい。
以前からオリジナルの RCI (SpearmanRankCorr) と、軽量版として広く出回って
いるように思える RCI_3Line_v130 とで、値が微妙に異なるのが気になって
いたのですが、今回HTバージョンを作ってみて、オリジナルのミスに気が
つきました。
今回作ったHT_RCIは、RCI_3Line_v130と同じ値になります。
(結果を100倍していませんので、値は100分の1となっています。)
オリジナルの回路を良く見てみると、同値の順位平均化の際、検索を飛ばす
ところで、余分に飛ばし過ぎており、正常な順位付けができていないようでした。
今まで誰も気付かなかったのか?見て見ぬふりをしていたのか?
よく分かりませんが、どうやら昔からずっと間違っていたようです。
プログラムをされない方は、細かいことに興味ないかもしれませんが、
具体的に言うと、SpearmanRankCorrの82行目に
i = k;
という文があるのですが、正しくは
i = k - 1;
かと思われます。
上記のように修正すると、RCI_3Line_v130と値が一致するようになります。
(逆に私の勘違いだったらすみません。先に謝っときます。)
くだらないことかもしれませんが、頭の中に残っていた疑問符が1つ解消
されて、少しスッキリしました。
RCIの計算では、終値の順位付けをするのですが、オリジナルのミスは、
終値で同値のデータが有った場合に限り、効いてくるものなので、大きい
時間足では、あまり気にならなかったかもしれません。
(時間足が大きいほど、終値同値の足が出現する可能性が低い。)
計算をミスっていると知っても、あくまでオリジナルを使い続けるのか、
それとも、正しいと思われる計算のツールを利用するのかは、それぞれの
判断にお任せします。
【 HT_Alert_to_LINE MT5版 販売開始のご案内】
本日より、MT4版とMT5版の同梱販売を開始しました。
ex4ファイルとex5ファイルが両方が入ったものを下記から購入可能です。

Gogojungleで購入
有効にご活用頂ければと思います。
それでは。
少しでもお役に立てば幸いです。
ご依頼で触ってきました。
しかし、基本的にはあまり興味が無く、深く内容について考えていません
でした。(実を言うと、性能に対しては、今もあまり興味がないです。)
オリジナル版の計算は、まどろっこしくて無駄の多い手順となっている為、
単純化及び後々に扱いやすい形にしてみようかなと思い、何となくの好奇心
から今回のツールを作ってみました。
興味のある方は、お試し下さい。

↓バナー↓を応援クリックして下さい。
クリックして頂くと、ダウンロードリンクが以下に展開表示されます。
1.チャートにセットすると、基本的には普通のRCIが表示されるだけです。
2.今回はソースファイル(mq4)で公開しています。
オリジナルのインジケーターやEAでRCIの条件を利用し易い様、
1つの関数の形でRCIをまとめています。(63~95行目)
iRCI(string symbol、ENUM_TIMEFRAMES timeframe、int period、int index)
という内容で、簡単に利用可能です。
必要に応じて、コピペする等して、ご自由にご利用ください。
※MT5にコピペしても使えるようにしておきました。
3.iRCI関数の下(97行目以降)に、オリジナルのRCI(SpearmanRankCorr)と
同じ値を出力するバージョンもオマケで残してあります。
どうしてもオリジナルと同じ値を利用したい場合は、そちらをご利用
下さい。
以前からオリジナルの RCI (SpearmanRankCorr) と、軽量版として広く出回って
いるように思える RCI_3Line_v130 とで、値が微妙に異なるのが気になって
いたのですが、今回HTバージョンを作ってみて、オリジナルのミスに気が
つきました。
今回作ったHT_RCIは、RCI_3Line_v130と同じ値になります。
(結果を100倍していませんので、値は100分の1となっています。)
オリジナルの回路を良く見てみると、同値の順位平均化の際、検索を飛ばす
ところで、余分に飛ばし過ぎており、正常な順位付けができていないようでした。
今まで誰も気付かなかったのか?見て見ぬふりをしていたのか?
よく分かりませんが、どうやら昔からずっと間違っていたようです。
プログラムをされない方は、細かいことに興味ないかもしれませんが、
具体的に言うと、SpearmanRankCorrの82行目に
i = k;
という文があるのですが、正しくは
i = k - 1;
かと思われます。
上記のように修正すると、RCI_3Line_v130と値が一致するようになります。
(逆に私の勘違いだったらすみません。先に謝っときます。)
くだらないことかもしれませんが、頭の中に残っていた疑問符が1つ解消
されて、少しスッキリしました。
RCIの計算では、終値の順位付けをするのですが、オリジナルのミスは、
終値で同値のデータが有った場合に限り、効いてくるものなので、大きい
時間足では、あまり気にならなかったかもしれません。
(時間足が大きいほど、終値同値の足が出現する可能性が低い。)
計算をミスっていると知っても、あくまでオリジナルを使い続けるのか、
それとも、正しいと思われる計算のツールを利用するのかは、それぞれの
判断にお任せします。
【 HT_Alert_to_LINE MT5版 販売開始のご案内】
本日より、MT4版とMT5版の同梱販売を開始しました。
ex4ファイルとex5ファイルが両方が入ったものを下記から購入可能です。

Gogojungleで購入
有効にご活用頂ければと思います。
それでは。
少しでもお役に立てば幸いです。