연속 촛불 반전 브레이크아웃 전략의 핵심 아이디어는 주가가 반전 신호를 표시하고 연속 하락 기간 후 중요한 저항 수준을 통과 할 때 거래 기회를 포착하는 것입니다. 전략은 연속 하락 촛불의 수, 연속 상승 촛불의 수, 및 스톱-손실 조건과 같은 매개 변수를 설정합니다. 특정 조건이 충족되면 긴 포지션을 입력하고 스톱-손실 조건이 유발되면 포지션을 닫습니다.
전략의 핵심은 역전 신호를 올바르게 식별하고 적절한 매개 변수를 설정하는 데 있습니다. 연속 하향 촛불의 수와 연속 상향 촛불의 수는 백테스트 결과를 기반으로 최적화해야하는 두 가지 중요한 매개 변수입니다. 또한 스톱 로스 조건을 설정하는 것도 중요합니다. 너무 일찍 포지션을 닫지 않고 기회를 놓치지 않고 위험을 제어해야합니다.
연속 촛불 반전 브레이크아웃 전략은 주식 가격의 연속 하락 후 반전 신호를 캡처하여 거래 결정을 내린다. 전략은 간단하고 이해하기 쉽고, 오스실레이션 시장 및 트렌드의 초기 단계에서 사용하기에 적합하다. 연속 촛불 수 및 스톱-로스 조건과 같은 매개 변수를 설정함으로써 다양한 시장 조건에 유연하게 적응할 수 있다. 그러나 전략은 장기 트렌딩 시장에 대한 평균 적응력 및 포지션 관리 및 자본 관리 부족과 같은 몇 가지 한계를 가지고 있다.
실제 응용 분야에서는 시장 특성과 자신의 위험 선호도에 따라 전략을 최적화하고 개선해야합니다. 예를 들어, 연속 촛불 수와 스톱 로스 조건을 최적화하고, 장기 및 단위 포지션에 대한 양방향 거래를 추가하고, 포지션 관리 및 자본 관리를 도입하고, 다른 기술 지표 및 거래 신호와 결합하여 전략의 수익성을 향상시킬 수 있습니다. 이는 위험을 제어하고 안정적인 투자 수익을 달성 할 수 있습니다.
일반적으로, 연속 촛불 역전 브레이크아웃 전략은 더 많은 탐구와 실무에서 최적화를 가치있는 간단하고 실용적인 거래 전략입니다. 그러나 어떤 전략도 전능하지 않습니다. 투자자는 또한 자신의 경험과 판단을 결합하고 신중한 결정을 내리고 장기적으로 시장에서 이길 수 없도록 엄격하게 실행해야합니다.
/*backtest start: 2024-02-01 00:00:00 end: 2024-02-29 23:59:59 period: 2h basePeriod: 15m 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))