Dynamische Strategie zur Verfolgung des Durchschnittspreises


Erstellungsdatum: 2024-01-29 15:28:53 zuletzt geändert: 2024-01-29 15:28:53
Kopie: 0 Klicks: 567
1
konzentrieren Sie sich auf
1617
Anhänger

Dynamische Strategie zur Verfolgung des Durchschnittspreises

Überblick

Die Hauptidee dieser Strategie ist, dass die Aktienpreise nach und nach erhöht werden können, wenn sie bis zu einem bestimmten Prozentsatz fallen, um die durchschnittlichen Haltekosten zu senken. Wenn die Preise sich wieder erholen, können höhere Gewinne erzielt werden, da die durchschnittlichen Haltekosten niedriger sind.

Strategieprinzip

Wenn die Aktienpreise danach den Zielverlustprozentsatz erreichen, z. B. 10%, erhöhen Sie die Position um einen bestimmten Prozentsatz, z. B. 50% der aktuellen Position. Dies reduziert die durchschnittlichen Haltekosten. Wenn die Aktienpreise den festgelegten Stopppunkt erreichen, z. B. 10% höher als die durchschnittlichen Haltekosten, werden die Positionen vollständig platziert.

Die Strategy-Funktion setzt Parameter wie maximal vier Aufschläge, die Position wird als Prozentsatz des Kapitalbesitzes berechnet, die erste Position ist 10%. Der 20-Tage-Simple-Moving-Average wird erfasst, wenn der Durchschnittswert überschritten wird und keine Position mehr geöffnet wird.

Analyse der Stärken

Der größte Vorteil dieser Strategie besteht darin, dass die durchschnittlichen Positionskosten bei schlechten Zeiten durch eine Verlagerung gesenkt werden können, und dass bei besseren Zeiten größere Gewinne erzielt werden können. Im Vergleich zu einem einfachen beweglichen Stop-Loss kann eine solche Strategie die Entwicklung besser erfassen, anstatt nach einem weiteren Rückgang des Aktienpreises zum Stillstand gezwungen zu werden.

Gleichzeitig erlaubt die Strategie viele Positionen, um die Zeitdifferenz der Umkehrung zu maximieren und die Positionen schrittweise anzupassen. Dies ist weniger kostspielig als ein einmaliger großer Anstieg der Positionen und entspricht besser der Kapitalkraft der meisten Anleger.

Risikoanalyse

Selbstverständlich besteht bei einem anhaltenden Niedergang des Marktes die Gefahr eines erheblichen Verlusts. Besonders in einem Bärenmarkt kann der Kursrückgang weit über unseren Vorstellungen hinausgehen. Es ist daher notwendig, das Ausmaß und die Häufigkeit der Verlagerungen vernünftigerweise festzulegen, um das Risiko in einem erträglichen Rahmen zu halten.

Gleichzeitig ist zu beachten, dass, wenn alle Anleger diese Strategie anwenden, es zu einer kollektiven Aufstockung kommen kann, wenn eine große Anzahl von Anlegern das Ziel-Prozent erreicht. Dies treibt den Aktienpreis an und erzeugt eine unvernünftige kurzfristige Rebound. Wenn wir die Entwicklung nicht überprüfen, können wir die Situation falsch einschätzen und weiter auflagern.

Optimierungsrichtung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Dynamische Anpassung der Positionserhöhung. Der Prozentsatz der nächsten Positionserhöhung kann in Echtzeit angepasst werden, je nachdem, wie der Großhandel sich entwickelt.

  2. In Kombination mit Quantitätsindikatoren kann beispielsweise eine deutliche Vergrößerung des Verkehrsaufkommens überwacht werden, um ein Umkehrsignal zu bestätigen und Fehleinschätzungen zu vermeiden.

  3. Die Verwendung von Tracking-Stopps. Nach der Einlagerung werden schrittweise Stopps durchgeführt, um zu gewährleisten, dass die Verluste innerhalb eines bestimmten Bereichs kontrolliert werden.

Zusammenfassen

Die Strategie der dynamischen Kursverfolgung ermöglicht es, die Kurswirkung effektiv zu nutzen, wenn die Aktienkurse sich umdrehen. Die Schlüssel ist, den Zeitpunkt und das Verhältnis zu erfassen und die verschiedenen Risiken in einem erträglichen Bereich zu halten. Wenn diese Strategie richtig angewendet wird, kann sie eine ziemlich effektive Methode für den Quantifizierungshandel sein.

Strategiequellcode
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

// ########################################################################## // 
//
// This scipt is intended to demonstrate how pyramiding can be used to average
// down a position.
//
// We will buy when a stock closes above its 20 day MA and Average down if
// the trade does not go in our favor. We will hold until a profit is made. 
// (which could mean we hold forever)
//
// ########################################################################## //

strategy("Average Down", overlay=true )

// Date Ranges
from_month = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
from_day   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
from_year  = input(defval = 2010, title = "From Year")
to_month   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
to_day     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
to_year    = input(defval = 9999, title = "To Year")
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
// Strategy Inputs
target_perc = input(-10, title='Target Loss to Average Down (%)', maxval=0)/100
take_profit = input(10, title='Target Take Profit', minval=0)/100
target_qty  = input(50, title='% Of Current Holdings to Buy', minval=0)/100 
sma_period  = input(20, title='SMA Period') 

// Get our SMA, this will be used for our first entry 
ma = sma(close,sma_period)

// Calculate our key levels
pnl = (close - strategy.position_avg_price) / strategy.position_avg_price
take_profit_level = strategy.position_avg_price * (1 + take_profit)

// First Position
first_long = crossover(close, ma) and strategy.position_size == 0 and window
if (first_long)
    strategy.entry("Long", strategy.long)

// Average Down!
if (pnl <= target_perc)
    qty = floor(strategy.position_size * target_qty)
    strategy.entry("Long", strategy.long, qty=qty)

// Take Profit!
strategy.exit("Take Profit", "Long", limit=take_profit_level)

// Plotting
plot(ma, color=blue, linewidth=2, title='SMA')
plot(strategy.position_avg_price, style=linebr, color=red, title='Average Price')