Đây là một chiến lược giao dịch dựa trên phát hiện khoảng cách giá trị hợp lý (FVG), kết hợp quản lý rủi ro năng động với các mục tiêu lợi nhuận cố định. Hoạt động trên một khung thời gian 15 phút, chiến lược xác định các cơ hội giao dịch tiềm năng bằng cách phát hiện khoảng cách giá trên thị trường. Theo dữ liệu backtest từ tháng 11 năm 2023 đến tháng 8 năm 2024, chiến lược đạt được lợi nhuận ròng 284,40% với tổng số 153 giao dịch, duy trì tỷ lệ thắng 71,24% và yếu tố lợi nhuận 2,422.
Cơ chế cốt lõi xoay quanh việc phát hiện khoảng cách giá trị hợp lý bằng cách theo dõi mối quan hệ giá trên ba ngọn nến liên tiếp:
Chiến lược này cho thấy kết quả ấn tượng bằng cách kết hợp lý thuyết Khoảng cách giá trị công bằng với quản lý rủi ro khoa học. Tỷ lệ thắng cao và yếu tố lợi nhuận ổn định cho thấy giá trị thực tế của nó. Thông qua các hướng tối ưu hóa được đề xuất, có tiềm năng cải thiện hơn nữa. Các nhà giao dịch được khuyên nên tiến hành tối ưu hóa tham số kỹ lưỡng và kiểm tra lại trước khi thực hiện trực tiếp.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-28 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Fair Value Gap Strategy with % SL and Fixed TP", overlay=true, initial_capital=500, default_qty_type=strategy.fixed, default_qty_value=1) // Parameters fvgThreshold = input.float(0.5, "FVG Threshold (%)", minval=0.1, step=0.1) // Fixed take profit in pips takeProfitPips = 50 // Function to convert pips to price pipsToPriceChange(pips) => syminfo.mintick * pips * 10 // Function to detect Fair Value Gap detectFVG(dir) => gap = 0.0 if dir > 0 // Bullish FVG gap := low[2] - high[1] else // Bearish FVG gap := low[1] - high[2] math.abs(gap) > (close * fvgThreshold / 100) // Detect FVGs bullishFVG = detectFVG(1) bearishFVG = detectFVG(-1) // Entry conditions longCondition = bullishFVG shortCondition = bearishFVG // Calculate take profit level longTakeProfit = strategy.position_avg_price + pipsToPriceChange(takeProfitPips) shortTakeProfit = strategy.position_avg_price - pipsToPriceChange(takeProfitPips) // Calculate stop loss amount (5% of capital) stopLossAmount = strategy.equity * 0.01 // Execute trades if (longCondition) strategy.entry("Long", strategy.long) if (shortCondition) strategy.entry("Short", strategy.short) // Set exit conditions if (strategy.position_size > 0) strategy.exit("Long TP", "Long", limit=longTakeProfit) strategy.close("Long SL", when=strategy.openprofit < -stopLossAmount) else if (strategy.position_size < 0) strategy.exit("Short TP", "Short", limit=shortTakeProfit) strategy.close("Short SL", when=strategy.openprofit < -stopLossAmount) // Plot signals plotshape(longCondition, "Buy Signal", location = location.belowbar, color = color.green, style = shape.triangleup, size = size.small) plotshape(shortCondition, "Sell Signal", location = location.abovebar, color = color.red, style = shape.triangledown, size = size.small)