극단적 역전 설정 전략

저자:차오장, 날짜: 2024-02-21 14:08:09
태그:

img

전반적인 설명

극단적 역전 설정 전략은 극단적인 K-라인 역전을 이용하는 전략이다. 최신 K-라인과 평균 값의 엔티티 크기에 따라 판단하고 엔티티 크기가 평균 값보다 커지고 역전이 발생하면 거래 신호를 생성합니다.

전략 원칙

이 전략은 주로 현재 K-라인의 엔티티 크기와 K-라인의 전체 크기를 판단합니다.

가장 최근의 K-라인의 엔티티 크기와 (최고와 최저의 차이) K-라인의 전체 크기를 기록합니다.

그 다음 평균 실제 범위 이동 평균 (RMA) 을 사용하여 마지막 20 K 라인의 평균 엔티티 크기와 K 라인 크기를 계산합니다.

마지막 K-라인 크기가 상승하고 엔티티 크기가 평균 엔티티 크기보다 커지고 전체 K-라인 크기가 평균 K-라인 크기의 2배 이상 커지면 긴 신호가 생성됩니다.

반대로, 마지막 K-라인이 떨어지고 엔티티 크기도 위의 조건을 충족하면 짧은 신호가 생성됩니다.

즉, 거래 신호는 평균 값으로 판단하여 극단적인 K 라인이 역전될 때 생성됩니다.

이점 분석

이 전략의 주요 장점은 다음과 같습니다.

  1. 쉽게 역전하기 위해 극단적인 K-라인 특성을 사용
  2. 외형값을 찾기 위해 엔티티 크기와 전체 K-라인 크기의 극한 값을 비교합니다.
  3. RMA를 사용하여 시장 변화에 적응할 수 있는 동적 평균을 계산합니다.
  4. 더 신뢰할 수 있는 신호를 위해 반전 패턴과 결합

위험 분석

이 전략에는 또한 몇 가지 위험이 있습니다.

  1. 극단적인 K-라인은 반드시 역행하지 않습니다, 계속 실행 될 수 있습니다
  2. 부적절한 매개 변수 설정은 너무 민감하거나 둔한 원인이 될 수 있습니다
  3. 지원하기 위해 충분한 시장 변동성을 요구하고, 통합에 적합하지 않습니다.
  4. 트레이딩 신호가 자주 발생하여 거래 비용과 미끄러짐 위험을 증가시킬 수 있습니다.

위험을 줄이기 위해 매개 변수를 적절하게 조정하거나 손실을 제어하는 데 Stop Loss를 추가할 수 있습니다.

최적화 방향

이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.

  1. 가짜 브레이크를 피하기 위해 볼륨 필터를 추가합니다
  2. 변동성 지표를 사용하여 매개 변수 설정을 동적으로 최적화합니다.
  3. 리버스 긴 및 짧은 방지 트렌드 지표를 결합
  4. K-선 역행 확률을 판단하기 위해 기계 학습 모델을 추가
  5. 스톱 손실 메커니즘을 추가합니다.

요약

극단적 역전 설정 전략은 최신 K 라인의 극단적인 상황을 판단하여 역전이 발생했을 때 거래 신호를 생성합니다. 예외적인 극단적 K 라인 기능을 사용하는 것이 장점이지만 약간의 위험도 있습니다. 매개 변수 최적화 및 위험 관리 조치로 더 나은 전략 성능을 얻을 수 있습니다.


/*backtest
start: 2024-02-13 00:00:00
end: 2024-02-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Extreme Reversal Setup", overlay=true)

bodySize = input(defval=0.75)
barsBack = input(title="Lookback Period", type=input.integer, defval=20, minval=0)
bodyMultiplier = input(title="Bar ATR Multiplier", type=input.float, defval=2.0, minval=0)

myBodySize = abs(close - open)
averageBody = rma(myBodySize, barsBack)
myCandleSize = abs(high - low)
averageCandle = rma(myCandleSize, barsBack)

signal_long = open[1]-close[1] >= bodySize*(high[1]-low[1]) and 
   high[1]-low[1] > averageCandle*bodyMultiplier and 
   open[1]-close[1] > averageBody and close > open
signal_short = close[1]-open[1] >= bodySize*(high[1]-low[1]) and 
   high[1]-low[1] > averageCandle*bodyMultiplier and 
   close[1]-open[1] > averageBody and open > close

plotshape(signal_long, "LONG", shape.triangleup, location.belowbar, size=size.normal)
plotshape(signal_short, "SHORT", shape.triangledown, location.belowbar, size=size.normal)

strategy.entry("LONG", strategy.long, when=signal_long)
strategy.entry("SHORT", strategy.short, when=signal_short)

더 많은