
Đây là một chiến lược giao dịch định lượng dựa trên chỉ số MACD, thực hiện giao dịch bằng cách thiết lập một khoảng thời gian cụ thể. Cốt lõi của chiến lược là sử dụng các đường trung bình di chuyển nhanh và chậm để tính giá trị MACD và giao thoa với đường tín hiệu để xác định thời gian mua và bán.
Chiến lược sử dụng chỉ số di chuyển trung bình ((EMA) 8 chu kỳ và 16 chu kỳ để tính giá trị MACD và sử dụng trung bình di chuyển đơn giản ((SMA) 11 chu kỳ làm đường tín hiệu. Khi MACD đi qua đường tín hiệu, nó tạo ra tín hiệu mua và khi đi qua đường tín hiệu, nó tạo ra tín hiệu bán. Đồng thời, chiến lược đã giới thiệu thiết lập dừng lỗ 1% và dừng lại 2%, và chỉ thực hiện giao dịch trong phạm vi thời gian mà người dùng chỉ định.
Đây là một chiến lược giao dịch định lượng có cấu trúc, logic rõ ràng. Nó tạo ra tín hiệu giao dịch thông qua giao dịch MACD, kết hợp với lọc thời gian và quản lý rủi ro, tạo thành một hệ thống giao dịch thực tế. Chiến lược có khả năng điều chỉnh mạnh mẽ, thích hợp để tối ưu hóa và điều chỉnh cá nhân hơn nữa.
/*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")