Direktionale Kauf-Stop-Profit- und Stop-Loss-Strategie mit geringer Volatilität


Erstellungsdatum: 2023-12-18 12:00:07 zuletzt geändert: 2023-12-18 12:00:07
Kopie: 1 Klicks: 573
1
konzentrieren Sie sich auf
1621
Anhänger

Direktionale Kauf-Stop-Profit- und Stop-Loss-Strategie mit geringer Volatilität

Überblick

Diese Strategie wird als “Low Volatility Oriented Buy Stop Loss Strategy” bezeichnet. Sie nutzt die Kreuzung des Moving Averages als Kaufsignal und kombiniert Stop Losses mit Gewinnschließung. Sie ist für Währungen mit niedriger Volatilität geeignet.

Strategieprinzip

Die Strategie verwendet einen Moving Average mit 3 verschiedenen Perioden: 50 Perioden, 100 Perioden und 200 Perioden. Die Kauflogik lautet: Wenn die 50-Periodenlinie die 100-Periodenlinie durchläuft und die 100-Periodenlinie die 200-Periodenlinie durchläuft, wird ein zusätzlicher Einstieg gemacht.

Das Signal zeigt an, dass der Markt aus der niedrigen Schwankungszone herausbricht und in einen Trend beginnt. Ein schneller 50-Zyklus-Aufstieg bedeutet eine plötzliche Erhöhung der kurzfristigen internen Kräfte, die die mittlere Längen nach oben treiben, und ein Beginn der 100-Zyklus-Linien zeigt an, dass die mittleren Kräfte hinzukommen und den Trend stabilisieren.

Nach dem Eintritt wird die Strategie mit einem Stop-Loss-Methode verriegelt. Das Stop-Loss-Ziel beträgt 8% des Eintrittspreises, die Stop-Line 4% des Eintrittspreises. Das Setzen eines Stop-Losses ist größer als der Stop-Loss, was dazu beiträgt, dass die Gewinne die Verluste übersteigen und die Gesamtprofitabilität der Strategie gewährleistet.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Es ist wichtig, dass die Trendschance in den Niedrigstschwankungen genau erfasst wird.
  2. Moving averages sind einfach zu berechnen und zurückzuverfolgen, die Logik ist einfach und klar.
  3. Die Stop-Loss-Einstellungen sind vernünftig und fördern einen stabilen Gewinn.
  4. Die konfigurierbaren Parameter sind flexibel und leicht zu optimieren.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Ein falsches Signal könnte zu Verlusten führen.
  2. Es ist schwierig, den Markt zu stoppen, wenn er sich umkehrt.
  3. Die falsche Einstellung der Stop-Loss-Parameter beeinträchtigt den Gewinn.

Gegenmaßnahmen:

  1. In Kombination mit anderen Indikatoren filtern Sie die Signale, um die Durchbruchwirksamkeit zu gewährleisten.
  2. Die Stop-Loss-Periode sollte entsprechend verkürzt werden, um die Verluste durch Umkehrung zu verringern.
  3. Verschiedene Stop-Loss-Verhältnisse werden getestet, um optimale Parameter zu finden.

Optimierungsrichtung

Die Strategie kann optimiert werden durch:

  1. Versuche verschiedene Moving-Average-Periodenparameter und finde die beste Kombination.
  2. Hinzufügen von Indikatoren wie Transaktionsvolumen zur Bestätigung eines Trendbruchs.
  3. Dynamische Anpassung der Stop-Loss-Werte.
  4. Die Erfolgsrate von Durchbrüchen in Kombination mit Methoden wie Machine Learning vorhersagen.
  5. Parameter für unterschiedliche Marktbedingungen und Währungen anpassen.

Insgesamt ist die Strategie klar und logisch, mit der Konfiguration von Moving Average-Perioden und Stop-Loss-Margen, um ein niedriges Risiko zu erzielen. Sie kann flexibel auf quantitative Transaktionen angewendet werden. Sie kann anschließend von Einstiegssignalen, Stop-Loss-Methoden usw. optimiert werden, um die optimale Wirkung zu finden.

Strategiequellcode
/*backtest
start: 2023-12-10 00:00:00
end: 2023-12-17 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(shorttitle='Low volatility Buy w/ TP & SL (by Coinrule)',title='Low volatility Buy w/ TP & SL', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 10,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2019, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"

//MA inputs and calculations
movingaverage_fast = sma(close, input(50))
movingaverage_slow = sma(close, input(200))
movingaverage_normal= sma(close, input(100))



//Entry 
strategy.entry(id="long", long = true, when = movingaverage_slow > movingaverage_normal and movingaverage_fast > movingaverage_normal)

//Exit
longStopPrice  = strategy.position_avg_price * (1 - 0.04)
longTakeProfit = strategy.position_avg_price * (1 + 0.08)

strategy.close("long", when = close < longStopPrice or close > longTakeProfit and window())

//PLOT

plot(movingaverage_fast, color=color.orange, linewidth=2)
plot(movingaverage_slow, color=color.purple, linewidth=3)
plot(movingaverage_normal, color=color.blue, linewidth=2)