이 전략은 EMA 트렌드, 라운드 숫자 브레이크아웃, 거래 세션 필터링을 결합한 양적 거래 전략이다. 이 전략은 주로 EMA 트렌드 방향에 의존하며, 주요 라운드 숫자 수준에서 거래 신호로 가격 브레이크아웃 패턴과 결합하여 거래 품질을 향상시키기 위해 세션 필터링을 통합합니다. 이 전략은 리스크 관리를 위해 비율 기반의 스톱 로스와 영리를 사용합니다.
핵심 논리는 다음의 핵심 요소들을 포함합니다. 1. 트렌드 식별 도구로 20 일간의 EMA를 사용하며, EMA 위에 길게 이동하고 아래에 짧게 이동합니다. 2. 주요 둥근 숫자 근처에 포식 패턴을 찾습니다 ($ 5 간격) 3. 낮은 변동성 기간을 피하기 위해 런던 및 뉴욕 세션 중만 거래 4. 긴 신호는: 상승 추세, EMA 이상의 가격, 활성 거래 세션 5. 짧은 신호는: 하향 포식 패턴, EMA 이하의 가격, 활성 거래 세션 6. 무역 관리에 대한 1%의 스톱 로스 및 1.5%의 이익 취득 위험 보상 비율을 구현
이 전략은 EMA 트렌드, 가격 패턴 및 세션 필터링을 포함한 여러 메커니즘을 결합하여 논리적으로 엄격한 거래 시스템을 구축합니다. 특정 제한이 있지만 지속적인 최적화 및 정교화는 전략의 안정성과 수익성을 잠재적으로 향상시킬 수 있습니다. 전략은 특정 거래 요구 사항에 따라 사용자 정의에 적합한 중장기 트렌드 다음 시스템의 견고한 기초로 작용합니다.
/*backtest start: 2024-12-17 00:00:00 end: 2025-01-16 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ //@version=6 strategy("The Gold Box Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=200) // Inputs roundNumberInterval = input.int(5, title="Round Number Interval ($)", minval=1) useEMA = input.bool(true, title="Use 20 EMA for Confluence") emaLength = input.int(20, title="EMA Length") // Session times for London and NY londonSession = input("0300-1200", title="London Session (NY Time)") nySession = input("0800-1700", title="New York Session (NY Time)") // EMA Calculation emaValue = ta.ema(close, emaLength) // Plot Round Number Levels roundLow = math.floor(low / roundNumberInterval) * roundNumberInterval roundHigh = math.ceil(high / roundNumberInterval) * roundNumberInterval // for level = roundLow to roundHigh by roundNumberInterval // line.new(x1=bar_index - 1, y1=level, x2=bar_index, y2=level, color=color.new(color.gray, 80), extend=extend.both) // Session Filter inLondonSession = not na(time("1", londonSession)) inNYSession = not na(time("1", nySession)) inSession = true // Detect Bullish and Bearish Engulfing patterns bullishEngulfing = close > open[1] and open < close[1] and close > emaValue and inSession bearishEngulfing = close < open[1] and open > close[1] and close < emaValue and inSession // Entry Conditions if bullishEngulfing strategy.entry("Long", strategy.long, comment="Bullish Engulfing with EMA Confluence") if bearishEngulfing strategy.entry("Short", strategy.short, comment="Bearish Engulfing with EMA Confluence") // Stop Loss and Take Profit stopLossPercent = input.float(1.0, title="Stop Loss (%)", minval=0.1) / 100 takeProfitPercent = input.float(1.5, title="Take Profit (%)", minval=0.1) / 100 strategy.exit("Exit Long", "Long", stop=close * (1 - stopLossPercent), limit=close * (1 + takeProfitPercent)) strategy.exit("Exit Short", "Short", stop=close * (1 + stopLossPercent), limit=close * (1 - takeProfitPercent))