この戦略は,修正されたハイキン・アシのろうそくに基づいたトレンドフォローシステムである.従来のハイキン・アシのろうそくに二重指数移動平均 (EMA) のスムージングを適用することにより,市場のノイズを効果的に軽減し,より明確なトレンド信号を提供します.この戦略は,上向きのトレンド中にポジションを保持し,下向きのトレンド中に市場から外れ,効率的なトレンド検出を通じて市場リターンを捕捉することで,ロングモードのみで動作します.
基本論理には次の重要なステップが含まれます.
この戦略は,ダブルスムージングと改造されたハイキン・アシのキャンドルスタイクをコアコンポーネントとして使用して,強力なトレンドフォローシステムを構築する. 戦略デザインは清潔で直接的で,理解し実行しやすく,さまざまな市場環境に適応するための複数の最適化方向性を提供している. 特定の遅れと引き下げリスクがあるにもかかわらず,適切なマネーマネジメントとリスク管理措置を通じて,この戦略は投資家に信頼できるトレンドフォローツールを提供することができます.
/*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")