PF1.03だった動画の手法が本番採用に化けて、勝ち部品の転用だけ失敗した

手法検証 · 1 min

YouTube動画発のTJL戦略を実測したらPF1.03のコインフリップ。そこから金専用スリーブとして本番採用されるまでと、採用の決め手だったER×ADXフィルタを既存ロジックに移したら全く効かなかった顛末。3つの検証でたどる手法の系譜。

YouTube動画で紹介されていた手法を実測したら、PF1.03。ほぼコインフリップという判定でした。普通ならここで「不採用」と書いて終わる話です。ところがこの手法、いまは私の本番システムの一員として金(ゴールド)を取引しています。そして後日談がもうひとつ。この手法を蘇らせた立役者の「勝ちフィルタ」を別のロジックに移植したら、今度は全く効きませんでした。

この記事は、動画発の手法TJLが「そのままでは使えない」状態から金専用スリーブとして採用されるまで、そして採用部品の使い回しが失敗するまでの3つの検証(研究169/173/176)を、1本の系譜としてまとめたものです。

はじめに: このブログと、読むのに必要な前提

初めての方向けに。このブログは、私(個人)がFXの自動売買プログラム(EA)を自作し、手法を統計検証して勝敗問わず記録している検証日記です。文中の「研究N」は私の検証ノートの通し番号です。

用語を3つだけ。PF(プロフィットファクター)は総利益÷総損失で、1を超えると黒字。DD(ドローダウン)は資産の山からの下落率で、登山でいう「どれだけ下りに転じたか」です。スリーブは、システムを構成する個別の売買ロジックのこと。私のシステムは性格の違う複数のスリーブを束ねて動いています。

研究169: 勝率54%の主張、実測は50.8%のコインフリップ

元ネタはHumbled Traderの動画で紹介されていたTJL(Trend Join Long)という株のトレンドフォロー手法です。骨子はこうでした。

  • 終値が前日の高値より上で確定している
  • かつ価格がSMA200(200日移動平均線)の上にある
  • その文脈で、日中の高値ブレイクに乗ってロングする

株の分足データが手に入らないため、日足で再現できる形(前日高値ブレイク×SMA200上→翌日の始値で買い→N日後に決済)に置き換え、105銘柄・スプレッドとリスク0.5%込みで実測しました。動画の主張は勝率54%前後です。

図: ブレイクアウトのエントリー例(XAUUSD 日足・実データ)。直近の高値を上抜けたところで買います。

図: 高値ブレイクのイメージ。TJLの核も「前日高値を上抜けたら買う」というシンプルなブレイク戦略です。

途中で検証設計の罠もひとつ踏みました。2年分のデータにSMA200を使うと、先頭の200営業日が移動平均の準備で消え、たまたま残った直近の反発局面だけを測ってしまう。全期間を一度に走らせてから期間を切り出す方式に直して、ようやく信用できる数字になりました。

変種月利PF勝率最大DD
忠実再現(翌日決済)+0.48%1.0350.8%-37.8%
5営業日保有+4.32%1.1951.2%-42.2%
5営業日保有+損切り2ATR+2.63%1.1450.9%-22.4%
同じ銘柄の単純買い持ち+1.80%---12.8%

忠実再現はPF1.03・勝率50.8%。動画の54%は再現せず、コストと広い銘柄ユニバースの前ではほぼコインフリップでした。保有を延ばすと月利は伸びますが、DDとのバランスで見ると全変種が単純買い持ちに劣後します。中身は市場全体の上げ下げ(ベータ)を増幅しているだけなんですね。

ただし興味深い点もありました。SMA200をSMA50に変えるとPF0.90・月利-3.13%まで崩壊する。つまりトレンドフィルタ自体は仕事をしている。エッジ(優位性)はゼロではなく、コストに食われて薄すぎるだけ。判定は不採用ですが、この「死因」が次につながります。

死因はコストだった、なら移植先を変えればいい(研究170〜172)

ここで捨てずに一段掘りました。PF1.03の正体は「1回の値動きに対して取引コストが重すぎる」こと。それなら、値動き(ボラティリティ)がずっと大きい金に同じ定義を持ち込めば、コストの比率が下がって生き残るのでは?

この仮説が当たりました。金に移植すると検証期間の前半後半で一貫したプラスに変わり(研究170)、ER(効率比率。価格がどれだけ一直線に動いたかの指標)とADX(トレンドの強さの指標)の二重フィルタで「効率的で強いトレンド中のブレイクだけ」に絞るとさらに磨かれ(研究171)、ウォークフォワード(過去でルールを決めて未知の期間で答え合わせする前進検証)と既存システムとの合算検証も通過しました(研究172)。

図: ウォークフォワード(前進検証)の考え方。過去でルールを決め、まだ見ていない未来で試します(後出しを防ぐ)。

図: 前進検証のイメージ。TJL-goldはこの審査まで通過して採用候補になりました。

確定形は「前日高値ブレイク、ER10が0.3以上、ADX14が20以上、5営業日ホールド」。この磨き上げの過程は別記事で書いているので、今回は系譜の接続だけにとどめます。

研究173: 新入りを迎える前の総点検、答えは全部据え置き

スリーブを1本足すのは、チームに新人を入れるようなものです。単体の成績が良くても、怖いのは「全員が同じ日に負ける」こと。そこで採用実装の前に、TJLを加えた7スリーブ全体で日中のリスクを測り直しました。1分足で口座の推移を再構築して最悪の日を洗い出す、M1日中という測り方です。

結果、日中最悪は-2.73%から-2.96%へ、0.23ポイントだけ悪化しました。中身を見ると、悪化分はすべて2020年2月25日、コロナショックの日にTJLの損失が重なった1日分。それ以外のワースト日はむしろ改善していて、スリーブを増やした分散効果がきちんと働いています。

前提をひとつ補足します。私のシステムはプロップファーム(審査に合格すると会社の資金を運用でき、代わりに日次損失などの制約が厳しい仕組み)を想定していて、日中の損失が一定ラインに達したら全ポジションを閉じる安全装置(フラット)と、リスク量を倍率kで増減する仕組みを持っています。外部資金運用を想定したk1.5換算では-4.44%で、フラットが作動する-4.5%ラインの手前に収まりました。

モンテカルロ(日次リターンを並べ替えて、あり得た口座の運命を何千通りも再生するシミュレーション)の結果も並べます。

項目6スリーブ7スリーブ(+TJL)
月次リターン1.000%1.040%
破綻確率(ストレス込み)4.3%3.8%
フラット発動年0.08回年0.08回

図: モンテカルロの考え方(シミュレーション例)。あり得た口座の運命を何千通りも再生し、運の幅ごと評価します。

図: モンテカルロのイメージ。リターン微増・破綻確率は低下と、リスクを増やさずに新入りを迎えられる形でした。

11年分の実データを通しても、k1.5ならフラット発動は0日。攻めのk2.5でも、-5%に触れる日数は9日から8日へ改善しました。TJL単独の日中最悪も、2026年5月の金の荒れ相場まで含めて-1.72%。k2.5換算で-4.3%と、-4%のフラットガードが受け止める防御圏内です。

判定は「設定値は全部据え置きで採用GO」。TJLはリスク0.005(1トレードあたり資金の0.5%)・損切り2ATR基準・動的k連動ONで、7本目のスリーブになりました。

研究176: その勝ちフィルタ、他でも効くのか

さて後日談です。TJLを化けさせた立役者はER×ADXの二重フィルタでした。となると欲が出ますよね。同じ金を取引している本番のコアロジック(金ATRキャンドル。H1・H4・D1の3時間軸合算・ロングのみ・SMA150フィルタ)にもこれを足せば、もっと良くなるんじゃないか?

指標素の金ATRキャンドルER0.3+ADX20を追加
月利+0.42%+0.24%
PF1.451.42
最大DD-8.4%-9.4%

全項目で劣化です。月利はほぼ半減、DDは深くなりました。しかも検証期間の前半(OOS=未知データ扱いの期間)ではPF1.45→1.71と改善に見えるのに、後半(IS=ルール決定に使った期間)では1.51→1.26と悪化する逆行つき。期間によって効いたり効かなかったりするフィルタは、頑健とは呼べません。

比較のため、本番には入っていない金BreakoutLong(H1)にも同じフィルタを当てました。こちらはADX単体でPF1.49→1.59と改善しましたが、月利は+0.44%から+0.41%へ微減。改善幅は小さく、そもそも適用先が本番に存在しないため見送りです。

この結果から出てきた一般則が、フィルタの効果はロジックの未成熟度に比例するでした。TJLでER×ADXが効いたのは、元の定義が「前日高値ブレイク」ひとつだけの粗削りな新参だったから。すでに磨き込まれたロジックに後付けの条件を重ねても、良いトレードごと削って機会損失を生むだけ。既存の金ロジックは変更なしと結論しました。

系譜が教えてくれた3つのこと

  • 「そのままでは使えない」は終点ではない。死因(今回はコスト)まで特定できれば、移植先を選び直す道が残る
  • 良いスリーブでも、入れる前にシステム全体の最悪の日を測り直す。単体の成績とジョイントのリスクは別物
  • 勝ち部品は文脈込みで勝っている。転用が効くかは理屈で決めず、必ず実測する

動画の手法を「使える/使えない」の二択で裁くのではなく、どの部品がなぜ死んでいて、どの環境なら生きるのかまで分解する。PF1.03のコインフリップが本番スリーブに化けたのは、この分解の積み重ねでした。そして同じ分解が、勝ちフィルタの安易な使い回しにも「ノー」を突きつけてくれたわけです。

この記事は研究169/173/176を統合したものです。