이 전략은 동력 지표와 이동 평균을 결합하여 트렌드가 방향을 변경할 때 시장 추세와 거래의 반전 지점을 식별합니다. 트렌드 다음 및 역 트렌드 거래 전략에 속합니다. 주요 구성 요소는 공급 및 수요 구역, EMA, 다양한 HH, LL, LH, HL 긴 및 짧은 구역, ATR 트레일링 스톱 손실 등을 포함합니다.
클라인의 높은 범위와 낮은 범위에 기초한 수요와 공급 관계를 구분한다. 빨간색 영역은 수요가 수요 영역을 초과하는 것을 나타낸다. 녹색 영역은 수요가 수요 영역을 초과하는 것을 나타낸다.
200기 EMA를 그래프로 그리고 EMA와 가격을 비교하여 상승세와 하락세를 결정합니다. EMA 이상의 가격은 상승세로 간주되며, EMA 이하의 가격은 하락세로 간주됩니다.
최근 2개의 촛불의 최고와 최저점을 기준으로 반전 구역을 결정합니다.
14 기간 ATR 값을 계산하여 스톱 로스 레벨을 도출하기 위해 2의 인수로 곱합니다.
이전 촛불의 높은/저하점과의 가격 관계를 모니터링한다. 가격이 이전 최고치보다 떨어지면 긴 신호가 발생한다. 가격이 이전 최하위치보다 떨어지면 짧은 신호가 발생한다. 잘못된 신호를 피하기 위해 3번째 촛불까지 입시 신호 확인을 지연한다. 가격이 ATR 후속 스톱 로스 수준을 초과할 때 스톱 로스로 출입한다.
위험 해결 방법:
이 전략은 주요 영역에서 시장 반전 기회를 효과적으로 발견하기 위해 공급/수요 분석, 트렌드 결정, 반전 식별 및 리스크 관리 모듈을 결합합니다. 트렌드 추적 및 역 트렌드 설정에 대한 견고한 시스템입니다. 지속적인 테스트, 최적화 및 인간 경험 판단은 장기적인 안정적인 수익에 중요합니다.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-20 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Supply and Demand Zones with EMA and Trailing Stop", shorttitle="SD Zones", overlay=true) showBuySignals = input(true, title="Show Buy Signals", group="Signals") showSellSignals = input(true, title="Show Sell Signals", group="Signals") showHLZone = input(true, title="Show HL Zone", group="Zones") showLHZone = input(true, title="Show LH Zone", group="Zones") showHHZone = input(true, title="Show HH Zone", group="Zones") showLLZone = input(true, title="Show LL Zone", group="Zones") emaLength = input(200, title="EMA Length", group="EMA Settings") atrLength = input(14, title="ATR Length", group="Trailing Stop") atrMultiplier = input(2, title="ATR Multiplier", group="Trailing Stop") // Function to identify supply and demand zones getZones(src, len, mult) => base = request.security(syminfo.tickerid, "D", close) upper = request.security(syminfo.tickerid, "D", high) lower = request.security(syminfo.tickerid, "D", low) multiplier = request.security(syminfo.tickerid, "D", mult) zonetype = base + multiplier * len zone = src >= zonetype [zone, upper, lower] // Identify supply and demand zones [supplyZone, _, _] = getZones(close, high[1] - low[1], 1) [demandZone, _, _] = getZones(close, high[1] - low[1], -1) // Plot supply and demand zones bgcolor(supplyZone ? color.new(color.red, 80) : na) bgcolor(demandZone ? color.new(color.green, 80) : na) // EMA with Linear Weighted method ema = ta.ema(close, emaLength) // Color code EMA based on its relation to candles emaColor = close > ema ? color.new(color.green, 0) : close < ema ? color.new(color.red, 0) : color.new(color.yellow, 0) // Plot EMA plot(ema, color=emaColor, title="EMA") // Entry Signal Conditions after the third candle longCondition = ta.crossover(close, high[1]) and (bar_index >= 2) shortCondition = ta.crossunder(close, low[1]) and (bar_index >= 2) // Trailing Stop using ATR atrValue = ta.atr(atrLength) trailStop = close - atrMultiplier * atrValue // Strategy Entry and Exit if (longCondition) strategy.entry("Buy", strategy.long) strategy.exit("TrailStop", from_entry="Buy", loss=trailStop) if (shortCondition) strategy.entry("Sell", strategy.short) strategy.exit("TrailStop", from_entry="Sell", loss=trailStop) // Plot Entry Signals plotshape(series=showBuySignals ? longCondition : na, title="Buy Signal", color=color.new(color.green, 0), style=shape.triangleup, location=location.belowbar) plotshape(series=showSellSignals ? shortCondition : na, title="Sell Signal", color=color.new(color.red, 0), style=shape.triangledown, location=location.abovebar) // Plot Trailing Stop plot(trailStop, color=color.new(color.red, 0), title="Trailing Stop") // Plot HH, LL, LH, and HL zones plotshape(series=showHHZone and ta.highest(high, 2)[1] and ta.highest(high, 2)[2] ? 1 : na, title="HH Zone", color=color.new(color.blue, 80), style=shape.triangleup, location=location.abovebar) plotshape(series=showLLZone and ta.lowest(low, 2)[1] and ta.lowest(low, 2)[2] ? 1 : na, title="LL Zone", color=color.new(color.blue, 80), style=shape.triangledown, location=location.belowbar) plotshape(series=showLHZone and ta.highest(high, 2)[1] and ta.lowest(low, 2)[2] ? 1 : na, title="LH Zone", color=color.new(color.orange, 80), style=shape.triangleup, location=location.abovebar) plotshape(series=showHLZone and ta.lowest(low, 2)[1] and ta.highest(high, 2)[2] ? 1 : na, title="HL Zone", color=color.new(color.orange, 80), style=shape.triangledown, location=location.belowbar)