Chiến lược này là một hệ thống giao dịch tự động dựa trên khung thời gian 5 phút, kết hợp các phương pháp phân tích khối lượng và theo xu hướng trung bình động.
Logic cốt lõi bao gồm các thành phần chính sau: 1. Xác định xu hướng: Sử dụng SMA 50 giai đoạn để xác định hướng thị trường, xem xét xu hướng tăng khi đóng trên MA và xu hướng giảm khi dưới MA. Cũng xác nhận xu hướng bằng cách sử dụng chuyển động giá trong 30 phút qua (6 nến). Phân tích khối lượng: Tính toán khối lượng mua và bán dựa trên chuyển động giá, phân phối khối lượng trong mỗi nến theo vị trí giá đóng. 3. Sản xuất tín hiệu: Tạo tín hiệu dài khi khối lượng mua vượt quá khối lượng bán trong xu hướng tăng; tạo tín hiệu ngắn khi khối lượng bán vượt quá khối lượng mua trong xu hướng giảm. Quản lý rủi ro: Thực hiện mục tiêu dừng lỗ 3% và 29% lợi nhuận để quản lý tỷ lệ rủi ro-lợi nhuận cho mỗi giao dịch.
Chiến lược này kết hợp theo dõi xu hướng và phân tích khối lượng để tạo ra một hệ thống giao dịch tần số cao toàn diện. Sức mạnh chính của nó nằm ở việc xác nhận tín hiệu đa chiều và kiểm soát rủi ro mạnh mẽ. Mặc dù rủi ro vốn có tồn tại, các hướng tối ưu hóa được đề xuất có thể tăng thêm sự ổn định và khả năng thích nghi của chiến lược. Chiến lược đặc biệt phù hợp với môi trường thị trường xu hướng và có thể đạt được kết quả giao dịch ổn định thông qua tối ưu hóa tham số và quản lý rủi ro thích hợp.
/*backtest start: 2024-01-10 00:00:00 end: 2025-01-08 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}] */ // This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © Jerryorange //@version=6 //@version=6 strategy("Autonomous 5-Minute Robot", overlay=true, fill_orders_on_standard_ohlc=true) // --- Inputs --- maLength = input.int(50, title="Trend MA Length") // Moving average length for trend detection volumeLength = input.int(10, title="Volume Length") // Length for volume analysis stopLossPercent = input.float(3, title="Stop Loss (%)") // 3% stop loss takeProfitPercent = input.float(29, title="Take Profit (%)") // 29% take profit // --- Market Trend Detection --- ma = ta.sma(close, maLength) // Simple moving average for trend direction isBullish = close > ma // Market is bullish if the close is above the moving average isBearish = close < ma // Market is bearish if the close is below the moving average // --- Volume Analysis --- buyVolume = (high != low) ? volume * (close - low) / (high - low) : 0 sellVolume = (high != low) ? volume * (high - close) / (high - low) : 0 totalVolume = volume // --- Define Market Direction over Last 30 Minutes (6 candles in 5-minute chart) --- lookback = 6 // 30 minutes / 5 minutes = 6 bars prevClose = close[lookback] // Previous close 30 minutes ago currentClose = close // Current close uptrend = currentClose > prevClose and isBullish // Uptrend condition downtrend = currentClose < prevClose and isBearish // Downtrend condition // --- Strategy Logic --- longCondition = uptrend and buyVolume > sellVolume // Buy signal when trend is up and buy volume exceeds sell volume shortCondition = downtrend and sellVolume > buyVolume // Sell signal when trend is down and sell volume exceeds buy volume // --- Entry and Exit Strategy --- if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // --- Exit Strategy based on Stop Loss and Take Profit --- strategy.exit("Exit Long", "Long", stop=close * (1 - stopLossPercent / 100), limit=close * (1 + takeProfitPercent / 100)) strategy.exit("Exit Short", "Short", stop=close * (1 + stopLossPercent / 100), limit=close * (1 - takeProfitPercent / 100)) // --- Plotting for Visualization --- plot(ma, color=color.blue, title="50-period MA") // Trend line plotshape(longCondition, style=shape.labelup, location=location.belowbar, color=color.green, text="BUY") plotshape(shortCondition, style=shape.labeldown, location=location.abovebar, color=color.red, text="SELL")