듀얼 지표 충격 전략


생성 날짜: 2023-11-21 15:50:37 마지막으로 수정됨: 2023-11-21 15:50:37
복사: 2 클릭수: 600
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

듀얼 지표 충격 전략

개요

이 전략은 무작위 지표인 RSI와 지정된 변수인 무작위 진동 지표인 Stochastic Oscillator를 조합하여 일정 진동 범위 내에서 구매 및 판매 작업을 수행합니다.

전략 원칙

코드는 먼저 Stochastic Oscillator의 K값, D값 및 SD값과 같은 파라미터와 RSI 지표의 주기 파라미터를 정의한다. 각 K선에서 Stochastic Oscillator 및 RSI의 값을 계산한 후, RSI가 20보다 낮고 K값이 20보다 낮으면 오버 바이 신호가 되고, RSI가 80보다 높고 K값이 80보다 높으면 오버 바이 신호가 되고, 더 많은 것을 한다. 이중 지표를 통해 확인하고, 일부 가짜 신호를 필터링 할 수 있다. 또한, 중지 및 정지 조건을 설정한다.

우위 분석

이 이중 지표 필터링 전략은 일반적인 스토카스틱 전략에서 whipsaws로 인한 불필요한 거래를 효과적으로 줄일 수 있습니다. 동시 트렌드 지표 RSI와 결합하면 명확한 추세가 없을 때 맹목적 인 거래를 피할 수 있습니다. 따라서 이러한 조합 지표 전략은 신호 품질을 향상시키고 가짜 신호를 줄이고 위험을 더 잘 제어 할 수 있습니다.

위험 분석

이 전략의 가장 큰 위험은 지정된 매개 변수가 모든 품종과 모든 시간대에 반드시 적용되지 않는다는 것입니다. 예를 들어, 분기 된 시간 동안 RSI와 Stochastic의 매개 변수가 조정되어야합니다. 또한 추세가 급격하게 변하면 Stochastic 타입의 전략은 더 큰 손실을 초래합니다. 따라서이 전략은 흔들리는 디스크 정리 시장 환경에 더 적합합니다.

최적화 방향

더 많은 지표의 조합을 테스트 할 수 있습니다. 예를 들어 MACD 지표와 Stochastic 또는 RSI를 조합하여 다중 지표 필터를 형성합니다. RSI와 Stochastic의 특정 파라미터 값을 조정하여 최적의 파라미터 조합을 찾습니다.

요약하다

이 전략은 종합적으로 무작위적인 흔들림 지표인 Stochastic과 트렌드 강도 지표인 RSI를 사용하여 이중 지표 필터링을 수행하여 과매매 상황을 효과적으로 식별할 수 있으며, 흔들림 상쇄된 시장에 적합하며, 단일 Stochastic 지표 전략보다 효과적입니다. 매개 변수 및 지표 조합을 통해 최적화하면 전략 효과는 더 향상될 수 있습니다.

전략 소스 코드
/*backtest
start: 2023-11-13 00:00:00
end: 2023-11-14 04:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Estrategia de Oscilador Estocástico y RSI", overlay=false)

// Configuración del Oscilador Estocástico
fastK = input(14, title="K", minval=1)
slowK = input(3, title="D", minval=1)
slowD = input(3, title="SD", minval=1)
overSold = input(20, title="Oversold")
overBought = input(80, title="Overbought")

// Configuración del RSI
rsiPeriod = input(14, title="RSI Period")

// Cálculo del Oscilador Estocástico
k = sma(stoch(close, high, low, fastK), slowK)
d = sma(k, slowD)

// Cálculo del RSI
rsi = rsi(close, rsiPeriod)

// Lógica de la estrategia
if (rsi < overSold and k < overSold)
    strategy.entry("Compra", strategy.long)
if (rsi > overBought and k > overBought)
    strategy.entry("Venta", strategy.short)

// Establecer stop loss y take profit
stopLoss = input(100, title="Stop Loss")
takeProfit = input(100, title="Take Profit")
strategy.exit("Stop Loss / Take Profit", "Compra", stop=close - stopLoss, limit=close + takeProfit)
strategy.exit("Stop Loss / Take Profit", "Venta", stop=close + stopLoss, limit=close - takeProfit)

// Trama de gráfico
plot(k, color=color.blue, title="K")
plot(d, color=color.red, title="D")
plot(rsi, color=color.green, title="RSI")