
この戦略は,ハル移動平均 ((HMA)) の二周期组合を利用して,完全なトレンド追跡取引システムを構築している.具体的には,この戦略は,HMA 200を入場シグナル指標として使用し,HMA 150は,ダイナミックストップシグナル生成のために使用している.価格がHMA 200を突破すると,買ったり売ったりするシグナルを触発し,価格とHMA 150との特定の交差関係が発生したときにストップを実行している.この戦略には,設定可能なリターン・デートの範囲も含まれている.
この戦略の核心は,2つの異なる周期のヘル移動平均 (HMA) に基づいている:HMA 200とHMA 150. HMAは,従来の移動平均と比較して,遅れを大幅に軽減しながら,平滑性を保つことができる高度な移動平均指標である. 戦略の入場論理は,価格と遅いHMA 200線の交差関係に基づいている.
ストップロジックは,より速いHMA 150を動的参照点として利用する:多頭位の場合,価格がHMA 150を下を通るときにストップロジックが誘発される;空頭位の場合,価格がHMA 150上を通るときにストップロジックが誘発される.この設計は,ストップロジックレベルを,固定利益目標ではなく,市場動向に調整できるようにする.
コードには,設定可能な回測日程範囲機能が実装されており,年始日と年終日を設定することで,トレーダーは特定の歴史期間の戦略性能分析を行い,異なる市場環境下での戦略のパフォーマンスをより正確に評価することができます. 戦略には,HMAライン,入場信号および停止信号をグラフに直視的に表示するビジュアル構成要素も含まれています.
遅滞を減らすためにHMAは従来の移動平均よりも遅延が少ないため,入場と出場のシグナルがより間に合うようにされ,市場の変化により迅速に反応し,潜在的な機会コストを減らすことができます.
双周期バランス設計戦略は,異なる周期のHMAをそれぞれ入場と停止に使用して,バランスの取れた方法を形成します - 長い周期 ((200) は,トレンドの方向を安定的に識別するために使用され,短い周期 ((150) は,トレンドキャプチャと利益のロックの双重目的を実現するために,より繊細な利益保護のために使用されます.
完全自動化された取引システム策略には明確な入場・出場ルールがあり,完全に自動化され,感情的な干渉が減り,取引の規律が向上する.図面上の視覚信号は,策略の意思決定を明確にする.
柔軟なフィードバック機能: 設定可能な日付範囲は,特定の歴史的期間に対して戦略テストを行うトレーダーを許可し,異なる市場環境下での戦略のパフォーマンスを分析し,パラメータ設定を最適化するのに役立ちます.
論理は明確です戦略の中核の論理はシンプルで直接的で,理解しやすく,変更しやすく,トレーダーが自分のニーズに応じてカスタマイズし,拡張しやすく,あらゆるレベルのトレーダーに適しています.
トレンドフォローの優位性: トレンドフォロー戦略として,強烈なトレンド市場において大きな利益を得ることができ,特に継続的な片道的な動きの市場環境で顕著に表れます.
区間市場の不振: すべてのトレンドフォロー戦略と同様に,横横整理または急激に波動する市場では不良なパフォーマンスを発揮し,頻繁に偽信号と損失の取引を引き起こす可能性があります.
リスクの抑制の欠如: 現行の戦略には,統合された止損メカニズムがないため,トレンドが逆転するが,止まり条件がまだ触発されていない場合,大幅な引き下げを引き起こす可能性があります. 実用的には,単一取引の最大損失を制限するために適切な止損ルールを追加することを検討する必要があります.
固定パラメータの制限:HMA周期 ((200と150) は固定であり,すべての市場または時間枠には適さない場合があります.異なる取引品種と時間周期には,最適な結果を得るための異なるパラメータ設定が必要になります.
強いトレンドから早めに脱却強いトレンドでは,HMA 150に基づくストップメカニズムが,利益のある取引を早めに終了し,利益の一部を逃す可能性があります.これは,ダイナミックストップメカニズムとトレンドの継続性との間の固有の矛盾です.
ポジション管理の欠如: 戦略にはポジションサイズ調整やリスク管理機能が含まれておらず,すべての取引は同じ資金比率を使用しており,これは場合によっては過度のリスク露出につながる可能性があります.
単一の指標依存: 戦略はHMA指標のみに依存し,他の技術指標またはフィルターを使用して信号を確認せず,偽信号のリスクを増加させる可能性があります.
損失防止機構への参加: 動的または固定のストップルル,例えばATRベースのストップ,パーセントストップ,またはサポート/レジスタンスレベルに基づくストップを導入し,単一の取引の最大損失リスクを制限します. これは,特にトレンドの突然の逆転の場合,資金の安全を保護するために重要です.
適応パラメータ設計:市場変動や他の市場特性の動態に基づいてHMAサイクルを調整し,戦略を異なる市場環境に適応させる.例えば,波動性が高いときにより長いサイクルを使用し,波動性が低いときにより短いサイクルを使用する.
市場環境のフィルターを追加する:区間市場またはトレンド市場を検知する仕組みを実現し,区間市場で取引を避けるか,戦略パラメータを調整する. ADX,ブリン帯域度などの指標を使用して市場の状態を評価することができます.
統合された取引量分析:トレンドの強さを確認するために取引量指数を追加し,取引量がサポートされている場合にのみシグナルを実行し,偽ブレイクによる損失取引を減らす.
インテリジェント・ポジション・マネジメント:変動性,口座規模,またはリスクパラメータに基づいてポジションサイズを調整し,リスクバランスと資金の長期にわたる安定した成長を確保する.例えば,ATRに基づくポジションサイズ計算または固定リスクパーセント方法を実現する.
多時間枠分析: より高い時間枠のトレンド分析を追加し,高い時間枠のトレンド方向が一致する場合にのみ取引を実行し,信号の質と成功率を向上させる.
ストロップトラッキングを実現する: 固定ストップレベルの代わりにトラッキングストップを使用し,利益を保護しながら利益の継続的な増加を許可し,特に強いトレンドではより効果的です. HMA指数,ATRまたはパーセントの撤回に基づいてトラッキングストップを実現できます.
双周期ヘル移動平均のトレンド追跡とダイナミックストップの量化取引戦略は,ダイナミックストップのメカニズムを組み合わせた直観的で効果的なトレンド追跡方法を提供します.この戦略は,2つの異なる周期のヘル移動平均の低遅滞特性を利用することによって,トレンドをキャプチャし,利益を保護する間のバランスを取ります.この戦略の主要な利点には,明確なシグナル生成,シグナル遅滞の減少,およびカスタマイズ可能な反省期が含まれています.
しかし,この戦略には,区間市場での不良なパフォーマンス,ストップ・メカニズムと固定パラメータの欠如など,いくつかの限界があります. ストップ・ルールの追加,自律的なパラメータの調整,市場環境のフィルタリング,スマートなポジション管理などの推奨された最適化措置を実施することにより,この戦略は,さまざまな市場環境に対応するより堅牢な取引システムに発展することができます.
最終的に,このハル移動平均に基づく二周期戦略は,量化トレーダーに,個人リスクの好みと取引目標に応じてさらにカスタマイズおよび拡張できる堅固な基盤を提供します.実用的なアプリケーションでは,トレーダーは,リスク管理の重要性を常に心に留めて,実体取引の前に十分な反射と模擬取引の検証を行うべきです.
/*backtest
start: 2024-06-03 00:00:00
end: 2025-06-02 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
//@strategy HMA 200/150 Trading Strategy
//@description A trend-following strategy using HMA 200 for entry signals and HMA 150 for take profit signals. Buys when price closes above HMA 200, sells when price closes below HMA 200. Take profit for buys when price closes below HMA 150, and for sells when price closes above HMA 150. Includes date range inputs for backtesting.
//@author [TrendBlazeX]
strategy("HMA 200/150 Trading Strategy", overlay=true, margin_long=100, margin_short=100)
// Input for backtest period
var start_year = input.int(2023, "Start Year", minval=1900, maxval=2100, group="Backtest Period")
var start_month = input.int(1, "Start Month", minval=1, maxval=12, group="Backtest Period")
var start_day = input.int(1, "Start Day", minval=1, maxval=31, group="Backtest Period")
var end_year = input.int(2025, "End Year", minval=1900, maxval=2100, group="Backtest Period")
var end_month = input.int(12, "End Month", minval=1, maxval=12, group="Backtest Period")
var end_day = input.int(31, "End Day", minval=1, maxval=31, group="Backtest Period")
// Convert dates to timestamps
start_timestamp = timestamp(start_year, start_month, start_day, 0, 0)
end_timestamp = timestamp(end_year, end_month, end_day, 23, 59)
// Check if current bar is within the date range
in_date_range = time >= start_timestamp and time <= end_timestamp
// Calculate HMAs
hma200 = ta.hma(close, 200)
hma150 = ta.hma(close, 150)
// Define conditions for buy and sell signals
buySignal = ta.crossover(close, hma200) and in_date_range
sellSignal = ta.crossunder(close, hma200) and in_date_range
// Define take profit conditions
buyTakeProfit = ta.crossunder(close, hma150) and in_date_range
sellTakeProfit = ta.crossover(close, hma150) and in_date_range
// Strategy entry and exit
if (buySignal)
strategy.entry("Buy", strategy.long)
if (sellSignal)
strategy.entry("Sell", strategy.short)
if (buyTakeProfit)
strategy.close("Buy", comment="TP Buy")
if (sellTakeProfit)
strategy.close("Sell", comment="TP Sell")
// Plot HMAs on chart
plot(hma200, color=color.blue, title="HMA 200", linewidth=2)
plot(hma150, color=color.orange, title="HMA 150", linewidth=2)
// Plot signals on chart
plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
plotshape(buyTakeProfit, title="Buy TP", location=location.abovebar, color=color.yellow, style=shape.diamond, size=size.tiny)
plotshape(sellTakeProfit, title="Sell TP", location=location.belowbar, color=color.yellow, style=shape.diamond, size=size.tiny)