이 전략은 여러 가지 주요 가격 레벨을 기반으로 한 브레이크아웃 거래 시스템입니다. 주로 6 개의 중요한 가격 수준을 추적합니다: 하루의 높은 (HOD), 낮의 낮 (LOD), 시장 전 최고 (PMH), 시장 전 낮은 (PML), 전날의 높은 (PDH), 전날의 낮은 (PDL). 시스템은 이러한 수준의 가격 브레이크를 통해 거래 신호를 생성하고 가격 크로스오버를 기반으로 자동으로 거래를 실행합니다.
핵심 논리는 몇 가지 핵심 요소를 포함합니다.
이 전략은 명확한 논리와 높은 자동화를 특징으로 한 여러 가지 핵심 가격 수준을 모니터링하고 활용하여 시장 기회를 포착합니다. 그러나 기술 지표 필터와 개선된 위험 관리 메커니즘을 통해 해결해야 할 특정 위험도 포함합니다. 전략의 핵심 장점은 시장 추세를 더 잘 포착 할 수있는 다차원 가격 참조 시스템입니다. 그러나 실제 적용은 다른 시장 조건에 따라 특정 매개 변수 조정을 필요로합니다.
/*backtest start: 2024-12-06 00:00:00 end: 2025-01-04 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © tradingbauhaus //@version=6 strategy("HOD/LOD/PMH/PML/PDH/PDL Strategy by tradingbauhaus ", shorttitle="HOD/LOD Strategy", overlay=true) // Daily high and low dailyhigh = request.security(syminfo.tickerid, 'D', high) dailylow = request.security(syminfo.tickerid, 'D', low) // Previous day high and low var float previousdayhigh = na var float previousdaylow = na high1 = request.security(syminfo.tickerid, 'D', high[1]) low1 = request.security(syminfo.tickerid, 'D', low[1]) high0 = request.security(syminfo.tickerid, 'D', high[0]) low0 = request.security(syminfo.tickerid, 'D', low[0]) // Yesterday high and low if (hour == 9 and minute > 30) or hour > 10 previousdayhigh := high1 previousdaylow := low1 else previousdayhigh := high0 previousdaylow := low0 // Premarket high and low t = time("1440", "0000-0930") // 1440 is the number of minutes in a whole day. is_first = na(t[1]) and not na(t) or t[1] < t ending_hour = 9 ending_minute = 30 var float pm_high = na var float pm_low = na if is_first and barstate.isnew and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute)) pm_high := high pm_low := low else pm_high := pm_high[1] pm_low := pm_low[1] if high > pm_high and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute)) pm_high := high if low < pm_low and ((hour < ending_hour or hour >= 16) or (hour == ending_hour and minute < ending_minute)) pm_low := low // Plotting levels plot(dailyhigh, style=plot.style_line, title="Daily high", color=color.white, linewidth=1, trackprice=true) plot(dailylow, style=plot.style_line, title="Daily low", color=color.purple, linewidth=1, trackprice=true) plot(previousdayhigh, style=plot.style_line, title="Previous Day high", color=color.orange, linewidth=1, trackprice=true) plot(previousdaylow, style=plot.style_line, title="Previous Day low", color=color.blue, linewidth=1, trackprice=true) plot(pm_high, style=plot.style_line, title="Premarket high", color=color.green, linewidth=1, trackprice=true) plot(pm_low, style=plot.style_line, title="Premarket low", color=color.red, linewidth=1, trackprice=true) // Strategy logic // Long entry: Price crosses above PMH or PDH if (ta.crossover(close, pm_high) or ta.crossover(close, previousdayhigh)) and strategy.opentrades == 0 strategy.entry("Long", strategy.long) // Short entry: Price crosses below PML or PDL if (ta.crossunder(close, pm_low) or ta.crossunder(close, previousdaylow)) and strategy.opentrades == 0 strategy.entry("Short", strategy.short) // Exit long: Price reaches HOD if strategy.position_size > 0 and ta.crossover(close, dailyhigh) strategy.close("Long") // Exit short: Price reaches LOD if strategy.position_size < 0 and ta.crossunder(close, dailylow) strategy.close("Short")