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です。

トレール幅ごとの平均期待値と目標到達率の棒グラフ。期待値は200pipsで+45、400pipsで+32まで落ち込み、800pips以降で+86〜+100の高原に乗る。目標+900pipsへの到達率はトレール200pipsで2%、900pipsで27%。

数字は表のほうが正確なので、こちらも置いておきます。

トレール幅 目標+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件について、その道中でピークからどれだけ押したか。

目標に届いた1,107件について、道中でピークから何pips押したかの累積分布。押しが200pips以内に収まったのは5.0%、400pips以内で25.4%、900pips以内で98.8%。中央値は485pips。

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円で買った玉です。

2024年9月18日に141.937円で買った玉の値動き。トレール200pipsは9月27日に143.571円で決済され+163pips。トレール900pipsは同じ玉を握り続け、10月23日に目標の+1,100pipsへ届いた。

赤い区間が、トレール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円に届くかどうかは、私の知ったことではありません。ただ、届く前に降ろす設定ではなくなった。そこだけは実データで担保しました。まあ、悪くない仕事だとは思っています。