
이 전략은 간단한 이동 평균 ((SMA) 과 상대적으로 강한 지표 ((RSI) 를 결합한 트렌드 추적 거래 시스템입니다. 그것은 주로 200 주기의 SMA를 사용하여 상승 추세를 식별하고 RSI를 필터로 사용하여 진입 시기를 최적화합니다. 이 전략에는 위험을 제어하고 이익을 잠금하기 위해 스톱 및 스톱 손실 메커니즘이 포함되어 있습니다.
이 전략의 핵심 논리에는 다음과 같은 핵심 요소들이 포함되어 있습니다.
트렌드 식별: 200주기 SMA를 장기적인 트렌드의 지표로 사용한다. 가격이 상향으로 갈라져 SMA 위에 유지되면 잠재적인 상승 트렌드로 간주된다.
입시 확인: 가격의 안정성을 보장하기 위해 최소 30 개의 연속적인 주기를 SMA 위에 유지하도록 요구합니다.
RSI 필터: 14주기 RSI 지표가 사용되며, RSI가 30 (오버소드 영역) 이하일 때만 입장이 허용되며, 이는 잠재적인 반등 기회를 잡는데 도움이 됩니다.
리스크 관리: 0.5%의 스톱 손실 수준을 설정하여 단일 거래의 최대 손실을 제한합니다.
수익 목표: 2%의 스톱 레벨을 설정하여 예상 수익을 달성했을 때 자동으로 청산한다.
정책 실행 과정은 다음과 같습니다:
트렌드 추적: 장기 SMA를 사용하여 주요 트렌드를 포착하여 강력한 상승 상황에서 수익을 창출하는 데 도움이됩니다.
진입 최적화: 진입 품질을 높이기 위해 가짜 돌파구를 필터링하는 데 도움이되는 SMA 위에 30 회 동안 가격을 유지하도록 요구합니다.
반전 캡처: RSI 과잉 판매 조건과 결합하여 트렌드 초기에 잠재적인 반전 기회를 잡는 데 도움이됩니다.
위험 제어: 거래 당 최대 위험을 효과적으로 제한하는 명확한 스톱 스로이 레벨을 설정하십시오.
이익 잠금: 예상 수익을 달성 할 때 자동으로 이익을 잠금 할 수 있도록 미리 설정된 중지 수준.
객관성: 전략 규칙이 명확하고, 주관적인 판단으로 인한 감정적 영향을 줄여줍니다.
수치화: 전략의 매개 변수들은 역사적인 데이터를 통해 재검토되고 최적화될 수 있다.
가짜 브레이크: 수평 또는 흔들리는 시장에서, 가짜 브레이크가 자주 발생할 수 있으며, 이로 인해 연속적인 중단 손실이 발생할 수 있습니다.
지연성: 지연된 지표로서 SMA는 트렌드 초기에 몇 가지 기회를 놓칠 수도 있고, 트렌드 종료 시에는 여전히 포지션을 유지할 수도 있다.
RSI 제약: 엄격한 RSI 조건은 특히 강력한 상승 중에 몇 가지 좋은 진입 기회를 놓칠 수 있습니다.
고정 스톱 스톱 손실: 기본 비율은 모든 시장 조건에 적용되지 않을 수 있으며, 변동성이 높은 시장에서 너무 일찍 유발 될 수 있습니다.
단방향: 전략은 더 많이 하는 것 뿐이고, 하락하는 상황에서 수익을 낼 수 없습니다.
매개 변수 감수성: 전략 성능은 SMA 주기, 확인 주기 및 RSI 설정과 같은 매개 변수 변화에 민감할 수 있다.
시장 적응성: 전략은 특정 시장이나 시간 프레임에서 잘 작동할 수 있지만, 모든 상황에는 반드시 적용되지 않습니다.
동적 스톱스트로프: ATR을 사용하여 다양한 시장 변동에 적응하기 위해 동적 스톱스트로프 수준을 설정하는 것을 고려하십시오.
다주기 확인: 여러 시간 프레임의 확인 메커니즘을 도입하여, 일선과 시간선의 조건을 동시에 충족하는 것이 신호의 신뢰성을 높이기 위해 도입된다.
트렌드 강도 필터: 트렌드 강도를 측정하기 위해 ADX (평균 트렌드 지표) 를 추가하고, 강한 트렌드에서만 출전한다.
변동율 조정: 시장 변동율의 동적 조정 파라미터에 따라, 예를 들어 낮은 변동기에는 확인 주기를 늘리고, 높은 변동기에는 확인 주기를 줄인다.
부채제어 메커니즘에 가입: 가격이 SMA를 넘어 RSI가 과매매 할 때 부채제어를 고려하여 전략이 양방향의 상황에서 수익을 낼 수 있도록하십시오.
RSI 사용을 최적화하십시오. RSI를 다른 지표 (MACD와 같은) 와 결합하여 입시 신호의 신뢰성을 강화하는 것을 고려하십시오.
트랜지먼트 확인을 도입: 트랜지먼트 분석을 추가하여 돌파 또는 반전이 충분한 트랜지먼트 지원을 받도록 한다.
시간 필터: 시간 필터를 추가하여 알려진 낮은 유동성 시간대에 거래하는 것을 피하십시오.
자금 관리 최적화: 동적인 포지션 관리를 구현하고, 계정 규모와 시장의 변동에 따라 각 거래의 위험 을 조정한다.
지표 포트폴리오를 늘리세요. 브린 띠, 피보나치 회수 등과 같은 다른 기술 지표들을 고려하여 더 포괄적인 거래 시스템을 구축하세요.
“RSI 필터와 쌍방향 트렌드 추적 전략”은 트렌드 추적과 동력 역전 사고를 결합한 양적 거래 전략이다. 이 전략은 200주기 SMA를 활용하여 장기적인 트렌드를 식별하고 RSI 과잉 판매 조건과 결합하여 진입 시기를 최적화하여 강력한 상승 추세에서 잠재적인 반발 기회를 잡는 것을 목표로 한다.
그러나, 이 전략은 또한 몇 가지 제한이 있습니다. 예를 들어, 가짜 돌파의 영향을 받을 수 있으며, 여러 거래에만 제한되어 있습니다. 전략의 안정성과 적응력을 더욱 높이기 위해, 동적 스톱 로즈, 다중 주기 확인, 트렌드 강도 필터링과 같은 최적화 조치를 도입하는 것을 고려하는 것이 좋습니다. 또한, 공백 메커니즘과 최적화 자금 관리 전략의 추가는 시스템의 전반적인 성능을 크게 향상시킬 수 있습니다.
전체적으로, 이 전략은 트렌드 추적과 동력 거래에 좋은 출발점을 제공합니다. 지속적인 피드백, 최적화 및 실내 검증을 통해, 거래자는 특정 시장 환경과 개인 위험 선호에 따라 이 전략을 더욱 개선하고 조정하여 더 나은 거래 효과를 얻을 수 있습니다.
/*backtest
start: 2024-07-21 00:00:00
end: 2024-07-28 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("SMA 200 with RSI Filter", overlay=true)
// Inputs
smaLength = input.int(200, title="SMA Length")
confirmBars = input.int(30, title="Confirmation Bars (30 minutes)")
takeProfitPerc = input.float(2.0, title="Take Profit (%)", step=0.1) / 100
stopLossPerc = input.float(0.5, title="Stop Loss (%)", step=0.1) / 100
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
// Calculate SMA
sma = ta.sma(close, smaLength)
// Calculate RSI
rsi = ta.rsi(close, rsiLength)
// Buy condition
priceAboveSMA = close > sma
aboveSMAcount = ta.barssince(priceAboveSMA == false)
rsiCondition = rsi < rsiOversold
enterLongCondition = priceAboveSMA and aboveSMAcount >= confirmBars and rsiCondition
// Track entry price for calculating take profit and stop loss levels
var float entryPrice = na
if (enterLongCondition and na(entryPrice))
entryPrice := close
// Ensure the entryPrice is only set when a position is opened
if (strategy.opentrades == 0)
entryPrice := na
takeProfitLevel = entryPrice * (1 + takeProfitPerc)
stopLossLevel = entryPrice * (1 - stopLossPerc)
// Exit conditions
takeProfitCondition = close >= takeProfitLevel
stopLossCondition = close <= stopLossLevel
// Plot SMA and RSI
plot(sma, title="SMA 200", color=color.blue)
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsi, title="RSI", color=color.purple)
// Plot shapes for entries and exits
plotshape(series=enterLongCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=takeProfitCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="TP")
plotshape(series=stopLossCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="SL")
// Strategy entry and exit
if (enterLongCondition)
strategy.entry("Long", strategy.long, comment="SMA200LE")
if (takeProfitCondition or stopLossCondition)
strategy.close("Long", when=takeProfitCondition or stopLossCondition)
// Reset entry price after position is closed
if (strategy.position_size == 0)
entryPrice := na