
Chiến lược này là một hệ thống giao dịch định lượng dựa trên mức độ tiếp xúc với thị trường mở (OME) để đánh giá xu hướng thị trường bằng cách tính toán giá trị OME tích lũy và đưa ra quyết định giao dịch 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 sử dụng cơ chế dừng lỗ động để kiểm soát rủi ro hiệu quả trong khi đảm bảo lợi nhuận. Chiến lược này tập trung vào ảnh hưởng của biến đổi giá sau khi thị trường mở cửa đối với xu hướng tổng thể, đánh giá sự thay đổi trong tâm trạng và xu hướng thị trường bằng phương pháp khoa học.
Trọng tâm của chiến lược là đo lường xu hướng thị trường bằng cách tính toán mức độ tiếp xúc với thị trường mở ((OME)). OME được tính bằng tỷ lệ chênh lệch giữa giá đóng cửa hiện tại và giá mở cửa ngày giao dịch trước đó so với giá mở cửa trước đó. Chiến lược đặt ngưỡng OME tích lũy làm tín hiệu giao dịch, khi OME tích lũy vượt quá ngưỡng thiết lập, nhiều người tham gia vào thị trường, và khi giá trị thấp hơn mức giá tiêu cực.
Open Market Exposure Dynamic Disposal Strategy 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. Bằng cách ứng dụng sáng tạo cho chỉ số OME, việc nắm bắt hiệu quả các xu hướng thị trường được thực hiện. Chiến lược được thiết kế hợp lý, có tính thực tế và khả năng mở rộng mạnh mẽ.
/*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)