
Il s’agit d’une stratégie de trading quantitatif basée sur les indicateurs MACD, qui permet d’effectuer des transactions en définissant une période de temps spécifique. Le cœur de la stratégie est de calculer la valeur MACD à l’aide de moyennes mobiles rapides et lentes et de la croisée avec les lignes de signal pour déterminer le moment de l’achat et de la vente. La stratégie comprend également des mécanismes de stop-loss et de stop-stop pour contrôler les risques et bloquer les bénéfices.
La stratégie utilise les moyennes mobiles indicielles de 8 et 16 cycles pour calculer la valeur MACD et utilise la moyenne mobile simple de 11 cycles comme ligne de signal. La ligne MACD génère un signal d’achat lorsque vous traversez la ligne de signal et un signal de vente lorsque vous la traversez. La stratégie introduit également des paramètres de stop loss de 1% et de stop loss de 2%, et exécute des transactions uniquement dans les limites de temps spécifiées par l’utilisateur.
Il s’agit d’une stratégie de trading quantifiée, structurée et logiquement claire. Elle génère des signaux de trading par croisement MACD, en combinaison avec le filtrage du temps et la gestion des risques, formant un système de trading pratique. La stratégie est très réglable, adaptée à une optimisation supplémentaire et à un ajustement personnalisé.
/*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")