A idéia central da estratégia é que os investidores sempre mantêm a parcela de investimento de um determinado ativo no ativo estável. Quando o valor do ativo aumenta, os investidores vendem parte para manter a parcela de investimento; Quando o valor do ativo diminui, os investidores compram para complementar a parcela de investimento.
A estratégia requer primeiro a definição do parâmetro percentagem investida, ou seja, a quota de ativos ocupados no portfólio. Depois, ajuste a posição de acordo com a seguinte lógica:
Quando a posição é 0, o número de contratos a serem comprados é calculado de acordo com a percentagem de investimento e o capital inicial definido.
Ao manter uma posição, compare o montante investido com a percentagem de participação total da conta invested e a percentagem de participação investida definida. Se o montante investido for muito baixo, compre um contrato para complementar a participação investida; se o montante investido for muito alto, venda o contrato para manter a participação investida.
Repetir o passo 2, mantendo a quota de investimento em um nível fixo.
Os ativos relativamente estáveis podem ser mantidos por longos períodos, sem necessidade de transações frequentes.
Ajustar regularmente as posições e lucrar com a volatilidade dos ativos.
Pode diversificar o investimento em vários ativos não relacionados, reduzindo o risco da carteira.
A perda total de posições e a perda total de investimentos em caso de ruptura da bolha.
Os ativos mais voláteis apresentam maior risco de perdas.
As comissões são cobradas por transações frequentes.
A correção de posição pode ter um atraso de tempo, perdendo os melhores pontos de compra e venda.
A configuração inadequada das percentagens pode levar a transações excessivas.
Os riscos podem ser reduzidos por:
Escolha os ativos com cuidado e evite os ativos com alta volatilidade.
Optimizar a lógica de ajuste de posição e reduzir a frequência de negociação.
Configure as unidades mínimas de variação de posição para evitar o excesso de negociação.
Otimizar a configuração de percentagens para evitar a concentração excessiva de fundos.
A estratégia pode ser melhorada em vários aspectos:
Aumentar a lógica de stop loss, para parar automaticamente a perda quando o preço do ativo cai para um determinado nível.
Aumentar a verificação de sinais de negociação para ajustes de posição, evitando ajustes de posição em pontos de mudança de tendência.
Parâmetros como percentual de investimento, parâmetros de stop loss, etc. para diferentes configurações de ativos.
Adição de módulo de otimização de parâmetros para otimização automática de parâmetros com base em dados históricos.
Apoio ao equilíbrio e reinvestimento de outros ativos, para uma distribuição dinâmica de ativos.
A estratégia pode ser aplicada para a posse de longo prazo de ativos estáveis, alcançando o efeito de diversificação de investimentos e controle de risco por meio de participações fixas. No entanto, a estratégia apresenta problemas de atraso no ajuste de posição e risco de investimento em ativos de risco. A estabilidade da estratégia pode ser aumentada ainda mais por meio de otimização da lógica de stop loss e verificação de sinais.
/*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)