
モメンタム・ギャップ・トレーディング・ストラテジー (Momentum Gap Trading Strategy) は,価格の変動を追跡する量的な取引戦略である.開場価格と前日の閉場価格の間の差を活用して (ポータルと呼ばれる) 動態指標を構成し,その指標から取引信号を生成する.この戦略は,価格が飛躍した後の継続的な動作を捕捉できる高い波動性の株式に適用される.
この戦略は,ボーイング社の元定量分析家であるペリー・J・カウフマンが2024年1月,技術分析誌『』に掲載した論文『孔移動量指数』に基づいている.カウフマンは,孔を追跡する移動量時間序列を構成し,その時間序列の移動平均を取引信号として使用することを提案している.移動量指数で移動平均を横切るときに多めに,移動平均を横切るときに平仓する.
動量穴策の鍵は,動量穴時間序列を構築することにある. 構築の考え方は,量化術語であるOn-Balance Volume (OBV) に似ていますが,使用される価格の入力が,毎日の閉盘価格から毎日の穴に変化することだけです.
具体的には以下の通りです
正孔隙は,開盘価格が前日の閉盘価格より高かった差値と定義され,負孔隙は逆である.比率は,本質的に,最近の期間における正孔隙と負孔隙の強さの対比を反映している.
移動平均は原始の波動順序を平らめ,取引信号を発信するために使用できます.この戦略は,ゆっくりと移動平均を採用し,高速孔動量指数でゆっくりと移動平均を穿越するときに多めにし,下には平らな位置を穿越します.
従来の技術指標と比較して,運動孔隙策には以下の利点があります.
価格空飛 (Gap) は,需要と供給の大きな不均衡を代表し,空飛方向は,市場交渉権の移転を代表する.この戦略は,空飛力を比較する空飛力を利用して,この不均衡を効果的に捉えることができる.
価格跳躍の後に傾向が続くことが多いので,跳躍量を追跡することで価格トレンドの波段を捉えることができます.指標の設計は,この継続性の特性を強化しています.
この指標は,動力を追跡するウィンドウ期とシグナル平滑期の2つのパラメータしか含まない。非常に簡単に実施する。
数値比較で明確な取引規則を採用し,標準化度が高い.自動取引システムに直接接続し,プログラム化された取引に適している.
動力孔隙策には多くの利点があるものの,いくつかのリスクもあります.
価格の空飛ぶことは,短期間に反転が起こり,結果的に指標が誤った信号を生成するかもしれない.
価格が頻繁に変動すると,指数は大量に相互を抵消する取引シグナルを発信します.
単に2つのパラメータだけで,歴史的なデータで過度に最適化することが容易である.
リスクの管理には以下の方法が推奨されています.
単一損失を制限するストップ
より多くの市場状況に対応するパラメータを追加
多組合せ最適化 過剰最適化防止
この戦略は,以下の側面から拡張・最適化できます.
異なるトラッキング量ウィンドウの複数の孔隙指標を使用し,異なる週間の間に互補効果を発揮します.
リスク管理の方法として,ATRとリアル・ギャップ・インジケーターを統合する.
飛翔距離,飛翔回数,飛翔発生日など,より多くの特徴を組み込む.
より複雑な機械学習モデルを空飛ぶデータで訓練することで,より優れたパフォーマンスを達成することができる.
動力孔策は,シンプルだが実用的な突破型の策である.価格が飛躍する市場の微細な構造の変化を追跡し,その中に隠された急激な需要と供給の変化を掘り起こす.他の技術指標と比較して,市場の不均衡をより明確に反映し,価格のトレンドの転換点を迅速に捉えることができる.それでも,潜在的な問題を回避するために,リスクコントロールの手段が付加される必要がある.この策は,市場構造の認識に基づく機会のモデルを提供しており,我々は実践でさらなる最適化と革新を行うに値する.
/*backtest
start: 2022-12-21 00:00:00
end: 2023-12-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// TASC Issue: January 2024 - Vol. 42, Issue 1
// Article: Gap Momentum Indicator
// Taking A Page From The On-Balance Volume
// Article By: Perry J. Kaufman
// Language: TradingView's Pine Script™ v5
// Provided By: PineCoders, for tradingview.com
//@version=5
string title = 'TASC 2024.01 Gap Momentum System'
string stitle = 'GMS'
strategy(title, stitle, false)
int period = input.int( 40, 'Period:')
int signalPeriod = input.int( 20, 'Signal Period:')
bool longOnly = input.bool(true, 'Long Only:')
float gap = open - close[1]
float gapUp = 0.0
float gapDn = 0.0
switch
gap > 0 => gapUp += gap
gap < 0 => gapDn -= gap
float gapsUp = math.sum(gapUp, period)
float gapsDn = math.sum(gapDn, period)
float gapRatio = gapsDn == 0?1.0:100.0*gapsUp/gapsDn
float signal = ta.sma(gapRatio, signalPeriod)
if strategy.opentrades <= 0 and signal > signal[1]
// buy at next open:
strategy.entry('long', strategy.long)
else if strategy.opentrades > 0 and signal < signal[1]
if longOnly
// close all at next open:
strategy.close_all()
else
// sell at next open:
strategy.entry('short', strategy.short)
plot(gapRatio, 'Gap Momentum', color.red, 2)
plot(signal, 'Signal', color.silver, 1)