이중 메커니즘을 갖춘 반전 추적 전략

저자:차오장, 날짜: 2024-01-05 15:09:19
태그:

img

전반적인 설명

이 전략은 이중 메커니즘 지표의 강점을 결합하여 회전 신호를 결정하기 위해 123 패턴을 사용하며, 단기 회전 추세를 파악하기 위해 가격 부피 지표에 의해 동력 신호를 결정합니다.

전략 논리

  1. 123 회전 신호 패턴

    • 9일간의 스톡 빠른 라인과 느린 라인으로 구성된

    • 닫기 가격이 2 일 연속으로 떨어지고 3 일 동안 상승하고 스톡 빠른 라인이 50 이하인 경우 구매 신호가 생성됩니다.

    • 닫기 가격이 2 일 연속으로 상승하고 3 일째로 떨어지면, 스톡 빠른 라인이 50을 넘으면 판매 신호가 생성됩니다.

  2. 동력 신호의 가격 부피 지수

    • PVI는 전날과 현재 하루 사이의 부피 변화를 비교하여 모멘텀을 판단합니다

    • PVI가 N일 이동평균을 넘을 때, 운동량이 증폭되고 구매 신호가 생성됩니다.

    • PVI가 N일 이동 평균 아래로 넘으면, 동력은 감소하고 판매 신호가 생성됩니다.

  3. 이중 신호 조합

    • 거래 신호는 123 회전 신호와 PVI 추진 신호가 일치할 때만 생성됩니다.

요약하자면 이 전략은 이중 메커니즘 지표의 장점을 활용하여 단기 가격-량 역전 기회를 효과적으로 파악합니다.

이점 분석

  1. 123 패턴은 주요 단기 반전 지점을 포착합니다.

  2. PVI 추진력은 잘못된 파장을 피하기 위해 조정된 가격-용량 행동을 판단합니다.

  3. 매개 변수 최적화 스톡은 격동 구역에서 대부분의 노이즈 신호를 필터

  4. 단일 신호보다 더 높은 이중 신호 신뢰성

  5. 내일 설계는 단기 거래에 적합한 하루 하루 위험을 피합니다.

위험 분석

  1. 실패한 환전 위험

    • 123 패턴 역전 신호는 항상 패턴 실패 위험과 함께 성공하지 않습니다.
  2. 지표 실패 위험

    • 주식, PVI 및 기타 지표가 특정 이상 시장에서 실패 할 수 있습니다.
  3. 이중 신호 놓칠 위험

    • 비교적 엄격한 이중 신호 기준은 단일 신호의 기회를 놓칠 수 있습니다.
  4. 높은 거래 빈도의 위험

    • 고주파 전략에 대 한 위치 크기와 위험 관리에 대한 긴밀한 모니터링이 필요합니다.

최적화 방향

  1. 큰 매개 변수 최적화 공간

    • 윈도우, 스톡의 주기가, PVI 등 최적화 공간이 있습니다
  2. 스톱 로스 전략을 포함할 수 있습니다.

    • 모바일 스톱 손실은 승률을 보장 할 수 있습니다
  3. 필터 조건을 추가하는 것을 고려하십시오.

    • 테스트는 이동 평균, 변동성 필터 등을 추가할 수 있습니다.
  4. 이중 신호 포트폴리오 최적화

    • 더 많은 이중 지표 전략의 테스트 조합

요약

이 전략은 스톡 및 PVI 지표의 조합을 통해 높은 신뢰성을 갖춘 단기 가격-용량 반전 시스템을 형성합니다. 단일 지표와 비교하면 더 높은 승률과 긍정적 인 기대를 가지고 있습니다. 샤프 비율은 최적화 및 위험 통제를 통해 더욱 향상 될 수 있습니다. 결론적으로이 전략은 시장에서 단기 반전 기회를 효과적으로 포착하기 위해 이중 메커니즘 지표의 강점을 활용하며 실시간 테스트 및 최적화를 가치가 있습니다.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 22/04/2021
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// The theory behind the indexes is as follows: On days of increasing volume, 
// you can expect prices to increase, and on days of decreasing volume, you can 
// expect prices to decrease. This goes with the idea of the market being in-gear 
// and out-of-gear. Both PVI and NVI work in similar fashions: Both are a running 
// cumulative of values, which means you either keep adding or subtracting price 
// rate of change each day to the previous day`s sum. In the case of PVI, if today`s 
// volume is less than yesterday`s, don`t add anything; if today`s volume is greater, 
// then add today`s price rate of change. For NVI, add today`s price rate of change 
// only if today`s volume is less than yesterday`s.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos


PVI(EMA_Len) =>
    pos = 0.0
    xROC = roc(close, 1)
    nRes = 0.0
    nResEMA = 0.0
    nRes := iff(volume > volume[1], nz(nRes[1], 0) + xROC, nz(nRes[1], 0))
    nResEMA := ema(nRes, EMA_Len)
    pos := iff(nRes > nResEMA, 1,
        	 iff(nRes < nResEMA, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & Positive Volume Index", shorttitle="Combo", overlay = true)
line1 = input(true, "---- 123 Reversal ----")
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
line2 = input(true, "---- Positive Volume Index ----")
EMA_Len = input(255, minval=1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posPVI = PVI(EMA_Len)
pos = iff(posReversal123 == 1 and posPVI == 1 , 1,
	   iff(posReversal123 == -1 and posPVI == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1 ) 
    strategy.entry("Long", strategy.long)
if (possig == -1 )
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

더 많은