
Strategi ini ialah sistem perdagangan pintar berdasarkan aliran pesanan institusi, yang meramalkan potensi titik pembalikan harga dengan mengenal pasti blok pesanan dalam pasaran. Sistem ini menggunakan penyelesaian pengurusan sub-gudang dinamik untuk mengoptimumkan pengurusan kedudukan melalui kedudukan sasaran tiga peringkat untuk memaksimumkan keuntungan. Teras strategi adalah untuk menangkap jejak harga yang dijana oleh tingkah laku perdagangan institusi dan mengenal pasti tahap harga penting melalui analisis statistik mata tinggi dan rendah.
Strategi ini berdasarkan beberapa elemen utama:
Strategi ini membina sistem perdagangan yang lengkap melalui analisis aliran pesanan institusi dan pengurusan gudang yang dinamik. Melalui pengenalpastian blok pesanan dan penetapan henti untung berbilang peringkat, kami boleh menangkap peluang untuk operasi modal yang besar dan mencapai kawalan risiko yang berkesan. Adalah disyorkan bahawa pedagang memberi perhatian kepada pilihan persekitaran pasaran dalam dagangan sebenar dan melaraskan tetapan parameter mengikut keadaan tertentu.
/*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)