Bài viết này giới thiệu một hệ thống giao dịch theo xu hướng kết hợp Darvas Box và Moving Average 25 giai đoạn (MA25). Chiến lược xác định các vùng củng cố giá thông qua hình thành hộp và xác nhận xu hướng với đường trung bình động để nắm bắt các biến động thị trường mạnh mẽ trong thời gian phá vỡ.
Chiến lược bao gồm ba thành phần cốt lõi:
Chiến lược này xây dựng một hệ thống giao dịch mạnh mẽ bằng cách kết hợp lý thuyết hộp Darvas cổ điển với xu hướng trung bình động. Ưu điểm chính của nó nằm trong việc nắm bắt hiệu quả thị trường xu hướng trong khi kiểm soát rủi ro thông qua nhiều cơ chế lọc. Mặc dù có một số sự chậm trễ vốn có, chiến lược có thể đạt được hiệu suất ổn định trong thị trường xu hướng thông qua tối ưu hóa tham số và quản lý rủi ro thích hợp. Các nhà giao dịch được khuyên nên tập trung vào việc lựa chọn môi trường thị trường và điều chỉnh các tham số theo động dựa trên điều kiện thực tế khi thực hiện chiến lược.
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("DARVAS BOX with MA25 Buy Condition", overlay=true, shorttitle="AEG DARVAS") // Input for box length boxp = input.int(5, "BOX LENGTH") // Calculate 25-period moving average ma25 = ta.sma(close, 25) // Lowest low and highest high within the box period LL = ta.lowest(low, boxp) k1 = ta.highest(high, boxp) k2 = ta.highest(high, boxp - 1) k3 = ta.highest(high, boxp - 2) // New high detection NH = ta.valuewhen(high > k1[1], high, 0) // Logic to detect top and bottom of Darvas Box box1 = k3 < k2 TopBox = ta.valuewhen(ta.barssince(high > k1[1]) == boxp - 2 and box1, NH, 0) BottomBox = ta.valuewhen(ta.barssince(high > k1[1]) == boxp - 2 and box1, LL, 0) // Plot the top and bottom Darvas Box lines plot(TopBox, linewidth=3, color=color.green, title="Top Box") plot(BottomBox, linewidth=3, color=color.red, title="Bottom Box") plot(ma25, color=#2195f31e, linewidth=2, title="ma25") // --- Buy and Sell conditions --- // Buy when price breaks above the Darvas Box AND MA15 buyCondition = ta.crossover(close, TopBox) and close > ma25 // Sell when price drops below the Darvas Box sellCondition = ta.crossunder(close, BottomBox) // --- Buy and Sell Signals --- // Plot BUY+ and SELL labels plotshape(series=buyCondition, title="Buy+ Signal", location=location.abovebar, color=#72d174d3, style=shape.labeldown, text="BUY") plotshape(series=sellCondition, title="Sell Signal", location=location.belowbar, color=color.rgb(234, 62, 62, 28), style=shape.labelup, text="SELL") // --- Strategy execution --- if (buyCondition) strategy.entry("Buy", strategy.long) if (sellCondition) strategy.close("Buy")