モメンタムベースの取引戦略


作成日: 2023-12-19 15:37:16 最終変更日: 2023-12-19 15:37:16
コピー: 0 クリック数: 868
1
フォロー
1621
フォロワー

モメンタムベースの取引戦略

概要

この戦略は,株式の動態指標と取引量指標に基づいて,買入と売却の決定を行う. 株式価格の変動が加速して取引量が急増したとき,買入を行う. 株式価格の下落が加速して取引量が急増したとき,売出を行う. この戦略は,市場の群衆性行為による短期的な価格の動きを捕捉する.

戦略原則

株価の変化傾向の強さと持続が動力を決定する.この戦略は,株価が前日に比べてどのくらい変化したか計算して価格動力を判断する.価格が連続して上昇すると,動力は正であり,価格が連続して下落すると,動力は負である.この戦略は,取引量指数と併用される.取引量が最近の20日平均より明らかに高くなっている場合にのみ,購入と売却のシグナルを発信する.

具体的には,購入条件は,動量指数上では0で取引量が20日平均取引量の2倍以上;販売条件は,動量指数下では0で取引量が20日平均取引量の2倍以上である.購入後のストップポイントは,購入価格の0.8倍,止損ポイントは,購入価格の0.5倍;販売後のストップポイントと止損ポイントは,その逆である.

戦略的優位性

この戦略の最大の利点は,市場の短期的な傾向と群衆の行動を捉えることです. 株価が継続的に上昇または下落するときに,多くの小売業者や機関は,強力な株価の動きに合わせて取引します. これは,自己増強の短期的な価格傾向を形成します. この戦略は,この市場の心理を捉え,追加の投資収益を生み出します.

戦略リスク

第一に,株価の短期的な波動は完全に予測・制御できない。突然の出来事により価格が急激に反転するリスクがあり,その際,ストップ・損失メカニズムが完全に損失を回避できない。第二に,取引量データの質の不均衡がある。一部株の取引量が人為的に操作された可能性が完全に排除できないため,取引信号が歪められる。また,価格と取引量の単純な判断だけで,市場の短期的な傾向を正確に制御することができない。市場が大きな構造的転換を起こしたとき,戦略の効果は影響を受ける。

戦略最適化の方向性

戦略の効果を高めるために,より多くのデータソースを組み合わせることを考えることができます.例えば,ソーシャルメディアなどのインターネットプラットフォームにおける関連する株式の議論量.ある株式の関連する議論量が顕著に増加すると,将来の株式価格の変化を予告する可能性があります.これは,戦略の補助的な買入と販売の信号として使用できます.また,株式の基本面指標,例えば,市場率,市場純率などの組み合わせも考えることができます.これは,価格変化の持続性をさらに検証し,誤った取引の可能性を減らすのに役立ちます.

要約する

この戦略は,株式価格の動態指標と取引量指標の総合的な変化を捉えることで,市場の短期的な傾向と群衆の行動を判断します.大データと行動金融学の原理に基づいたこの定量投資戦略は,従来的な投資戦略に比べて,予想される収益が高くなります.しかし,同時に,十分な認識とリスクを防ぎ,戦略の入力パラメータを継続的に最適化して取引効果を向上させる必要があります.

ストラテジーソースコード
/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Momentum and Volume Bot', overlay=true)

// Define strategy parameters
profit_target_percent = input(0.8, title='Profit Target (%)')
stop_loss_percent = input(0.5, title='Stop Loss (%)')
volume_threshold = input(2, title='Volume Threshold')

// Calculate momentum
momentum = close - close[1]

// Calculate average volume
avg_volume = ta.sma(volume, 20)

// Buy condition
buy_condition = ta.crossover(momentum, 0) and volume > avg_volume * volume_threshold

// Sell condition
sell_condition = ta.crossunder(momentum, 0) and volume > avg_volume * volume_threshold

// Strategy logic
strategy.entry('Buy', strategy.long, when=buy_condition)
strategy.entry('Sell', strategy.short, when=sell_condition)

// Set profit target and stop loss
strategy.exit('Take Profit/Stop Loss', from_entry='Buy', profit=close * profit_target_percent / 100, loss=close * stop_loss_percent / 100)
strategy.exit('Take Profit/Stop Loss', from_entry='Sell', profit=close * profit_target_percent / 100, loss=close * stop_loss_percent / 100)

// Plotting
plotshape(series=buy_condition, title='Buy Signal', color=color.new(color.green, 0), style=shape.triangleup, size=size.small)
plotshape(series=sell_condition, title='Sell Signal', color=color.new(color.red, 0), style=shape.triangledown, size=size.small)