이 전략은 가격 동력을 측정하기 위해 RSI 지표를 활용하고 RSI의 변화의 표준편차를 계산하여 입점 시기를 결정합니다. RSI 동력이 표준편차의 임계치를 초과하고 마감 요인으로 곱한 이전 동력보다 작을 때 긴 지점에 들어가 반대 조건 하에서 짧은 지점에 들어가 있습니다. 전략은 출구 제한 명령을 사용하여 수익 목표 및 스톱 로스 틱을 설정하여 위험을 제어합니다. 전략은 모든 잠재적 인 가격 움직임을 포착하기 위해 모든 가격 틱에 실행됩니다.
이 전략은 RSI 모멘텀과 표준편차 문턱을 활용하여 고주파 환경에서 역전 거래를 수행합니다. 고갈 요인 및 제한 주문 출출을 도입함으로써 전략은 위험을 제어하면서 가격 움직임에 의해 가져오는 거래 기회를 포착 할 수 있습니다. 그러나 전략의 안정성과 수익성을 향상시키기 위해 더 많은 지표, 매개 변수 설정을 최적화하고 위치 관리 및 트렌드 필터링 등을 도입하는 것과 같은 실제 응용에서 전략은 여전히 추가 최적화가 필요합니다.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("MCOTs Intuition Strategy", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1, initial_capital=50000, calc_on_every_tick=true) // Input for RSI period rsiPeriod = input(14, title="RSI Period") // Input for standard deviation multiplier stdDevMultiplier = input(1.0, title="Standard Deviation Multiplier") // Input for exhaustion detection exhaustionMultiplier = input(1.5, title="Exhaustion Multiplier") // Input for profit target and stop loss in ticks profitTargetTicks = input(8, title="Profit Target (ticks)") stopLossTicks = input(32, title="Stop Loss (ticks)") // Calculate RSI rsiValue = ta.rsi(close, rsiPeriod) // Calculate standard deviation of RSI changes rsiStdDev = ta.stdev(ta.change(rsiValue), rsiPeriod) // Calculate momentum momentum = ta.change(rsiValue) // Conditions for entering a long position longCondition = momentum > rsiStdDev * stdDevMultiplier and momentum < momentum[1] * exhaustionMultiplier if (longCondition) strategy.entry("Long", strategy.long) strategy.exit("Take Profit Long", "Long", limit=close + profitTargetTicks * syminfo.mintick) strategy.exit("Stop Loss Long", "Long", stop=close - stopLossTicks * syminfo.mintick) // Conditions for entering a short position shortCondition = momentum < -rsiStdDev * stdDevMultiplier and momentum > momentum[1] * exhaustionMultiplier if (shortCondition) strategy.entry("Short", strategy.short) strategy.exit("Take Profit Short", "Short", limit=close - profitTargetTicks * syminfo.mintick) strategy.exit("Stop Loss Short", "Short", stop=close + stopLossTicks * syminfo.mintick) // Plotting RSI value for reference plot(rsiValue, title="RSI", color=color.blue)