이 전략은 볼링거 밴드, RSI 지표 및 이동 평균을 기반으로 한 포괄적인 거래 시스템입니다. 볼링거 밴드 가격 변동 범위, RSI 과잉 구매/ 과잉 판매 수준 및 EMA 트렌드 필터링을 통해 잠재적 인 거래 기회를 식별합니다. 이 시스템은 길고 짧은 거래를 지원하며 자본을 보호하기 위해 여러 출구 메커니즘을 제공합니다.
이 전략은 다음과 같은 핵심 요소에 기반합니다.
이 전략은 여러 가지 기술 지표를 통해 시장 기회를 포착하는 잘 설계된 양적 거래 전략입니다. 전략은 매우 구성 가능하며 다른 거래 필요에 적응 할 수 있습니다. 일부 내재적인 위험이 있지만 매개 변수 최적화 및 추가 보조 지표로 안정성과 신뢰성을 더욱 향상시킬 수 있습니다. 체계적인 거래 방법을 찾는 투자자에게는 고려할 가치가있는 전략 프레임워크입니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-11 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands Scalp Pro", overlay=true) // Inputs for the strategy length = input(20, title="Bollinger Band Length") src = input(close, title="Source") mult = input(1.8, title="Bollinger Band Multiplier") rsiLength = input(7, title="RSI Length") rsiOverbought = input(75, title="RSI Overbought Level") rsiOversold = input(25, title="RSI Oversold Level") // Custom RSI exit points rsiExitLong = input(75, title="RSI Exit for Long (Overbought)") rsiExitShort = input(25, title="RSI Exit for Short (Oversold)") // Moving Average Inputs emaLength = input(500, title="EMA Length") enableEMAFilter = input.bool(true, title="Enable EMA Filter") // Exit method: Choose between 'RSI' and 'Bollinger Bands' exitMethod = input.string("RSI", title="Exit Method", options=["RSI", "Bollinger Bands"]) // Enable/Disable Long and Short trades enableLong = input.bool(true, title="Enable Long Trades") enableShort = input.bool(false, title="Enable Short Trades") // Enable/Disable Stop Loss enableStopLoss = input.bool(false, title="Enable Stop Loss") stopLossPercent = input.float(1.0, title="Stop Loss Percentage (%)", minval=0.1) / 100 // Bollinger Bands calculation basis = ta.sma(src, length) dev = mult * ta.stdev(src, length) upperBB = basis + dev lowerBB = basis - dev // RSI calculation rsi = ta.rsi(src, rsiLength) // 200 EMA to filter trades (calculated but only used if enabled) ema200 = ta.ema(src, emaLength) // Long condition: RSI below oversold, price closes below the lower Bollinger Band, and optionally price is above the 200 EMA longCondition = enableLong and (rsi < rsiOversold) and (close < lowerBB) and (not enableEMAFilter or close > ema200) if (longCondition) strategy.entry("Long", strategy.long) // Short condition: RSI above overbought, price closes above the upper Bollinger Band, and optionally price is below the 200 EMA shortCondition = enableShort and (rsi > rsiOverbought) and (close > upperBB) and (not enableEMAFilter or close < ema200) if (shortCondition) strategy.entry("Short", strategy.short) // Stop Loss setup if (enableStopLoss) strategy.exit("Long Exit", "Long", stop = strategy.position_avg_price * (1 - stopLossPercent)) strategy.exit("Short Exit", "Short", stop = strategy.position_avg_price * (1 + stopLossPercent)) // Exit conditions based on the user's choice of exit method if (exitMethod == "RSI") // Exit based on RSI exitLongCondition = rsi >= rsiExitLong if (exitLongCondition) strategy.close("Long") exitShortCondition = rsi <= rsiExitShort if (exitShortCondition) strategy.close("Short") else if (exitMethod == "Bollinger Bands") // Exit based on Bollinger Bands exitLongConditionBB = close >= upperBB if (exitLongConditionBB) strategy.close("Long") exitShortConditionBB = close <= lowerBB if (exitShortConditionBB) strategy.close("Short")