RWI 변동성 반전 전략


생성 날짜: 2024-02-01 14:56:58 마지막으로 수정됨: 2024-02-01 14:56:58
복사: 0 클릭수: 656
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

RWI 변동성 반전 전략

개요

RWI 변동률 역전 전략은 일정 주기 내의 RWI 최고점과 RWI 최저점을 계산하여 시장이 역전 상태에 있는지 판단하여 역전 기회를 발견하고, 역전 전략을 적용하여 높은 곳에서 공백을 열고 낮은 곳에서 다수 헤드를 열고 수익을 기대한다.

전략 원칙

이 전략은 먼저 일정 길이의 주기 (예: 14 K 선) 의 RWI 고점과 RWI 저점들을 계산한다. RWI 고점과 RWI 저점의 계산 공식은 다음과 같다:

RWI 최고점 = ((최고점-N주기 전 최저점) / ((N주기 전 ATR* sqrt ((N))

RWI 하위점 = ((N주기 전의 최고점 - 최저점) / ((N주기 전의 ATR* sqrt ((N))

그리고 RWI 고저점과 하락점의 차이를 계산하여 하락점보다 작다는 것을 판단한다 (예: 1) ᅳ RWI 고저점도 하락점보다 작다면 시장이 흔들림 상태에 있다고 판단하고, 이 때 아무런 동작도 하지 않는다.

만약 RWI 고점이 RWI 저점보다 더 높다면, 시장이 반전될 것이라고 판단하고, 이 시점에서는 상장할 수 있다. 만약 RWI 저점이 RWI 고점보다 더 높다면, 시장이 반전할 것이라고 판단하고, 이 시점에서는 상장할 수 있다. 이렇게 하면, RWI 지표에 기반한 시장 반전 상태를 판단하는 반전 거래 전략이 형성된다.

우위 분석

RWI 변동률 역전 전략은 다음과 같은 장점이 있습니다.

  1. RWI를 사용하여 전환점을 정확하게 판단하고, 높은 승률
  2. 시장 변동에 대응하는 역전략
  3. 전략이 명확하고 이해하기 쉬우며, 매개 변수를 조정할 수 있습니다.
  4. 2주기 판단을 조정하여 신호 품질을 향상시킵니다.

위험 분석

RWI 변동률 역전 전략에는 다음과 같은 위험도 있습니다.

  1. 반전 신호가 거짓으로 깨져 손실이 발생할 수 있습니다.
  2. 이 경우, 역전 신호가 더 많아서 손실이 발생할 수 있습니다.
  3. RWI 파라미터를 잘못 설정하면 신호 품질이 떨어질 수 있습니다.
  4. 변동성이 확대되면 RWI 지표가 작동하지 않습니다.

위험을 제어하기 위해 RWI 매개 변수를 적절히 조정하고, 필터 조건을 구성하고, 반전 범위를 제한할 수 있다.

최적화 방향

RWI 변동률 역전 전략은 다음과 같은 측면에서 최적화될 수 있다:

  1. 이중 시간축 판단을 추가하고, 짧은 주기의 RWI 지표를 구성하여 신호 품질을 향상시킵니다.
  2. KD, MACD와 같은 다른 지표와 함께 판단을 반전하여 가짜 돌파구를 피하십시오.
  3. 단기 손실을 엄격하게 통제하기 위한 손실 차단 전략
  4. 동적으로 최적화 RWI 변수, 시장 변화에 적응
  5. 포지션 관리를 최적화하고, 시장 상황에 따라 포지션을 늘리거나 줄이십시오.

요약하다

RWI 변동률 역전 전략의 전체적인 아이디어는 명확하고, RWI 지표를 사용하여 역전 시기를 판단하고, 전략 거래 논리는 더 좋으며, 흔들리는 시장 평정에서 더 좋은 효과가 있다. 매개 변수 최적화, 위험 제어 등의 수단을 통해 이 전략을 더 안정적으로 효율적으로 사용할 수 있다.

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

//@version=4
// Copyright (c) 2020-present, JMOZ (1337.ltd)
strategy("RWI Strategy", overlay=false)


length = input(title="Length", type=input.integer, defval=14, minval=1)
threshold = input(title="Threshold", type=input.float, defval=1.0, step=0.1)


rwi(length, threshold) =>
    rwi_high = (high - nz(low[length])) / (atr(length) * sqrt(length))
    rwi_low = (nz(high[length]) - low) / (atr(length) * sqrt(length))
    is_rw = rwi_high < threshold and rwi_low < threshold
    [is_rw, rwi_high, rwi_low]


[is_rw, rwi_high, rwi_low] = rwi(length, threshold)


long = not is_rw and rwi_high > rwi_low
short = not is_rw and rwi_low > rwi_high


strategy.entry("Long", strategy.long, when=long)
strategy.entry("Short", strategy.short, when=short)


plot(rwi_high, title="RWI High", linewidth=1, color=is_rw?color.gray:color.blue, transp=0)
plot(rwi_low, title="RWI Low", linewidth=1, color=is_rw?color.gray:color.red, transp=0)