逆張りオシレーター頂上決戦:7本を同じルールで戦わせたら
この特集は、ラボで検証した約100本の指標の主ルールをまとめて集計したものです。サイトの記事として紹介しているのは、そのうち厳選した41本。名前だけが出てくる指標は、記事にしていない検証分です。
- 元記事の「売られすぎ」水準に入る日は、UOで1.6%、StochRSIで21.9%。水準の数字は共通の物差しにならない
- 「自分の過去250日の下位10%で買い→中央値で売り」に統一すると、トーナメント優勝はスロー%K。ただし決勝は11年対9年の僅差
- 7本のPFの90%区間はすべて1をまたぐ。差はノイズの範囲で、「明確な王者はいない」が結論
共通ルール:自分の過去250日の中で順位をつける
RSIの30と%Rの−80は、同じ「売られすぎ」でも出現頻度がまるで違います。2007年4月以降、RSI14が30以下だった日は2.9%、%R14が−80以下は17.4%、StochRSIの20以下は21.9%でした。そこで各オシレーターを自分の過去250日の中での順位(百分位)に直し、全員に同じ基準を当てます。
今日の値以下だった日の割合
買い:百分位 ≦ 10% 売り:百分位 ≧ 50%
出場はRSI14、スロー%K(14,3)、%R14、CMO14、UO(7,14,28)、StochRSI(14,14,3)、CCI20の7本。0〜100の目盛には%R+100、(CMO+100)÷2で直せますが、順位は大小関係だけで決まるので、変換の前後で百分位の差は0でした。上限のないCCIもそのまま比べられます。
「CMOはRSIの別名だから同じ結果になる」とは限りません。CMO14は単純平均の上げ幅・下げ幅で計算し、RSI14はワイルダーの平滑化を使うので、順位にしても一致しません(百分位の相関0.88)。一方%R14はファスト%Kの上下反転なので、平滑化したスロー%Kとは3日平均の分だけ違います。
検証:成績表
ルール:上の共通ルール。感度は窓を200日・300日(±20%)に変えた2通り。検証の条件は共通の検証ルールのとおりで、元記事のルールの成績も並べます。
| オシレーター | 取引 | 年率 | 最大下落率 | PF | 勝率 | 元ルール 年率/PF |
|---|---|---|---|---|---|---|
| 買い持ち | — | 7.3% | −61.4% | — | — | — |
| RSI14(#002) | 69 | 2.7% | −43.2% | 1.63 | 75% | 1.7%/2.04 |
| CMO14 | 80 | 2.7% | −27.7% | 1.58 | 69% | 3.6%/2.39 |
| スロー%K(#005) | 98 | 2.9% | −50.7% | 1.47 | 68% | 1.4%/1.30 |
| %R14(#034) | 139 | 3.0% | −39.0% | 1.39 | 71% | 1.8%/1.25 |
| CCI20(#029) | 101 | 1.6% | −44.5% | 1.28 | 68% | 3.3%/1.42 |
| StochRSI | 125 | 0.6% | −54.9% | 1.12 | 62% | 0.8%/1.14 |
| UO | 106 | 0.1% | −44.7% | 1.09 | 66% | 4.6%/3.60 |
%R14は取引139回・年率3.0%・PF1.39で、元記事の年率1.8%・PF1.25から成績が上がりました。RSI・CMO・スロー%Kは取引が100回に届きませんでした。最大下落率はCMOの−27.7%が最も浅く済みました。一方、元記事で年率4.6%だったUOは0.1%に沈みます。元の好成績は20回の取引に支えられていました。
番外のMFI14(#038、ETF1321)は年率1.8%・PF1.39で、同じETFのRSI14(年率1.9%・PF1.44)を上回りませんでした。
トーナメント
シードはPF順(取引30回以上が条件。全員が満たした)。1試合は、2007〜2026年の20年のうち年間リターンで上回った年の数で勝敗を決め、同数ならPFの高い方が勝ちとしました。
その差はノイズか
取引を復元抽出して2,000回PFを計算し直すと(ブートストラップ)、スロー%KのPFがRSI14を上回ったのは41%、CMO14に対しては43%。最下位のUOに対しても78%でした。PFの90%区間は7本とも下限が1を割ります(RSI14は0.93〜3.34)。年間首位の回数もRSI・CMO・StochRSIが4年ずつ、優勝したスロー%Kは2年です。
窓の長さにも順位は揺れます。200日・300日ではCMOが年率3.9%・4.1%、RSIが3.4%・3.4%で、スロー%K(1.9%・2.9%)を上回りました。
意見が割れるとき、そろうとき
2025年4月7日(31,136円)の百分位はRSI0%、CMO1%、StochRSI4%と、全員が下位10%に入っていました。ところが、どこかが下位10%だった1,132日のうち、7本そろったのは90日だけ。1本だけの日は348日あり、うちStochRSIが99日、UOが78日を占めます。この2本が単独で鳴らすシグナルの多さが、成績の差になって表れています。
同時に下位10%だった本数で分けると、20営業日後の平均リターンは1〜2本の日で+0.78%、3〜5本で+0.84%、6〜7本で+2.51%(全日平均+0.74%)。参考に「4本以上が下位10%で買い→4本以上が中央値以上で売り」とすると年率3.7%・PF1.65でしたが、結果を見てから作ったルールなので参考扱いです。
読み解き
- 物差しをそろえると差は縮む。元ルールの年率は0.8〜4.6%と開いていたが、共通ルールでは上位5本が1.6〜3.0%に収まった。
- 王者は決まらない。優勝はスロー%Kだが、決勝は11対9でブートストラップの勝率は41%。どれを選んでもノイズの範囲。
- 差が出るのは単独シグナルの多さ。StochRSIとUOは単独の下位10%が多く、PFが1.12・1.09にとどまった。全員がそろった日の20日後は+2.51%。
結論
共通ルールではRSI・CMO・スロー%K・%Rが団子で、トーナメントの優勝はスロー%K。ただし差はノイズの範囲で、明確な王者はいない。どの1本を選ぶかより、極端な安値を待つというルールの形のほうが成績を左右している。どれも年率は買い持ち7.3%に届かない。
自分で試す(TradingView)
//@version=6
indicator("オシレーターの250日百分位", overlay = false)
src = input.string("RSI", "指標", options = ["RSI", "スロー%K", "CMO"])
L = input.int(250, "窓(日)")
k = ta.sma(ta.stoch(close, high, low, 14), 3)
x = src == "RSI" ? ta.rsi(close, 14) : src == "CMO" ? ta.cmo(close, 14) : k
p = ta.percentrank(x, L) // 過去L日で今日以下だった日の割合(本文の計算とほぼ同じ)
plot(p, "百分位", color = color.blue)
hline(10, "買い", color = color.green)
hline(50, "売り", color = color.red)
var bool inPos = false
if p <= 10 and not inPos
inPos := true
else if p >= 50 and inPos
inPos := false
bgcolor(inPos ? color.new(color.green, 88) : na, title = "保有中")

