記事の目次
根拠と適用範囲
著者らは、2018年一月2日から2023年九月28日までについて、QQQのリターン+671%、シャープレシオ2.1、最大ドローダウン9.4%、およびTQQQのリターン+8,242%、シャープレシオ1.7、最大ドローダウン36.1%を報告しています。モデルは一株あたり$0.0005の手数料とスリッページゼロを仮定しています。これらは報告されたバックテストであり、検証済みの実運用結果ではありません。[1]
実践の流れ
- セッションをリセット価格と出来高の積の累積値と累積出来高をリセットし、全決済の時刻を設定します。
- バーを蓄積する標準価格VWAPは、完了した観測データのみに基づいて更新してください。
- 買い・売りの方向を選ぶ終値をVWAPと比較し、完全に等しい場合は事前に定めた処理を適用します。
- ポジションを変更既存ポジションの決済数量と新規建て数量を両方計上し、約定の遅延をモデル化します。
- コストを測定する各約定の売買回転、スプレッド、市場出来高に対する参加率を記録します。
- 一日を締めくくる全ポジションを決済し、照合できるよう完全な注文台帳を保存します。
出来高加重の基準値が測るもの
セッションVWAPは、価格と出来高の積を累積した値を累積出来高で割ります。個々の約定データでは、それぞれの価格を約定数量で重み付けします。足単位の近似では代表価格、通常は(H+L+C)/3を選び、その足の出来高で重み付けします。値幅の広い足で特定価格に取引が集中すると、両者の値は異なり得ます。
価格100と102、取引量100と300の2つの合成観測値を考えてみましょう。これらのVWAPは(100×100+102×300)/400=101.50です。加重なしの平均は101.00です。この差は、より多くの株式が取引された場所を反映していますが、取引量の多い参加者が情報を得ていたことや、価格が彼らの平均値に戻る必要があることを示すものではありません。
セッションリセットは定義の一部です。数日前に開始されたアンカー付きVWAPは別の参照です。TradingViewのドキュメントには計算とアンカーの選択肢が記載されていますが、インジケーターの定義は、クロスルールが利益を生み出す証拠にはなりません。[3]
継続仮説とは、VWAPの一方の側に留まることで、日中の方向性のある動きを特定できるというものです。累積平均線付近で変動する市場では、これとは正反対の状況が生じます。つまり、繰り返し発生する取引コストに見合うだけの動きがないまま、多くの方向性の変化が見られるということです。
最初の取引、等価性、および各反転を指定します
研究のルールは最初の一分足の確定後から取引し、VWAPより上なら買い、下なら売り、交差でポジションを反転させ、日末には保有をゼロにします。口座規模と同額の想定元本を使い、口座での追加借入倍率はかけません。[1] ただしTQQQ自体には内部レバレッジがあるため、別に分析する必要があります。
この擬似コードは、提案された因果的実装例です。完了したバーのみを蓄積し、完全に一致する場合は前のサイドを保持し、シグナルが利用可能になった後にターゲットを送信します。等価性の処理は明示的な実装規約です。別の規約に置き換えることは、別のテスト済みルールとして記録されている場合にのみ許容されます。
変更されていないターゲットは、新たなエントリーを生成してはなりません。+100株から−100株への変更には、200株の売却が必要です。100でロングポジションが決済され、100でショートポジションが開設されます。100株の単一のアクションに対して手数料を請求するシミュレーターは、反転取引のターンオーバーを過小評価します。
注文処理には、未決済注文に関するポリシーも必要です。新しいシグナルが届いた時点で、以前の目標注文が完全に約定していない場合は、次の目標注文を送信する前に、実際のポジションと保留数量を照合する必要があります。即時の完全約定をシミュレートすると、急速な反転時にこの問題が隠蔽される可能性があります。
セッションの全決済期限には、待機注文の取消と全ポジションの決済を新規シグナルより優先します。擬似コードは基本ロジックを示すもので、取引所の短縮セッションでもイベントスケジューラがこの優先順を強制しなければなりません。
on_session_start():
cum_pv = 0; cum_volume = 0
target_side = 0
on_completed_minute(bar):
typical = (bar.high + bar.low + bar.close) / 3
cum_pv += typical * bar.volume
cum_volume += bar.volume
if cum_volume <= 0: return
vwap = cum_pv / cum_volume
new_side = sign(bar.close - vwap)
if new_side == 0: new_side = target_side
if new_side != target_side:
target_side = new_side
submit_target_after_signal(target_side, budget=available_equity)
on_session_liquidation_deadline():
cancel_pending_orders()
submit_flat()
コストが、勝率の低いシステムが存続できるかどうかを左右する。
資料はQQQの21,967取引で勝率17.0%、TQQQの22,399取引で勝率17.2%と報告しています。[1] この戦略は勝つ回数の多さではなく、損失に対する利益の大きさに依存します。低い勝率のため、売買回転と短い連続損失の扱いが評価の中心になります。
合成例では、100株を100.02で購入し、100.22で売却すると、総額$20の利益が得られます。往復手数料が$0.70、追加のスプレッド/スリッページコストが$3.00だとすると、純利益は$16.30となります。同様の往復取引を12回行うと、価格上昇がプラスかどうかを検討する前に、これらのコストとして$44.40が発生します。
勝つ確率が0.20、勝ち取引の平均利益が5R、負け取引の平均損失が1Rという模式的な取引分布では、コスト控除前の期待値は0.20×5−0.80×1=0.20Rです。平均コストが0.10Rなら残る期待値は0.10Rとなり、コストが0.25Rなら期待値は−0.05Rになります。これは説明用の例であり、論文の分布を推定したものではありません。
スプレッドを二重計上しないでください。シミュレーターがすでに売り気配で買い、買い気配で売るなら、その差は約定価格に含まれています。まだ表現されていないコストだけを加算します。反対に、終値から終値で計算するモデルは、手数料の項目があるだけでスプレッドを支払ったことにはなりません。
時間帯、スプレッド、ボラティリティ、市場参加率ごとにコストを評価します。常に小さな一定コストという仮定は、寄り付き、ニュース時、基準線を繰り返し横切る場面で特に脆くなり得ます。
口座の想定元本とETFの内部レバレッジ
TQQQの目標は、手数料・経費前のNasdaq-100の日次成績の三倍です。発行体は、長期保有の成績が指数の累積変化の三倍とは大きく異なり得ると説明しています。[2] したがって口座純資産の全額でTQQQを買っても、経済的なエクスポージャーにレバレッジがないことにはなりません。
合成の二日間の経路で複利効果を示します。指数が10%上昇し、その後9.0909%下落すると、ほぼ出発点へ戻ります。理想化した日次三倍の商品は100から130へ上がり、その後約94.545になります。指数の二日間の累積変化がほぼゼロでも、商品の価値は下がります。
日中フラット戦略は、意図的にポジションを次のセッションに持ち越すことを避けますが、それでもレバレッジのかかった日中変動、独自のスプレッド、独自のトラッキングメカニズムを持つ金融商品を取引します。日中に決済したからといって、TQQQが、執行コストが同じQQQと同等になるわけではありません。
QQQとTQQQを、口座残高とリスク指標の両方を用いて比較してください。パーセンテージリターンが大きいほど、ドローダウンやテールリスクも大幅に大きくなる可能性があります。比較においては、ショートトレードにおける借入可能性、資金調達に関する前提条件、およびレバレッジ型ETFに対するブローカーの制限事項も開示する必要があります。
合成トレンドキャプチャと繰り返されるウィップソー
仮に、あるバーがVWAPを上回って終値をつけ、その後のロングエントリーが100.12で約定したとします。その後、101.20で決済すると、100株に対して$108の利益(総額)が得られます。この取引は、継続的な値動きがエントリーとエグジットのコストを十分にカバーできるほど大きいため、利益が出ます。
一連の取引が失敗した結果、同じロングポジションが100.02で決済され、$10の損失が発生しました。その後、この戦略は100.02でショートポジションを建て、100.13で再び反転し、さらに$11の損失が発生しました。この一連の取引全体を通して価格はほとんど変動していませんが、口座は複数のポジション変更に対して支払いを行っています。
隣り合う確定足で二回の交差を起こす約定テストが有用です。各シグナルがその時点の確定情報だけを使い、注文がシグナル時刻より後で、二回目の反転が実際の約定済みポジションから行われることを確認します。出来高ゼロの足、一分足の欠落、終値とVWAPが完全に等しい場合もテストします。
図は、終値からVWAPを差し引いた値を示しており、エクイティカーブではありません。初期の観測値はゼロ付近で推移し、後期の観測値はプラスのままです。この例は、持続的なトレンドのみを視覚的に確認すると、包括的な戦略で資金を賄う必要のある初期の変動を見落としてしまう可能性がある理由を示しています。
脆弱な前提を検証する検証計画
リターンを評価する前に、セッションVWAPとターゲット方向を再構築してください。取引タイムスタンプ、反転数量、および日末決済を意図したルールと比較してください。これらの中間出力の不一致は、新しいコストパラメータで補償するのではなく、直接解決する必要があります。
次に、固定バリアントを実行します。フィルタリングされていない交差、VWAPからの事前定義された最小距離、および事前定義された持続要件です。後者の2つは提案された実験であり、情報源が主張するルールではありません。それぞれが取引回転率を低下させる一方で、まれに大きな利益を得るタイミングを遅らせる可能性があるため、取引回数の減少だけでは改善の証拠にはなりません。
純期待値、売買回転、平均保有時間、連続損失の分布、大きな利益を出した取引が総利益に占める割合を報告します。最大の勝ち取引を除くのは感度分析であり、トレンド戦略を自動的に棄却する規則ではありません。それらへの依存が安定し、経済的に妥当かを評価します。
事前に確保して未使用の後続期間と異なる相場状態を使います。現実的なスプレッド、約定遅延、市場参加率の上限を加え、スリッページゼロの仮定をストレステストします。借株・資金調達コストの有無を明記し、再現可能な実検証ができるまでは資料の報告成績と新仮説を区別します。
よくある落とし穴
勝率の低さをシステムの有効性または無効性の十分な証拠として扱う
勝率だけでは、報酬額とコストが考慮されていません。完全な純報酬分布を再構築してください。
ポジション反転の片側分しかコスト計上しない
ロングポジションから同規模のショートポジションに移行するには、片側取引量の二倍が必要となる。取引量の過少申告は、純利益を直接的に水増しする。
口座純資産全額のTQQQ保有を、レバレッジなしと呼ぶ
ETFは、内部的にレバレッジをかけた日次インデックスエクスポージャーをターゲットとしています。口座借入と商品レバレッジは異なるレイヤーです。
この手法を使う前のチェックリスト
ご自身のデータで確認した項目にチェックを入れてください。進捗はこのブラウザに保存されますが、戦略の収益性を認定するものではありません。
よくある質問
VWAPを上回って終値をつければ、強気トレンドが保証されるのでしょうか?
いいえ。これは一方向性の条件です。範囲内での交差が繰り返されると、すべての信号が規則に正しく従っていても損失が発生する可能性があります。
ここでゼロスリップの仮定が重要になるのはなぜですか?
頻繁なポジション反転は大きな売買回転を生みます。多数の小さな損失と少数の大きな利益に依存する戦略では、一株当たりの小さなコスト差も積み重なります。
研究資料
各資料は、その横に記載された定義や根拠を支えています。擬似コード、架空の例、提案パラメータは別途検証が必要です。
- Volume Weighted Average Price (VWAP): The Holy Grail for Day Trading SystemsCarlo Zarattini, Andrew Aziz — 13/11/2023. 2023年十一月13日付の26ページの論文全文を読みました。結果は著者らの手数料とスリッページゼロの仮定に基づき、本記事でバックテストを再実行したものではありません。 確認日: .
- TQQQ — UltraPro QQQProShares. 日次三倍の目標と保有期間中の複利効果の制約を確認するため、発行体の資料を読みました。戦略の成績を証明する資料としては扱いません。 確認日: .
- Volume Weighted Average Price (VWAP)TradingView. VWAPの計算とアンカーの動作について一次資料を読みました。これ自体が取引戦略を検証するものではありません。 確認日: .
関連する手法
リスクについて
この内容は学習と研究設計を目的とし、金融上の助言ではありません。Backtestは過去データのシミュレーションであり、将来の成果を保証せず、実際の売買注文も行いません。このライブラリの手法が、そのままアプリで利用できる機能とは限りません。関連情報: 検証方法 および 学習センター.
実際の資金を使う前にルールを検証する
アプリの対応範囲、データ、個々の模擬取引を確認してください。高度な検出手法は別途実装が必要な場合があります。
App StoreでBacktestをダウンロード