
この戦略は、トリプル スーパートレンド インジケーターと指数移動平均 (EMA) を組み合わせたトレンド フォロー戦略です。市場のトレンドを捉えるために、感度の異なる 3 つのスーパートレンド ラインと 1 つの EMA を設定することで、トレンドの多次元的な確認が可能になります。この戦略では、ATR (Average True Range) を使用して動的なサポート/レジスタンス レベルを計算し、価格と各ラインの位置関係に基づいてトレンドの方向と取引シグナルを決定します。
この戦略には主に以下の中核コンポーネントが含まれます。
不安定な市場では取引が頻繁に行われ、取引コストが増加する可能性があります。 解決策: 信号フィルターを追加するか、移動平均期間を延長することができます。
トレンド反転の初期段階では遅れが生じる可能性があります。 対策: 判断を支援するためにモメンタム指標を導入することができます。
複数の確認メカニズムにより、利益を得る機会を逃してしまう可能性があります。 対策:市場特性に応じて確認条件を適切に調整できます。
これは、厳密なロジックと強力な安定性を備えたトレンド追跡戦略です。複数のテクニカル指標を連携して使用することで、シグナルの信頼性が保証され、優れたリスク管理機能も実現されます。戦略のパラメータは高度に調整可能であり、さまざまな市場状況に応じて最適化できます。ある程度の遅れはあるものの、合理的な最適化によりリスクとリターンの良好なバランスを実現できます。
/*backtest
start: 2024-12-19 00:00:00
end: 2024-12-26 00:00:00
period: 45m
basePeriod: 45m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Supertrend EMA Strategy", overlay=true)
// Input Parameters
ema_length = input(50, title="EMA Length")
supertrend_atr_period = input(10, title="ATR Period")
supertrend_multiplier1 = input.float(3.0, title="Supertrend Multiplier 1")
supertrend_multiplier2 = input.float(2.0, title="Supertrend Multiplier 2")
supertrend_multiplier3 = input.float(1.0, title="Supertrend Multiplier 3")
// Calculations
emaValue = ta.ema(close, ema_length)
[supertrend1, SupertrendDirection1] = ta.supertrend(supertrend_multiplier1, supertrend_atr_period)
[supertrend2, SupertrendDirection2] = ta.supertrend(supertrend_multiplier2, supertrend_atr_period)
[supertrend3, SupertrendDirection3] = ta.supertrend(supertrend_multiplier3, supertrend_atr_period)
// Plot Indicators
plot(emaValue, title="EMA", color=color.blue, linewidth=2)
plot(supertrend1, title="Supertrend 1 (10,3)", color=(SupertrendDirection1 == -1 ? color.green : color.red), linewidth=1, style=plot.style_line)
plot(supertrend2, title="Supertrend 2 (10,2)", color=(SupertrendDirection2 == -1 ? color.green : color.red), linewidth=1, style=plot.style_line)
plot(supertrend3, title="Supertrend 3 (10,1)", color=(SupertrendDirection3 == -1 ? color.green : color.red), linewidth=1, style=plot.style_line)
// Entry Conditions
long_condition = (SupertrendDirection1 == -1 and SupertrendDirection2 == -1 and SupertrendDirection3 == -1 and close > emaValue)
short_condition = (SupertrendDirection1 == 1 and SupertrendDirection2 == 1 and SupertrendDirection3 == 1 and close < emaValue)
// Exit Conditions
long_exit = (SupertrendDirection3 == 1)
short_exit = (SupertrendDirection3 == -1)
// Execute Strategy
if (long_condition)
strategy.entry("Long", strategy.long)
if (short_condition)
strategy.entry("Short", strategy.short)
if (long_exit)
strategy.close("Long")
if (short_exit)
strategy.close("Short")