이 전략은 볼링거 밴드, 상대 강도 지수 (RSI) 및 스토카스틱 RSI라는 세 가지 기술 지표를 결합합니다. 가격 변동성과 추진력을 분석함으로써 최적의 입점과 출구 지점을 결정하기 위해 과잉 구매 및 과잉 판매 시장 조건을 식별하는 것을 목표로합니다. 전략은 20배의 레버리지로 옵션 거래를 시뮬레이션하고 0.60%의 영리 및 0.25%의 스톱 로스를 설정하며 위험을 관리하기 위해 거래를 하루에 한 번으로 제한합니다.
이 전략의 핵심은 시장 조건을 평가하기 위해 볼링거 밴드, RSI 및 스토카스틱 RSI를 사용하는 데 있다. 볼링거 밴드는 중간 밴드 (20 기간 간단한 이동 평균), 상부 밴드 (3 표준 편차가 중간 밴드 위에), 하부 밴드 (3 표준 편차가 중간 밴드 아래에) 로 구성되어 있으며, 가격 변동성을 측정한다. RSI는 이 전략에서 14 기간의 길이를 가진 과반 구매 및 과반 판매 조건을 식별하는 데 사용되는 모멘텀 오시일레이터이다. 스토카스틱 RSI는 14 기간의 길이를 사용하여 RSI 값에 스토카스틱 오시일레이터 공식을 적용한다.
긴 신호는 RSI가 34 이하, 스토카스틱 RSI가 20 이하, 클로즈 가격이 낮은 볼링거 밴드 또는 그 아래에 있을 때 트리거된다. 짧은 신호는 RSI가 66 이상, 스토카스틱 RSI가 80 이상, 클로즈 가격이 상위 볼링거 밴드 또는 그 위에 있을 때 트리거된다. 이 전략은 옵션 거래를 시뮬레이션하기 위해 20x 레버리지를 사용하며 0.60%의 수익을 취하고 0.25%의 스톱 로스를 가지고 있다. 또한 위험을 통제하기 위해 하루 한 번으로 거래를 제한한다.
이 전략은 볼링거 밴드, RSI 및 스토카스틱 RSI를 결합하여 가격 변동성과 동력 정보를 활용하여 최적의 진입 및 출구 지점을 식별합니다. 명확한 영리 및 스톱 로스 수준을 설정하고 위험을 관리하기 위해 매일 거래 수를 제어합니다. 이 전략의 장점에도 불구하고 시장 위험, 매개 변수 민감성 및 레버리지 위험과 같은 과제와 대면합니다. 더 이상의 최적화는 동적 매개 변수 조정, 추가 지표 통합, 영리 및 스톱 로스 최적화 및 돈 관리 기술을 개선함으로써 달성 할 수 있습니다.
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands + RSI + Stochastic RSI Strategy with OTM Options", overlay=true) // Define leverage factor (e.g., 20x leverage for OTM options) leverage = 1 // Bollinger Bands length = 20 deviation = 3 basis = ta.sma(close, length) dev = ta.stdev(close, length) upper = basis + deviation * dev lower = basis - deviation * dev // RSI rsi_length = 14 rsi = ta.rsi(close, rsi_length) // Stochastic RSI stoch_length = 14 stoch_k = ta.stoch(close, close, close, stoch_length) // Entry condition with Bollinger Bands longCondition = rsi < 34 and stoch_k < 20 and close <= lower shortCondition = rsi > 66 and stoch_k > 80 and close >= upper // Plot Bollinger Bands plot(basis, color=color.blue, title="Basis") plot(upper, color=color.red, title="Upper Bollinger Band") plot(lower, color=color.green, title="Lower Bollinger Band") // Track if a trade has been made today var int lastTradeDay = na // Options Simulation: Take-Profit and Stop-Loss Conditions profitPercent = 0.01 // 1% take profit lossPercent = 0.002 // 0.2% stop loss // Entry Signals if (dayofmonth(timenow) != dayofmonth(lastTradeDay)) if (longCondition) longTakeProfitPrice = close * (1 + profitPercent) longStopLossPrice = close * (1 - lossPercent) strategy.entry("Long", strategy.long, qty=leverage * strategy.equity / close) strategy.exit("Take Profit Long", from_entry="Long", limit=longTakeProfitPrice, stop=longStopLossPrice) lastTradeDay := dayofmonth(timenow) if (shortCondition) shortTakeProfitPrice = close * (1 - profitPercent) shortStopLossPrice = close * (1 + lossPercent) strategy.entry("Short", strategy.short, qty=leverage * strategy.equity / close) strategy.exit("Take Profit Short", from_entry="Short", limit=shortTakeProfitPrice, stop=shortStopLossPrice) lastTradeDay := dayofmonth(timenow)