Đây là một chiến lược giao dịch định lượng dựa trên chỉ số MACD thực hiện giao dịch trong một khoảng thời gian nhất định. Chiến lược cốt lõi sử dụng trung bình di chuyển nhanh và chậm để tính toán giá trị MACD và tạo ra tín hiệu dựa trên chéo với đường tín hiệu. Chiến lược cũng kết hợp các cơ chế dừng lỗ và lấy lợi nhuận để kiểm soát rủi ro và khóa lợi nhuận.
Chiến lược này sử dụng trung bình di chuyển biểu tượng 8 giai đoạn và 16 giai đoạn (EMA) để tính toán giá trị MACD, và sử dụng trung bình di chuyển đơn giản 11 giai đoạn (SMA) làm đường tín hiệu. Các tín hiệu mua được tạo ra khi đường MACD vượt qua trên đường tín hiệu, trong khi các tín hiệu bán xảy ra trên các đường chéo xuống. Chiến lược bao gồm thiết lập dừng lỗ 1% và 2% lấy lợi nhuận, và chỉ thực hiện giao dịch trong phạm vi thời gian được chỉ định bởi người dùng (mặc định là năm 2023 đầy đủ).
Đây là một chiến lược giao dịch định lượng được cấu trúc tốt với logic rõ ràng. Nó tạo ra các tín hiệu giao dịch thông qua các giao dịch chéo MACD, kết hợp với lọc thời gian và quản lý rủi ro để tạo thành một hệ thống giao dịch thực tế. Khả năng điều chỉnh cao của chiến lược làm cho nó phù hợp để tối ưu hóa và tùy chỉnh hơn nữa. Các nhà giao dịch được khuyên nên tiến hành kiểm tra kỹ lưỡng trước khi thực hiện trực tiếp và điều chỉnh các tham số theo các công cụ giao dịch cụ thể và điều kiện thị trường.
/*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")