この戦略は,スムーズなハイキン・アシ・キャンドルストックとシンプル・ムービング・平均 (SMA) のクロスオーバーに基づいたトレンドフォローシステムである. EMA-スムーズなハイキン・アシ・キャンドルストックと44期SMAの交差点を通じてトレンド変化を特定し,市場の主要なトレンド機会を把握する.この戦略には,価格が長期移動平均にあまりにも近いときに自動的にポジションを閉鎖するダイナミックポジション管理メカニズムが含まれ,市場統合における振動リスクを回避する.
基本論理は3つの主要な要素で構成される.第一に,市場騒音をフィルターするために開,高,低,閉価格の算術平均を計算することによって,伝統的なキャンドルスタイヤをハイキン・アシキャンドルスタイヤに変換する.第二に,ハイキン・アシの安定化のために6期間のEMAを使用し,シグナル信頼性をさらに向上させる.最後に,平滑したハイキン・アシの閉値と44期間のSMAを組み合わせ,上向きのクロスで長い信号と下向きのクロスで短い信号を生成する.
この戦略は,ハイキン・アシのキャンドルスタイクとSMAシステムを組み合わせて,強力なトレンドフォローリングシステムを構築する.包括的な信号生成メカニズムと合理的なリスク管理を備えており,特にトレンド特性が異なる市場に適しています.この戦略の実用的な有効性は,提案された最適化方向によってさらに強化できます.全体として,明確な論理を持つ,よく設計されたトレンドフォローリング戦略を表しています.
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Smoothed Heikin Ashi with SMA Strategy", overlay=true) // Input parameters for SMAs s1 = input.int(11, title="Short SMA Period") s2 = input.int(44, title="Long SMA Period") noPositionThreshold = input.float(0.001, title="No Position Threshold", step=0.0001) // Calculate the original Heikin-Ashi values haClose = (open + high + low + close) / 4 var float haOpen = na haOpen := na(haOpen[1]) ? (open + close) / 2 : (haOpen[1] + haClose[1]) / 2 haHigh = math.max(high, math.max(haOpen, haClose)) haLow = math.min(low, math.min(haOpen, haClose)) // Smoothing using exponential moving averages smoothLength = input.int(6, title="Smoothing Length") smoothedHaClose = ta.ema(haClose, smoothLength) smoothedHaOpen = ta.ema(haOpen, smoothLength) smoothedHaHigh = ta.ema(haHigh, smoothLength) smoothedHaLow = ta.ema(haLow, smoothLength) // Calculate SMAs smaShort = ta.sma(close, s1) smaLong = ta.sma(close, s2) // Plotting the smoothed Heikin-Ashi values plotcandle(smoothedHaOpen, smoothedHaHigh, smoothedHaLow, smoothedHaClose, color=(smoothedHaClose >= smoothedHaOpen ? color.green : color.red), title="Smoothed Heikin Ashi") plot(smaShort, color=color.blue, title="SMA Short") plot(smaLong, color=color.red, title="SMA Long") // Generate buy/sell signals based on SHA crossing 44 SMA longCondition = ta.crossover(smoothedHaClose, smaLong) shortCondition = ta.crossunder(smoothedHaClose, smaLong) noPositionCondition = math.abs(smoothedHaClose - smaLong) < noPositionThreshold // Strategy logic if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) if (noPositionCondition and strategy.position_size != 0) strategy.close_all("No Position") // Plot buy/sell signals plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small) plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small) plotshape(series=noPositionCondition and strategy.position_size != 0, location=location.belowbar, color=color.yellow, style=shape.labeldown, text="EXIT", size=size.small)