あなたのインジケーターは嘘をついています(リペイント問題)
🎯 学べること
このレッスンを終えると、次のことができるようになります:
- インジケーターのリペイントを検証する(足の確定前にシグナルをスクリーンショットし、確定後に照合する)
- どのTradingViewインジケーターがリペイントするかを見分ける(個人向けの8割以上が該当します)
- リペイントしないツールだけを使う(SignalPilotのインジケーターはいずれもリペイントしません)
- どのインジケーターであれ、信用する前に実データで2〜4週間のウォークフォワード検証を行う
📉 ケーススタディ:リペイントするインジケーターでジェイクが1万4,700ドルを失った顛末
トレーダー: ジェイク・モリソン(複数の事例を合成した例)、26歳、元マーケティングアナリスト(口座3万2,000ドル)
戦略: TradingViewのインジケーター「Ultimate Reversal Pro」(ダウンロード4万7,000件、★4.8)
致命的な欠陥: インジケーターがリペイントしていた。足の確定後にシグナルが動いたり消えたりしていた
📊 「完璧な」backtestと現実(クリックで展開)
転機(2024年4月8日): ジェイクは実際のシグナルをスクリーンショットし、足の確定後に見比べました。
- 9時38分 買い: 5,186のシグナル → 足の確定後:5,179へ移動(7ポイント下!)• 680ドルの損失
- 10時52分 売り: 5,194のシグナル → 足の確定後: 跡形もなく消えた! • 520ドルの損失
- 13時15分 買い: 5,201のシグナル → 足の確定後:5,196へ移動(5ポイント下)• 440ドルの損失
- 14時43分 売り: 5,209のシグナル → 足の確定後:5,213へ移動(4ポイント上)• 380ドルの損失
調べて分かったこと: 47件中43件のシグナルが動いていました(リペイント率91.5%)。コードを確認したところ、 request.security() に lookahead=barmerge.lookahead_off.
立て直し(2024年5〜8月): 決定的な動きをするインジケーターへ変更。90トレード、勝率58.9%、利益1万2,820ドル。口座は1万7,300ドル → 3万100ドル(+74.1%)。
ジェイクの助言: 「私は幽霊を相手にトレードして1万4,700ドルを失いました。足の確定後に動くシグナルのことです。どのインジケーターも検証してください。実際にスクリーンショットを取り、足の確定後に見比べるのです。backtestがあまりに完璧に見えるなら(勝率7割超、 <10%のDD)、まずリペイントを疑ってください。本物の優位性の勝率は55〜65%です。決して信用せず、必ず確かめてください」
ケーススタディの問題:ジェイクはインジケーター「Ultimate Reversal Pro」でbacktestを行い、目を見張る結果を得ました。勝率71.4%、プロフィットファクター3.2、リターン+247%です。3万2,000ドルで実弾に移りましたが、10週間で1万4,700ドル(-45.9%)を失い、勝率はわずか34.2%でした。彼の致命的な誤りは何でしょうか。
正解:C。 ジェイクのインジケーターはbacktestで勝率71.4%を示していましたが、シグナルの91.5%が足の確定後に動くか消えていました。彼は「幽霊をトレード」していたのです。リペイントのおかげで完璧に見えていただけのエントリーでした。対処法は、実際のシグナルをスクリーンショットで検証すること。backtestがあまりに完璧に見えるなら(勝率7割超)、まずリペイントを疑ってください。本物の優位性の勝率は55〜65%程度です。
「決定的」とはどういうことか(そしてなぜ効くのか)
実情はこうです。インジケーターの多くは、リペイントを知らない愛好家が作っています。もっと悪いのは、 知っていて 気にも留めない詐欺まがいの作り手です。
SignalPilotは違う考え方をとっています。
💡 Signal Pilotの約束
SignalPilotのインジケーターはいずれも、厳格な決定性のルールに従います。
- 未来のデータを使わない: HTFの取得はすべて
lookahead_offと[1]オフセット - シグナルは動かない: いったん表示されたシグナルは 決して 動きも消えもしません
- 確定した足だけ: シグナルは足の確定を待ちます(足の途中の小細工はありません)
- 公開されていて検証できる: コードは第三者が検証できる形で公開されています
言い換えると: 実際に見えたものが、そのまま履歴にも残ります。小細工はありません。嘘もありません。
❌ リペイントするインジケーター
Backtest: 期待値3.2R、プロフィットファクター2.8
実弾では: 期待値-0.8R、プロフィットファクター0.6
問題: 足の確定後にシグナルが変わる
結果: 数か月を無駄にし、口座を飛ばす
✓ 決定的な動きをするインジケーター
Backtest: 期待値1.8R、プロフィットファクター1.6
実弾では: 期待値1.7R、プロフィットファクター1.5
誠実さ: シグナルは決して変わらない
結果: 安定して機能する優位性
注目してください。決定的なインジケーターのほうがbacktestの期待値は 低い のです。誠実だからこそです。未来のデータでごまかしません。
では実弾では。そちらでは きちんと機能します.
リペイントの実例:前と後
リペイントを現場で捕まえると、実際にはこう見えます。
例1:インジケーター「SuperTrend Reversal」(TradingView、ダウンロード12万件)
| 時刻 | 実際に見えていたもの(足の途中) | 履歴に残っているもの(足の確定後) |
|---|---|---|
| 10時45分 | 5,186ドルで買いシグナル(緑の矢印) | シグナルが5,179ドルへ移動(7ポイント!) |
| 11時22分 | 5,194ドルで売りシグナル(赤の矢印) | シグナルが跡形もなく消えた! |
| 14時15分 | 5,201ドルで買いシグナル | シグナルが5,196ドルへ移動(5ポイント下) |
例2:インジケーター「AI Prediction Zones」(TradingView、ダウンロード8万5,000件)
12時04分(足の途中):
SPYの519.00〜519.50ドルに「サポート帯」を表示(緑の網かけ)
インジケーターのラベル:「反発の確度が高い帯 — 精度78%」
12時05分(足の確定後):
サポート帯が518.20〜518.70ドルへ移動(80セント下!)
いまや実際の安値にぴたりと重なっている
→ これがリペイントです。帯は安値を、起きたあとで「予測」しました。
リアルタイムでの影響:
サポートだと思って519.00ドルで買った → 価格は518.20ドルまで下落
1株あたり0.80ドルの損失、500株で-400ドル
インジケーターはいま、サポートを「本来あるべきだった」518.20ドルに表示している
→ 履歴では完璧に見え、実際には役に立たないということです
例3:インジケーター「Smart Money Divergence」(有料、199ドル)
実際のシグナル(13時30分): 「強気ダイバージェンス検出 — 価格は安値切り下げ、インジケーターは安値切り上げ」
足の確定後(13時31分): ダイバージェンスの線が3本前へ移り、角度も変わっている
影響: そのダイバージェンスを見て13時30分に買いで入った → 価格は下げ続けた → 620ドルの損失
いまチャートの履歴に見えるもの: ダイバージェンスは3本前から始まっていた(あとから見れば完璧なタイミング)
信用せず、必ず確かめる
実際のお金を賭ける前に、どのインジケーターでも検証できる手順です。
✅ インジケーター検証チェックリスト
どのインジケーターでも、トレードに使う前に:
- 目視での検証: シグナルを3〜5件その場で見て、足の確定後に動くかを確かめる
- リプレイでの検証: バーリプレイで、その場のシグナルと履歴のシグナルを見比べる
- アラートでの検証: アラートを設定し、20件以上を記録して履歴と照合する
- コードの確認(可能なら): 探すべきもの:
request.security()危険信号
合格の条件: すべての検証でシグナルが一致していること。
ひとつでも不合格なら → 使わない → ほかのインジケーターを探す
リペイントしやすい、避けるべきインジケーター
リペイントしやすいインジケーターの種類と具体名です。使っているものがあれば、すぐ検証してください。
| インジケーターの種類または名称 | なぜリペイントするか | 見分け方 |
|---|---|---|
| ジグザグ系 | 価格が動くたびに転換点を計算し直す。履歴では「完璧」な波の検出になる | 足の確定後に転換点が動くかを確認する |
上位足(HTF)の取得で lookahead_off |
リアルタイムには存在しない未来のHTFデータを使っている | コードの確認:次を検索する request.security() に lookahead=barmerge.lookahead_off |
| 「AI・機械学習による予測」系 | 多くは足の途中のデータや先読みを使って「予測」を表示している | バーリプレイで検証:予測は動きの前に出るか、後に出るか |
| ダイバージェンス系(ほとんど) | 新しい足ができるたびにダイバージェンスの線を引き直す | 線をスクリーンショットし、角度や位置が変わるかを確認する |
| サポート・レジスタンス帯(可変) | 直近の値動きにぴたりと合うように帯が調整される | アラートで検証:帯の境界にアラートを置き、動かないことを確かめる |
危険信号: あるインジケーターのbacktestが勝率75%超を示していて、しかも <10%のdrawdownなら、ほぼ間違いなくリペイントしています。本物の誠実な優位性は、現実的なdrawdown(15〜30%)を伴って勝率55〜65%になります。backtestでの完璧さは、実弾での詐欺です。
バーリプレイでリペイントを見抜く手順
TradingViewのバーリプレイは、リペイントするインジケーターを捕まえるのに最も有効な機能のひとつです。使い方は次のとおりです。
バーリプレイ検証の手順:
- チャートにインジケーターを表示する: 流動性の高い銘柄(SPY、ES、AAPL)を5分足か15分足で使います
- バーリプレイモードに入る: バーリプレイのボタンを押します(棒グラフつきの再生ボタンのような形です)
- 3日前まで巻き戻す: 20〜30件のシグナルを検証できるだけの履歴が確保できます
- 1本ずつ先へ進める: 足ができていく途中でシグナルが出るタイミングを見ます
- シグナルの出た時点を記録する: 買いシグナルは価格が上がる前に出ますか、それとも後ですか
- チャートの履歴と見比べる: リプレイを抜けて、同じ時間帯を見ます
- 食い違いを探す: シグナルは同じ位置にありますか。それとも動きましたか
検証結果の例(「Ultimate Reversal Pro」のバーリプレイ):
リプレイモード(1本ずつ先へ進める):
10時15分:シグナルなし
10時30分:シグナルなし
10時45分:価格が520ドル → 518ドルへ下落 → 519ドルで買いシグナルが出現
11時00分:価格が522ドルまで上昇(シグナルは機能した!)
履歴のチャート表示(同じ時間帯):
10時15分:520ドルに買いシグナル(シグナルが動いた!)
本来のシグナル:リプレイでは519ドル
履歴のシグナル:チャート表示では520ドル
→ 差:シグナルは1ポイント動き、安値を完璧に「予測」した形になっている
判定: リペイントを確認
シグナルは足ができていく途中、519ドルに出ていた
履歴のチャートでは520ドルに移っている(より早く、より有利な位置に見える)
これは先読みです。結果を知ってからシグナルを調整しています
🚨 本音を言えば
手間が増えるように感じます。実際そのとおりです。ですが、そうしない場合を考えてください。
2時間かけて検証する → 数か月分の損失と精神的な消耗を避けられます。
検証を飛ばす → 口座を飛ばす → なぜトレードは「無理」なのかと悩む。
選ぶのはあなたです。
コード確認の詳細:Pine Scriptの危険信号
インジケーターがソースコードを公開していれば(TradingViewのオープンソース)、リペイントの有無を確認できます。探すべきパターンは次のとおりです。
危険信号 その1: request.security() に lookahead_off
// ❌ リペイントするコード(未来のHTFデータを使っている)
htf_close = request.security(syminfo.tickerid, "60", close)
// ✅ リペイントしないコード(HTFの足の確定を待つ)
htf_close = request.security(syminfo.tickerid, "60", close, lookahead=barmerge.lookahead_off)
// さらに良い書き方:[1]のオフセットを足して、確定済みのHTFの足を使う
htf_close = request.security(syminfo.tickerid, "60", close[1], lookahead=barmerge.lookahead_off)
危険信号 その2:現在の足のデータを使った計算で、次を使っていない barstate.isconfirmed
// ❌ リペイントするコード(足の途中でシグナルが変わりうる)
signal = close > ema_20 and rsi > 50
plotshape(signal, style=shape.triangleup, color=color.green)
// ✅ リペイントしないコード(足が確定したときだけ描画する)
signal = close > ema_20 and rsi > 50
plotshape(barstate.isconfirmed and signal, style=shape.triangleup, color=color.green)
危険信号 その3:転換点の計算がやり直される
// ❌ リペイントするコード(新しい足ができるたびに転換点の位置が変わる)
pivot_high = ta.pivothigh(high, 5, 5) // 5本前まで遡り、5本先まで見る
// 問題:転換点の確定に未来の5本が必要 → 仕組み上どうしてもリペイントする
// ✅ より良い方針(確定した足を使い、動かない波の検出にする)
// Signal Pilotの方針:5本が確定してから初めて波を検出する
// 先読みはしない。シグナルは遅れるが、そのぶん誠実である
コツ: Pine Scriptが読めなくても、目視とリプレイの検証で構いません。それだけでリペイントするインジケーターの95%以上は見抜けます。コードが読めるなら、こちらが最速です。これらのパターンを検索すれば30秒で見抜けます。
🎓 要点
- インジケーターの6〜9割はリペイントする — トレードに使う前に、すべて検証してください
- リペイント=見せかけの優位性 — backtestは完璧、実弾では惨憺たる結果
- 検証は4つの方法で — 目視、リプレイ、アラート、コードの確認
- 決定的なコードであることが効く — 通常、足の確定後にシグナルが変わることはありません
- SignalPilotはそれを約束します — 未来のデータなし、小細工なし、嘘なし
- トレードの前に検証を — 2時間の検証が、数か月分の損失を防ぎます
⚡ 明日からできること(クリックで展開)
抱え込みすぎないこと。まずはこの3つから:
- インジケーターをひとつスクリーンショットで検証する — 実際のシグナルを3枚撮り、10分後に確認してください
- アラートをひとつ設定する — 主に使うインジケーターにアラートを設定し、足の確定後に合っているか確かめてください
- 記録する — 「インジケーター:[名称]。検証:スクリーンショット。結果:シグナルは動いた/動かなかった」
この方法で3つ検証すれば、どれが嘘をついているか分かります。嘘つきはすぐ外してください。
🎯 リペイント検出の練習
課題:いま使っているインジケーターを検証する
実際のお金を賭ける前に、使っているインジケーターをすべてリペイントの観点で検証してください。
- 目視での検証: シグナルを3件スクリーンショットします。10分待ちます。更新します。動いたり消えたりしましたか。
- リプレイでの検証: TradingViewのリプレイモードを使い、先へ進めます。シグナルは動きの前に出ますか、後に出ますか。
- アラートでの検証: 実際のシグナルにアラートを設定します。1時間後にチャートを見ます。そのアラートはまだ有効ですか。
- Backtestと実弾の比較: 20トレードを練習売買で行います。期待値をbacktestと比べます。差が大きい=リペイントの可能性が高い
- 分かったことを記録してください。合格したインジケーターはどれで、不合格はどれでしたか。
- リペイントするインジケーターは、すべてすぐチャートから外してください
目的: トレードに使うインジケーターが決定的であることを必ず確かめてください。リペイントしないと証明できないなら、するものとして扱ってください。
🎮 かんたん確認(気楽にどうぞ)
あるインジケーターのbacktestでは期待値2.8R。実弾では期待値-0.5R。最も考えられる原因は何でしょうか。
インジケーターがリペイントするかは、どう検証しますか。
ジェイクの最大の誤りは何でしたか。
ここまで読んだなら、数か月、いや数年分の苦労を避けたことになります。多くのトレーダーはこれを学ばないままです。あなたはいま学びました。
⏭️ 次回
レッスン5:RSIの行き過ぎは反転シグナルではない
上昇トレンドでRSIが70を超えたとき、しばしば買いの候補になる理由と、地合いがすべてを決める理由を学びます。
教育目的のみ。 トレードには重大な損失リスクが伴います。過去の実績は将来の結果を保証するものではありません。
💬 ディスカッション (コメント0件)
コメントを読み込んでいます…
教育目的のみ。 トレードには重大な損失リスクが伴います。金融助言ではありません。過去の実績は将来の結果を保証するものではありません。