Estrategia de negociación de fracciones fijas

El autor:¿ Qué pasa?, Fecha: 2023-09-22 16:51:25
Las etiquetas:

Resumen general

La idea central de esta estrategia es mantener el porcentaje de inversión de un activo en la cartera fija. Cuando el valor del activo aumenta, el inversor vende algo para mantener el porcentaje. Cuando cae, el inversor compra más para reponer el porcentaje. La estrategia es adecuada para activos relativamente estables.

Estrategia lógica

La estrategia establece primero el parámetro porcentaje de inversión %_invested, es decir, el porcentaje del activo de la cartera.

  1. Cuando la posición es 0, calcular los contratos de compra basados en el porcentaje_invertido y el capital inicial.

  2. Cuando se mantiene, comparar el porcentaje de la cantidad invertida invertida con el porcentaje de capital invertido. Si es demasiado bajo, comprar más contratos. Si es demasiado alto, vender contratos.

  3. Repita el paso 2 para mantener el porcentaje de inversión fijo.

Ventajas

  • Permite la tenencia a largo plazo de activos estables sin negociación frecuente.

  • Los beneficios de reequilibrio periódico de las fluctuaciones de los activos.

  • La diversificación de las inversiones en activos no correlacionados reduce el riesgo de cartera.

  • Previene pérdidas completas evitando la inversión completa antes de que la burbuja estalle.

Análisis de riesgos

  • Riesgo de pérdida más alto para los activos volátiles.

  • El comercio frecuente significa más honorarios.

  • El reequilibrio puede retrasarse, faltando los mejores puntos de entrada/salida.

  • La configuración de porcentajes incorrectos puede causar un exceso de operaciones.

Los riesgos pueden reducirse:

  1. Seleccionar los activos con cuidado para evitar una alta volatilidad.

  2. Optimización de la lógica de reequilibrio para reducir la frecuencia del comercio.

  3. Establecimiento de unidades mínimas de cambio de posición para evitar el exceso de negociación.

  4. Optimización de los ajustes de porcentaje para evitar la sobreconcentración.

Direcciones de optimización

La estrategia puede mejorarse mediante:

  1. Añadir una lógica de stop loss para reducir las pérdidas en cierto umbral.

  2. Añadir la validación de la señal antes del reequilibrio para evitar los puntos de no tendencia.

  3. Personalizar los porcentajes, las tasas de stop loss por activo.

  4. Añadir módulo de optimización de parámetros para encontrar parámetros óptimos.

  5. Apoyar el cierre de posiciones para reinvertir en otros activos para una asignación dinámica.

Resumen de las actividades

La estrategia de porcentaje fijo proporciona diversificación y control de riesgos, pero tiene riesgos como el reequilibrio retrasado y las pérdidas de activos volátiles.


/*backtest
start: 2022-09-21 00:00:00
end: 2022-11-22 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// strategy("Fixed Fractioning", overlay=true, initial_capital=100000.0)

percent_invested=input(50.0,title="Percent Invested",maxval=100.0,minval=0.0)
fraction_invested=percent_invested/100

from_day=input(1,title="From Day",maxval=31,minval=1)
from_month=input(1,title="From Month",maxval=12,minval=1)
from_year=input(2017,title="From Year",maxval=2018,minval=1900)

to_day=input(1,title="To Day",maxval=31,minval=1)
to_month=input(1,title="To Month",maxval=12,minval=1)
to_year=input(2018,title="To Year",maxval=2018,minval=1900)

// === FUNCTION EXAMPLE === from: https://www.tradingview.com/script/62hUcP6O-How-To-Set-Backtest-Date-Range/
start     = timestamp(from_year, from_month, from_day, 00, 00)  // backtest start window
finish    = timestamp(to_year, to_month, to_day, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"
strategy.initial_capital = 50000
if strategy.position_size==0 and window()
    contracts_to_buy=(fraction_invested*strategy.initial_capital)/close
    strategy.entry("long",long=true,qty=contracts_to_buy,limit=close,when=contracts_to_buy>1)

invested=(strategy.position_size*close)/strategy.equity
if invested<fraction_invested and window()
    contracts_to_buy=((fraction_invested-invested)*strategy.equity)/close
    strategy.order("long",long=true,qty=contracts_to_buy,limit=close,when=contracts_to_buy>1)

else 
    if invested>fraction_invested and window()
        contracts_to_sell=((invested-fraction_invested)*strategy.equity)/close
        strategy.order("sell",long=false,qty=contracts_to_sell,limit=close,when=contracts_to_sell>1)




Más.