ダブルスムージング平均トレンドフォロー戦略 - 改良された平安江のKラインに基づく


作成日: 2024-11-29 15:03:37 最終変更日: 2024-11-29 15:03:37
コピー: 1 クリック数: 491
1
フォロー
1617
フォロワー

ダブルスムージング平均トレンドフォロー戦略 - 改良された平安江のKラインに基づく

概要

この戦略は改良型平安江氏K線 ((Heikin-Ashi) に基づくトレンド追跡システムである.従来の平安江氏K線に二重指数移動平均 ((EMA) を平滑処理することで,市場騒音を効果的に軽減し,より明確なトレンド信号を提供する.戦略は,多方的な操作のみを採用し,上昇傾向でポジションを保持し,下降傾向で平位置を眺め,効率的なトレンドキャプチャによって市場利益を得る.

戦略原則

戦略の中核となるロジックには、次の主要なステップが含まれます。

  1. OHLC価格データに対する初EMA平滑処理
  2. 平滑後の価格計算を利用した改良型平安江氏K線
  3. 計算した平安江氏K線に対する二次EMA平滑
  4. K線の色の変化は,平滑した後の開値と閉値の比較で判断する
  5. K線では,赤が緑に変えたときに買い信号が作られ,緑が赤に変えたときに売る信号が作られる.
  6. 口座総額100%のポジションで取引する

戦略的優位性

  1. ダブルスムーズ処理により,偽信号が著しく減少
  2. 複数の戦略を練るだけで空白のリスクが減る
  3. トレンドが確認されれば,勝率が上がります.
  4. 完全なシグナルシステムは自動取引をサポートします.
  5. 異なる取引ニーズに対応する柔軟なタイムサイクル
  6. シンプルで明快な出場規則が適用される
  7. 異なる市場条件下での資金管理を支援する

戦略リスク

  1. トレンド転換の初期には大きな後退が起こる可能性がある.
  2. 市場が揺れ動いている中で,連続した偽信号が生じる可能性がある.
  3. 全ポジション取引により資金リスクが増加
  4. 入場信号の遅延により,部分的な上昇が逃れている可能性がある.
  5. 異なる時間周期でのパフォーマンスの違い

戦略最適化の方向性

  1. トレンド強度フィルターの導入により,波動市場における偽信号の減少
  2. 動的な保有量管理と資金利用の最適化
  3. モバイル・ストップ機能が追加され,撤回リスクが制御されます.
  4. 他の技術指標と組み合わせた信号の有効性を確認する
  5. 戦略の安定性を高めるための適応パラメータシステムの開発

要約する

この戦略は,二重の平滑処理と改良型平安江氏K線を中心に,安定したトレンド追跡システムを構築している.戦略の設計は簡潔で,理解しやすく,実行しやすく,同時に,異なる市場環境に適応するための複数の最適化方向を提供している.一定の遅れと撤回リスクがあるものの,合理的な資金管理とリスク管理措置によって,この戦略は,投資家に信頼できるトレンド追跡ツールを提供することができる.

ストラテジーソースコード
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Smoothed Heiken Ashi Strategy Long Only", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

len = input.int(10, title="EMA Length")
len2 = input.int(10, title="Smoothing Length")
start_date = input(defval=timestamp("2020-01-01"), title="Backtest Start Date")

o = ta.ema(open, len)
c = ta.ema(close, len)
h = ta.ema(high, len)
l = ta.ema(low, len)

haclose = (o + h + l + c) / 4
var float haopen = na
haopen := na(haopen[1]) ? (o + c) / 2 : (haopen[1] + haclose[1]) / 2
hahigh = math.max(h, math.max(haopen, haclose))
halow = math.min(l, math.min(haopen, haclose))

o2 = ta.ema(haopen, len2)
c2 = ta.ema(haclose, len2)
h2 = ta.ema(hahigh, len2)
l2 = ta.ema(halow, len2)

col = o2 > c2 ? color.red : color.lime

// Plot candles without visible wicks
plotcandle(o2, o2, c2, c2, title="Heikin Smoothed", color=col, wickcolor=color.new(col, 100))

// Delayed Buy and Sell signals
colorChange = col != col[1]
buySignal = colorChange[1] and col[1] == color.lime
sellSignal = colorChange[1] and col[1] == color.red

plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.lime, style=shape.triangleup, size=size.small)
plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)

// Strategy entry and exit
if (true)
    if (buySignal)
        strategy.entry("Long", strategy.long)
    if (sellSignal)
        strategy.close("Long")

// Add a vertical line at the start date
// if (time == start_date)
//     line.new(x1=bar_index, y1=low, x2=bar_index, y2=high, color=color.blue, width=2)

// Alert conditions
alertcondition(colorChange[1], title="Color Change Alert", message="Heiken Ashi Candle Color Changed")
alertcondition(buySignal, title="Buy Signal Alert", message="Buy Signal: Color changed from Red to Green")
alertcondition(sellSignal, title="Sell Signal Alert", message="Sell Signal: Color changed from Green to Red")