극단적인 설정 전략 역전


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

극단적인 설정 전략 역전

개요

반전 극장 설정 전략은 극한 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. 거래비용과 점진의 위험을 증가시키는 빈번한 거래 신호가 발생할 수 있습니다.

위험을 줄이기 위해, 적절한 변수를 조정하거나, 손실을 제어하기 위해 스톱로스를 추가할 수 있다.

최적화 방향

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

  1. 트랜스포메이션의 필터링을 늘려서 가짜 침입을 막아주십시오.
  2. 변동률 지표 최적화 파라미터를 이용한 동적 설정
  3. 트렌드 지표와 결합하여 역으로 더 많은 공백을 피하십시오.
  4. 기계 학습 모형의 K선 역전 확률을 증가시키는 것
  5. 손해배상 장치에 가입

요약하다

역전한 극한 설정 전략은 최신 K 선의 극한 상황을 판단하여 역전이 발생했을 때 거래 신호를 생성한다. 이은 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)