資源の読み込みに... 荷物...

アダプティブ・プライス・クロージング・ムービング・平均取引戦略

作者: リン・ハーンチャオチャン開催日:2024年9月26日 16:12:36
タグ:HMASLTP

img

概要

アダプティブ・プライス・クロシング・ムービング・平均取引戦略 (Adaptive Price-Crossing Moving Average Trading Strategy) は,ハル・ムービング・平均 (HMA) をベースとした定量的な取引方法である.この戦略は,リスクと報酬を管理するために固定ストップ・ロストとテイク・プロフィートレベルを実装しながら,HMAとの価格クロスオーバーを使用して購入・売却信号を生成する.この戦略は,取引を誘発するために価格クロスオーバーと組み合わせた104期HMAを主な指標として採用する.

戦略原則

この戦略の核心は,ハル移動平均 (HMA) を主要指標として使用することである.HMAは,遅延を軽減しながら価格変化に迅速に対応する高度移動平均である.戦略論理は以下のとおりである:

  1. 104 周期 HMA を計算する.
  2. 価格がHMAを超えるとロングポジションを開きます.
  3. 価格がHMAを下回るとショートポジションを開きます.
  4. 各取引に対して固定ストップ・ロスト (1.25ドル) とテイク・プロフィート (37.5ドル) のレベルを設定します.
  5. 取引ごとに2つの契約を使用します

この戦略は,既存の取引が活発である間,新しい取引が開かれないことを確認するために,オープンポジションを追跡します.取引が終了すると,システムは新しい取引信号が有効になるようにフラグをリセットします.

戦略 の 利点

  1. 適応性:HMAは市場の変化に迅速に適応し,誤った信号を減らす.
  2. リスクマネジメント: 固定ストップ・ロストとテイク・プロフィートのレベルを使用し,各取引のリスクを効果的に制御します.
  3. シンプル: 取引規則は明確で,理解し実行しやすい.
  4. 双方向取引: 上下の両方の機会を把握し,利益の可能性を高めます.
  5. 自動化: 戦略は完全に自動化され,人間の介入と感情的な影響が減少します.

戦略リスク

  1. 取引頻度: 変動性の高い市場で過剰な取引信号を生成し,取引コストを増加させる可能性があります.
  2. 固定ストップ・ロス/テイク・プロフィート:すべての市場条件に適さない場合もあるし,早期に退場したり,大きなトレンドを見逃したりする可能性があります.
  3. 単一指標に頼る: HMA にのみ依存することは,特定の市場環境で劣る可能性があります.
  4. 遅延:HMAは遅延を減らすが,急激な転換点ではまだ十分に反応しない可能性がある.
  5. 市場環境のフィルタリングの欠如: 市場の全体的な動向や変動を考慮しない,不適切な市場条件で取引する可能性がある.

戦略の最適化方向

  1. 追加指標を導入する:他の技術指標 (RSIやMACDなど) と組み合わせることで信号を確認し,正確性を向上させる.
  2. ダイナミックストップ・ロス/テイク・プロフィート: 異なる市場環境に適応するために,市場の変動に基づいてストップ・ロスとテイク・プロフィートのレベルを調整する.
  3. 市場フィルターを追加する: 傾向強度や波動性フィルタを組み込み,不利な市場条件での取引を避ける.
  4. HMA パラメータを最適化:特定の市場に最も適したパラメータを見つけるために異なるHMA 期間をテストします.
  5. ポジション管理を実装する: 市場リスクと口座サイズに基づいて取引サイズを動的に調整する.
  6. タイムフィルターを追加します.重要な経済データリリースなどの市場変動が高い時期での取引を避ける.

概要

アダプティブ・プライス・クロシング・ムービング・アベア・トレーディング・ストラテジー (Adaptive Price-Crossing Moving Average Trading Strategy) は,シンプルで効果的な定量的なトレーディング方法である.ハル・ムービング・アベアの利点を活用することで,この戦略は固定リスク管理措置を通じて資本を保護しながら市場動向を把握することができる.この戦略にはいくつかの潜在的なリスクがあるが,継続的な最適化によってさらに改善および適応することができる.自動化トレーディングソリューションを求めるトレーダーにとって,これは考慮すべき価値のある基本的な戦略フレームワークである.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-03-23 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SHIESTD", overlay=true)

// Function to calculate Hull Moving Average (HMA)
hma(src, length) =>
    wma1 = ta.wma(src, length)
    wma2 = ta.wma(src, length / 2)
    hma = ta.wma(2 * wma2 - wma1, math.round(math.sqrt(length)))
    hma

// Parameters
hma_length = 104

// Calculate Hull Moving Average
hma_value = hma(close, hma_length)

// Plot HMA
plot(hma_value, title="104-period Hull Moving Average", color=color.blue, linewidth=2)

// Define SL and TP values in dollars
long_sl_amount = 1.25
long_tp_amount = 37.5
short_sl_amount = 1.25
short_tp_amount = 37.5

// Number of contracts
contracts = 2

// Function to calculate SL and TP prices based on entry price and dollar amounts
long_sl_price(entry_price) =>
    entry_price - long_sl_amount

long_tp_price(entry_price) =>
    entry_price + long_tp_amount

short_sl_price(entry_price) =>
    entry_price + short_sl_amount

short_tp_price(entry_price) =>
    entry_price - short_tp_amount

// Trading conditions
price_intersects_hma = ta.crossover(close, hma_value) or ta.crossunder(close, hma_value)

// Long and Short Conditions based on price intersecting HMA
long_condition = ta.crossover(close, hma_value)
short_condition = ta.crossunder(close, hma_value)

// Track open positions
var bool long_open = false
var bool short_open = false

// Handle Long Positions
if (long_condition and not long_open)
    entry_price = close
    strategy.entry("Long", strategy.long, qty=contracts)
    strategy.exit("Exit Long", from_entry="Long", stop=long_sl_price(entry_price), limit=long_tp_price(entry_price))
    long_open := true

// Handle Short Positions
if (short_condition and not short_open)
    entry_price = close
    strategy.entry("Short", strategy.short, qty=contracts)
    strategy.exit("Exit Short", from_entry="Short", stop=short_sl_price(entry_price), limit=short_tp_price(entry_price))
    short_open := true

// Reset flags when the position is closed
if (strategy.opentrades == 0)
    long_open := false
    short_open := false


関連性

もっと