エクイティカーブと取引ログを送って、うますぎる話ではないかと聞いてくれましたね。短く答えると、明らかに本物とも偽物とも言えず、どちらなのかは1日ほど作業すれば確かめられます。診断は結論より大切なので、詳しく説明します。
戦略の内容はこうです。BinanceのBTCUSDTとETHUSDTの無期限先物で、15分足の平均回帰シグナルを使い、価格と96本平均のzスコアを算出して、行き過ぎた動きに逆張りし、2-8本保有します。バックテスト期間は2024年2月から2026年6月。手数料モデル控除後のSharpeは2.9です。損益を時刻ごとに集計したところ、その71%が00:00、08:00、16:00 UTCを含む3つの15分区間に集中していました。
なぜ疑わしいのかは、もう分かっていますよね。ここでは、なぜ一部は疑わしくないのかも説明します。
資金調達の時計は実在し、価格を実際に動かす
Binanceでは無期限先物の資金調達料が00:00、08:00、16:00 UTCに決済されます。決済の瞬間にポジションを保有している人は、支払うか受け取ります。これは予定が決まっていて誰もが知っている確実なキャッシュフローであり、その前後には実際の注文フローが生まれます。データ上のアーティファクトではなく、トレーダーが実際に行う取引です。
注文フローには一定の形があります。決済前の10〜30分には、支払いを避けたいポジションが解消またはヘッジされます。その時間帯の資金調達率が+0.04%で、いずれ手仕舞うつもりのロングなら、マーク時刻の後ではなく前に決済します。一方、無期限先物をショートしているベーシストレーダーは、決済をまたいで喜んで保有を続けます。期限のある非対称な圧力が生まれるのです。そして決済直後には、そのフローの一部が戻ってきます。資金調達料を避けていたロングが再び入り、部分的な反転が起こります。
つまり、23:52にシグナルが出て00:12に決済する平均回帰戦略は、予測可能な流動性イベントが起こる場所にちょうど位置しています。あなたのエッジの一部は、機械的に発生するカレンダー起因の価格変動が戻る動きを捉えているのでしょう。これは実際のマーケットマイクロストラクチャー現象であり、何年も前から起きています。
ただし、あなたのように大きな数字を信じる前に確認したい点があります。
確認する6つのこと — 私ならこの順で調べます
まずは手間のかからないものから始めましょう。この手の戦略の多くは、2つ目か3つ目の確認で成り立たなくなります。
- 資金調達損益を二重計上していませんか?約定エンジンが未決済ポジションに資金調達料を適用し、かつ価格系列に最終取引価格ではなくマーク価格を使っている場合、資金調達料を二重に支払ったり受け取ったりしている可能性があります。明示的な計上に加え、マーク価格の収束の動きを通じても反映されるためです。取引ごとの資金調達キャッシュフローを生データで出力し、そのうち10件を取引所の過去の資金調達エンドポイントと目視で照合してください。
- 資金調達データのタイムスタンプはどの時刻ですか?Binanceの資金調達率履歴が返すfundingTimeは決済時刻です。一部のデータプロバイダーは、同じ行に適用対象区間の開始時刻を付けています。データが8時間ずれていたら、未来を知っているシグナルで取引していたことになります。偽の資金調達エッジが現れる原因として、私が最もよく見たのはこれです。損益プロファイルもまさにあなたのものと同じで、決済バーに集中し、符号も合っていて、見事です。
- 00:00:00にスプレッドはどう変化しますか?ローソク足ではなく、板データを取得してください。1-minute足ではスプレッドは見えません。中堅クラスの取引所では、決済前後の数秒間に3-5倍に広がることがあります。約定価格を仲値や足の終値でモデル化しているなら、実際には存在しないスプレッドを利益として得ていることになります。
- 残り2回の決済時間だけでも成り立ちますか?3つの時間帯を分けてください。00:00 UTCのフローは、08:00(アジア市場の開始に近い時間)や16:00(米国の午後)とは異なります。利益が3回のうち1回に集中しているなら、イベント数は900回ではなくおよそ300回です。その数に基づいてSharpeを再計算してください。
- 資金調達の時間が異なる取引所でも成り立ちますか?これは有効な検証方法です。同じシグナルを、資金調達が1時間ごと、または異なるスケジュールで決済される取引所で動かしてください。資金調達が原因なら、その取引所の時計に合わせて効果が現れるはずです。00:00 UTCに決済しない取引所でも00:00 UTCにシグナルが出るなら、見つかったのはデータパイプラインの深夜アーティファクトであって、資金調達の効果ではありません。
- 損益のうち最初と最後の90秒に生じる割合はどれくらいですか?エッジ全体が2分未満の時間帯にあるなら、15分足では正直なエントリー価格を評価するには粗すぎます。モデル上の約定価格は、その時間帯に得られる最良の価格であって、実際に得られる価格ではないと考えてください。
1時間しかなければ、私なら5つ目から確認します。きれいな自然実験で、2つ目のデータソース以外に新たな仕組みも要りません。
決済時間帯に実際にかかるコスト
効果は本物で、6つの確認もすべて通ったとしましょう。次は適切にコストを見積もってください。モデル上の取引と実際に得られる取引は同じではありません。
USDⓈ-M無期限先物で、takerでエントリーしtakerで決済する$50kの取引について、20分間の往復取引を、静かな時間帯と決済時刻をまたぐ場合で比較します。
| 静かな時間帯(例:03:20 UTC) | 00:00 UTCをまたぐ場合 | |
|---|---|---|
| 往復のtaker手数料 | 0.09% | 0.09% |
| 一般的なスプレッドコスト | ~0.4 bp | 1.5-3 bp |
| $50kの取引でのスリッページ | ~0.5 bp | 2-6 bp |
| 資金調達料の支払い/受け取り | 0 | ±1 to ±4 bp(区間全体) |
| 現実的な総コスト | ~10 bp | 資金調達料を除き13-19 bp |
注目すべきは資金調達料の行です。最初の確認にこだわる理由もここにあります。決済をまたいで保有すると、保有時間の長さに関係なく、区間の資金調達料を全額受け取るか支払うことになります。23:59:54にエクスポージャーを12秒持つだけで、8時間分の資金調達料がかかります。平均保有時間が20分の戦略でも決済をまたぐなら、20分の取引に8時間分のキャリーコストを支払うことになります。手数料モデルでは按分せず、そのように計上してください。
関連する落とし穴がもう1つあります。決済を完全に避けて23:58に決済し、00:02に入り直すと、手数料の回数が倍になり、戦略の前提は「takerで2回余計に取引する方が、資金調達料を1回払うより安い」になります。それが正しい場合もあります。バックテスト任せにせず、明示的に計算してください。
まだ確認していないレジームの問題
サンプル期間は2024年2月から2026年6月です。その間、資金調達は1つのレジームにとどまりませんでした。8時間の資金調達率が0.01%の下限に張り付いて、決済に合わせてポジションを動かす理由が誰にもなかった長い期間もあれば、数日間0.05%+で推移して、決済前のフローが激しかった週もありました。
取引時点の資金調達率に基づいて損益を分類してください。たとえば絶対値で4つの区分に分けます。エッジが資金調達フローによるものなら、|funding|に対しておおむね単調に変化するはずです。資金調達率がほぼゼロならエッジもほぼゼロ、高ければエッジも大きい。区分間で横ばいだったり、さらに悪く低資金調達率の区分に集中したりするなら、資金調達という説明は別の現象に後付けした物語です。
この検証が好きなのは、自分の説明から導かれる、反証可能な予測だからです。「まだ機能するか」ではなく、「主張した理由で機能しているか」を問うのです。
私なら実際にこうします
検証を通ったら、規模を縮小します。この戦略を正直に表現するなら、15分足で年間900回取引するのではなく、数百回の厳選したイベントを対象に、エントリーの条件を秒単位で定め、ローソク足ではなく板のスナップショットを使った約定モデルを組みます。規模は小さくなり、見栄えも悪くなりますが、より信頼できる戦略になります。また、ペーパートレードで再現できる可能性も出てきます。想定した約定が本当に存在するかを確かめられるのは、そこでだけです。
2つ目の確認、タイムスタンプのずれで失敗しても、あまり気にしないでください。誰でも少なくとも1度はやります。オフセットを修正するだけでなく、データ読み込み処理を注意深く読む価値があります。資金調達データがずれているなら、建玉もずれている可能性が十分にあり、次のアイデアに進む前に確かめておきたいからです。
もう1つ、そして多くの人が省いてしまうことがあります。何が分かったにせよ、6つの確認項目と結果を戦略の横に書き残してください。6か月後、あなたか誰か別の人が構造的に同じシグナルを作り、同じ美しいカーブを得て、同じ議論を最初から繰り返すでしょう。ここで長く役立つ資産は診断結果です。戦略はそうとは限りません。
← 記事一覧
