La idea central de esta estrategia es que los inversores siempre mantienen la participación fija de una inversión en un activo. Cuando el valor del activo aumenta, los inversores venden parte para mantener la participación de la inversión; cuando el valor del activo disminuye, los inversores compran para complementar la participación de la inversión.
La estrategia requiere primero establecer el parámetro de participación en la inversión %_invested, es decir, la participación de los activos en la cartera. Luego, ajuste la posición de acuerdo con la siguiente lógica:
Cuando la posición es 0, el número de contratos que se necesitan comprar se calcula de acuerdo con el porcentaje de inversión establecido y el capital inicial inicial.
Al mantener una posición, compare el monto invertido con la proporción de los intereses totales de la cuenta invertido y el porcentaje de inversión establecido. Si el monto invertido es demasiado bajo, compre un contrato para complementar la participación en la inversión; Si el monto invertido es demasiado alto, venda el contrato para mantener la participación en la inversión.
Repetir el paso 2, manteniendo la cuota de inversión a un nivel fijo.
Se pueden mantener activos relativamente estables durante mucho tiempo sin necesidad de realizar transacciones frecuentes.
Ajuste regularmente sus posiciones para beneficiarse de las fluctuaciones de los activos.
Se puede diversificar la inversión en varios activos no relacionados, reduciendo el riesgo de la cartera.
Se puede evitar la pérdida total de la posición y evitar la pérdida de toda la inversión si la burbuja se rompe.
El riesgo de pérdidas es mayor para los activos más volátiles.
Se requieren comisiones por transacciones frecuentes.
El ajuste de posición puede tener un retraso en el tiempo, perdiendo el punto de venta y compra óptima.
Un porcentaje incorrecto puede conducir a un exceso de transacciones.
El riesgo puede reducirse de la siguiente manera:
Elige tus activos con cuidado y evita los activos con mucha volatilidad.
Optimización de la lógica de ajuste de posiciones y reducción de la frecuencia de las operaciones.
Establezca las unidades mínimas de cambio de posición para evitar el exceso de comercio.
Optimizar la configuración de porcentajes para evitar la concentración excesiva de fondos.
La estrategia puede ser optimizada en los siguientes aspectos:
Se ha añadido una lógica de stop loss, que detiene automáticamente los pérdidas si el precio de un activo baja hasta cierto punto.
Aumentar la verificación de las señales de transacción de los ajustes de posición, evitando ajustes de posición en puntos que no sean de tendencia.
Parámetros como el porcentaje de inversión y el porcentaje de pérdidas para diferentes configuraciones de activos.
Se añade un módulo de optimización de parámetros para optimizar automáticamente los parámetros según los datos históricos.
Apoyar la liquidación y reinversión de otros activos para una asignación dinámica de activos.
La estrategia alcanza el efecto de diversificación de la inversión y control del riesgo a través de la participación fija en la inversión, y se aplica a la tenencia a largo plazo de activos estables. Sin embargo, la estrategia tiene problemas de retraso en el ajuste de posición, riesgo de inversión en activos de riesgo, etc. La estabilidad de la estrategia puede mejorarse aún más mediante la optimización de la lógica de parada de pérdidas, verificación de señales, etc.
/*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)