이중 지표 오스실레이션 전략

저자:차오장, 날짜: 2023-11-21 15:50:37
태그:

img

전반적인 설명

이 전략은 특정 오시레이션 범위 내에서 구매 및 판매 작업을 수행하기 위해 지정된 매개 변수와 스토카스틱 지표 RSI와 스토카스틱 오시레이터를 결합합니다.

원칙

코드는 먼저 스토카스틱 오시레레이터의 K값, D값, SD값과 같은 매개 변수를 정의하고, RSI 지표의 사이클 매개 변수를 정의한다. 각 촛불에 대한 스토카스틱 오시레레이터와 RSI값을 계산한 후, RSI가 하위 제한 20보다 낮고 K값도 20보다 낮다면, 그것은 단위로 가는 oversold 신호이다; RSI가 상위 제한 80보다 높고 K값도 80보다 높으면, 그것은 길게 가는 oversold 신호이다. 이중 지표 확인은 일부 잘못된 신호를 필터링할 수 있다. 또한 스톱 로스 및 수익 조건을 설정한다.

이점 분석

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

위험 분석

이 전략의 가장 큰 위험은 지정된 매개 변수가 모든 종류와 기간에 적합하지 않을 수 있다는 것입니다. 예를 들어, RSI와 스토카스틱의 매개 변수는 하위 시간 주기로 조정해야합니다. 또한, 스토카스틱 유형의 전략은 트렌드가 급격하게 변할 때 더 큰 손실을 입을 것입니다. 따라서이 전략은 범위 제한 오스실레이션 시장 환경에 더 적합합니다.

최적화 권고

MACD를 스토카스틱 또는 RSI와 결합하여 여러 가지 지표 필터를 형성하는 것과 같은 더 많은 지표 조합을 테스트 할 수 있습니다. 최적의 매개 변수 조합을 찾기 위해 RSI와 스토카스틱의 특정 매개 변수 값을 조정할 수 있습니다. 중지 손실 및 수익 범위는 최근 N 일 동안의 변동에 따라 동적으로 조정 할 수 있습니다. 매개 변수 최적화 및 지표 최적화로 전략 성능을 지속적으로 향상시킬 수 있습니다.

결론

이 전략은 스토카스틱 지표와 트렌드 강도 지표 RSI를 통합하여 이중 지표 필터링을 수행하며, 한 가지 스토카스틱 지표 전략보다 더 나은 성능을 발휘하여 범위 제한 오스실레이션 시장에 적합한 과반 구매 및 과반 판매 상황을 효과적으로 식별 할 수 있습니다. 매개 변수 및 지표 조합 최적화를 통해 성능 향상을 위해 더 많은 공간이 있습니다.


/*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")

더 많은