이 전략은 여러 가지 기하급수적 이동 평균 (EMA) 을 기반으로 한 트렌드 다음 거래 시스템입니다. 가격 크로스오버 및 트렌드 방향 분석과 결합하여 다른 기간 (10, 30, 50) 의 세 개의 EMA를 활용하여 완전한 구매 및 판매 신호 시스템을 구축합니다. 전략은 트렌드 형성과 확인 및 역전을 철저히 고려하여 시장의 주요 트렌드 기회를 효과적으로 포착합니다.
이 전략은 상거래 신호를 결정하기 위해 계층적 판단 메커니즘을 사용합니다. 트렌드 결정 계층: 트렌드 방향을 판단하기 위해 세 개의 EMA (10/30/50) 의 상대적 위치를 사용합니다. EMA10 > EMA30 > EMA50에서 상승 추세가 확인되며, EMA50 > EMA30 > EMA10에서 하락 추세가 확인됩니다. 2. 신호 트리거 레이어: 트렌드가 확립되면, 거래 신호는 EMA30과 가격 교차로 인해 트리거됩니다. 상향 교차는 구매 신호를 트리거하고, 하향 교차는 판매 신호를 트리거합니다. 포지션 관리 계층: EMA30가 EMA50를 반대 방향으로 통과하면 해당 포지션 종료 신호를 유발하여 체계적인 출구 메커니즘을 제공합니다.
이것은 명확한 논리로 전략을 따르는 잘 설계된 트렌드입니다. 여러 EMA의 조합은 전략 안정성과 명확한 거래 신호를 모두 보장합니다. 일부 내재된 지연 위험이 있지만 전략은 합리적인 최적화 및 위험 통제 조치를 통해 좋은 실용적 가치를 보여줍니다. 특히 통제된 위험에 안정적인 수익을 추구하는 거래자에게 적합합니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-09 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © banyat6913 //@version=5 strategy("EMA Trend Strategy", overlay=true) // Input Parameters ema_short_length = input.int(10, title="EMA Short Length", minval=1) ema_mid_length = input.int(30, title="EMA Mid Length", minval=1) ema_long_length = input.int(50, title="EMA Long Length", minval=1) // Calculate EMA ema_short = ta.ema(close, ema_short_length) ema_mid = ta.ema(close, ema_mid_length) ema_long = ta.ema(close, ema_long_length) // **TREND UP** // 1. EMA 10 > EMA 30 > EMA 50 uptrend_condition = ema_short > ema_mid and ema_mid > ema_long // 2. Bullish Candle Crossing Up EMA 30 bullish_candle = close > open cross_up_ema_mid = ta.crossover(close, ema_mid) // 3. If EMA 30 crosses down EMA 50 -> Close Buy Order ema_30_cross_down_50 = ta.crossunder(ema_mid, ema_long) // Buy Signal buy_signal = uptrend_condition and cross_up_ema_mid // Sell Signal for closing Buy Order close_buy_signal = ema_30_cross_down_50 // **TREND DOWN** // 1. EMA 50 > EMA 30 > EMA 10 downtrend_condition = ema_long > ema_mid and ema_mid > ema_short // 2. Bearish Candle Crossing Down EMA 30 bearish_candle = close < open cross_down_ema_mid = ta.crossunder(close, ema_mid) // 3. If EMA 30 crosses up EMA 50 -> Close Sell Order ema_30_cross_up_50 = ta.crossover(ema_mid, ema_long) // Sell Signal sell_signal = downtrend_condition and cross_down_ema_mid // Buy Signal for closing Sell Order close_sell_signal = ema_30_cross_up_50 // Backtesting Logic if (buy_signal) strategy.entry("Buy", strategy.long) if (close_buy_signal) strategy.close("Buy") if (sell_signal) strategy.entry("Sell", strategy.short) if (close_sell_signal) strategy.close("Sell") // Plot EMA Lines plot(ema_short, color=color.blue, title="EMA 10") plot(ema_mid, color=color.orange, title="EMA 30") plot(ema_long, color=color.green, title="EMA 50") // Plot Buy and Sell Signals on Chart plotshape(buy_signal, style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), text="BUY", title="Buy Signal") plotshape(close_buy_signal, style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), text="CLOSE BUY", title="Close Buy Signal") plotshape(sell_signal, style=shape.labeldown, location=location.abovebar, color=color.new(color.red, 0), text="SELL", title="Sell Signal") plotshape(close_sell_signal, style=shape.labelup, location=location.belowbar, color=color.new(color.green, 0), text="CLOSE SELL", title="Close Sell Signal")