동적 RSI 이중 이동 평균 매수 및 매도 전략


생성 날짜: 2024-03-15 14:36:30 마지막으로 수정됨: 2024-03-15 14:36:30
복사: 0 클릭수: 614
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

동적 RSI 이중 이동 평균 매수 및 매도 전략

전략 개요 (Strategy Overview)

동적 RSI 쌍평선 구매/판매 전략은 상대적으로 약한 지표 ((RSI), 간단한 이동 평균 ((SMA) 및 지수 이동 평균 ((EMA) 을 결합한 양적 거래 전략이다. 이 전략은 시장에서 이익을 얻기 위해 잠재적인 구매 및 판매 신호를 포착하는 것을 목표로 한다. 이 전략은 RSI, SMA 및 EMA 사이의 관계를 분석하여 사전 정의 된 조건에 따라 구매 및 판매 작업을 촉발한다.

전략 원칙 (Strategy Principles)

이 전략의 핵심 원칙은 RSI, SMA, EMA의 세 가지 기술 지표 사이의 관계를 사용하여 시장의 추세와 구매 시기를 판단하는 것입니다. 구체적으로:

  1. 2주기 RSI가 20보다 작고, 현재 종료 가격이 200주기 SMA보다 크고, 현재 종료 가격이 20주기 EMA보다 크면 구매 신호를 유발한다. 이것은 시장이 과매매 상태에 있을 수 있으며, 현재 가격은 장기 및 중기 평균선보다 높기 때문에 구매할 수 있는 좋은 시간일 수 있음을 나타낸다.

  2. 80주기 EMA가 나타나고 2주기 RSI가 80보다 크면 판매 신호가 발생한다. 이는 시장이 과매매 상태에 있을 수 있음을 나타내고 현재 가격은 장기 평균보다 낮아 판매하는 좋은 시간이 될 수 있음을 나타냅니다.

  3. 2주기 RSI가 80보다 크고, 현재 폐쇄 가격이 200주기 SMA보다 작고, 현재 폐쇄 가격이 80주기 EMA보다 작을 때, 마이너스 신호를 유발한다. 이것은 시장이 과매매 상태에 있을 수 있음을 나타내고, 현재 가격은 장기 및 중기 평균선보다 낮아, 따라서 마이너스를 할 수 있는 좋은 시간이 될 수 있음을 나타낸다.

  4. 최저 가격이 20주기 EMA보다 작고, 2주기 RSI가 10주기보다 작을 때, 평지 포지션을 상쇄하는 신호를 발산한다. 이것은 시장이 곧 상향으로 전환될 수 있음을 나타내고, 따라서 위험을 피하기 위해 평지 포지션을 상쇄해야 한다.

구매/판매 신호 외에도, 이 전략은 스톱, 스톱, 이동 스톱과 같은 위험 관리 조치를 도입한다. 사용자는 자신의 위험 선호도에 따라, 그에 맞는 스톱, 스톱, 이동 스톱 수준을 설정할 수 있다. 이것은 잠재적인 손실을 통제하고 이미 얻은 이익을 보호하는 데 도움이 된다.

전략적 장점 (Strategy Advantages)

  1. 다중 기술 지표 결합: 이 전략은 RSI, SMA 및 EMA의 세 가지 일반적인 기술 지표를 고려하여 여러 관점에서 시장 추세와 매매 시기를 분석하여 전략의 신뢰성을 높입니다.

  2. 위험 관리 조치를 도입: 전략의 위험 관리 능력을 강화하여 잠재적인 손실을 효과적으로 제어하고 이미 얻은 이익을 보호 할 수 있도록 스톱, 스톱 및 이동 스톱 수준을 설정합니다.

  3. 변수 조정: 사용자는 자신의 선호도와 시장 특성에 따라 전략의 다양한 변수, 예를 들어 RSI 주기, SMA 및 EMA 주기, 정지 및 중지 손실 평준을 조정하여 다른 거래 스타일과 시장 환경에 적응 할 수 있습니다.

  4. 적용 범위: 이 전략은 주식, 선물, 외환 등 다양한 금융 시장에 적용될 수 있으며, 강력한 보편성과 적용성을 갖는다.

전략 위험 (Strategy Risks)

  1. 매개 변수 설정 위험: 부적절한 매개 변수 설정은 전략의 성능이 떨어질 수 있으며, 심지어 큰 손실을 초래할 수 있다. 따라서, 이 전략을 사용할 때, 전략의 안정성을 보장하기 위해 매개 변수를 신중하게 평가하고 최적화해야 한다.

  2. 시장 위험: 이 전략은 역사적 데이터와 특정 기술 지표에 기반을 두고 있으며, 시장의 중대한 변화 또는 블랙 스윙 사건이 발생하면 전략이 적시에 적응하지 못하여 손실을 초래할 수 있습니다. 따라서 시장의 역동성을 면밀히 관찰하고 필요한 경우 전략을 조정해야합니다.

  3. 과도한 적합성 위험: 정책의 매개 변수가 너무 복잡하거나 특정 역사 데이터를 위해 최적화되면 실제 응용에서 좋지 않은 성능을 발휘할 수 있습니다. 따라서 전략을 개발하고 최적화 할 때 과도한 적합성 위험을 제어하는 데 주의가 필요합니다.

전략 최적화 (Strategy Optimization)

  1. 동적 조정 매개 변수: 시장 변화와 전략의 성과에 따라 동적으로 조정하는 전략 매개 변수, 예를 들어 RSI 주기와 SMA 및 EMA 주기와 스톱 스톱 손해 평형, 다양한 시장 환경에 적응하고 전략의 안정성을 향상시키기 위해.

  2. 다른 기술 지표의 도입: 다른 효과적인 기술 지표의 도입을 고려하십시오. 예를 들어, 브린 띠, MACD 등은 전략의 분석 차원을 풍부하게하고 구매 신호의 신뢰성을 향상시킵니다.

  3. 기본적 분석과 결합: 기본적 분석과 기술 분석을 결합하여 매매 시기를 판단할 때, 전략의 포괄성과 정확성을 높이기 위해 대국경, 산업 추세, 회사 성과와 같은 기본적 요소를 고려하십시오.

  4. 위험 관리를 강화: 위험 관리를 최적화하여 여러 단계의 중지, 동적 중지, 위험 평가 등의 방법을 도입하여 위험을 더 잘 통제하고 자금을 안전하게 보호하십시오.

  5. 리베이트 및 실장 최적화: 정기적으로 전략 리베이트 및 실장 거래를 수행하여 다양한 시장 조건에서 전략의 성과를 분석하고 잠재적인 문제를 제때 발견하고 해결하고 지속적으로 전략을 최적화하고 개선하십시오.

요약

동적 RSI 쌍평선 구매/판매 전략은 RSI, SMA 및 EMA와 같은 기술 지표들을 결합한 수치화 거래 전략이다. 이 전략은 지표들 사이의 관계를 분석하여, 미리 정의된 조건에 따라 구매 및 판매 작업을 촉발하며, 동시에 중지, 중지 및 이동 중지와 같은 위험 관리 조치를 도입한다. 전략의 장점은 여러 기술 지표를 종합적으로 고려하고, 위험 관리 조치를 도입하고, 파라미터를 조정할 수 있는 적용 범위가 넓다는 것이다. 그러나 실제 응용에서, 파라미터를 설정할 필요가 있다.

전략 소스 코드
/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("ag7 buy sell", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

inpTakeProfit   = input.int(defval = 100000000, title = "Take Profit", minval = 0)
inpStopLoss     = input.int(defval = 5000, title = "Stop Loss", minval = 0)
inpTrailStop    = input.int(defval = 1000, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset  = input.int(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)

useTakeProfit   = inpTakeProfit  >= 1 ? inpTakeProfit  : na
useStopLoss     = inpStopLoss    >= 1 ? inpStopLoss    : na
useTrailStop    = inpTrailStop   >= 1 ? inpTrailStop   : na
useTrailOffset  = inpTrailOffset >= 1 ? inpTrailOffset : na

longEntry() =>
    ta.rsi(close, 2) <= 20 and close >= ta.sma(close, 200) and ta.ema(close, 20)
longExit() =>
    ta.ema(close, 80) and ta.rsi(close, 2) >= 80

strategy.entry("Compra", strategy.long, when = longEntry())
strategy.close("Compra", when = longExit())
strategy.exit("Feche a ordem", from_entry = "Venda", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)

shortEntry() =>
    ta.rsi(close, 2) >= 80 and close <= ta.sma(close, 200) and ta.ema(close, 80)
shortExit() =>
    low <= ta.ema(close, 20) and ta.rsi(close, 2) <= 10

strategy.entry("Venda", strategy.short, when = shortEntry())
strategy.close("Venda", when = shortExit())
strategy.exit("feche a ordem", from_entry = "Compra", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)