Strategi ini adalah sistem perdagangan pintar berdasarkan aliran pesanan institusi, yang meramalkan titik pembalikan harga yang berpotensi dengan mengenal pasti Blok Perintah di pasaran. Sistem ini menggunakan pendekatan pengurusan skala kedudukan dinamik dengan sasaran tiga peringkat untuk mengoptimumkan pengurusan kedudukan dan memaksimumkan pulangan. Inti strategi terletak pada menangkap jejak harga yang ditinggalkan oleh tingkah laku perdagangan institusi melalui analisis statistik tertinggi dan terendah.
Strategi ini berdasarkan beberapa elemen utama:
Strategi ini membina sistem perdagangan yang lengkap melalui analisis aliran pesanan institusi dan pengurusan kedudukan dinamik. Melalui pengenalan blok pesanan dan tetapan pengambilan keuntungan pelbagai peringkat, ia menangkap peluang dari operasi modal besar sambil melaksanakan kawalan risiko yang berkesan. Pedagang dinasihatkan untuk mempertimbangkan dengan teliti keadaan pasaran dan menyesuaikan parameter mengikut keadaan tertentu dalam perdagangan langsung.
/*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)