이 전략은 4개의 기하급수적인 이동 평균 (EMAs) 을 기반으로 하는 트렌드 추종 시스템으로, 9, 21, 50, 200기기 EMA의 교차와 정렬을 사용하여 시장 트렌드를 식별하고, 리스크 통제를 위해 비율 기반의 스톱 로스로 결합합니다. 이 전략은 4개의 이동 평균의 정렬 순서를 확인하여 시장 트렌드 방향을 결정하고, 짧은 기간 EMA가 더 긴 기간 EMA보다 높을 때 긴 포지션을 입력하고, 반대로 짧은 포지션을 수행하면서 위험 관리를 위해 고정된 비율의 스톱 로스를 구현합니다.
이 전략은 시장 트렌드를 평가하기 위해 서로 다른 기간 (9, 21, 50, 200) 을 가진 네 개의 EMA를 사용합니다. 9일 EMA가 21일 EMA보다 높을 때 구매 신호가 생성되며, 이는 50일 EMA보다 높고, 이는 200일 EMA보다 높으며, 강력한 상승 추세를 나타냅니다. 반대로, 반대 정렬은 판매 신호를 생성합니다. 거래당 최대 손실을 제어하기 위해 2%의 스톱 로스를 구현합니다.
이 전략은 다양한 EMA를 통해 신뢰할 수 있는 트렌드 식별을 제공하는 종합적인 트렌드 추적 거래 시스템으로, 위험 통제를 위해 일정한 비율의 스톱 로스를 구현합니다. 이 시스템은 약간의 내재적 지연을 가지고 있지만 적절한 매개 변수 최적화 및 추가 지표 통합을 통해 더욱 향상될 수 있습니다. 이 전략은 특히 고항성 시장 및 중장기 트렌드 추적 거래에 적합합니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-23 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("4 EMA Strategy with Stop Loss", overlay=true) // Define the EMA lengths ema1_length = input(9, title="EMA 1 Length") ema2_length = input(21, title="EMA 2 Length") ema3_length = input(50, title="EMA 3 Length") ema4_length = input(200, title="EMA 4 Length") // Calculate the EMAs ema1 = ta.ema(close, ema1_length) ema2 = ta.ema(close, ema2_length) ema3 = ta.ema(close, ema3_length) ema4 = ta.ema(close, ema4_length) // Plot EMAs on the chart plot(ema1, color=color.blue, title="EMA 9") plot(ema2, color=color.orange, title="EMA 21") plot(ema3, color=color.green, title="EMA 50") plot(ema4, color=color.red, title="EMA 200") // Define conditions for Buy and Sell signals buy_condition = (ema1 > ema2 and ema2 > ema3 and ema3 > ema4) sell_condition = (ema1 < ema2 and ema2 < ema3 and ema3 < ema4) // Input stop loss percentage stop_loss_perc = input(2.0, title="Stop Loss %") // Execute buy signal if (buy_condition) strategy.entry("Buy", strategy.long) // Set stop loss at a percentage below the entry price strategy.exit("Sell", "Buy", stop=strategy.position_avg_price * (1 - stop_loss_perc / 100)) // Execute sell signal if (sell_condition) strategy.entry("Sell", strategy.short) // Set stop loss at a percentage above the entry price strategy.exit("Cover", "Sell", stop=strategy.position_avg_price * (1 + stop_loss_perc / 100))