Эта стратегия представляет собой интеллектуальную торговую систему, основанную на институциональном потоке заказов, которая предсказывает потенциальные точки переворота цен путем выявления блоков заказов на рынке.
Стратегия основана на нескольких ключевых элементах:
Эта стратегия создает полную торговую систему с помощью институционального анализа потока заказов и динамического управления позициями. Благодаря идентификации блоков заказов и многоуровневым настройкам получения прибыли, она захватывает возможности от крупных капитальных операций при одновременном осуществлении эффективного контроля рисков. Трейдерам рекомендуется тщательно рассматривать рыночные условия и корректировать параметры в соответствии с конкретными обстоятельствами в режиме реального времени.
/*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)