Esta estrategia es un sistema de negociación inteligente basado en el flujo de pedidos institucionales, que predice puntos de inversión de precios potenciales mediante la identificación de Bloques de Pedidos en el mercado. El sistema emplea un enfoque de gestión de escala de posición dinámica con objetivos de tres niveles para optimizar la gestión de posiciones y maximizar los rendimientos. El núcleo de la estrategia radica en capturar las huellas de precios dejadas por el comportamiento de negociación institucional a través del análisis estadístico de máximos y mínimos.
La estrategia se basa en varios elementos clave:
Esta estrategia construye un sistema comercial completo a través del análisis institucional del flujo de pedidos y la gestión dinámica de posiciones. A través de la identificación de bloques de pedidos y la configuración de captación de ganancias de varios niveles, captura oportunidades de operaciones de gran capital mientras implementa un control eficaz del riesgo. Se aconseja a los operadores que consideren cuidadosamente las condiciones del mercado y ajusten los parámetros de acuerdo con circunstancias específicas en el comercio en vivo.
/*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)