Esta é uma estratégia quantitativa de negociação baseada no indicador MACD que executa transações dentro de um intervalo de tempo especificado. A estratégia principal utiliza médias móveis rápidas e lentas para calcular os valores do MACD e gera sinais baseados em cruzamentos com a linha de sinal. A estratégia também incorpora mecanismos de stop-loss e take-profit para controlar o risco e bloquear os lucros.
A estratégia emprega médias móveis exponenciais (EMA) de 8 períodos e 16 períodos para calcular os valores do MACD e usa uma média móvel simples (SMA) de 11 períodos como linha de sinal. Os sinais de compra são gerados quando a linha MACD cruza acima da linha de sinal, enquanto os sinais de venda ocorrem em cruzes descendentes. A estratégia inclui uma configuração de stop-loss de 1% e take-profit de 2%, e apenas executa negócios dentro de um intervalo de tempo especificado pelo usuário (o padrão é o ano completo de 2023).
Esta é uma estratégia de negociação quantitativa bem estruturada com lógica clara. Ela gera sinais de negociação através de cruzamento do MACD, combinados com filtragem de tempo e gerenciamento de risco para formar um sistema de negociação prático. A alta ajustabilidade da estratégia a torna adequada para otimização e personalização adicionais.
/*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")