Este artículo explica en detalle una estrategia de comercio cuantitativo para el seguimiento de tendencias basado en el índice de reversión de precios. La estrategia identifica los picos locales para fijar el ingreso a un determinado índice de reversión.
El principio de la estrategia
La lógica central de esta estrategia es identificar los precios más altos en un período determinado y luego rastrear las operaciones en una posición de retracción de cierta proporción. Los pasos concretos son:
En primer lugar, se calcula el máximo de los últimos 90 K como punto más alto local.
El seguimiento de la compra se realiza cuando el precio retrocede de ese punto más alto en una proporción determinada (por ejemplo, 3%)
El stop-loss se establece como un porcentaje de aumento del precio de entrada (por ejemplo, el 6%) y se liquida cuando el precio alcanza el punto de stop-loss;
No hay paradas de pérdidas para seguir la tendencia.
De esta manera, el tiempo de entrada puede ser evaluado a través de la proporción de retroceso de los picos locales, y se puede filtrar eficazmente la oscilación, entrando solo después de la confirmación de la tendencia. La configuración del parón también permite que cada ganancia tenga una cierta administración de expectativas.
Dos, las ventajas estratégicas
La mayor ventaja de esta estrategia es que utiliza la proporción de retroceso para juzgar la tendencia, filtrando gran cantidad de ruido. En comparación con la entrada directa en el punto de inflexión, puede reducir la probabilidad de ser puesto en la entrada.
Otra ventaja es la configuración de la lógica de stop-loss. Esto hace que los beneficios y pérdidas de cada transacción sean controlables, de acuerdo con los principios de gestión de fondos positiva.
Por último, el seguimiento de un stop-loss mayor que la proporción de reajuste también permite que la estrategia tenga un cierto mecanismo de retorno de riesgo.
Tercero, el riesgo potencial.
A pesar de las ventajas de la estrategia, los riesgos que se deben tener en cuenta en la práctica son:
En primer lugar, la proporción de retroceso debe ajustarse con cuidado.
En segundo lugar, la ausencia de paradas de pérdidas expone a la estrategia a un mayor riesgo individual. Una fuerte reversión de la tendencia puede generar mayores pérdidas.
Finalmente, la optimización incorrecta de los parámetros también puede generar problemas de sobreajuste, lo que reduce la calidad de la señal.
Cuatro contenido, resumen
Este artículo describe en detalle una estrategia cuantitativa para el seguimiento de la tendencia basada en la proporción de la reversión de precios. Puede identificar eficazmente la dirección de la tendencia y aprovechar la reversión para entrar. Al mismo tiempo, la configuración de la administración de paradas también permite que la estrategia tenga un cierto mecanismo de control de riesgo.
/*backtest
start: 2022-09-07 00:00:00
end: 2023-09-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © luboremenar
//@version=4
strategy("test_%_down_up", overlay = false, initial_capital = 1000, pyramiding = 0, default_qty_value = 1000,
default_qty_type = strategy.cash, precision = 8, commission_type = strategy.commission.percent, commission_value = 0.1)
// inputs
range_of_tops = input(title="Range of candles to find highest value from.", defval=90, type=input.integer, minval=1 )
basis_points = input(title="Basis points, if asset has two decimals use 100, three decimals 1000, etc.", defval=100, type=input.integer, minval=1)
retrace_percent = input(title="Percent value retrace from the top.", type=input.integer, defval=3, minval = 1, maxval=99)
take_profit_percent = input(title="Percent value of take profit from entry price.", type=input.integer, defval=6, minval=1)
// strategy definition
three_months_top = highest(range_of_tops)
longCondition1 = (close <= float((three_months_top*(1-(take_profit_percent/100)))) and strategy.position_size == 0)
if (longCondition1)
strategy.entry("Long1", strategy.long, qty = strategy.equity/close)
strategy.exit(id="TP1", from_entry="Long1", profit=((close*(1 + take_profit_percent/100)-close)*basis_points),
when= crossover(strategy.position_size, 0))
// plot
plot(strategy.equity)
// for testing, debugging
//test=0.0
//if(crossover(strategy.position_size, 0))
// test := (close*1.06-close)*basis_points
//plot(test)