
Ini adalah strategi perdagangan kuantitatif berdasarkan indikator MACD, yang melakukan perdagangan dengan menetapkan jangka masa tertentu. Inti strategi ini adalah menggunakan nilai MACD yang dikira dengan menggunakan purata bergerak cepat dan perlahan, dan bersilang dengan garis isyarat untuk menentukan masa membeli dan menjual. Strategi ini juga mengandungi mekanisme berhenti dan berhenti untuk mengawal risiko dan mengunci keuntungan.
Strategi ini menggunakan purata bergerak indeks ((EMA) 8 dan 16 kitaran untuk mengira nilai MACD, dan menggunakan purata bergerak sederhana ((SMA) 11 kitaran sebagai garis isyarat. Apabila MACD melintasi garis isyarat, ia menghasilkan isyarat beli, dan apabila ia melintasi garis isyarat, ia menghasilkan isyarat jual.
Ini adalah strategi perdagangan kuantitatif yang tersusun dengan struktur yang lengkap dan logik yang jelas. Ia menghasilkan isyarat perdagangan melalui penyambungan MACD, dengan penyaringan masa dan pengurusan risiko, membentuk sistem perdagangan yang praktikal.
/*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")