두 가지 트렌드 포착 융합 전략

저자:차오장, 날짜: 2023-11-06 11:49:41
태그:

img

전반적인 설명

이 전략은 123 역전 및 SMA 에르고딕 오시레이터 하위 전략을 결합하여 듀얼 트랙 신호 필터링으로 트렌드 추적 전략을 형성합니다. 123 역전 전략은 촛불 패턴을 통해 잠재적 인 전환점을 판단합니다. SMA 에르고딕 오시레이터는 이동 평균을 사용하여 트렌드 방향을 결정합니다. 그들은 서로 확인하여 두 가지 확인 메커니즘을 형성하여 잘못된 신호를 효과적으로 필터링하고 트렌드 추적 거래에 비교적 강한 트렌드 방향을 캡처 할 수 있습니다.

전략 논리

  1. 123 역전 전략

이 전략은 울프 젠센의 책?? How I Triple My Money in the Futures Market?? 의 p183에 있는 시스템에서 나온다. 이 방법은 역전형이다. 닫기 가격이 2일 연속으로 이전 클로즈보다 높고, 9일 스토카스틱의 느린 라인이 50보다 낮을 때, 장기화한다. 닫기 가격이 2일 연속으로 이전 클로즈보다 낮고, 9일 스토카스틱의 빠른 라인이 50보다 높을 때, 단축한다.

  1. SMA 에르고딕 오시레이터

이 지표는 윌리엄 블라우가 개발한 TSI와 유사하지만, SMA 오시일레이터는 신호선을 포함하고 있다. SMA 에르고딕 지표는 가격의 이중 이동평균을 이전 가격 빼기 사용하며, SMI의 EMA를 신호선으로 그래프화하여 거래 신호를 유발한다. 매개 변수는 최적화를 위해 조절할 수 있다.

이중 확인: 123 리버스 및 SMA 에르고딕이 같은 방향으로 신호를 내릴 때만 포지션을 열십시오. 신호 방향이 일관성이 없을 때 평평하게 유지하십시오.

장점

  1. 여러 지표의 통합은 잘못된 신호를 효과적으로 필터링할 수 있는 이중 확인 메커니즘을 형성합니다.

  2. 123 역전 전략은 촛불 패턴을 통해 잠재적 역전 지점을 판단합니다. SMA 에르고딕 오시레이터는 트렌드 판단에 기반한 신호를 발산합니다. 단일 지표의 한계를 극복하기 위해 서로 보완합니다.

  3. SMA 에르고딕 오시레이터의 매개 변수는 다양한 제품과 시간 프레임에서 최적화를 위해 조정할 수 있습니다. 유연합니다.

  4. 전체적인 트렌드 추적 전략으로서, 강력한 추진력을 확보하기 위해 지속적으로 트렌드를 따라갈 수 있습니다.

위험성

  1. 역전과 트렌드 전략의 통합과 균형은 지속적인 최적화가 필요합니다. 그렇지 않으면 전환점을 놓칠 수도 있고 엄청난 손실을 초래할 수도 있습니다.

  2. 반전 전략은 잘못된 거래 위험을 내재하고 있습니다. 실패율을 줄이기 위해 매개 변수를 조정해야합니다.

  3. 순수한 트렌드를 따르는 전략은 반전을 판단 할 수 없습니다. 잠재적 인 손실 위험이 있습니다. 위험 예방을 위해 위치 크기는 적시에 줄여야합니다.

  4. 매개 변수는 다양한 제품과 시간 프레임에 대한 반복적 최적화 및 테스트가 필요합니다. 직접 적용하지 마십시오.

개선

  1. 123 리버스먼트의 매개 변수를 조정해서 잘못된 거래 빈도를 줄이세요.

  2. SMA 에르고딕 오시레이터의 매개 변수를 조정하여 지표의 민감도를 최적화합니다.

  3. 트레이드당 손실을 제한하기 위해 스톱 로스 전략을 추가합니다.

  4. 다른 지표를 포함하여 잠재적 인 반전을 판단하고 시간에 따라 포지션 크기를 줄이십시오.

  5. 견고성을 높이기 위해 다양한 제품에서 테스트 매개 변수

요약

이 전략은 이중 확인 메커니즘을 통해 역전 및 트렌드 전략의 장점을 통합하여 강력한 트렌드 추적 효과를 형성합니다. 효과적으로 잡음을 필터링하고 트렌드를 따라 지속적으로 고품질의 트렌드 기회를 포착 할 수 있습니다. 한편, 특정 드래운드 리스크가 있습니다. 매개 변수는 중단 손실을 사용하여 지속적인 최적화 및 위험 통제가 필요합니다. 핵심은 역전 및 트렌드, 플러스 중지 손실을 균형 잡는 것입니다. 장기 추적에 더 잘 작동 할 수 있습니다. 전반적으로이 이 전략은 실용적인 가치를 가지고 있으며 전략 포트폴리오의 일부 또는 독립적으로 사용할 수 있습니다.


/*backtest
start: 2022-10-30 00:00:00
end: 2023-02-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 14/07/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 SMI Ergodic Indicator is the same as the True Strength Index (TSI) developed by 
// William Blau, except the SMI includes a signal line. The SMI uses double moving averages 
// of price minus previous price over 2 time frames. The signal line, which is an EMA of the 
// SMI, is plotted to help trigger trading signals. Adjustable guides are also given to fine 
// tune these signals. The user may change the input (close), method (EMA), period lengths 
// and guide values.
//
// 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


SMI_Erg(fastPeriod, slowPeriod,SmthLen, TopBand,LowBand) =>
    pos = 0.0
    xPrice = close
    xPrice1 = xPrice - xPrice[1]
    xPrice2 = abs(xPrice - xPrice[1])
    xSMA_R = ema(ema(xPrice1,fastPeriod),slowPeriod)
    xSMA_aR = ema(ema(xPrice2, fastPeriod),slowPeriod)
    xSMI = xSMA_R / xSMA_aR
    xEMA_SMI = ema(xSMI, SmthLen)
    pos:= iff(xEMA_SMI < LowBand, -1,
    	   iff(xEMA_SMI > TopBand, 1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & SMI Ergodic Oscillator", 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, "---- SMI Ergodic Oscillator ----")
fastPeriod = input(4, minval=1)
slowPeriod = input(8, minval=1)
SmthLen = input(3, minval=1)
TopBand = input(0.5, step=0.1)
LowBand = input(-0.5, step=0.1)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posSMI_Erg = SMI_Erg(fastPeriod, slowPeriod,SmthLen, TopBand,LowBand )
pos = iff(posReversal123 == 1 and posSMI_Erg == 1 , 1,
	   iff(posReversal123 == -1 and posSMI_Erg == -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 )

더 많은