La estrategia de negociación de la red de indicadores de RSI integra los indicadores técnicos de RSI y CCI con un enfoque de negociación de red fija. Utiliza los valores de los indicadores de RSI y CCI para determinar las señales de entrada, y establece órdenes de ganancia y órdenes de red adicionales basadas en un índice de ganancia fijo y el número de redes. La estrategia también incorpora un mecanismo de cobertura contra movimientos de precios volátiles.
Las señales largas se generan cuando el RSI de 5 minutos y el RSI de 30 minutos están por debajo de los valores de umbral, y el CCI de 1 hora está por debajo del umbral.
El nivel del precio de toma de ganancias se calcula utilizando el precio de entrada y el índice de ganancia objetivo.
Después del primer pedido, los pedidos de red de tamaño fijo restantes se colocan uno por uno hasta alcanzar el número especificado de redes.
Si el precio aumenta más allá del porcentaje del umbral de cobertura establecido desde la entrada, todas las posiciones abiertas se cubren cerrándolas.
Si el precio cae más allá del porcentaje de umbral de reversión establecido desde la entrada, todas las órdenes pendientes se cancelarán para esperar nuevas oportunidades de entrada.
Estos riesgos pueden mitigarse ajustando los parámetros del indicador, ampliando el rango de cobertura y reduciendo el rango de inversión.
La estrategia RSI Grid determina las entradas con indicadores, y bloquea en ganancias estables utilizando la red fija toma ganancias y entradas. También incorpora cobertura de volatilidad y reentrada después de reversiones. La integración de múltiples mecanismos ayuda a reducir los riesgos comerciales y aumentar las tasas de rentabilidad.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Custom RSI/CCI Strategy with Fixed Grid", shorttitle="INVESTCOIN_RSI_CCI_Fixed_Grid", overlay=true) // Input parameters input_rsi_5min_value = 55 input_rsi_30min_value = 65 input_cci_1hr_value = 85 input_profit_target_percent = 0.6 // Target profit in percentage input_grid_size = 15 // Number of orders in grid input_hedging_percent = 20 // Percentage price change for hedging input_first_order_offset = 0.2 // Offset for the first order in percentage input_reversal_percent = 0.4 // Percentage price change for reversal // Calculating the RSI and CCI values rsi_5min = ta.rsi(close, 5) rsi_30min = ta.rsi(close, 30) cci_1hr = ta.cci(close, 60) // Define strategy conditions based on the provided screenshot long_condition = (rsi_5min < input_rsi_5min_value) and (rsi_30min < input_rsi_30min_value) and (cci_1hr < input_cci_1hr_value) // Plot signals plotshape(series=long_condition, title="Long Entry Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) // Initialize a variable to store the entry price var float entry_price = na // Initialize a variable to store the profit target var float profit_target = na // Hedge condition based on price change percentage var float hedge_price = na // Initialize a variable to count the total number of orders var int total_orders = 0 // Calculate the initial order size based on account equity and grid size var float initial_order_size = 1 / input_grid_size / 100 // Entry orders with fixed size if (long_condition and total_orders < 9000) // Place first order with an offset if total_orders == 0 strategy.order("First Long", strategy.long, qty=initial_order_size, limit=close * (1 - input_first_order_offset / 100)) total_orders := total_orders + 1 // Place remaining grid orders for i = 1 to input_grid_size - 1 if (total_orders >= 9000) break // Stop if max orders reached strategy.entry("Long_" + str.tostring(i), strategy.long, qty=initial_order_size) total_orders := total_orders + 1 // Calculate the profit target in currency if (long_condition) entry_price := close // Store the entry price when the condition is true if (not na(entry_price)) profit_target := entry_price * input_profit_target_percent / 100 // Calculate the profit target // Setting up the profit target if (not na(profit_target)) strategy.exit("Take Profit", "Long", limit=entry_price + profit_target) // Hedge by closing all positions if the price increases by the hedging percentage if (strategy.position_size > 0) hedge_price := close * (1 + input_hedging_percent / 100) if (not na(hedge_price) and close >= hedge_price) strategy.close_all(comment="Hedging") // Reversal condition based on the price change percentage var float reversal_price = na if (strategy.position_size > 0 and total_orders > 1) // Check if at least one grid order has been placed reversal_price := entry_price * (1 - input_reversal_percent / 100) // Cancel trades and wait for a new entry point if the price reverses by the specified percentage if (not na(reversal_price) and close <= reversal_price) strategy.cancel_all() total_orders := 0 // Reset the total orders count after cancellation