
이것은 MACD 지표를 기반으로 한 양적 거래 전략이며, 특정 시간 범위를 설정하여 거래를 수행합니다. 전략의 핵심은 빠른 이동 평균과 느린 이동 평균을 사용하여 MACD 값을 계산하고, 신호 선과 교차하여 매매 시간을 결정합니다. 전략에는 위험을 제어하고 이익을 잠금하기 위해 중지 및 중지 장치가 포함되어 있습니다.
전략은 8주기 및 16주기 지수 이동 평균 (EMA) 을 사용하여 MACD 값을 계산하고 11주기 간단한 이동 평균 (SMA) 을 신호 라인으로 사용합니다. MACD 라인은 신호 라인을 통과 할 때 구매 신호를 생성하고, 신호 라인을 통과 할 때 판매 신호를 생성합니다. 동시에, 전략은 1%의 중지 손실과 2%의 중지 설정을 도입하고, 사용자 지정된 시간 범위 내에서만 거래를 수행합니다.
이것은 구조가 완전하고, 논리가 명확한 양적 거래 전략이다. 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")