이 전략의 핵심 아이디어는 RSI 지표와 사용자 정의 AI 조건을 결합하여 거래 기회를 발견하는 것입니다. 여러 조건이 충족되면 긴 또는 짧은 포지션을 설정하고 고정된 수익 및 스톱 손실 수준을 사용합니다.
이 전략은 다음과 같은 단계를 통해 실행됩니다.
또한, 전략은 신호 생성에 대한 경고를 생성하고 차트에 RSI 값을 그래프화합니다.
이 전략은 몇 가지 주요 장점을 가지고 있습니다.
또한 고려해야 할 몇 가지 위험이 있습니다.
이 문제는 RSI 매개 변수를 조정하고 AI 논리를 최적화하고, 스톱 로스 거리를 완화하여 완화 할 수 있습니다.
이 전략이 더 향상될 수 있는 몇 가지 방법:
요약하자면, 이것은 RSI와 사용자 지정 AI 논리를 기반으로 하는 highly configurable 및 최적화 가능한 고급 전략입니다. 여러 신호 소스의 조합을 통해 트렌드 방향을 결정하고, 위험 관리와 수익 / 중지 손실 절차를 수행하는 거래를 실행합니다. 전략은 풍부한 확장 및 최적화 기능을 통해 사용자에게 좋은 거래 성능을 제공할 수 있습니다.
/*backtest start: 2022-12-28 00:00:00 end: 2024-01-03 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Improved RSI Scalping Strategy", overlay=true) // Parameters rsiLength = input.int(14, title="RSI Length") rsiOverbought = input.int(70, title="RSI Overbought Threshold") rsiOversold = input.int(30, title="RSI Oversold Threshold") takeProfitPips = input.int(10, title="Take Profit (Pips)") stopLossPips = input.int(5, title="Stop Loss (Pips)") riskPercentage = input.float(1, title="Risk Percentage", minval=0, maxval=100, step=0.1) // Calculate RSI rsiValue = ta.rsi(close, rsiLength) // Custom AI Conditions aiCondition1Long = ta.crossover(rsiValue, 50) aiCondition1Short = ta.crossunder(rsiValue, 50) // Add more AI conditions here var aiCondition2Long = ta.crossover(rsiValue, 30) var aiCondition2Short = ta.crossunder(rsiValue, 70) // Combine AI conditions with RSI longCondition = aiCondition1Long or aiCondition2Long or ta.crossover(rsiValue, rsiOversold) shortCondition = aiCondition1Short or aiCondition2Short or ta.crossunder(rsiValue, rsiOverbought) // Calculate position size based on risk percentage equity = strategy.equity riskAmount = (equity * riskPercentage) / 100 positionSize = riskAmount / (stopLossPips * syminfo.mintick) // Calculate Take Profit and Stop Loss levels takeProfitLevel = close + takeProfitPips * syminfo.mintick stopLossLevel = close - stopLossPips * syminfo.mintick // Long entry strategy.entry("Long Entry", strategy.long, when=longCondition[1] and not longCondition, qty=1) strategy.exit("Take Profit/Stop Loss", from_entry="Long Entry", limit=takeProfitLevel, stop=stopLossLevel) // Short entry strategy.entry("Short Entry", strategy.short, when=shortCondition[1] and not shortCondition, qty=1) strategy.exit("Take Profit/Stop Loss", from_entry="Short Entry", limit=takeProfitLevel, stop=stopLossLevel) // Alerts alertcondition(longCondition, title="Long Entry Signal", message="Long Entry Signal") alertcondition(shortCondition, title="Short Entry Signal", message="Short Entry Signal") // Plot RSI on the chart plot(rsiValue, title="RSI", color=color.blue)