이 전략은 상대적 강도 지수 (RSI) 를 기반으로 한 다단계 지표 중복 거래 시스템이다. 특정 거래 창 내에서 작동하여, 이 전략은 적당한 시장 움직임 중에 스케일 된 입시 접근 방식을 사용하는 동적 위치 조정 메커니즘과 결합하여 RSI의 과소매 및 과소매 신호를 통해 거래 기회를 식별합니다. 이 전략은 평균 입시 가격 목표를 기반으로 수익 취득을 구현합니다.
이 전략은 다음과 같은 핵심 요소에 기반합니다. 1. RSI 계산은 종료 가격으로 표준 14 기간을 원본 데이터로 사용합니다. 2. 거래 창은 시장 특성에 따라 조정 가능한 2-4 시간 사이에 제어됩니다 3. RSI 를 기반으로 30 이하 (가량 판매) 와 70 이상 (가량 구매) 의 진입 신호 4. 위치 구축은 초기 위치와 동적 조정 수준을 포함 5. 가격 이 1 포인트 이상 불리하게 움직일 때 스케일링 메커니즘이 작동 6. 영업이익은 평균 진입 가격에서 1.5 포인트로 설정됩니다.
이 전략은 RSI 지표와 확장된 엔트리 메커니즘의 조합을 통해 비교적 완전한 거래 시스템을 형성합니다. 주요 장점은 다단계 신호 필터링 메커니즘과 유연한 포지션 관리 접근 방식에 있으며, 트렌드 시장 위험과 매개 변수 최적화 문제에주의를 기울여야합니다. 트렌드 필터 추가 및 스톱 로스 메커니즘 최적화와 같은 향상으로 전략의 전반적인 성능을 더욱 향상시킬 수 있습니다.
/*backtest start: 2024-12-10 00:00:00 end: 2025-01-08 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=6 strategy("TonyM RSI", overlay=true) // Input Settings rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings") rsiSourceInput = input.source(close, "Source", group="RSI Settings") startHour = input.int(2, "Start Hour", minval=0, maxval=23, group="Trading Window") endHour = input.int(4, "End Hour", minval=0, maxval=23, group="Trading Window") // RSI Calculation change = ta.change(rsiSourceInput) up = ta.rma(math.max(change, 0), rsiLengthInput) down = ta.rma(-math.min(change, 0), rsiLengthInput) rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down)) // Time Filter inTradingWindow = (hour >= startHour and hour < endHour) // Strategy Settings buyLevel = 30 sellLevel = 70 scaleDistance = 1.0 // Distance in points to add to the position takeProfitPoints = 1.5 // Profit target from average price initialQty = 1 // Initial trade size scalingQty = 1 // Additional trade size for scaling // Trade Logic if inTradingWindow // Entry Logic if rsi <= buyLevel and strategy.position_size == 0 strategy.entry("Buy", strategy.long, qty=initialQty) if rsi >= sellLevel and strategy.position_size == 0 strategy.entry("Sell", strategy.short, qty=initialQty) // Scaling Logic if strategy.position_size > 0 and close <= strategy.position_avg_price - scaleDistance strategy.entry("Scale Buy", strategy.long, qty=scalingQty) if strategy.position_size < 0 and close >= strategy.position_avg_price + scaleDistance strategy.entry("Scale Sell", strategy.short, qty=scalingQty) // Exit Logic (based on average price) if strategy.position_size > 0 strategy.exit("Take Profit Long", "Buy", limit=strategy.position_avg_price + takeProfitPoints) if strategy.position_size < 0 strategy.exit("Take Profit Short", "Sell", limit=strategy.position_avg_price - takeProfitPoints) // Plot RSI plot(rsi, "RSI", color=color.blue, linewidth=1) rsiUpperBand = hline(70, "RSI Upper Band", color=color.red) rsiLowerBand = hline(30, "RSI Lower Band", color=color.green) fill(rsiUpperBand, rsiLowerBand, color=color.new(color.gray, 90))