Chiến lược này dựa trên đường trung bình di chuyển đơn giản (MA99) 99 giai đoạn để xác định tín hiệu giao dịch. Khi giá chạm MA99, một vị trí có thể được mở mà không cần xác nhận từ hai nến. Đặt dừng lỗ sử dụng cách tiếp cận năng động, có nghĩa là khi giá vượt qua MA99 và được xác nhận trong nến tiếp theo, vị trí được đóng để dừng lỗ. Chiến lược này nhằm mục đích nắm bắt biến động giá xung quanh MA99 trong khi kiểm soát rủi ro thông qua dừng lỗ năng động.
Chiến lược MA99 Touch and Dynamic Stop-Loss mở các vị trí dựa trên mối quan hệ giữa giá và MA99 và sử dụng stop-loss động để kiểm soát rủi ro. Chiến lược này đơn giản và dễ sử dụng, có khả năng theo xu hướng trung và dài hạn, nhưng có thể phải đối mặt với vấn đề giao dịch thường xuyên trong các thị trường hỗn loạn. Bằng cách giới thiệu các chỉ số khác để lọc, tối ưu hóa các tham số, quản lý vị trí và xem xét chi phí, hiệu suất và độ bền của chiến lược này có thể được cải thiện hơn nữa.
/*backtest start: 2023-04-23 00:00:00 end: 2024-04-28 00:00:00 period: 1d basePeriod: 1h 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/ //@version=5 strategy("MA99 Temas ve Dinamik Stop-Loss Stratejisi", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10) // MA99 hesaplayalım ma99 = ta.sma(close, 99) plot(ma99, color=color.blue, title="MA99") // Fiyatın MA99'a temas edip etmediğini kontrol edelim priceTouchedMA99 = (low <= ma99 and high >= ma99) // Long ve short koşullarını tanımlayalım longCondition = priceTouchedMA99 and close > ma99 shortCondition = priceTouchedMA99 and close < ma99 var float longStopLoss = na var float shortStopLoss = na var int longStopTriggered = 0 var int shortStopTriggered = 0 // Alım veya satım sinyallerine göre işlemleri başlatalım ve stop-loss ayarlayalım if (longCondition) strategy.entry("Long Entry", strategy.long) longStopLoss := ma99 longStopTriggered := 0 if (shortCondition) strategy.entry("Short Entry", strategy.short) shortStopLoss := ma99 shortStopTriggered := 0 // Stop-loss koşullarını ve iki mum kuralını kontrol edelim if (not na(longStopLoss)) if (close < longStopLoss) longStopTriggered := 1 else longStopTriggered := 0 if (longStopTriggered[1] == 1 and close < longStopLoss) // Bir önceki mumda tetiklendi ve hala altında strategy.close("Long Entry", comment="Stop Loss Long") longStopLoss := na longStopTriggered := 0 if (not na(shortStopLoss)) if (close > shortStopLoss) shortStopTriggered := 1 else shortStopTriggered := 0 if (shortStopTriggered[1] == 1 and close > shortStopLoss) // Bir önceki mumda tetiklendi ve hala üstünde strategy.close("Short Entry", comment="Stop Loss Short") shortStopLoss := na shortStopTriggered := 0