Chiến lược này là một hệ thống giao dịch định lượng dựa trên tiếp xúc thị trường mở (OME), đưa ra quyết định giao dịch bằng cách tính toán các giá trị OME tích lũy để đánh giá xu hướng thị trường, kết hợp với các chỉ số kiểm soát rủi ro như tỷ lệ Sharpe. Chiến lược này áp dụng một cơ chế lấy lợi nhuận và dừng lỗ năng động để kiểm soát rủi ro hiệu quả trong khi đảm bảo lợi nhuận. Nó chủ yếu tập trung vào cách biến động giá sau khi thị trường mở ảnh hưởng đến xu hướng tổng thể, sử dụng các phương pháp khoa học để đánh giá những thay đổi về tâm lý và xu hướng thị trường.
Lòng cốt của chiến lược là đo lường xu hướng thị trường bằng cách tính toán OME (Open Market Exposure). OME được tính bằng tỷ lệ chênh lệch giữa giá đóng hiện tại và giá mở ngày trước so với giá mở trước đó. Chiến lược thiết lập ngưỡng OME tích lũy làm tín hiệu giao dịch, nhập vào các vị trí dài khi OME tích lũy vượt quá ngưỡng thiết lập và đóng các vị trí khi giảm xuống dưới ngưỡng âm. Tỷ lệ Sharpe được giới thiệu như một chỉ số đánh giá rủi ro, đo tỷ lệ rủi ro-thái vốn bằng cách tính toán trung bình và lệch chuẩn của OME tích lũy. Chiến lược cũng bao gồm một cơ chế lấy lợi nhuận và dừng lỗ tỷ lệ cố định để bảo vệ lợi nhuận và kiểm soát lỗ.
Chiến lược điều chỉnh vị trí năng động tiếp xúc thị trường mở là một hệ thống giao dịch hoàn chỉnh kết hợp phân tích kỹ thuật và quản lý rủi ro. Thông qua việc áp dụng sáng tạo của chỉ số OME, nó đạt được sự nắm bắt hiệu quả các xu hướng thị trường.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-11 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Open Market Exposure (OME) Strategy", overlay=true) // Input parameters length = input(14, title="Length for Variance") sharpe_length = input(30, title="Length for Sharpe Ratio") threshold = input(0.01, title="Cumulative OME Threshold") // Define a threshold for entry take_profit = input(0.02, title="Take Profit (%)") // Define a take profit percentage stop_loss = input(0.01, title="Stop Loss (%)") // Define a stop loss percentage // Calculate Daily Returns daily_return = (close - close[1]) / close[1] // Open Market Exposure (OME) calculation ome = (close - open[1]) / open[1] // Cumulative OME var float cum_ome = na if na(cum_ome) cum_ome := 0.0 if (dayofweek != dayofweek[1]) // Reset cumulative OME daily cum_ome := 0.0 cum_ome := cum_ome + ome // Performance Metrics Calculation (Sharpe Ratio) mean_return = ta.sma(cum_ome, sharpe_length) std_dev = ta.stdev(cum_ome, sharpe_length) sharpe_ratio = na(cum_ome) or (std_dev == 0) ? na : mean_return / std_dev // Entry Condition: Buy when Cumulative OME crosses above the threshold if (cum_ome > threshold) strategy.entry("Long", strategy.long) // Exit Condition: Sell when Cumulative OME crosses below the threshold if (cum_ome < -threshold) strategy.close("Long") // Take Profit and Stop Loss if (strategy.position_size > 0) // Calculate target and stop levels target_price = close * (1 + take_profit) stop_price = close * (1 - stop_loss) // Place limit and stop orders strategy.exit("Take Profit", "Long", limit=target_price) strategy.exit("Stop Loss", "Long", stop=stop_price)