
La estrategia de trading de tracción de indicadores RSI es una estrategia de trading de cuadrícula fija que integra indicadores técnicos RSI y CCI. La estrategia determina el momento de entrada en función de los valores de los indicadores RSI y CCI, utiliza un porcentaje de ganancias fijo y una cantidad fija de cuadrícula para configurar órdenes de suspensión y aumento de posición.
Cuando los indicadores RSI de 5 y 30 minutos están por debajo de los límites establecidos, y el indicador CCI de 1 hora también está por debajo de los valores establecidos, se produce una señal de multiplicación. En este momento, se registra el precio de cierre actual como precio de entrada y se calcula el primer puesto en función de los intereses de la cuenta y el número de cuadrados.
El precio de entrada es el punto de referencia, el precio de ganancia es calculado de acuerdo con el porcentaje de ganancias objetivo establecido, y se establece una orden de parada a ese nivel de precio.
A excepción de la primera unidad, el resto de las unidades de posición fija se emitirán una a una después de la señal de entrada hasta que se alcance el número de cuadrados establecido.
Si la subida de los precios en comparación con los precios de entrada supera el porcentaje de reducción de la cobertura establecido, se cubrirá la totalidad de las posiciones.
Si el precio cae por encima del porcentaje de reversión del umbral establecido con respecto al precio de entrada, se cancelarán todos los pedidos pendientes y se esperará una nueva oportunidad de entrada.
Estos riesgos pueden reducirse ajustando los parámetros del indicador, ampliando el margen de riesgo y reduciendo el margen de reversión.
La estrategia de trading de absorción del indicador RSI determina el momento de entrada a través de indicadores, utiliza paradas de cuadrícula fija y alza de posición para bloquear ganancias estables. Al mismo tiempo, la estrategia cuenta con un mecanismo de reingreso después de una inversión y una gran volatilidad. Esta estrategia que integra varios mecanismos puede usarse para reducir el riesgo de negociación y aumentar la 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