이 전략은 이동 평균과 스토카스틱 상대 강도 지수 (Stochastic RSI) 를 사용하여 거래 기회를 찾습니다. 구체적으로, 상향 추세에서 중장기 이동 평균과 과잉 구매 / 과잉 판매 스토카스틱 RSI 지표를 사용하여 두 신호가 나타날 때 거래 결정을 내릴 수 있습니다.이 결합 된 사용은 일부 잘못된 신호를 필터링하고 전략의 안정성을 향상시킬 수 있습니다.
이 전략의 주요 구성 요소는 다음과 같습니다.
서로 다른 기간을 가진 MA1와 MA2 두 개의 이동 평균을 계산합니다.
스토카스틱 상대 강도 지수 (Stochastic RSI) 를 계산합니다. 이 지표는 RSI와 스토카스틱 원리를 통합하여 RSI가 과잉 구매되거나 과잉 판매되는지 보여줍니다.
구매 신호는 스토카스틱 RSI가 과잉 매매 한계를 넘을 때 생성되며 판매 신호는 과잉 매입 한계를 넘을 때 생성됩니다.
스토카스틱 RSI 신호가 느린 평균보다 빠른 이동 평균과 일치 할 때 장을 입력하십시오. 이것은 대부분의 잘못된 신호를 필터합니다.
리스크 금액과 포지션 크기를 계산합니다. 고정된 리스크 금액은 단일 손실을 효과적으로 제어하는 데 도움이됩니다.
스톱 로스를 설정하고 수익 가격을 취합니다. 수익을 극대화하기 위해 수익을 추적하십시오.
이동 평균과 스토카스틱 RSI를 결합하는 전략은 다음과 같은 장점을 가지고 있습니다.
트렌딩 시장에서 좋은 수익을 낼 수 있습니다. 중장기 이동 평균의 조합은 전체 시장 트렌드 방향을 결정할 수 있습니다.
스토카스틱 RSI는 회전 기회를 잡기 위해 과잉 구매 및 과잉 판매 상황을 식별하는 데 유용합니다.
복합 사용은 잘못된 신호를 필터링하고 안정성을 향상시킵니다.
고정 리스크 비율 방식은 단일 손실을 허용 수준 이하로 제한함으로써 리스크를 관리합니다.
손해를 멈추고 수익을 취하고 수익에 잠금하고 하향 위험을 제한합니다.
이 전략에는 몇 가지 위험도 있습니다.
계단 시장에서, 결합 이동 평균은 잘못된 신호를 줄 수 있습니다. 위험 통제를 위해 스톱 로스를 사용해야합니다.
스토카스틱 RSI는 변동적인 가격 움직임에 민감하며 때때로 잘못된 신호를 제공 할 수도 있습니다. 이동 평균과 결합하면 이것을 완화합니다.
고정 리스크 할당은 큰 손실을 완전히 피할 수 없습니다. 포지션 크기는 적절하게 설정되어야 합니다.
극심한 변동성 시나리오에서는 합리적인 스톱 로스/이익 가격은 사용할 수 없습니다. 그러면 수동 개입이 필요합니다.
이 전략은 다음 측면에서 더 이상 최적화 될 수 있습니다.
최적의 기간을 찾기 위해 더 많은 매개 변수 조합을 테스트합니다. 현재가 가장 좋지 않을 수도 있습니다.
이동 평균을 KDJ, MACD 등과 같은 다른 지표와 결합해보세요.
다양한 거래 도구에 테스트하고 최적화. 현재 FX 거래에 최적화.
머신러닝 모델을 사용하여 변화하는 시장에 따라 시간이 지남에 따라 매개 변수를 동적으로 최적화합니다.
이동 평균과 스토카스틱 RSI 조합 전략은 트렌드를 이동 평균과 역전 수준을 스토카스틱 RSI와 함께 트레이드 신호를 형성하고, 견고한 전략 논리를 형성하기 위해 스톱 로스/이익 및 리스크 제어와 함께 트렌드를 식별합니다. 이 간단하고 실용적인 조합 프레임워크는 더 많은 도구 및 매개 변수 세트에 추가로 테스트 및 최적화 될 수 있습니다.
/*backtest start: 2023-01-09 00:00:00 end: 2024-01-15 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Moving Average and Stochastic RSI Strategy", shorttitle="MA+Stoch RSI", overlay=true) // Input variables ma1_length = input.int(20, title="MA1 Length") ma2_length = input.int(50, title="MA2 Length") stoch_length = input.int(14, title="Stochastic RSI Length") overbought = input.int(80, title="Overbought Level") oversold = input.int(20, title="Oversold Level") risk_percentage = input.float(2.0, title="Risk Percentage") // Calculate moving averages ma1 = ta.sma(close, ma1_length) ma2 = ta.sma(close, ma2_length) // Calculate Stochastic RSI rsi1 = ta.rsi(close, stoch_length) rsiH = ta.highest(rsi1, stoch_length) rsiL = ta.lowest(rsi1, stoch_length) stoch = (rsi1 - rsiL) / (rsiH - rsiL) * 100 // Determine buy and sell signals based on Stochastic RSI buySignal = ta.crossover(stoch, oversold) sellSignal = ta.crossunder(stoch, overbought) // Plot signals on the chart plotshape(buySignal, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(sellSignal, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Calculate position size based on equity and risk percentage equity = strategy.equity riskAmount = equity * risk_percentage / 100 positionSize = riskAmount / ta.atr(14) // Entry and exit conditions var float stopLoss = na var float takeProfit = na if buySignal stopLoss := low takeProfit := high strategy.entry("Buy", strategy.long) else if sellSignal strategy.exit("Sell", from_entry="Buy", stop=stopLoss, limit=takeProfit)