연속 하락 상승 역전 전략 (Consecutive Downs-Ups Reversal Strategy) 은 가격 하락 상승의 연속성에 기반한 양적 거래 전략이다. 전략은 X 연속 하락 촛불이 최저점을 깨고 Y 연속 상승 촛불이 따라가는 패턴을 파악하여 단기 트렌드 역전 기회를 포착한다. 전략의 기본 아이디어는 가격이 연속 하락을 경험한 후 하락 동력이 풀렸음을 나타낸다. 이후, 연속 하락이 발생하면 상승 동력이 축적되기 시작하여 가격이 리바운드를 일으킬 수 있음을 암시한다. 따라서 이 전략은 가격 역전 기회를 하락에서 상승으로 포착하여 이익을 창출하려고 시도한다.
연속적인 다운업 역전 전략의 원칙은 다음과 같은 단계로 나눌 수 있습니다.
이 전략은 연속적인 하락과 상승의 패턴을 활용하여 하락에서 상승으로 전환 기회를 잡으려고 노력합니다. 동시에 위험을 통제하기 위해 엄격한 스톱 로스 조건을 설정합니다.
연속 하락-상승 역전 전략은 다음과 같은 장점을 가지고 있습니다.
연속적인 다운업 역전 전략은 몇 가지 장점을 가지고 있지만 여전히 다음과 같은 위험에 직면합니다.
이러한 위험을 해결하기 위해 다음과 같은 최적화 조치를 고려할 수 있습니다.
연속 다운업 역전 전략은 다음과 같은 최적화 방향을 가지고 있습니다.
위의 최적화 조치들을 통해, 연속적인 다운업 역전 전략은 시장 변화에 더 잘 적응하고, 위험을 통제하고, 수익성과 안정성을 향상시킬 수 있습니다.
연속 하락 상승 역전 전략은 가격 연속성에 기반한 양적 거래 전략이다. 연속 하락 상승의 패턴을 식별함으로써 단기 시장 역전 기회를 포착한다. 전략 규칙은 간단하고 명확하며 가격 트렌드의 변화에 상대적으로 민감하며 위험을 제어하기 위해 엄격한 스톱 로스 조건을 갖는다. 동시에 전략 매개 변수는 시장 특성에 따라 조정하여 유연성을 높일 수 있다.
그러나 전략은 또한 빈번한 거래, 잠재적으로 너무 엄격한 스톱 로스 배치 및 강력한 트렌딩 시장에서 낮은 성과와 같은 몇 가지 위험을 초래합니다. 이러한 위험을 해결하기 위해 매개 변수를 동적으로 조정하고, 스톱 로스 포지션을 최적화하고, 다른 시장 환경에서 다른 전략을 채택하는 등의 조치를 고려할 수 있습니다.
또한, 전략은 더 많은 지표를 도입하고, 스톱 로스를 최적화하고, 이윤을 취하는 것, 다른 시장 환경에 적응하는 것, 포지션 사이징을 통합하는 것, 그리고 다른 전략과 결합하는 것과 같은 몇 가지 최적화 방향을 가지고 있다. 지속적인 최적화와 개선을 통해, 연속 다운-업 역전 전략은 더 견고하고 효과적인 양적 거래 전략이 될 수 있다.
전반적으로, 연속 하락-올림 역전 전략은 수익을 창출하기 위해 단기 시장 역전 기회를 포착함으로써 간단하고 효과적인 거래 아이디어를 제공합니다. 그러나 실제 응용에서는 더 나은 거래 결과를 달성하기 위해 전략을 적절히 최적화하고 조정하기 위해 특정 시장 조건과 개인 위험 선호도를 결합해야합니다.
결론적으로, 연속 하락-올림 역전 전략은 단기 시장 역전에서 이익을 얻는 간단한 접근 방식을 제공합니다. 그러나 실제 세계 구현에서 양적 거래 전략으로서의 효과를 극대화하기 위해 시장 조건과 개별 위험 관용에 따라 적절한 최적화와 적응이 필요합니다.
/*backtest start: 2023-03-02 00:00:00 end: 2024-03-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bottom Out Strategy", overlay=true) consecutiveBarsUp = input(2) consecutiveBarsDown = input(3) price = close ups = 0.0 ups := price > price[1] ? nz(ups[1]) + 1 : 0 dns = 0.0 dns := price < price[1] ? nz(dns[1]) + 1 : 0 var entry_bar_index = 1000000 var active = false var stop_loss = 0.0 // === INPUT BACKTEST RANGE === i_from = input(defval = timestamp("01 Jan 2023 00:00 +0000"), title = "From") i_thru = input(defval = timestamp("01 Mar 2024 00:00 +0000"), title = "Thru") // === FUNCTION EXAMPLE === date() => true entry_condition() => date() and dns[2] >= consecutiveBarsDown and ups >= consecutiveBarsUp and not active exit_condition() => date() and active and (close < nz(stop_loss) or close < high - 2 * ta.atr(7)) if (entry_condition()) strategy.entry("ConsDnLong", strategy.long, comment="CDLEntry") entry_bar_index := bar_index active := true stop_loss := math.min(close, close[1], close[2]) // log.info("Entry at bar {0}, close={1}, stop_loss={2} ", entry_bar_index, close, stop_loss) if (exit_condition()) strategy.close("ConsDnLong", comment = "CDLClose") // log.info("Close at bar {0}", bar_index) entry_bar_index := 1000000 active := false // if (dns >= consecutiveBarsDown) // strategy.entry("ConsDnSE", strategy.short, comment="ConsDnSE") //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr) plot(high - 2* ta.atr(7))