L’idée centrale de cette stratégie est que l’investisseur maintient toujours la part d’investissement d’un actif dans l’actif fixe. Lorsque la valeur de l’actif augmente, l’investisseur vend une partie pour maintenir la part d’investissement; lorsque la valeur de l’actif diminue, l’investisseur achète pour compléter la part d’investissement.
Cette stratégie implique d’abord de définir le paramètre de part d’investissement pourcentage_invested, c’est-à-dire la part d’actif occupée dans le portefeuille. Puis de modifier la position selon la logique suivante:
Le nombre de contrats à acheter est calculé en fonction du pourcentage d’investissement et du capital initial lorsque la position est égale à 0.
Si le ratio de capital investi est trop faible, le contrat est acheté pour compléter le capital investi; si le ratio de capital investi est trop élevé, le contrat est vendu pour maintenir le capital investi.
Répétez l’étape 2 pour maintenir la part d’investissement à un niveau fixe.
Les actifs relativement stables peuvent être détenus à long terme, sans avoir besoin d’être fréquemment échangés.
Ajustez régulièrement votre position pour profiter des fluctuations de l’actif.
Il est possible de diversifier l’investissement en plusieurs actifs non liés, ce qui réduit le risque du portefeuille.
Il est possible d’éviter la perte de la totalité de la position et d’éviter la perte de l’ensemble de l’investissement si la bulle éclate.
Le risque de perte est plus élevé pour les actifs plus volatiles.
Des frais de transaction sont exigés pour les transactions fréquentes.
La correction de position peut être retardée et manquer les meilleurs points d’achat et de vente.
Une mauvaise définition des pourcentages peut conduire à des transactions excessives.
Le risque peut être réduit par:
Choisissez vos actifs avec prudence et évitez les actifs très volatils.
Optimisation de la logique d’ajustement des positions et réduction de la fréquence des transactions.
Pour éviter une survente, définissez la plus petite unité de variation de position.
Optimiser les pourcentages pour éviter une concentration excessive des fonds.
Cette stratégie peut être optimisée dans les domaines suivants:
Ajout d’une logique de stop-loss, qui arrête automatiquement les pertes lorsque le prix de l’actif baisse à un certain niveau.
Augmentation de la vérification des signaux de transaction pour les ajustements de position afin d’éviter les ajustements de position en dehors des points de changement de tendance.
Paramètres tels que le pourcentage d’investissement différent, le taux de stop-loss, etc. pour différents types d’actifs.
Ajout d’un module d’optimisation des paramètres pour optimiser automatiquement les paramètres en fonction des données historiques.
Il a également soutenu le placement en bourse et le réinvestissement dans d’autres actifs, et la réaffectation dynamique des actifs.
Cette stratégie est applicable à la détention à long terme d’actifs stables, en obtenant l’effet de diversification des investissements et de contrôle des risques grâce à des parts d’investissement fixes. Cependant, la stratégie présente des problèmes de retard d’ajustement de position, de risque d’investissement dans des actifs risqués, etc. La stabilité de la stratégie peut ensuite être améliorée par l’optimisation de la logique de stop-loss, de la vérification des signaux, 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)