이것은 여러 시간 프레임 EMA 크로스오버에 기반한 트렌드 다음 전략이다. 이 전략은 주로 입점 지점을 결정하기 위해 20, 50, 200 주기의 기하급수적 이동 평균 (EMA) 과 가격-EMA 관계 사이의 크로스오버 관계에 의존하며, 위험 관리에 대한 비율 기반의 영업 및 스톱-러스 수준을 통합합니다. 이 전략은 1 시간, 일일 및 주간 차트와 같은 더 큰 시간 프레임에 특히 효과적입니다.
핵심 논리는 여러 이동 평균 시스템과 가격 행동 분석에 기반합니다.
이것은 명확한 논리를 가진 전략을 따르는 잘 설계된 트렌드입니다. 여러 기술적 지표의 조합을 통해 전략 신뢰성과 명확한 위험 관리 솔루션 모두를 보장합니다. 전략은 특히 더 큰 시간 프레임 차트에 적합하며 중장기 트렌드를 포착하는 데 독특한 이점을 가지고 있습니다. 제안된 최적화 방향을 통해 추가 개선의 여지가 있습니다. 거래자는 라이브 거래 전에 백테스팅 시스템에서 전략을 철저하게 테스트하고 특정 거래 도구 특성에 따라 매개 변수를 조정하는 것이 좋습니다.
/*backtest start: 2024-10-28 00:00:00 end: 2024-11-27 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Cross Strategy with Targets and Fill", overlay=true) // Define EMAs ema20 = ta.ema(close, 20) ema50 = ta.ema(close, 50) ema200 = ta.ema(close, 200) // Plot EMAs (hidden) plot(ema20, color=color.blue, title="EMA 20", display=display.none) plot(ema50, color=color.red, title="EMA 50", display=display.none) plot(ema200, color=color.green, title="EMA 200", display=display.none) // Define the conditions priceCrossAboveEMA20 = ta.crossover(close, ema20) priceCloseAboveEMA20 = close > ema20 ema20AboveEMA50 = ema20 > ema50 ema50AboveEMA200 = ema50 > ema200 // Buy condition buyCondition = priceCrossAboveEMA20 and priceCloseAboveEMA20 and ema20AboveEMA50 and ema50AboveEMA200 // Plot buy signals plotshape(series=buyCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") // Declare and initialize variables for take profit and stop loss levels var float longTakeProfit = na var float longStopLoss = na var float buyPrice = na // Update levels and variables on buy condition if (buyCondition) // Enter a new buy position strategy.entry("Buy", strategy.long) // Set new take profit and stop loss levels longTakeProfit := strategy.position_avg_price * 1.10 // Target is 10% above the buy price longStopLoss := strategy.position_avg_price * 0.95 // Stop loss is 5% below the buy price buyPrice := strategy.position_avg_price // Plot levels for the new trade plotTakeProfit = plot(longTakeProfit, color=color.green, title="Take Profit", linewidth=1, offset=-1) plotStopLoss = plot(longStopLoss, color=color.red, title="Stop Loss", linewidth=1, offset=-1) plotBuyPrice = plot(buyPrice, color=color.blue, title="Buy Price", linewidth=1, offset=-1) // Fill areas between buy price and take profit/stop loss levels fill(plotBuyPrice, plotTakeProfit, color=color.new(color.green, 90), title="Fill to Take Profit") // Light green fill to target fill(plotBuyPrice, plotStopLoss, color=color.new(color.red, 90), title="Fill to Stop Loss") // Light red fill to stop loss // Exit conditions strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=longTakeProfit, stop=longStopLoss)