Es handelt sich um eine quantitative Handelsstrategie, die auf dem MACD-Indikator basiert und Trades innerhalb eines bestimmten Zeitrahmens ausführt. Die Kernstrategie verwendet schnelle und langsame gleitende Durchschnitte, um MACD-Werte zu berechnen, und erzeugt Signale, die auf Kreuzungen mit der Signallinie basieren. Die Strategie beinhaltet auch Stop-Loss- und Take-Profit-Mechanismen, um Risiken zu kontrollieren und Gewinne zu erzielen.
Die Strategie verwendet 8-Perioden- und 16-Perioden-exponentielle gleitende Durchschnitte (EMA), um MACD-Werte zu berechnen, und verwendet einen 11-Perioden-einfachen gleitenden Durchschnitt (SMA) als Signallinie. Kaufsignale werden generiert, wenn die MACD-Linie über die Signallinie kreuzt, während Verkaufssignale bei Abwärtskreuzungen auftreten. Die Strategie beinhaltet eine Stop-Loss- und 2% Take-Profit-Einstellung von 1% und führt nur Trades innerhalb eines vom Benutzer angegebenen Zeitrahmens aus (Standard ist volles Jahr 2023).
Es handelt sich um eine gut strukturierte quantitative Handelsstrategie mit klarer Logik. Es erzeugt Handelssignale durch MACD-Crossovers, kombiniert mit Zeitfilterung und Risikomanagement, um ein praktisches Handelssystem zu bilden. Die hohe Anpassbarkeit der Strategie macht sie für weitere Optimierung und Anpassung geeignet. Händlern wird empfohlen, vor der Live-Implementierung gründliche Backtests durchzuführen und die Parameter entsprechend spezifischen Handelsinstrumenten und Marktbedingungen anzupassen.
/*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")