Chiến lược đảo ngược trung bình với mục nhập gia tăng được thiết kế bởi HedgerLabs là một kịch bản chiến lược giao dịch tiên tiến tập trung vào kỹ thuật đảo ngược trung bình trên thị trường tài chính.
Trung tâm của chiến lược này là Đường trung bình di chuyển đơn giản (SMA) mà tất cả các bước vào và ra đều xoay quanh. Các nhà giao dịch có thể tùy chỉnh chiều dài MA để phù hợp với các phong cách giao dịch và khung thời gian khác nhau.
Khá độc đáo với chiến lược này là hệ thống nhập khẩu gia tăng. Nó bắt đầu một vị trí đầu tiên khi giá lệch khỏi MA bằng một tỷ lệ phần trăm được chỉ định. Các mục nhập tiếp theo sau đó được thực hiện theo các bước gia tăng, theo định nghĩa của nhà giao dịch, khi giá di chuyển xa hơn khỏi MA. Điều này nhằm mục đích tận dụng sự biến động ngày càng tăng.
Chiến lược quản lý các vị trí một cách thông minh bằng cách đi dài khi giá dưới MA và ngắn khi trên để thích nghi với các điều kiện thị trường thay đổi.
Các bước ra được xác định khi giá chạm vào MA, với mục tiêu đóng các vị trí tại các điểm đảo ngược tiềm năng để tối ưu hóa kết quả.
Với calc_on_every_tick được bật, chiến lược liên tục đánh giá thị trường để đảm bảo phản ứng nhanh chóng.
Chiến lược đảo ngược trung bình với bước gia tăng có những lợi thế chính sau:
Những rủi ro cần xem xét bao gồm:
Các lối ra có thể được tối ưu hóa, thêm các bộ lọc xu hướng, giảm kích thước vị trí để giảm thiểu các rủi ro trên.
Chiến lược có thể được tăng cường bằng cách:
Chiến lược đảo ngược trung bình với bước gia tăng tập trung vào các kỹ thuật đảo ngược trung bình bằng cách sử dụng phương pháp định kích thước vị trí gia tăng có hệ thống. Với các cài đặt tùy chỉnh, nó có thể thích nghi với các công cụ giao dịch khác nhau. Nó hoạt động tốt trong các thị trường và phù hợp với các nhà giao dịch có hệ thống ngắn hạn.
/*backtest start: 2023-12-29 00:00:00 end: 2024-01-28 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Mean Reversion with Incremental Entry by HedgerLabs", overlay=true, calc_on_every_tick=true) // Input for adjustable settings maLength = input.int(30, title="MA Length", minval=1) initialPercent = input.float(5, title="Initial Percent for First Order", minval=0.01, step=0.01) percentStep = input.float(1, title="Percent Step for Additional Orders", minval=0.01, step=0.01) // Calculating Moving Average ma = ta.sma(close, maLength) // Plotting the Moving Average plot(ma, "Moving Average", color=color.blue) var float lastBuyPrice = na var float lastSellPrice = na // Function to calculate absolute price percentage difference pricePercentDiff(price1, price2) => diff = math.abs(price1 - price2) / price2 * 100 diff // Initial Entry Condition Check Function initialEntryCondition(price, ma, initialPercent) => pricePercentDiff(price, ma) >= initialPercent // Enhanced Entry Logic for Buy and Sell if (low < ma) if (na(lastBuyPrice)) if (initialEntryCondition(low, ma, initialPercent)) strategy.entry("Buy", strategy.long) lastBuyPrice := low else if (low < lastBuyPrice and pricePercentDiff(low, lastBuyPrice) >= percentStep) strategy.entry("Buy", strategy.long) lastBuyPrice := low if (high > ma) if (na(lastSellPrice)) if (initialEntryCondition(high, ma, initialPercent)) strategy.entry("Sell", strategy.short) lastSellPrice := high else if (high > lastSellPrice and pricePercentDiff(high, lastSellPrice) >= percentStep) strategy.entry("Sell", strategy.short) lastSellPrice := high // Exit Conditions - Close position if price touches the MA if (close >= ma and strategy.position_size > 0) strategy.close("Buy") lastBuyPrice := na if (close <= ma and strategy.position_size < 0) strategy.close("Sell") lastSellPrice := na // Reset last order price when position is closed if (strategy.position_size == 0) lastBuyPrice := na lastSellPrice := na