MACDは,MACD指標に基づく定量的な取引戦略で,指定された時間帯内で取引を実行する.コア戦略は,MACD値を計算するために高速および遅い移動平均を使用し,信号線とのクロスオーバーに基づいてシグナルを生成する.この戦略には,リスクを制御し利益をロックするためのストップ・ロストとテイク・プロフィートメカニズムも組み込まれている.
この戦略は,MACD値を計算するために8期および16期指数関数移動平均値 (EMA) を採用し,11期単純な移動平均値 (SMA) をシグナルラインとして使用する.MACD線が信号線の上を横切ると買い信号が生成され,下向きの横断で売れ信号が発生する.この戦略には1%ストップロストと2%テイクプロフィート設定が含まれ,ユーザー指定の時間範囲内で取引を行います (デフォルトは2023年).
この戦略は,明確な論理を持つ構造化された定量的な取引戦略である.これは,実用的な取引システムを形成するために,時間フィルタリングとリスク管理を組み合わせて,MACDクロスオーバーを通じて取引信号を生成する.戦略の高度な調整性は,さらなる最適化とカスタマイゼーションに適している.トレーダーは,ライブ実装の前に徹底的なバックテストを行い,特定の取引ツールと市場状況に応じてパラメータを調整することをお勧めする.
/*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")