記事の目次
根拠と適用範囲
論文は2007年五月~2024年四月について、総リターン+1,985%、IRR19.6%、シャープレシオ1.33、最大ドローダウン25%を報告しています。明記された手数料とスリッページを含みます。著者報告の結果であり、本記事で独立したバックテストは行っていません。[1]
実践の流れ
- 履歴を準備する過去の14セッションをクロックタイムで揃え、日々の変動率を計算します。
- 価格バンドを作る始値と前日終値を基準とし、一貫した企業行動処理を行う。
- VWAP のアップデート当セッションで既に受信した出来高だけを使います。
- 予定通りに評価する判断対象の足が閉じてから、買い持ち・空売り・ポジションなしの目標を決めます。
- 執行および清算すべてのポジション変更に費用を計上し、セッションの期限までに全決済します。
- 各要素の効果を分ける未使用の検証データでバンド、VWAP、数量調整を比較します。
時間固有のエンベロープであり、一定のパーセンテージバンドではない
始値ボラティリティと昼休みボラティリティは分布が異なります。ノイズバンドの考え方では、日中の各時間帯において、セッション開始時からの通常の絶対値変動を個別に測定します。午前遅くの観測値は、隣接する分の移動系列ではなく、それ以前のセッションの午前遅くの観測値と比較されます。
クロック時間 k に対して、sigma(d, k) = mean(abs(P(d−j, k)/Open(d−j)−1), j=1…14) を定義します。完了した以前のセッションのみを使用すると、ベースラインが因果的になります。上限は U(d, k)=max(Open(d), PreviousClose(d))×(1+sigma(d, k)) です。下限は L(d, k)=min(Open(d), PreviousClose(d))×(1−sigma(d, k)) です。ギャップ認識アンカーは、夜間のギャップをまたいでエンベロープを広げます。
このシグマは、分足リターンの標準偏差ではなく、平均絶対変位です。これを従来のローリングボラティリティ指標に置き換えると、シグナルが変わります。また、アンカーと日中変位の役割が異なるため、大きな始値ギャップは、始値後の大きな値動きとは異なる影響を与えます。
この戦略仮説は、価格が通常の日中ノイズを超えた後も持続するというものです。ニュースによる急騰が反転した場合、直前の 14 セッションが現在のボラティリティを過小評価している場合、または価格が繰り返し境界線を越える場合、この仮説は失敗する可能性があります。これらの結果はいずれも、出来高の多いブレイクアウトによって排除されるものではありません。
データアライメントによって何が知り得たかが決まる
この研究は IQFeed の分足データを使用しています。報告された結果には、一株あたり$0.0035の手数料と$0.001のスリッページが含まれます。[1] これらは明示的な仮定であり、過去のすべての注文がそのコストで執行できたという保証ではありません。
取引所の取引セッションとクロック時間に基づいて履歴マトリックスを作成します。休日、夏時間への移行、および短縮セッションは、カレンダーを考慮した処理が必要です。10:00 の観測値が欠落している場合、それはゼロリターンとは同等ではありません。不完全な履歴セッションが除外されるか、現在の決定が無効になるかを指定します。
始値、前日終値、および過去の価格については、一貫した企業行動記録方法を使用してください。調整済みの前日終値と未調整の始値を混在させると、ギャップが生じる可能性があります。リターン推定に使用する変換済み系列とは別に、生の約定系列を保存してください。
セッションVWAPでは、受信した取引または完了したバーのみを使用する必要があります。バーベースの近似値では、バーの出来高で加重された標準価格(H+L+C)/3を使用できますが、これは取引レベルのベンチマークとは異なります。この差は、特に値幅の広いバーの場合、より高解像度のデータが利用可能な場合に測定する必要があります。
目標ポジションの明確なルールにする
この研究案では、あらかじめ決めた半時間ごとの時点でのみ評価します。価格がmax(U, VWAP)を上回れば買い持ち、min(L, VWAP)を下回れば空売り、それ以外はポジションなしを目標にします。足のデータ受信後に目標数量を送信します。常時有効な保護決済と定時のポジション調整は別物であり、同一のルールとして扱えません。
判断時点の間で価格が一時的に境界を越えても、この案では新しい判断をしません。常時有効な保護ストップを追加するなら別のイベント駆動ルールとして定義し、増える売買回転を検証します。半時間ごとのエントリーとティック単位の決済を組み合わせる戦略は、ポジションを半時間ごとにしか変更しない戦略と経路依存性が異なります。
目標は希望するポジションであり、新たなポジションを繰り返し追加する指示ではありません。+q株から-q株へ移動するには、2q株を売却する必要があります。+q株からゼロ株へ移動するには、q株を売却する必要があります。コストは、反転の両局面を含め、実際のポジション変更に追随する必要があります。
清算期限では、新規エントリー信号よりもフラット化が優先されます。生産仕様では、最終出口を要求する前に未約定のエントリー注文をキャンセルし、キャンセル処理中に到着した約定を調整してください。
before_session(d):
bands = build_from_completed_sessions(d, lookback=14)
daily_vol = sample_std(previous_14_daily_returns)
if data_incomplete or not isfinite(daily_vol) or daily_vol <= 0:
disable_session(); return
multiplier = min(4, 0.02 / daily_vol)
shares = floor(previous_equity * multiplier / session_open)
on_completed_bar(k):
if is_liquidation_deadline(k):
cancel_pending_entries(); submit_flat(); return
if session_disabled: return
update_session_vwap()
if is_decision_time(k):
target = 1 if close > max(upper[k], vwap) else (
-1 if close < min(lower[k], vwap) else 0)
submit_target_after_available_at(target * shares)
ボラティリティ・サイジングは、エクスポージャーの別の源泉である。
ポジションサイズの仕様の一例は multiplier = min(4, 0.02/s) です。s は直前14日分の確定した日次リターンの標本標準偏差です。株数はfloor(previous account equity × multiplier / session open)とします。2%の目標とレバレッジ上限はこの設定に属するものであり、普遍的なリスクの推奨値ではありません。
sがゼロ、欠損値、または非有限値の場合、セッションを無効にする方が、除算によって無制限のサイズを作成するよりも安全です。最小ボラティリティフロアは、別の宣言ルールとなります。サイズ決定系列は、当日の終値リターンで再計算するのではなく、セッション開始前に固定する必要があります。
レバレッジありとなしの結果は分けて表示します。論文の等倍版は、総リターン+380%、IRR9.7%、シャープレシオ1.24、最大ドローダウン12%を報告しています。[1] エクスポージャー方針も変わる場合、成績差のすべてをエントリーシグナルの改善に帰属できません。
サイズ制限には、追加の運用上の制約が必要です。購買力、想定元本総額、ブローカーの証拠金、執行期間への参加状況などを確認してください。直近の平穏な期間に基づいたエクスポージャールールでは、ボラティリティの急上昇直前に大きなポジションが構築される可能性があるため、ギャップテストや遅延決済ストレステストが必要です。
合成算術と失敗した継続
前回の終値が 500、今日の始値が 505、チェックポイントでのシグマが 0.003 だとします。すると、U=505×1.003=506.515 と L=500×0.997=498.50 になります。この非対称性は、始値のギャップによって生じます。505 を中心とした対称的なバンドは、同じ計算にはなりません。
10:00 において、VWAP を 506.20 とし、完了した終値を 506.80 とします。提案されたルールは、506.80 が max(506.515,506.20) を超えるため、ロングをターゲットとしています。注文が 506.86 で約定し、509.00 で決済された場合、コスト控除前の株価上昇は 一株あたり $2.14 となります。約定は意図的に遅く、シグナル終値とは異なります。
失敗例では10:30の終値506.30、更新された上限506.60、VWAP506.50なので、目標はポジションなしになります。506.24で決済すれば506.86の買値から一株あたり$0.62の損失です。それ以前にバンドを下回ったとしても、定時判断の実装に過去のより良い決済価格を後付けしてはいけません。
等号と時刻を明示的にテストします。厳密な不等号を使うので、終値が閾値と完全に等しければポジションなしです。遅れて届いた観測には以前の約定価格を使えず、履歴が足りないセッションでは完全なバンド推定ができません。このような小さな差が公開実装間の成績差につながります。
公表された証拠と再現可能な比較
この論文の一日当たりの的中率は43%ですが、取引表では7,668回の取引に対して37%と報告されています [1]。これらの分母は異なる質問に答えるものです。IRR、総収益、取引ごとの勝率、利益が出た日の頻度は別々のフィールドに保持してください。
著者らの公開コード記事は、VWAP、エクスポージャーシフト、メカニズムを検証するのに役立ちますが、完全な例にはオーバーナイトギャップ平均回帰コンポーネントも含まれています。[2] の複合エクイティは、自動的に日中モメンタムコンポーネントのみに起因するものとはみなされません。
別の公開リポジトリのREADMEは、2024年五月~2026年三月のアウトオブサンプルについて、シャープレシオ0.39、年次リターン4.8%、最大ドローダウン18.5%を報告し、インサンプルのシャープレシオ1.34と比較しています。ここで確認したのはREADMEだけで、ライセンス付きデータと全執行過程を独立再現したものではありません。[3]
ノイズバンドのみ、バンドとVWAP、同じシグナルにボラティリティ連動の数量調整を加えた版を比較します。約定処理、データ調整、評価期間をそろえます。その上でVWAPがエントリーの質、決済時刻、市場にいる時間、または売買回転だけを変えるのか報告します。
リターンを比べる前に、各日のバンド配列と目標ポジションの時刻を比較します。次に明示された費用と厳しい費用、一足の遅延、近傍のルックバック期間、独立した市場期間で検証します。好みの成績見出しが出るまで探すのではなく、どの仮定が結果を支えるかを調べます。
よくある落とし穴
バリアント名を変更せずにノイズ統計を置き換える
始値から各時刻までの変化率の絶対値を平均した量は、ローリング標準偏差ではありません。置き換えると閾値の尺度と経済的意味が変わります。
スケジュールされたシグナルを継続的に実行
半時間ごとに判断するとしながら足の内部の全交差で決済すると、バックテストを不当に改善できます。エントリーと決済のイベント頻度を両方明記します。
結合されたコード例を1つのコンポーネントに割り当てる
ギャップ平均回帰とモメンタムを含む例では、いずれかの要素を検証する前に、個別の帰属付けが必要です。
この手法を使う前のチェックリスト
ご自身のデータで確認した項目にチェックを入れてください。進捗はこのブラウザに保存されますが、戦略の収益性を認定するものではありません。
よくある質問
VWAPは、ノイズ帯域の上限または下限と同じですか?
いいえ。VWAPは出来高加重平均による当セッション価格の基準値です。バンドは、同時刻における過去のセッションからの典型的な価格変動幅を推定したものです。
報告されているシャープレシオは、現在の収益性を示しているのだろうか?
いいえ。これは特定のサンプルとコストモデルを説明するものです。後期の証拠、実行の再現性、および不確実性は別途評価する必要があります。
研究資料
各資料は、その横に記載された定義や根拠を支えています。擬似コード、架空の例、提案パラメータは別途検証が必要です。
- Beat the Market: An Effective Intraday Momentum Strategy for S&P500 ETF (SPY)Zarattini, Aziz, Barbon — bản 03/02/2025. 2025年二月3日付の版を含むPDF全文を確認しました。表3と4は、ファイル上も印字上も15と16ページにあります。新規の再現実験はしていません。 確認日: .
- Designing a Profitable Intraday Strategy Using Python and AlpacaConcretum Group. 著者らの論文と公開されているコードを読んだ。完全な例には、オーバーナイトギャップの要素が追加されており、必ずしも純粋なモメンタム複製ではない。 確認日: .
- Out-of-Sample Evaluation of an Intraday Momentum Strategy for SPYSheimy Paz Serpa. リポジトリREADMEだけを確認しました。ライセンス付きの全入力データと、報告されたアウトオブサンプルの執行を独立再現したものではありません。 確認日: .
関連する手法
リスクについて
この内容は学習と研究設計を目的とし、金融上の助言ではありません。Backtestは過去データのシミュレーションであり、将来の成果を保証せず、実際の売買注文も行いません。このライブラリの手法が、そのままアプリで利用できる機能とは限りません。関連情報: 検証方法 および 学習センター.
実際の資金を使う前にルールを検証する
アプリの対応範囲、データ、個々の模擬取引を確認してください。高度な検出手法は別途実装が必要な場合があります。
App StoreでBacktestをダウンロード