이것은 RSI 및 EMA 지표에 기반한 트렌드 추적 및 트렌드 브레이크아웃 거래 전략이다. 전략 이름은
이 전략은 5일 EMA, 20일 EMA 및 50일 EMA를 사용하여 장기 및 단기 트렌드 프레임워크를 구성합니다. 5일 EMA가 20일 EMA를 넘어서면, 그리고 두 EMA가 모두 50일 EMA를 넘어서면, 그것은 긴 엔트리에 대한 최근 상승 트렌드 브레이크우트를 결정합니다. 5일 EMA가 20일 EMA를 넘어서면, 그리고 두 EMA가 모두 50일 EMA를 넘어서면, 그것은 짧은 엔트리에 대한 최근의 하락 트렌드 브레이크우트를 결정합니다.
한편, 전략은 또한 RSI 지표를 포함하여 과소매 또는 과소매 구역에 도달하는지 판단합니다. RSI는 트렌드 상위권 또는 통합시 잘못된 신호를 피하기 위해 과소매 및 과소매 조건을 효과적으로 식별 할 수 있습니다. RSI 지표가 과소매에서 중립 구역으로 이동하면 긴 포지션 출구. RSI 지표가 과소매에서 중립 구역으로 이동하면 짧은 포지션 출구.
이 전략은 EMA와 RSI 지표를 결합하여 중장기 트렌드를 파악하고 트렌드 종료 시 위험을 피할 수 있으며 매우 좋은 리스크-어워드 비율 특성을 가지고 있습니다. 주요 장점은 다음과 같습니다.
이 전략에는 몇 가지 위험도 있습니다.
이러한 위험을 줄이기 위해 우리는 스톱 로스를 설정하거나, RSI 매개 변수를 조정하거나, 확인을 위해 다른 지표를 포함시킬 수 있습니다.
이 전략은 더 이상 최적화 할 수 있습니다.
이 RSI-EMA 트렌드 브레이크아웃 전략은 위험 통제를 기반으로 트렌드 이윤을 포착하기 위해 트렌드 추적 및 엔트리 타이밍 판단을 포괄적으로 고려합니다. 그것은 매우 실용적인 중장기 전략입니다. 우리는 매개 변수 최적화, 다른 지표 추가 등을 통해 안정성과 수익성을 더욱 향상시킬 수 있습니다.
/*backtest start: 2023-11-19 00:00:00 end: 2023-12-19 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © BrendanW98 //@version=4 strategy("My Strategy", overlay=true) ema5 = ema(close, 9) ema20 = ema(close, 21) ema50 = ema(close, 55) //RSI Signals // Get user input rsiSource = close rsiLength = 14 rsiOverbought = 70 rsiOversold = 30 rsiMid = 50 // Get RSI value rsiValue = rsi(rsiSource, rsiLength) //See if RSI crosses 50 doBuy = crossover(rsiValue, rsiOversold) and rsiValue < 50 doSell = crossunder(rsiValue, rsiOverbought) and rsiValue > 50 emacrossover = crossover(ema5, ema20) and ema5 > ema50 and ema20 > ema50 and close > ema50 emacrossunder = crossunder(ema5, ema20) and ema5 < ema50 and ema20 < ema50 and close < ema50 //Entry and Exit longCondition = emacrossover closelongCondition = doSell strategy.entry("Long", strategy.long, 1, when=longCondition) strategy.close("Long", when=closelongCondition) shortCondition = emacrossunder closeshortCondition = doBuy strategy.entry("Short", strategy.short, 1, when=shortCondition) strategy.close("Short", when=closeshortCondition)