
Chiến lược này là một hệ thống giao dịch thông minh dựa trên luồng lệnh của tổ chức, dự đoán các điểm đảo chiều giá tiềm năng bằng cách xác định các khối lệnh trên thị trường. Hệ thống áp dụng giải pháp quản lý kho phụ năng động để tối ưu hóa việc quản lý vị trí thông qua ba cấp vị trí mục tiêu nhằm tối đa hóa lợi nhuận. Cốt lõi của chiến lược này là nắm bắt dấu vết giá được tạo ra bởi hành vi giao dịch của tổ chức và xác định mức giá quan trọng thông qua phân tích thống kê các điểm cao và thấp.
Chiến lược này dựa trên một số yếu tố chính:
Chiến lược này xây dựng một hệ thống giao dịch hoàn chỉnh thông qua phân tích luồng lệnh của tổ chức và quản lý kho hàng năng động. Thông qua việc xác định các khối lệnh và thiết lập mức dừng lỗ đa cấp, chúng tôi có thể nắm bắt cơ hội của các hoạt động vốn lớn và đạt được khả năng kiểm soát rủi ro hiệu quả. Người giao dịch nên chú ý đến việc lựa chọn môi trường thị trường khi giao dịch thực tế và điều chỉnh cài đặt thông số theo từng trường hợp cụ thể.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Institutional Order Flow Strategy", overlay=true)
// Input settings
inputSession = input("0930-1600", "Trading Session") // Trading session
lookbackPeriod = input.int(20, "Order Block Lookback Period", minval=1) // Lookback for Order Blocks
target1Pct = input.float(0.5, "Target 1 (% move)", step=0.1, minval=0.1) // First profit target
target2Pct = input.float(1.0, "Target 2 (% move)", step=0.1, minval=0.1) // Second profit target
target3Pct = input.float(1.5, "Target 3 (% move)", step=0.1, minval=0.1) // Third profit target
// Order Block identification
highestHigh = ta.highest(high, lookbackPeriod)
lowestLow = ta.lowest(low, lookbackPeriod)
orderBlockBuy = ta.valuewhen(close[1] < open[1] and close > open, highestHigh, 0)
orderBlockSell = ta.valuewhen(close[1] > open[1] and close < open, lowestLow, 0)
// Entry logic
inSession = true
longCondition = close > orderBlockBuy and inSession
shortCondition = close < orderBlockSell and inSession
// Strategy entries
if longCondition
strategy.entry("Long", strategy.long)
if shortCondition
strategy.entry("Short", strategy.short)
// Calculate targets for scaling out
longTarget1 = strategy.position_avg_price + strategy.position_avg_price * target1Pct / 100
longTarget2 = strategy.position_avg_price + strategy.position_avg_price * target2Pct / 100
longTarget3 = strategy.position_avg_price + strategy.position_avg_price * target3Pct / 100
shortTarget1 = strategy.position_avg_price - strategy.position_avg_price * target1Pct / 100
shortTarget2 = strategy.position_avg_price - strategy.position_avg_price * target2Pct / 100
shortTarget3 = strategy.position_avg_price - strategy.position_avg_price * target3Pct / 100
// Exit logic with scaling out
if strategy.position_size > 0
strategy.exit("Target 1", from_entry="Long", limit=longTarget1, qty_percent=50)
strategy.exit("Target 2", from_entry="Long", limit=longTarget2, qty_percent=30)
strategy.exit("Target 3", from_entry="Long", limit=longTarget3, qty_percent=20)
if strategy.position_size < 0
strategy.exit("Target 1", from_entry="Short", limit=shortTarget1, qty_percent=50)
strategy.exit("Target 2", from_entry="Short", limit=shortTarget2, qty_percent=30)
strategy.exit("Target 3", from_entry="Short", limit=shortTarget3, qty_percent=20)
// Visualize Order Blocks
plot(orderBlockBuy, "Order Block Buy", color=color.green, linewidth=2, style=plot.style_line)
plot(orderBlockSell, "Order Block Sell", color=color.red, linewidth=2, style=plot.style_line)