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 thể chế, dự đoán các điểm đảo ngược 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 sử dụng phương pháp quản lý quy mô vị trí năng động với ba mục tiêu để tối ưu hóa quản lý vị trí và tối đa hóa lợi nhuận.
Chiến lược 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 đơn đặt hàng tổ chức và quản lý vị trí năng động. Thông qua nhận dạng khối đơn đặt hàng và cài đặt lấy lợi nhuận đa cấp, nó nắm bắt các cơ hội từ các hoạt động vốn lớn trong khi thực hiện kiểm soát rủi ro hiệu quả. Các nhà giao dịch được khuyên nên xem xét cẩn thận điều kiện thị trường và điều chỉnh các tham số theo hoàn cảnh cụ thể trong giao dịch trực tiếp.
/*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)