ダブルモメンタム戦略は,株価の連続した上昇または下落のキャンドルスタイクパターンを特定することによって,低価格で購入し,高値で販売することを目的としています. 意思決定のために簡単な指標を使用し,中期から短期間の取引に簡単に実装できます.
この戦略は2つの指標に基づいています.昇るバーの数そして落ちる棒の数.
ストップがロングエンターAfterバーの上に上がるとロング,ストップがロングエクジットAfterバーの下に落ちるとロング.
ショートエンターAfterのバーを下回るとショート,ショートエクシットAfterのバー上回るとショート.
正確な取引規則は,LongEnterAfter,LongExitAfter,ShortEnterAfter,およびShortExitAfterを調節することによって決定されます.
ストラテジーは,毎日の閉店価格を監視することで,株価の動向シフトを把握し,パラメータに定義されたキャンドルスタイクパターンに基づいてエントリーとアウトシグナルを誘発します.
概要すると,ダブルモメンタム戦略の核心は,取引の方向性とタイミングを決定するために短期間の価格上昇傾向と下落傾向を特定することです.それは単純で直接的で,パラメータ調整によって攻撃性が調整できます.
二重の推進戦略には次の利点があります
シンプルで直線的な論理で 分かりやすく実行できます
戦略攻撃性を調整する設定可能なパラメータ
短期的な勢いを把握し 株価の動向を活用します
ストップ・ロスはリスクを効果的にコントロールできます
価格変動に敏感な株,特に小資本の株にはうまく機能します
総じて,ダブルモメンタム戦略は,価格変動に敏感で,高い取引頻度を追求する投資家に適しています.短期的な株価変動を資本し,アルファを達成することができます. 頻度とリスクはパラメータ調節によって制御できます.
この二重モメンタム戦略には,次のリスクもあります.
パラメータ設定に大きく依存し 性能差が大きい
短期的な動向にのみ焦点を当てて 長期的な動向を無視します
高い取引頻度はコストとリスクを増加させます
不適切なストップ損失設定は,受け入れられない損失につながる可能性があります.
範囲限定または長期 konsolidiation ストックには適さない.
スマートマネーに 騙されるリスク
リスクは以下によって軽減できます.
取引頻度や過度に最適化するリスクを減らすためにパラメータを調整する.
中長期の動向を考慮する長期保持期間を許可する.
ストップロスを設定して 単一の取引損失を厳格に制御します
高勢の株を選び 揺れ動く株を避ける
容量が減少するときにリスクを避けるために 容量の重要性が高まる.
この戦略は,いくつかの方法で強化できます.
MACDやKDJのようなトレンドインジケーターを追加して,主要なトレンドに反する取引を避ける.
音量減少時にエントリを避けるために音量条件を追加します.
移動ストップ損失を追加して利益を固定します.例えば,xN ATR トレイリングストップ.
バックテストによってパラメータを最適化して安定性を向上させる.
オーダー管理の改善のために アルゴリズム的な取引モデルを組み込む.
より効果的な信号を見つけるために 機械学習を適用します
全体的に,主な焦点は安定性を向上させ,リスクを制御し,新しいアルファ因子を発見することです.アルゴリズム取引能力を向上させることも重要です.
ダブルモメンタム戦略は,簡単な連続上下バーメトリックを通じて市場を倍にする.実装が簡単で,攻撃性は調整可能である.それは短期トレーダーに適しており,特に小キャップ株に適している.過剰最適化,ストップ損失,ボリューム変更などに対するリスク管理は重要です.強化により,非常に効果的で柔軟な量戦略になることができます.
/*backtest start: 2022-10-02 00:00:00 end: 2023-10-08 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // strategy(title="simple momentum", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) // ==================================== // STUDY AND STRATEGY // Inputs LongEnterAfter = input(title="enter long after X rising blocks", defval=2) LongExitAfter = input(title="exit long after X falling blocks", defval=1) ShortEnterAfter = input(title="enter short after X falling blocks", defval=2) ShortExitAfter = input(title="exit short after X rising blocks", defval=1) // Criteria Valid = change(time) LongEnter = Valid and rising(close, LongEnterAfter) LongExit = Valid and falling(close, LongExitAfter) ShortEnter = Valid and falling(close, ShortEnterAfter) ShortExit = Valid and rising(close, ShortExitAfter) // ==================================== // STRATEGY TradeSinceYear = input(title="trade since year", defval=2017) TradeSinceMonth = input(title="trade since month", defval=1) if year > TradeSinceYear or (year == TradeSinceYear and month >= TradeSinceMonth) strategy.entry("long", strategy.long, when = LongEnter) strategy.close("long", when = LongExit) strategy.entry("short", strategy.short, when = ShortEnter) strategy.close("short", when = ShortExit)