Die Kernidee dieser Strategie besteht darin, den Anlageanteil eines Vermögenswerts im Portfolio festzuhalten. Wenn der Vermögenswert steigt, verkauft der Anleger etwas, um den Prozentsatz zu halten. Wenn er fällt, kauft der Anleger mehr, um den Prozentsatz aufzufüllen. Die Strategie eignet sich für relativ stabile Vermögenswerte.
Die Strategie legt zunächst den Anlagegehalt-Parameter %_invested fest, d. h. den Anteil des Vermögenswerts im Portfolio.
Wenn die Position 0 beträgt, berechnen Sie auf Basis von %_invested und Anfangskapital Kaufverträge.
Vergleichen Sie beim Halten des investierten Betrags den investierten Prozentsatz mit dem investierten Anteil. Wenn zu niedrig, kaufen Sie mehr Kontrakte. Wenn zu hoch, verkaufen Sie Kontrakte.
Wiederholen Sie Schritt 2, um den Anlageanteil festzuhalten.
Ermöglicht die langfristige Bilanzierung stabiler Vermögenswerte ohne häufigen Handel.
Periodische Neuausgleichsgewinne aus Vermögensschwankungen
Die Diversifizierung der Anlagen auf nicht korrelierte Vermögenswerte verringert das Portfoliorisiko.
Vermeidet vollständige Verluste, indem man eine vollständige Investition vermeidet, bevor die Blase platzt.
Höhere Verlustrisiko für volatile Vermögenswerte.
Häufiger Handel bedeutet mehr Gebühren.
Das Re-Balancing kann verzögert sein, da die besten Ein-/Ausgangspunkte fehlen.
Falsche Prozentsatz-Einstellungen können zu Überhandelungen führen.
Die Risiken können verringert werden, indem
Die Auswahl der Vermögenswerte ist sorgfältig vorzunehmen, um hohe Volatilität zu vermeiden.
Optimierung der Re-Balancing-Logik zur Verringerung der Handelsfrequenz.
Festlegung von Mindestpositionswechsel-Einheiten zur Verhinderung von Überhandelungen.
Optimierung der Prozentsatz-Einstellungen zur Verhinderung einer Überkonzentration.
Die Strategie kann verbessert werden, indem
Hinzufügen von Stop-Loss-Logik, um Verluste an einer bestimmten Schwelle zu reduzieren.
Hinzufügen von Signalvalidierung vor dem Neuausgleich, um Nicht-Trendspots zu vermeiden.
Prozentsätze anpassen, Stop-Loss-Verhältnisse pro Vermögenswert.
Hinzufügen eines Parameteroptimierungsmoduls, um optimale Parameter zu finden.
Unterstützung des Schließens von Positionen zur Reinvestition in andere Vermögenswerte für eine dynamische Zuordnung.
Die Strategie des festen Prozentsatzes bietet Diversifizierung und Risikokontrolle. Aber sie birgt Risiken wie verzögerte Re-Balancing und volatile Verluste von Vermögenswerten. Weitere Verbesserungen zur Stop-Loss-Logik und Signalvalidierung können die Stabilität verbessern.
/*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)