이 전략은 우선 거래에 대한 가격 반전 신호를 활용하고, 두 가지 요인 기반 시스템을 구현하여 스크리닝을 위해 트렌드 필터링 지표를 결합합니다. 가격 반전 부분은 123 역전 거래 시스템을 채택하고, 트렌드 필터링 부분은 추출 트렌드 (ETT) 시스템을 사용합니다. 조합은 두 가지 요인 기반 반전 거래 전략을 형성합니다.
가격 반전 부분은 123 반전 시스템을 사용합니다. 이 시스템은 울프 젠슨의 책
위의 조건이 충족되면 구매 신호가 생성됩니다. 반대로,
판매 신호가 생성됩니다.
이 반전 시스템의 목표는 가격이 일시적으로 반전될 때 단기적인 반전을 포착하는 것입니다.
트렌드 필터링 부분은 트렌드 추출 (ETT) 시스템을 사용합니다. ETT 시스템은 필터와 이동 평균 조합을 통해 트렌드 방향을 판단합니다. 이 전략에서 주요 기능은 명확한 트렌드가 없을 때 반전 작업을 피하여 가격 반전 신호를 확인하는 것입니다.
이 전략은 두 가지 하위 전략의 거래 신호를 결합하여 궁극적으로 이중 요인 구동 반전 거래 시스템을 실현합니다.
이중 요인 반전 거래 전략은 각각의 하위 전략의 장점을 조합하여 통합합니다.
따라서 이 전략은 유효하지 않은 반전 신호를 효과적으로 필터 할 수 있습니다. 올바른 트렌드 판단과 함께 반전 작업을 수행하여 거래 시스템의 전반적인 성능을 향상시킵니다.
이중 요인 반전 거래 전략은 다음과 같은 주요 위험을 가지고 있습니다.
위의 위험을 줄이기 위해 고려 사항은 컴파일러 매개 변수를 조정하고, 더 나은 판단을 위해 반전 및 ETT 전략을 최적화하고, 반전 거래에 대한 중지 손실 범위를 적절히 확장하는 것을 포함합니다. 실제로, 두 가지 요소로 인해 발생하는 본질적인 위험은 포지션 사이징 제어에 완전히 고려되어야합니다.
이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.
전략 논리와 주요 거래 신호가 변하지 않으면 매개 변수 및 조합 최적화를 통해 더 나은 백테스트 결과를 기대할 수 있습니다.
이중 요인 반전 거래 전략은 여러 요인 판단 시스템을 위해 가격 반전 신호와 트렌드 필터링을 유기적으로 결합합니다. 단일 반전 신호 전략과 비교하면이 전략은 명확한 추세가 없을 때 잘못된 신호를 피하면서 단기 가격 반전을 더 잘 파악 할 수 있으며, 이로 인해 신호 품질을 향상시킬 수 있습니다. 매개 변수 최적화 및 다른 요소를 추가함으로써 더 나은 성능을 기대할 수 있습니다.
/*backtest start: 2023-11-26 00:00:00 end: 2023-12-26 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 03/08/2020 // 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 // Extracting The Trend // The related article is copyrighted material from Stocks & Commodities Mar 2010 // // 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 ETT(Length,Delta,Trigger) => pos = 0 xBandpassFilter = 0.0 xPrice = hl2 beta = cos(3.1415 * (360 / Length) / 180) gamma = 1 / cos(3.1415 * (720 * Delta / Length) / 180) alpha = gamma - sqrt(gamma * gamma - 1) xBandpassFilter := 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(xBandpassFilter[1]) - alpha * nz(xBandpassFilter[2]) xMean = sma(xBandpassFilter, 2 * Length) pos :=iff(xMean > Trigger, 1, iff(xMean < Trigger, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & Extracting The Trend", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- LengthETT = input(20, minval=1) Delta = input(0.5) Trigger = input(0) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posETT = ETT(LengthETT,Delta,Trigger) pos = iff(posReversal123 == 1 and posETT == 1 , 1, iff(posReversal123 == -1 and posETT == -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 )