これは,移動平均値に基づいて全体的なトレンドを判断し,HAモメント指標を使用してブレイクポイントを決定することによってトレンドを追跡する定量的な取引戦略である.戦略は単純で理解しやすい.主要なトレンドの方向性を決定するために移動平均値を使用して,特定のエントリーポイントを特定するためにHAモメント指標に依存する.
この戦略の背後にある基本的な論理は,動向平均値とHA動向指標を使用してトレンドを追跡することです.特に:
総動向を判断する: 20 日間および 200 日間単純な移動平均が計算され, 20 日間の移動平均が 200 日間線以上 (以下) にあるとき,上向き (下向き) の傾向が決定される.
入場タイミングを決定する.HAモメントインジケーターは,キャンドルボディの開口のサイズを比較することによって計算される.HA_Candle_strengthパラメータよりも大きい値は,ポジションが入力できるより強いモメントを意味する.さらに,閉じる価格は,ブレイクアウト方向を決定するために20日移動平均値以上/以下にチェックされる.
ストップ・ロス/テイク・プロフィート・アウトアウトを設定する: 戦略のアウトアウトは,利益/損失額に基づいて定義されます.
このプロセスを通じて 戦略は確立された傾向の中間部分を把握し,それらを追跡することができます.
この戦略の利点は以下の通りです.
シンプルで明快な論理で 簡単に理解/最適化できます
移動平均はノイズをフィルターし 主なトレンドを把握します
HAモメントは,破裂強度を測定することで 偽の破裂を回避します.
トレンド方向とモメントの組み合わせによってエントリータイミングの正確性が向上します.
定義されたストップ・ロース/テイク・プロフィート出口は,単一の取引リスクを制御する.
この戦略が直面する主なリスクは:
クロスオーバー信号が頻繁に伝わると,様々な市場で取引が悪くなる可能性があります.
不適切なパラメータ設定は,失敗した取引や誤った信号につながる可能性があります.
市場体制のあらゆるタイプに適応できないため,横向的な市場が不安定な場合,より大きな損失に直面する可能性があります.
トレンド逆転点を及ばない場合,損失が増加する可能性があります.
対応する解法:
無効な信号を排除する追加フィルター
理想的なパラメータ組み合わせを見つけるためにパラメータ最適化テスト
不安定な市場での間違いを避けるため 変動指標を組み込む
利潤を固定するために 適応型ストップ損失オーダーを使用します
この戦略のさらなる改善:
安定性を高めるため,固定値の代わりに適応性のある移動平均期を使用する.
市場の確信が弱ったときにシグナルを避けるためにボリュームフィルターを追加します.
マシン学習によるパラメータの自動最適化により 安定性が向上します
利益を得るために 静的ストップ・ロスの代わりに ダイナミック・トラッキング・ストップ・ロスをします
品質と市場状況を評価する指標を追加する.
概要すると,これは移動平均値で支配的なトレンドの方向性を決定し,タイムリングエントリーシグナルのためにHAモメントを使用したトレンドフォロー戦略である.論理は単純で明確で,トレンド進行中に正確な信号生成を提供します.さらなる最適化と追加のフィルターによって対処する必要があるいくつかの制限がありますが,全体的にこの戦略は,量子トレーダーを目指す人のために学ぶ良い紹介例として機能します.
/*backtest start: 2023-12-03 00:00:00 end: 2023-12-10 00:00:00 period: 45m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("HA Trend Following", overlay=false, default_qty_type = strategy.percent_of_equity, default_qty_value = 2) //parameters input Trend_DIR_MA = input(defval = 200, title = "MA for trend direction") HA_Candle_strength = input(defval = 2, title = "HA candle strength") Rng = abs(open - close) // HA_Momentum - size of break out body HA_Momentum = sma(Rng, 1) / sma(Rng, 5) plot(HA_Momentum, color=green, linewidth=1, style=line) plot(HA_Candle_strength, color= blue) // open position longCondition = close > sma(close, 20) and (sma(close, 20) > sma(close, Trend_DIR_MA) )and HA_Momentum > HA_Candle_strength and close - open > 0 if (longCondition) strategy.entry(id = "Lng", long = true) ShortCondition = close < sma(close, 20) and (sma(close, 20) < sma(close, Trend_DIR_MA) ) and HA_Momentum > HA_Candle_strength and close - open < 0 if (ShortCondition) strategy.entry(id = "Shrt", long = false) // close position strategy.exit("ExL", from_entry = "Lng", loss = 500 , profit = 1500) strategy.exit("ExS", from_entry = "Shrt", loss = 500 , profit = 1500)