이중 역전 하락 전략 (Dual Reversal High-Low strategy) 은 이중 신호를 결합한 양적 전략이다. 이중 역전 기반의 내일 전략과 어제의 최고 가격과 이동 평균 사이의 차이를 활용하는 트렌드 판단 전략을 통합한다. 이 전략은 더 안정적인 구매 및 판매 신호를 달성하여 잘못된 신호의 발행을 더 피하는 것을 목표로 한다.
우선, 역전 전략 부분. 이 전략은 스토카스틱 지표를 사용하여 과소득 및 과소득 상태의 판단을 결합하면서 두 일 연속으로 폐쇄 가격의 반전이 있을 때 신호의 형성을 판단합니다. 구체적으로, 그것은 닫기 가격이 두 일 연속으로 상승에서 하락으로 변화 할 때 판매 신호이며, 빠른 스토카스틱 지표가 느린 스토카스틱 지표보다 높습니다. 닫기 가격이 두 일 연속으로 하락에서 상승으로 변화 할 때 빠른 스토카스틱 지표가 느린 스토카스틱 지표보다 낮을 때 구매 신호입니다.
두 번째, 높은 낮은 전략 부분. 이 전략은 트렌드를 결정하기 위해 어제의 가장 높은 가격과 13 기간 지수 이동 평균 사이의 차이를 사용합니다. 가장 높은 가격이 이동 평균보다 높을 때 구매 신호를 생성하고 가장 높은 가격이 이동 평균보다 낮을 때 판매 신호를 생성합니다.
마지막으로, 이 전략은 두 신호를 통합합니다. 두 신호가 동시에 구매 신호를 표시할 때 구매 행동을 취하고 두 신호가 동시에 판매 신호를 표시할 때 판매 행동을 취합니다.
이 이중 신호 전략은 잘못된 신호와 불필요한 거래를 효과적으로 줄일 수 있습니다. 역전 부분은 높은 점과 낮은 점의 추격을 피하기 위해 과반 구매 및 과반 판매 조건을 결정할 수 있습니다. 높은 낮은 부분은 거짓 브레이크오웃을 피하기 위해 가격 트렌드 오차를 결정할 수 있습니다. 판단을 결합하면 이중 신호가 같은 방향으로있을 때만 실제 거래 신호가 생성되며 이는 신호의 신뢰성을 크게 향상시키고 비효율적인 거래를 줄일 수 있습니다.
또한, 역전과 높은-하락 부분은 서로 다른 유형의 지표와 판단 기준을 사용하므로 서로 검증하고 잘못된 신호를 추가로 줄일 수 있습니다. 시장에서 특별한 상황이 발생하면 단일 지표가 잘못된 신호에 취약하지만 결합된 판단은 일부 오류를 상쇄 할 수 있습니다. 이러한 유형의 멀티 지표 통합 판단 전략은 더 신뢰할 수 있고 안정적인 거래 신호를 얻을 수 있습니다.
이 전략의 가장 큰 위험은 강력한 트렌딩 시장에서 지속 가능한 합리적인 일방적 신호가 무시 될 수 있다는 것입니다. 트렌드가 매우 명백할 때, 역전 부분의 신호 판단이 잘못 될 수 있으며, 이는 높은-저하 부분의 일방적 신호가 거래로 실행되지 않도록 할 수 있습니다. 이것은 특히 트렌딩 황소 및 곰 시장에서 두드러집니다.
또한, 부적절한 매개 변수 설정도 전략에 영향을 미칠 수 있다. 역전 부분의 매개 변수 설정은 사이클 이동 평균 시스템을 고려해야 하며, 높은-저한 부분의 이동 평균 기간은 조정되어야 한다. 둘의 기간이 부적절하다면, 중등한 잘못된 신호가 발생하거나 단순히 신호가 없을 것이다.
첫째, 높은-하락 부분의 이동 평균의 길이 매개 변수는 역전 부분의 주기 지표와 더 조화를 이루기 위해 테스트 할 수 있습니다. 높은-하락 부분의 현재 13 기간 지표는 너무 민감할 수 있으며, 더 긴 기간을 시도하면 더 안정적인 판단을 얻을 수 있습니다.
둘째, 반전 부분은 쉽게 영향을받는 폐쇄 가격만을 사용하는 대신 K-라인 엔티티를 사용하여 테스트 할 수 있습니다. 더 큰 실제 몸 K-라인의 반전이 더 강한 신호 효과를 가질 수 있다는 것을 고려하십시오.
마지막으로, 현재 내일 보유 방식이 더 높은 위험을 가지고 있기 때문에 세션 중에 반전 신호가 나타날 때만 거래를 고려할 수 있습니다. 일시적 반전 거래를 채택하는 것이 일부 보유 위험을 피할 수 있습니다.
이중 역전 높은 낮은 전략은 여러 지표의 신호를 통합하고 구매 및 판매 신호를 발급하기 전에 이중 검증을 수행합니다. 이 엄격한 신호 필터링 메커니즘은 실제 거래에 유효하지 않은 및 잘못된 신호의 영향을 효과적으로 줄일 수 있습니다. 전략은 비효율적인 거래의 빈도를 성공적으로 제어하여 각 거래를 더 신뢰할 수 있으며 단기 시장 움직임을 맹목적으로 따르지 않도록합니다. 매개 변수 최적화를 통해 특정 시장에서 더 나은 성능을 얻을 수 있습니다.
/*backtest start: 2023-12-26 00:00:00 end: 2024-01-02 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 23/11/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 // This indicator plots the difference between the High (of the previous period) // and an exponential moving average (13 period) of the Close (of the previous period). // You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect... // It buy if indicator above 0 and sell if below. // // 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 HEMA(Length) => pos = 0.0 xPrice = close // You can use any series xEMA = ema(xPrice, Length) nRes = high[1] - nz(xEMA[1]) pos:= iff(nRes > 0, 1, iff(nRes < 0, -1, nz(pos[1], 0))) pos strategy(title="Combo Backtest 123 Reversal & High - EMA Strategy", shorttitle="Combo", overlay = true) Length = input(14, minval=1) KSmoothing = input(1, minval=1) DLength = input(3, minval=1) Level = input(50, minval=1) //------------------------- Length_HEMA = input(13, minval=1) reverse = input(false, title="Trade reverse") posReversal123 = Reversal123(Length, KSmoothing, DLength, Level) posHEMA = HEMA(Length_HEMA) pos = iff(posReversal123 == 1 and posHEMA == 1 , 1, iff(posReversal123 == -1 and posHEMA == -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 )