이 전략은 트렌드를 탐지하고 거래 신호를 확인하기 위해 스토카스틱 RSI와 EMA를 결합합니다. 가격이 EMA20 이상으로 EMA9와 EMA14 사이로 회귀 할 때 스토카스틱 RSI가 과판 수준 이하인 경우 긴 신호가 생성됩니다. 가격이 EMA20 이하로 EMA9와 EMA14 사이로 회귀 할 때 스토카스틱 RSI가 과반 수준 이상인 경우 짧은 신호가 생성됩니다.
이 전략의 핵심 아이디어는 주 트렌드 (EMA20에 의해 대표되는) 의 가격 리트레이션이 적절한 과소매 또는 과소매 영역에 도달했는지 여부를 결정하기 위해 스토카스틱 RSI를 사용하는 데 있습니다. 빠른 EMA와 중간 EMA를 사용하여 리트레이션의 강도를 확인합니다. 가격이 빠른 EMA와 중간 EMA를 통과하면 리트레이션이 종료되고 트렌드가 역전 될 수 있습니다. 이는 입장에 들어갈 수 없습니다. 가격 리트레이션이 EMA9와 EMA14 사이에있을 때만 트렌드 방향으로 입장에 들어간다고 간주됩니다. 이 다 조건 검증 방법은 신호 품질을 효과적으로 개선하고 잘못된 판단을 줄일 수 있습니다.
이 전략은 트렌드 리트레이스를 파악하는 동안 위험을 효과적으로 제어하기 위해 EMA 다 조건 검증과 결합한 스토카스틱 RSI를 사용합니다. 전반적인 아이디어는 간단하고 이해하기 쉽고 초보자가 배우고 사용할 수 있습니다. 그러나 전략 자체는 측면 시장에서 낮은 성과, 트렌드 움직임에 대한 충분한 이해 등과 같은 몇 가지 한계를 가지고 있으며 실제 상황에 따라 유연하게 조정해야합니다. 앞으로 더 강력한 수익을 얻기 위해 동적 매개 변수, 더 많은 지표 검증 및 돈 관리와 같은 측면에서 전략을 최적화하고 개선하는 것도 고려 할 수 있습니다. 일반적으로이 전략은 수정하고 확장 할 수있는 기본 템플릿으로 사용될 수 있으며 좋은 출발점 및 학습 자료입니다.
/*backtest start: 2023-03-02 00:00:00 end: 2024-03-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Crypto-EMA_Pullback=-", overlay=true,initial_capital = 10000000,default_qty_type=strategy.percent_of_equity, default_qty_value=10.0, pyramiding = 10) // Inputs lengthRsi = input(14, title="RSI Length") k = input(3, title="Stoch %K") d = input(3, title="Stoch %D") lengthStoch = input(14, title="Stochastic RSI Length") overSold = input(25, title="Oversold Level") overBought = input(85, title="Overbought Level") emaFastLength = input(9, title="Fast EMA Length") emaMediumLength = input(14, title="Medium EMA Length") emaSlowLength = input(20, title="Slow EMA Length") // Calculating EMAs emaFast = ta.ema(close, emaFastLength) emaMedium = ta.ema(close, emaMediumLength) emaSlow = ta.ema(close, emaSlowLength) // Calculating the RSI and Stoch RSI rsi = ta.rsi(close, lengthRsi) stochRsiK = ta.sma(ta.stoch(rsi, rsi, rsi, lengthStoch), k) stochRsiD = ta.sma(stochRsiK, d) // Entry Conditions bullishCondition = close > emaSlow and close < emaFast and close < emaMedium and stochRsiK < overSold bearishCondition = close < emaSlow and close > emaFast and close > emaMedium and stochRsiK > overBought // Strategy Execution if (bullishCondition) strategy.entry("Long", strategy.long) if (bearishCondition) strategy.entry("Short", strategy.short) // Plotting plot(emaFast, color=color.blue, title="Fast EMA") plot(emaMedium, color=color.orange, title="Medium EMA") plot(emaSlow, color=color.red, title="Slow EMA") hline(overSold, "Oversold", color=color.green) hline(overBought, "Overbought", color=color.red)