記憶に残った場面からルールが生まれる
裁量トレーダーの勝ちパターンは、多くの場合、次の順番で生まれます。 チャートを見返していて、大きく伸びた場面が目に留まる。似た場面をいくつか思い出すと、どれも「東京時間の高値を抜けた後に伸びた」ように見える。そこで「高値を抜けたら買い」というルールができる。 一見、経験から学んだ正しい手順に見えます。問題は、最初に目に留まったのが「伸びた場面」だったことです。
このとき頭の中では、2つの認知バイアスが同時に働いています(心理コース第5回)。
- 後知恵バイアス:結果を知った後で「最初から分かっていた」と感じる癖。伸びた後のチャートを見ると、伸びる前の形がはっきりした「前兆」に見えます(④後知恵バイアス)。
- アベイラビリティバイアス(利用可能性):思い出しやすい出来事を、よく起きることだと錯覚する癖。大きく伸びた日や大きく勝った日は記憶から取り出しやすく、何も起きなかった日は取り出せません(⑥アベイラビリティバイアス)。
この2つが重なると、同じ条件に合っていたのに伸びなかった場面が、記憶の中から消えていきます。 あとで思い出したとしても「あれは抜け方が弱かった」「あれは別の形だった」と、定義の外に置かれます。下の図は、そのしくみを模式的に描いたものです。
ここで起きていることは、Aさんのグリッド探索と同じ構造です。 Aさんは最初に、2005〜2016年のチャートを眺めて「よく伸びた日」を見てから、ルールの形を決めました(第3回で、これを数えようのない試行として扱いました)。 裁量トレーダーは、何百、何千という場面を目で見て、その中から「うまくいった形」を選んでいます。見た場面の数が試行回数で、選んだ形が「最良の1通り」です。 違いは、Aさんの試行は台帳に 57,662 と記録されたのに対し、頭の中の試行はどこにも残らないことです。
第4回では、これを過剰最適化の型8「裁量の後付け」と呼びました。型8の症状は、「その形が出た場面を全部で何回数えたか」と聞かれて答えられないことです。 この回の残りは、その問いに答えられるようにするための手順です。
教材チャートの罠:並んでいるのは勝った例だけ
自分の記憶と同じ偏りは、他人が作った教材にもあります。書籍、SNS、動画、手法の解説記事に並ぶチャートの例は、ほぼすべてがうまくいった場面です。 書き手に悪意がなくても、「この形の例」として見せるなら、伸びた場面を選ぶのが自然だからです。読者は、選び抜かれた数枚を見て「この形はこんなに勝てる」と感じます。
これはサバイバーシップバイアス(生き残った例だけを見る偏り)の一種で、第4回の型7「公開成績の生存者バイアス」と同じ形です。 とくに ICT/SMC のように、「流動性を狩る」「公正価値のギャップ」といった言葉で場面を説明する手法では、どこを高値とみなすか、どの足をギャップとみなすかに幅があります。 幅のある言葉は、伸びた後のチャートに当てはめれば、ほぼ必ず説明がつくので、後付けの説明にとても向いています。 ICTコース第12回では、こうした言葉を数値の条件に置き換え、条件が成り立った候補をすべて抜き出してから成績を見る方法を扱っています。
教材のチャートを読むときは、次の3つを探してください。書かれていなければ、その手法の成績はまだ分からないと考えます。
- 全体の件数:どの期間の、どの通貨ペアで、条件に合った場面が全部で何回あったか。
- 負けた例:同じ条件に合ったのに伸びなかった例が、勝った例と同じ扱いで載っているか。
- 判定の時点:その形は、足が確定した時点で判定できるか。後の値動きを見ないと「この形だった」と言えない定義になっていないか。
全候補を数える:条件に合った場面をすべて拾う手順
記憶と教材の偏りを取り除く方法は、1つしかありません。条件に合った場面を、勝ったかどうかと関係なく、すべて拾って数えることです。 「すべて」を守るには、拾う前に条件を固定し、拾う作業と結果を見る作業を分ける必要があります。Bさんが実際にやった手順を、そのまま示します。
- 条件を、誰が見ても同じ場面が拾われる文章にする:東京レンジは JST 9:00〜15:00(15:00の足は含まない)の高値Hと安値L。ロンドン現地時刻 8:00〜10:00 に確定した15分足の終値がHを上回れば買い、Lを下回れば売り。1日1回、最初のシグナルだけ。「勢いよく抜けた」のような、人によって判定が変わる言葉は使いません(書き方は第6回で扱います)。
- 拾わない日の条件も先に書く:東京レンジの時間帯にデータの欠損がある日、祝日で東京時間が成り立たない日は見送る。さらに、保有中や決済の足に欠損がある日も見送ると、結果を見る前に決めました。見送りの条件を後から決めると、負けた日を「異常な日」として外せてしまいます。
- 期間の全営業日を、1日ずつ機械的に判定する:2005〜2016年の3,130営業日を順に見て、条件に合ったかどうかだけを判定します。この段階では、その後に伸びたかどうかは見ません。
- 拾った場面を一覧にして件数を確定する:日付、方向、エントリーの価格(シグナル足の次の足の始値)、損切りの価格(東京レンジの中点)、決済の時刻を1行ずつ記録します。Bさんの一覧は1,893件になりました。件数は、結果を見る前に確定させます。
- 全件で成績を集計する:1,893件すべてで、コストを入れた1取引の平均と、その95%信頼区間(平均が入りそうな範囲)を計算します。通常コスト(往復0.4 pips)で平均 −0.14 pips、95%信頼区間は [−1.71, +1.42] でした。
- 向きや時期で分けても、分けた全部を並べる:買い916件の平均は +2.64 pips、売り977件は −2.76 pips でした(どちらも次の足の始値で約定・通常コスト)。どちらか一方だけを報告しません。
Bさんの結果は、探索期間では「ほぼゼロ」でした。信頼区間はゼロをまたいでいて、エッジがあるともないとも言えません。記憶に頼った勝ちパターンなら、「この形は勝てる」と感じていたはずの結果です。 全件を数えると、こういう地味な結果が出ることのほうが普通です。地味な結果が出せることが、全件を数えた証拠でもあります。
手順6の買いと売りの差にも注目してください。買いだけを見れば +2.64 pips で、魅力的に見えます。Aさんも自分の探索で売りが負けるのを見て、買いだけのルールを選びました。 しかし探索期間の同じ保有時間帯には、ブレイクの有無と関係なく、平均 +2.67 pips の上昇の流れがありました。買いの +2.64 がブレイクの力なのか、この時期のドル円が上がっていただけなのかは、この数字だけでは区別できません(切り分け方は第10回)。 全件を並べておくと、「片方だけを選ぶ」という誘惑そのものが記録に残ります。
裁量トレーダーが手作業でやる場合
Bさんはプログラムで判定しましたが、同じことは手作業でもできます。大事なのは、候補を拾うときと、結果を記録するときを別の作業にすることです。
- 1回目の通読:候補だけを拾う:チャートの右側を隠した状態で(次の章の Bar Replay を使うと楽です)、条件に合った足に印を付け、日時だけを一覧に書きます。この時点では、その後どうなったかを見ません。
- 迷った場面も一覧に入れる:条件に合ったか判断に迷った場面は「迷い」として記録します。後で「迷いを全部入れた場合」と「全部除いた場合」の両方で集計すれば、判定の甘さで成績が変わるかどうかが分かります。
- 2回目の通読:結果を記録する:一覧の件数を確定させてから、各場面の結果を、決めておいた決済ルールで記録します。結果を見た後で候補を足したり消したりしません。
- 件数と平均を並べて書く:「〇件中△件が勝ち、1取引の平均は□pips(コスト込み)」の形で書きます。件数が30件未満なら「サンプル不足」と書き、結論を出しません。
2人がやったこと・結果(+高頻度スキャルEAの例)
| やったこと | 結果 | |
|---|---|---|
| Aさん | 全期間のチャートを眺め、よく伸びた日を先に見てから形を決めた。売りが負けたのを見て買いだけにした | 眺めた分の試行は記録に残らない。台帳に数えられた分だけで N_A=57,662 |
| Bさん | 条件と見送りのルールを先に書き、3,130営業日を1日ずつ判定して1,893件をすべて記録した | 通常コストで平均 −0.14 pips、95%信頼区間 [−1.71, +1.42]。買いと売りを両方並べた |
| (参考)スキャルEA | チャートは眺めず、3,456通りのルールの取引をテスターですべて数えた。ただしシグナル足の終値で約定・スプレッド0のまま | 選んだ案は学習期間 10,043回で +1,402 pips。口座の条件(次の足の始値・往復0.4 pips)では −2,785 pips |
高頻度スキャルEAの例は、全件を数えることが必要条件であって十分条件ではないことを示しています。全件を数えても、約定とコストの前提が口座と違えば、数えた成績は口座では再現しません(第9回)。 そして3,456通りの中から最良を選べば、全件を数えた成績でも、選んだこと自体の偏りは残ります。
未来を隠す:先にルールを書き、Bar Replay で判断する
全件を数えるのと並ぶ、もう1つの対策が未来を隠して判断することです。 右端まで結果が見えているチャートでは、どれほど気をつけても後知恵が混ざります。伸びた場面の直前の足は、伸びたことを知っているからこそ「前兆」に見えます。 TradingView の Bar Replay(過去のチャートの右側を隠し、1本ずつ進める機能)を使えば、結果を知らない状態を作れます。操作と記録の方法はトレード日誌コース第2回で説明しています。
Bar Replay を過剰最適化の対策として使うときは、次の4点を守ります。
- ルールを先に書く:Bar Replay を開く前に、エントリー・損切り・決済・見送りの条件を書きます。進めながらルールを考えると、見えている数本に合わせたルールになります。
- 開始日は無作為に選ぶ:記憶にある相場(大きなトレンドや急落の日)を選ぶと、未来を隠しても頭の中の記憶が答えを知っています。カレンダーを見ずに日付を決めるか、年と月をくじで決めます。
- 見送った場面も記録する:「入らなかった」判断も1件として書きます。入った場面だけを記録すると、判断に迷って見送った場面が消え、後から見て入るべきだった場面だけを拾う偏りが生まれます。
- 採点は勝敗ではなく、ルールどおりに判断できたか:数十件の勝敗は偶然で大きく動きます。Bar Replay で鍛えるのは、同じ場面で同じ判断ができるかどうかです(ルール遵守率で採点する)。
ただし、Bar Replay が隠せるのは画面の右側だけです。頭の中の記憶までは隠せません。 2022年の円安や2024年の介入を覚えている人が、その時期を Bar Replay で進めても、未来を知らない状態にはなりません。 記憶にある時期で練習すること自体は構いませんが、成績を評価する材料には、記憶のない時期の結果を使います。どの時期を評価に使うかを先に決めておく考え方は、次の第7回「データの予算」で扱います。
負けるたびに「例外」を足す癖
全件を数え始めると、次の誘惑がやってきます。負けた場面を見て、「これは指標の前だったから」「これはヒゲが長かったから」と理由を見つけ、ルールに例外を足すことです。 例外を足すと、過去の成績は必ず良くなります。負けた場面を狙って外しているのだから当然です。
Aさんはこれをグリッド探索の後に、はっきりした形でやりました。最良の候補の負けた日を見て、曜日・月・EMA・RSI のフィルタを1段ずつ試しています。
PF(総利益÷総損失)は 1.36 から 2.02 に上がりました。一方で、成績を支える取引は1,115件から297件に減っています。 しかも、総pipsを物差しにした25通りでは、どのフィルタも採用されませんでした。そこで物差しをPFに替えたら採用された、という経過です。 金曜や5月を外す判断が、何件の取引をもとにしていたかは第3回で見ました。月と曜日で分けた1マスの取引は中央値19件で、その程度の件数の差は偶然で十分に説明できます。
裁量トレーダーの例外も、形は同じです。「指標の30分前は入らない」「前日の値幅が大きい日は入らない」「ヒゲが長い足は除く」。 1つずつはもっともらしく聞こえますが、どれも負けた場面を見てから思いついた条件なら、Aさんの曜日フィルタと変わりません。理由は後からいくらでも付けられます。 例外を足したくなったら、次の3つを守ります。
- 足す前に、理由を結果と無関係に書けるか確かめる:「指標の前はスプレッドが広がり約定が悪くなる」のように、成績を見なくても言える理由があるか。
- 例外は新しいルールとして数える:例外を足したルールは、元のルールとは別の試行です。試した例外の数を記録し、試行回数Nに加えます(記録の付け方は第8回)。
- 新しいルールは、例外を思いついたのとは別の場面で確かめる:負けた場面を見て作った例外を、同じ場面で確かめても意味がありません。まだ見ていない期間で、例外を足す前と後を比べます。
裁量のまま検証できること・できないこと
ここまで読んで、「結局、裁量をやめてプログラムにしろということか」と思ったかもしれません。そうではありません。 裁量の判断をすべて数値にする必要はありません。ただし、数値にしていない部分は数えられないという事実は受け入れる必要があります。
| 裁量のままでも検証できること | 数値にしないと検証できないこと |
|---|---|
| 決めたルールどおりに判断できたか(ルール遵守率) | そのルールに、比較対象を上回る優位があるか |
| 同じ場面を2回見て、同じ判断をするか(判断の再現性) | 何通りの形を見比べてその形を選んだか(試行回数) |
| 記録した全件の、おおよその期待値とその幅(30件以上あれば) | 条件の数値を少しずらしたとき成績が崩れないか(感応度、第11回) |
| 見送った理由の傾向 | 規則のない相場でも同じ成績が出ないか(置換検定、第12回) |
現実的な進め方は、数値にできる部分から数値にすることです。時間帯、値幅、損切りの位置、決済の時刻は、たいてい数値で書けます。 それを先に固定しておけば、残る裁量の部分(「形がきれいか」など)は、固定した条件の中で「入る/見送る」を選ぶ判断に限られます。その判断が成績を上げているかは、「条件に合った全件」と「自分が入った件」の成績を比べれば確かめられます。 全件より自分が入った件のほうが良ければ、裁量の判断に価値がある可能性があります。同じくらいなら、裁量の部分は成績に貢献していません。
次の第6回からは、第2部「データを見る前に決める」に入ります。この回で見た「先に条件を書く」を、理由・反証条件・比較対象まで含めた1枚の仕様書にする方法です。
よくある間違い
「勝ちパターンは経験で分かる。何度も勝っている」
「何度も勝っている」の「何度」は、覚えている勝ちの数です。同じ条件に合った場面が全部で何回あったかを数えなければ、勝率も期待値も分かりません。 経験が本物かどうかは、記憶ではなく記録で確かめます。条件を書いて全件を数え、30件以上たまってから判断します。
「負けた場面はダマシだったので、数に入れない」
ダマシかどうかは、結果を見た後にしか分かりません。結果を知ってから外すと、負けだけが定義から消え、成績は必ず良く見えます。 「ダマシ」を外したいなら、足が確定した時点で判定できる条件として先に書き、その条件を試した分を試行回数に入れます。
「Bar Replay で勝てたから本物」
Bar Replay は画面の未来を隠しますが、記憶は隠せません。印象の強い時期ばかり選んだり、進めながらルールを変えたりすれば、後知恵は残ります。 また、数十件の勝敗は偶然で大きく動きます。Bar Replay で確かめられるのは「ルールどおりに判断できるか」までで、ルールの優位は全件の記録と比較対象で確かめます。
実戦課題
自分の「得意な形」を1つ選び、過去3か月でその条件に合った場面をすべて数えます。
- 条件を文章で書く:通貨ペア、時間足、判定する時間帯、エントリーの条件、損切り、決済、見送りの条件を書きます。「きれいな」「強い」のような言葉は、足の本数や値幅など、誰が見ても同じになる言葉に置き換えます。書いた日付を入れて保存します。
- 期間を先に決める:過去3か月のうち、どの日からどの日までを数えるかを決めます。記憶に残る大きな相場があれば、それを含めるかどうかも先に決めます。
- 1回目の通読で候補だけを拾う:Bar Replay か、チャートの右側を隠した状態で1日ずつ進め、条件に合った場面の日時を一覧に書きます。迷った場面は「迷い」として書きます。
- 件数を確定してから結果を記録する:一覧の件数を書き留めてから、各場面の結果を決めておいた決済ルールで記録します。コストも入れます。
- 記憶と比べる:数え始める前に「この形は10回中何回くらい勝つ」と思っていたかを書き、全件の結果と並べます。件数が30件未満なら、結論は出さずに期間を延ばす予定を書きます。
やるべきこと/やるべきでないこと
| やるべきこと | やるべきでないこと |
|---|---|
| 条件と見送りのルールを、チャートを見返す前に文章で書く | 伸びたチャートを集めてから、共通点をルールにする |
| 条件に合った場面を、勝ち負けと関係なくすべて数える | 覚えている勝ちの数で「何度も勝っている」と判断する |
| 候補を拾う作業と、結果を記録する作業を分ける | 結果を見ながら、どの場面が条件に合っていたかを決める |
| 判断に迷った場面も「迷い」として記録し、入れた場合と除いた場合の両方で集計する | 負けた場面を後から「ダマシ」「別の形」として外す |
| 買いと売り、時期ごとの成績を、分けた全部で並べる | 負けた方向や時期を外して、良い側だけを報告する |
| Bar Replay ではルールを先に書き、開始日を無作為に選ぶ | 記憶にある相場を選び、進めながらルールを考える |
| 例外を足すなら、理由を先に書き、試した数を試行回数に入れる | 負けるたびに例外を足し、足した数を数えない |
| 教材の例を読むときは、全体の件数と負けた例を探す | 教材に並んだ勝ちの例の数枚で、手法の成績を判断する |
チェックリスト
次の回に進む前に、以下が自分の言葉で説明できるか確認してください。
- チャートを眺めて勝ちパターンを作ることが、頭の中のグリッド探索と同じである理由
- 後知恵バイアスとアベイラビリティバイアスが、負けた場面を記憶から消すしくみ
- 教材やSNSのチャート例で、全体の件数と負けた例を確かめる理由
- 全候補を数える手順(条件と見送りを先に固定→全日を判定→件数を確定→全件で集計)
- Bar Replay で隠せるもの(画面の未来)と隠せないもの(自分の記憶)
- 負けた場面を見て例外を足すことが、試行回数を増やす行為であること
- 裁量のまま検証できることと、数値にしないと検証できないことの違い
ミニテスト
最後に4問だけ確認です。不正解なら別の選択肢を選び直せます。正解すると解説が表示されます。
Q1. 過去のチャートを見返して、大きく伸びた場面の共通点から「高値を抜けたら買い」というルールを作りました。このルールの一番の問題は?
最初に目に留まったのが伸びた場面なので、ルールは記憶に残った勝ちに合わせて作られています。同じ条件に合ったのに伸びなかった場面を全部数えなければ、そのルールの成績は分かりません。
Q2. Bさんが「条件に合った場面をすべて拾う」ために、結果を見る前に決めていたことの組み合わせとして正しいのは?
Bさんは判定の条件と見送りの条件を先に書き、2005〜2016年の3,130営業日を1日ずつ判定して、1,893件をすべて記録しました。見送りの条件を後から決めると、負けた日を外せてしまいます。買いと売りも両方並べました。
Q3. Bar Replay で過去の相場を1本ずつ進めて練習しています。過剰最適化の対策として一番大切な使い方は?
Bar Replay が隠せるのは画面の未来だけで、記憶は隠せません。ルールを先に書き、記憶にない時期を無作為に選び、入らなかった判断も含めて全件を記録することで、後知恵を減らせます。
Q4. Aさんは負けた日を見てフィルタを足し、PFが1.36から2.02に上がりました。正しい読み方は?
負けた場面を見て外す条件を選べば、過去の成績は必ず良く見えます。Aさんは総pipsの物差しで25通り、PFの物差しで25通りを試しており、その分だけ試行回数が増えています。取引が減るほど、1つの判断を支える件数も少なくなります。