이 전략은 스토카스틱 슬로우 오시레이터 (Stochastic Slow Oscillator) 를 기반으로 움직이는 평균, 상대적 강도 지수 (RSI) 및 인공 지능 (AI) 기술과 결합한 거래 전략이다. 이 전략은 스토카스틱 슬로우 오시레이터의 크로스오버 신호를 분석하여 가격의 위치를 200일 이동 평균에 상대적으로 고려하고 AI 모델에 의해 생성된 신호를 통합하여 구매 및 판매 신호를 결정합니다. 이 전략은 또한 위험을 관리하기 위해 수익을 취하고 손실을 멈추는 수준을 설정합니다.
이 전략은 스토카스틱 슬로우 오시일레이터, 이동 평균, 상대적 강도 지수 및 AI 기술을 결합하여 다중 요소 거래 전략을 구성합니다. 전략은 트렌드 필터와 지능적인 신호 생성 기능을 사용하여 견고성과 적응력을 향상시키는 동안 과소 구매 및 과소 판매 신호를 캡처하기 위해 스토카스틱 오시일레이터를 활용합니다. 전략에는 지표 실패 및 모델 불확실성과 같은 특정 위험이 있지만 지표 매개 변수를 최적화하고 AI 모델을 향상시키고 동적 위험 관리 조치를 구현하고 위치 사이징 및 돈 관리에 대한 추가 모듈을 통합하여 이러한 위험을 완화 할 수 있습니다.
/*backtest start: 2024-03-12 00:00:00 end: 2024-04-11 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Stochastic Slow Strategy with More Entries and AI", overlay=true) length = input.int(30, minval=1) OverBought = input(40) OverSold = input(19) smoothK = input.int(18, minval=1) smoothD = input.int(7, minval=1) minKValue = input(12, title="Minimum K Value") // Stochastic calculations k = ta.sma(ta.stoch(close, high, low, length), smoothK) d = ta.sma(k, smoothD) co = ta.crossover(k, d) cu = ta.crossunder(k, d) // Trend filter (200-period simple moving average) ema200 = ta.sma(close, 200) // Define la función para calcular la señal de la red neuronal recurrente rnn_signal(price_series) => // Aquí implementa tu modelo de red neuronal recurrente para generar la señal // Puedes usar bibliotecas externas o implementar tu propio modelo aquí // Ejemplo de señal aleatoria signal = ta.rsi(price_series, 14) > 50 ? 1 : -1 // Devuelve la señal generada por la red neuronal recurrente signal // Calcula la señal utilizando la función definida anteriormente ai_signal = rnn_signal(close) // Entry conditions longCondition = ta.crossover(close, ema200) and k < OverSold and k > minKValue and ai_signal == 1 shortCondition = ta.crossunder(close, ema200) and k > OverBought and k > minKValue and ai_signal == -1 if (not na(k) and not na(d)) if (co and k < OverSold and k > minKValue) strategy.entry("LONG", strategy.long, comment="LONG") strategy.exit("ExitLong", "LONG", profit = close * 500, loss = close * 200) if (cu and k > OverBought and k > minKValue) strategy.entry("SHORT", strategy.short, comment="SHORT") strategy.exit("ExitShort", "SHORT", profit = close * 500, loss = close * 200) if (longCondition) strategy.entry("LongEntry", strategy.long, comment="LongEntry") strategy.exit("ExitLongEntry", "LongEntry", profit = close * 500, loss = close * 200) if (shortCondition) strategy.entry("ShortEntry", strategy.short, comment="ShortEntry") strategy.exit("ExitShortEntry", "ShortEntry", profit = close * 500, loss = close * 200) // Plotting plot(ema200, color=color.blue, title="200 SMA")