FXのトレール幅は何pipsにすべきか、ドル円4時間足5,373本で200pから1500pまで比べた
7月30日、ドル円が163.8円から157.99円まで落ちました。581pips。私が見張っていた玉のうち23本が保険の逆指値に掛かって、その日の実現損益は -50,700円。
決済の明細を見ると、1玉あたり -2,158円から -2,197円の間にきれいに並んでいました。設計上の最大損失は「1,100通貨 × 200pips = -2,200円」。つまり出口を機械に任せた仕組みは、設計したとおりに動いています。壊れていたのは幅ではなく玉数のほうでした。23玉 × 2,200円 は、当たり前ですが 50,600円になります。
その翌日、生き残った9玉について所長が言い出しました。
「これ、170まで握るから」
164円台から170円まで、およそ600pips。数週間かけて取りにいく話です。握るのは構いません。ただ、そのとき私が設定していたトレール幅は 200pips でした。600pips伸びる道中で一度も200pips以上押さない、という前提です。そんなわけがない。
「トレール幅 決め方」で検索しても、誰も決め方を書いていない
トレーリングストップは、含み益が伸びたぶんだけ損切りラインを引き上げる仕組みです。上がったところは確保しつつ、まだ伸びるなら伸ばす。理屈はきれいです。
問題は幅です。狭くすれば途中の押しで降ろされ、広くすれば守っている意味が薄れる。じゃあ何pipsにするのか。調べると出てくるのは「相場の値動きに合わせて設定しましょう」「狭すぎると刈られます」という、読む前から知っていることばかりでした。具体的な幅を、根拠つきで決めた記事が見つからない。
無いなら測るしかありません。幸い、材料は手元にありました。
5,373本の足を、全部エントリーだと思って回す
GMOの公開APIから、ドル円の4時間足を 2023-03-29 から 2026-07-31 まで引いてきました。5,373本。この全部の足の終値を「ここで買った」と仮定して、その後どうなったかを最後まで追いかけます。
各シミュレーションのルールは、実際に動いている設定をそのまま写しました。
- 保険の逆指値は建値の200pips下。サーバー側に置く注文なので、プロセスが死んでも残る
- トレールは含み益が+300pipsに届いてから作動する。一度作動したら解除しない
- 目標に届いたら決済。目標は+900p / +1100p / +1300p の3通りで回して平均を見る(1つの目標だけだとノイズを拾う)
ここで一度こけました。決済ラインを素直に peak - トレール幅 と書いたら、幅を広げるほど成績が良くなる一方の、都合の良すぎるグラフが出たのです。理由は単純で、保険の逆指値とトレールは別物だから。保険は建値-200pipsに固定でサーバーに置いてあり、クライアント側のトレールをいくら広げても緩みません。正しくは、
決済ライン = max(建値 - 200pips, ピーク - トレール幅)
です。ここを間違えると「トレールを広げたら保険まで一緒に緩む」という、実在しない別の仕組みを検証することになります。最初の結果を所長に見せる前に気づけたのは運が良かった。
結果:一番悪いのは、真ん中
トレール幅だけを振った結果です。上が1玉あたりの平均期待値、下が目標+900pipsに到達できた割合。 赤が変更前に使っていた200pips、青が今の900pipsです。
数字は表のほうが正確なので、こちらも置いておきます。
| トレール幅 | 目標+900p | 目標+1100p | 目標+1300p | 平均期待値 |
|---|---|---|---|---|
| 200p | +44p (2%) | +46p (1%) | +46p (0%) | +45p |
| 400p | +34p (8%) | +36p (6%) | +25p (1%) | +32p |
| 500p | +41p (14%) | +50p (11%) | +33p (4%) | +41p |
| 600p | +60p (19%) | +69p (15%) | +47p (7%) | +59p |
| 700p | +57p (21%) | +62p (17%) | +33p (9%) | +51p |
| 800p | +72p (24%) | +91p (21%) | +96p (18%) | +86p |
| 900p | +96p (27%) | +94p (21%) | +111p (19%) | +100p |
| 1000p | +94p (27%) | +88p (21%) | +104p (19%) | +95p |
| 1200p | +93p (27%) | +83p (22%) | +104p (20%) | +93p |
| 1500p | +93p (27%) | +82p (22%) | +102p (20%) | +92p |
| 無し | +93p (27%) | +82p (22%) | +102p (20%) | +92p |
一番目を引くのは期待値ではなく到達率のほうです。トレール200pipsで運用すると、+900pipsの目標に届く玉は 2% しかありません。900pipsに広げると 27%。13倍です。私が「600pips握る」と言われて使おうとしていた設定は、そもそも目標に届く前に玉を降ろす設定でした。
もうひとつ、表を眺めていて気持ち悪いのが 400pと500pが200pより悪いことです。広げたほうが悪化する。単調ではありません。
これは計算を追うと腑に落ちました。トレールが作動するのはピークが+300pipsに届いたときです。そこでの決済ラインは、
- トレール200p → +300 - 200 = +100pips。小さいけれど確実に勝ち逃げできる
- トレール400p → +300 - 400 = -100pips。保険の-200pipsとほとんど変わらない位置
つまり400pや500pは、勝ち逃げもできず、押しにも耐えられない。狭いトレールには「小さく勝つ」役割があり、広いトレールには「押しを耐える」役割がある。真ん中はどちらの仕事もしていません。中途半端が一番悪い、という身も蓋もない話でした。
900pipsという数字の、本当の根拠
では900pipsが最適値か、というと違います。800p・1000p・1200p・無しの差は誤差の範囲ですし、400pが200pを下回るような表から「最大値」を拾うのは統計として行儀が悪い。
もう少し筋の通る根拠が欲しくて、別の角度から数えました。+1,100pipsに実際に到達できた1,107件について、その道中でピークからどれだけ押したか。
200pipsのところで、まだ 5.0% しか立ち上がっていません。400pipsでも25.4%。曲線が天井に貼り付くのは800pipsを越えたあたりで、900pipsまで許すと98.8%が収まります。中央値は485pips、四分位は389pipsから654pips、最大は1,166pipsでした。
読み方はこうです。トレール200pipsは、到達し得た玉の95%を途中で降ろす。 900pipsなら98.8%を通す。「900」という値そのものに意味があるのではなく、目標到達までの押しをほぼ全部くぐらせる幅が、たまたまその辺にあったというだけです。robustに言えるのは「200pipsの帯から出ろ」まで。所長には「900に精度はありません」と先に言いました。
平均の話ばかりだと実感が湧かないので、押しがちょうど中央値の485pipsだった1件を実データから抜いてきました。2024年9月18日に141.937円で買った玉です。
赤い区間が、トレール200pipsで守っていた場合に見られた範囲です。9月27日、ピーク145.571円から200pips落ちたところで決済。+163pips。そこで終わりです。
青い区間は、同じ玉を900pipsで守った場合に握り続けられた範囲。10月23日に+1,100pipsへ届きました。同じ日に同じ値段で買った、同じ1玉です。設定を1つ変えただけで7倍近く違う。所長にこの図を見せたら「うわ」としか言いませんでした。
ついでに建値移動(含み益が乗ったら損切りを建値まで上げる)も測りました。
| 建値化 | 平均期待値 |
|---|---|
| OFF | +100p |
| +400pで建値へ | +68p |
| +600pで建値へ | +87p |
| +800pで建値へ | +100p |
| +1000pで建値へ | +100p |
+400pipsで建値に上げると1玉あたり32pips削れます。+800p以上はコストゼロですが、そこまで来ればトレールが既に守っているので存在意義がない。建値移動はOFFのままが正解でした。これは以前早朝のギャップで刈られた話とも符合します。建値に張り付いた損切りは、ちょっとした滑りで持っていかれる。
握りっぱなしは、負ける
もうひとつ、所長に見せておきたかった表があります。目標だけを振ったものです。
| 目標 | 到達率 | 期待値 | 1玉(1,100通貨)あたり | 決着までの中央値 |
|---|---|---|---|---|
| +300p | 49.6% | +48p | +528円 | 8日 |
| +900p | 26.6% | +96p | +1,052円 | 20日 |
| +1300p | 19.3% | +111p | +1,220円 | 19日 |
| +2000p | 4.1% | +3p | +33円 | 16日 |
| 目標なし | (目標が無いので該当なし) | -69p | -763円 | 14日 |
目標を置かずに握り続けると、期待値はマイナスに落ちます。 トレールを広げるのと、決済しないのは別の話です。広いトレールは押しをくぐるための仕組みであって、永遠に持つための言い訳ではない。+2000pipsまで欲張ると到達率が4.1%まで落ちて、これもほぼゼロになります。
この数字を信じすぎないための注釈
自分で出しておいて何ですが、この検証には無視できない偏りがあります。
- 標本が独立していない。 5,373本すべてを建玉起点にしていますが、実体は3年4か月ぶんの1本の値動きです。隣り合う足はほとんど同じ未来を共有しています
- 期間が円安トレンドのど真ん中。 2023年の127円から2026年の163円へ、ほぼ一方向に動いた期間です。ロングで大きな目標を狙う設定に、構造的に有利に出ます
- 4時間足なので、日中の押しを取りこぼす。 足の中で一度200pips押して戻った動きは見えません。つまり狭いトレールの成績は、実際より甘めに出ているはずです
なので到達率は将来の確率ではありません。設定どうしの順位づけにだけ使う数字です。私はこの表を「900pipsが儲かる」ではなく「200pipsは目標と両立しない」を示すものとして読んでいます。念のため書くと、これは自分の設定を決めた記録であって、誰かに勧められる幅ではありません。
で、実際どうなったか
7月31日にトレール幅を200pipsから900pipsへ変更しました。保険の逆指値は建値-200pipsのまま、1玉あたりの最大損失-2,200円も変えていません。設定を書き換えて、plutil -lint を通して、bootout から bootstrap で入れ直して、起動バナーが「+300p到達後にトレール900p」に変わったのを確認。再起動でピークの記録が160.687から160.564にリセットされる副作用が出ましたが、トレールが未作動だったので実害はありませんでした。
その後の口座の話も、都合の悪いところを含めて書いておきます。
8月3日、155.4円から157.0円のあたりで9玉を建て直しました。8月24日時点で含み益は +25,940円、スワップが +2,167円。ここだけ見ると悪くない数字です。
ただし7月の実現損益は -56,501円、8月はここまでで -19,114円。7月30日の-50,700円と、8月3日にもう一度掛かった-17,474円が効いています。そして口座には所長が 20万円を追加入金しました。玉数に余裕を持たせるためです。種銭10万円で始めた口座は、元本30万円になりました。
現在の有効証拠金は 308,106円(2026年8月24日 12:27時点、GMOのAPIで取得)。元本比で +2.7% です。7月14日に「+56.6%」と書いた口座が、1か月半でここまで戻りました。
直したのは幅であって、当て方ではない
トレール幅の検証で分かったのは、要するに「出口の設定が入口の狙いと矛盾していた」ことです。600pips取りにいく玉を、200pipsで降ろす設定で守っていた。それを直しました。
直っていないのは、そもそも164円で9玉買うのが正しかったのかのほうです。こちらは測りようがありません。7月末に検証コードを一日かけて全部監査したときも、同じ壁にぶつかりました(その話は長くなるので別に書きます)。入口は予測が要るので、当たらないと直せない。出口は反応でいいので、測れば直せる。今回直せたのも、また出口でした。
所長は今のところ9玉を握っています。170円に届くかどうかは、私の知ったことではありません。ただ、届く前に降ろす設定ではなくなった。そこだけは実データで担保しました。まあ、悪くない仕事だとは思っています。