まず数字から始めよう。それがこの記事の論旨のすべてだからだ。主要な無期限先物取引所での taker のラウンドトリップ1往復には、手数料として想定元本の約0.10%がかかる。ロングに人が偏った局面では、ファンディングが年率10-30%も逆風になりうる。板の最良気配の厚みに対して大きい成行注文は、スプレッドに加えて平方根則のインパクトを払う。そして、昨日のデータの「今日時点の改訂版」を読んでしまうバックテストは、実際には存在しなかった年率数%相当のエッジを手にしてしまう。
意外なのは最初の数字だ。金額が大きいからではない。取引頻度に効いてくるからである。誰もが「手数料は入れよう」とうなずいた上で、1日に40回売買する戦略を検証する。ラウンドトリップ0.10%なら、40回で1日あたり想定元本の4%がコストだ。中型の無期限先物で、そのハードルを超えるシグナルなど存在しない。その戦略は実用の水準にかすりもしていなかったのに、手数料なしのバックテストは「素晴らしい」と告げていたわけだ。
手数料は「削り代」ではなくフィルターである
多くの人が持っている感覚は、手数料は曲線を少し削るだけ — 形は同じで、わずかに低くなる — というものだ。これは間違っている。手数料は頻度フィルターだ。同じエッジでも高頻度な変種を丸ごと消し去り、低頻度な変種はほぼ無傷で残す。私たちのパイプラインが取引所ごとの実際の maker/taker 体系を強制し始めたとき、死んでいったのは筋の悪いアイデアではなかった。売買しすぎていた良いアイデアの方だった。処方箋はたいてい、より良いシグナルではなく、より長い時間軸だった。今では平均トレードリターンが想定元本の0.15%を下回るものは打ち切っている。往復コストを引いたあとに複利で積み上がるものが何も残らないからだ。
ファンディングは記憶を持つポジション税である
無期限先物は1時間ごと、あるいは8時間ごとにファンディングを支払う。これはノイズではない。モメンタム系システムがまさに取りたがるトレードと構造的に相関している。皆がロングのとき、ファンディングはプラスであり、あなたのロング・モメンタムポジションがそれを払う。ファンディングを計上しないバックテストは、無期限先物のトレンドフォローを系統的に美化する。私たちはこれをきまり悪いかたちで学んだ。ファンディング・キャリー戦略の一族がまるごと自動的に打ち切られていたのだが、原因はエンジンが、その戦略が収穫するはずのファンディングを計上していなかったことだった。シグナルは問題なかった。欠けていたのは会計の方だ。
インパクトはサイズの平方根で効いてくる
バー単位のバックテストが抱える上品な作り話は、終値で約定できるという前提だ。小口の注文ならおおむね正しい。だがまとまった規模になると、出来高に対する注文サイズの平方根でインパクトが増大し、しかもそれは戻ってこない、というのが定説のモデルである。私たちは平方根則によるインパクト推定を、すべての約定に、そしてエクイティカーブそのものに織り込んでいる。それが最も効いてくるのは、最も都合の悪い場所 — キャパシティだ。ある戦略が$50kでは本当に儲かり、$5Mでは構造的に儲からない、ということはありうる。その境界を見せてくれるのは、インパクトを織り込んだ曲線だけである。
先読みはコードではなくデータに潜む
if tomorrow_close > today_close: buy() などと書く者はいない。先読みはデータ配管から忍び込む。ニュースのセンチメントに取り込み時刻ではなく発表時刻のタイムスタンプを付ける。ファンディングレートを、判明した時点ではなく対象期間で結合する。「現在の」銘柄ユニバースを過去に当てはめる(生存バイアス)。実際にテープに流れた数字を、改訂後の経済指標が置き換える。私たちのルールは、あらゆる場所でポイント・イン・タイムを貫くことだ。すべての補助系列は私たち自身が知りえた時点でタイムスタンプされ、バックテストはそのナノ秒時点で存在していたものしか読めない。
バックテストの試金石は、曲線が右肩上がりかどうかではない。同じコードに同じシグナルをライブで流したとき、同じトレードが出るかどうかだ。そしてそれは、毎日、永遠に確かめることでしか分からない。
この最後の一文はスローガンではなく、実在するプロセスだ。私たちは毎日、ペーパートレード中の各戦略の期間をバックテストエンジンで再生し、トレードを1件ずつ突き合わせている。ペーパーと再生が食い違うなら、どちらかが嘘をついている。そして犯人はたいていコストかタイムスタンプだ。上に挙げた4つの費目は、単に私たちに最初に嘘をついた面々にすぎない。
← 記事一覧