Stratégie de négociation des fractions fixes

Auteur:ChaoZhang est là., Date: 2023-09-22 16h51min 25 secondes
Les étiquettes:

Résumé

L'idée de base de cette stratégie est de maintenir le pourcentage d'investissement d'un actif dans le portefeuille fixe. Lorsque la valeur de l'actif augmente, l'investisseur en vend une partie pour maintenir le pourcentage. Quand il tombe, l'investisseur en achète plus pour reconstituer le pourcentage. La stratégie convient aux actifs relativement stables.

La logique de la stratégie

La stratégie définit d'abord le paramètre pourcentage d'investissement pourcentage_investis, c'est-à-dire le pourcentage de l'actif du portefeuille.

  1. Lorsque la position est égale à 0, calculer les contrats d'achat en fonction du pourcentage_investis et du capital initial.

  2. Lorsque vous détentez, comparez le pourcentage du montant investi avec le pourcentage des capitaux propres. Si c'est trop bas, achetez plus de contrats. Si c'est trop élevé, vendez des contrats.

  3. Répétez l'étape 2 pour maintenir le pourcentage d'investissement fixe.

Les avantages

  • Permet la détention à long terme d'actifs stables sans négociation fréquente.

  • Les bénéfices de rééquilibrage périodique des fluctuations des actifs.

  • La diversification des investissements entre actifs non corrélés réduit le risque de portefeuille.

  • Prévient les pertes totales en évitant tout investissement avant l'éclatement de la bulle.

Analyse des risques

  • Risque de perte plus élevé pour les actifs volatils.

  • Des échanges fréquents signifient plus de frais.

  • Le rééquilibrage peut être retardé, manquant les meilleurs points d'entrée/sortie.

  • Des paramètres de pourcentage incorrects peuvent entraîner une survente.

Les risques peuvent être réduits par:

  1. Sélection des actifs avec soin pour éviter une forte volatilité.

  2. Optimisation de la logique de rééquilibrage pour réduire la fréquence des échanges.

  3. Définition des unités minimales de changement de position pour éviter les surtrades.

  4. Optimisation des paramètres de pourcentage pour éviter une concentration excessive.

Directions d'optimisation

La stratégie peut être améliorée par:

  1. Ajouter une logique de stop-loss pour réduire les pertes à un certain seuil.

  2. Ajout de la validation du signal avant le rééquilibrage pour éviter les points non tendance.

  3. Personnalisation des pourcentages, taux de stop-loss par actif.

  4. Ajout de module d'optimisation des paramètres pour trouver les paramètres optimaux.

  5. Soutenir la clôture des positions afin de les réinvestir dans d'autres actifs pour une allocation dynamique.

Résumé

La stratégie de pourcentage fixe offre une diversification et un contrôle des risques. Mais elle comporte des risques tels que le rééquilibrage retardé et les pertes d'actifs volatils.


/*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)




Plus de