이 전략은 MACD 지표를 기반으로 한 양적 거래 전략으로 지정된 시간 범위 내에서 거래를 실행합니다. 핵심 전략은 MACD 값을 계산하기 위해 빠르고 느린 이동 평균을 활용하고 신호 라인과 교차를 기반으로 신호를 생성합니다. 전략은 또한 위험을 제어하고 이익을 잠금하기 위해 스톱 로스 및 영업 메커니즘을 통합합니다.
이 전략은 MACD 값을 계산하기 위해 8주기 및 16주기 기하급수적 이동 평균 (EMA) 을 사용하며, 11주기 간단한 이동 평균 (SMA) 을 신호선으로 사용합니다. MACD 라인이 신호선을 넘을 때 구매 신호가 생성되며, 하향 경로에서 판매 신호가 발생합니다. 이 전략에는 1%의 스톱 로스 및 2%의 영업 취득 설정이 포함되어 있으며, 사용자 지정된 시간 범위 내에서만 거래를 실행합니다. (예정값은 전체 2023년입니다.)
이것은 명확한 논리를 가진 잘 구조화된 양적 거래 전략이다. 그것은 실용적인 거래 시스템을 형성하기 위해 시간 필터링과 위험 관리와 결합하여 MACD 크로스오버를 통해 거래 신호를 생성합니다. 전략의 높은 조정 가능성은 추가 최적화 및 사용자 정의에 적합합니다. 거래자는 라이브 구현 전에 철저한 백테스팅을 수행하고 특정 거래 도구 및 시장 조건에 따라 매개 변수를 조정하는 것이 좋습니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 00:00:00 period: 1d basePeriod: 1d 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/ // © sergengurgen83 //@version=5 strategy(title="MACD Crossover Strategy with Date Range", shorttitle="MACD Crossover strategys.g", overlay=true) // Kullanıcı girişleri fastLength = input.int(8, minval=1, title="Hızlı MA Süresi") slowLength = input.int(16, minval=1, title="Yavaş MA Süresi") signalLength = input.int(11, minval=1, title="Sinyal MA Süresi") stopLossPercent = input.float(1.0, title="Stop-Loss Yüzdesi") / 100 takeProfitPercent = input.float(2.0, title="Kar Al Yüzdesi") / 100 // Tarih aralığı girişleri startDate = input(timestamp("2023-01-01 00:00"), title="Başlangıç Tarihi") endDate = input(timestamp("2023-12-31 23:59"), title="Bitiş Tarihi") // Tarih aralığı kontrolü inDateRange = true // Hareketli Ortalamalar ve MACD Hesaplamaları fastMA = ta.ema(close, fastLength) slowMA = ta.ema(close, slowLength) macd = fastMA - slowMA signal = ta.sma(macd, signalLength) // Alım ve Satım sinyalleri buySignal = ta.crossover(macd, signal) and inDateRange sellSignal = ta.crossunder(macd, signal) and inDateRange // Strateji kuralları if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.close("Buy") // Stop-Loss ve Kar Al seviyeleri strategy.exit("Sell", from_entry="Buy", loss=stopLossPercent * close, profit=takeProfitPercent * close) // Sinyallerin grafikte gösterilmesi plot(macd, color=color.blue, title="MACD") plot(signal, color=color.red, title="Sinyal") hline(0, color=color.purple, linestyle=hline.style_dashed) plotshape(series=buySignal, location=location.belowbar, color=color.green, style=shape.labelup, title="Al", text="AL") plotshape(series=sellSignal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sat", text="SAT")