Trendbasierte Stop-Loss-Gewinnstrategie


Erstellungsdatum: 2024-02-21 14:55:41 zuletzt geändert: 2024-02-21 14:55:41
Kopie: 0 Klicks: 629
1
konzentrieren Sie sich auf
1617
Anhänger

Trendbasierte Stop-Loss-Gewinnstrategie

Überblick

Die Hauptidee der Strategie ist es, auf der Grundlage der wöchentlichen Preisentwicklung eine offene Richtung zu bestimmen, in den Fällen von Positionen, die nach dem Auftreten einer Sonnenstrahlform aufgenommen werden; Stopps, wenn die Preise bis zum vorgegebenen Stop-Loss steigen, und Stopps, wenn sie bis zum vorgegebenen Stop-Loss fallen.

Strategieprinzip

Die Strategie definiert zunächst die Bedingungen für die Beurteilung der wöchentlichen Trends:

isUptrend = close > close[1] 

isDowntrend = close < close[1]

Wenn der aktuelle Schlusskurs größer ist als der Schlusskurs des Vortages, wird er als bullish bewertet, umgekehrt ist er bullish.

Dann definieren Sie das Tageshandelssignal:

buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend

Der Vortags-Schlusskurs ist also größer als der Vortags-Schlusskurs und befindet sich in einem bullischen Trend.

Nach dem Eintritt wird der Stop-Loss auf den Schlusskurs des Vortages minus 1.382-fache der Länge des Vortags festgelegt:

stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen()) 

Der Stop-Loss-Punkt wird auf den Schlusskurs des Vortages plus die Differenz zwischen dem Stop-Loss-Punkt und dem Schlusskurs des Vortages festgelegt:

takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss)

Das bedeutet, dass die Einziehung von Verlusten möglich ist.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Trendbasierter Handel, um das Risiko eines Negativkurses zu vermeiden
  2. Kombinationssignale mit Tageslicht und Schlitze, um eine vorzeitige Einreise zu verhindern
  3. Vermögenswerte, die nicht in die Vermögenswerte einfließen
  4. Große Stellfläche, hohes Gewinnpotenzial

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Es ist unwahrscheinlich, dass ein Trendwechsel stattfindet, und es ist möglich, dass eine Chance auf eine 1000000000000000000000000-Wende verpasst wird.
  2. Der Stop-Loss ist zu nahe und die Wahrscheinlichkeit, dass er eingesetzt wird, ist höher.
  3. Wenn die Häufigkeit der Transaktionen zu hoch ist, können die Gewinne sinken, ohne die Kosten zu kontrollieren.

Um diese Risiken zu kontrollieren, können Sie folgende Optimierungen in Betracht ziehen:

  1. Setzen Sie Trailer in der Nähe von Stop-Loss-Punkten und verfolgen Sie die Stop-Loss
  2. Kosten-Kontroll-Modul, um die Häufigkeit von Lageröffnungen zu begrenzen
  3. Hinzufügen von SUPPORT/RESISTANCE-Urteilen

Optimierungsrichtung

Die Strategie kann auch in folgenden Richtungen optimiert werden:

  1. Trends werden anhand von mehreren Faktoren beurteilt, wie der Richtung des Moving Averages, der Veränderung des Umsatzes usw.
  2. Optimierte Einstiegssignale mit mehr K-Linien
  3. Dynamische Tracking-Stopp-Stopps, automatisch angepasst an Preisschwankungen
  4. Hinzufügen eines Quantifizierungsmoduls, um die Größe der Position zu kontrollieren
  5. Mehrzeit-Zyklus-Palette, Trendfilter auf höherer Ebene

Zusammenfassen

Die Strategie ist insgesamt eher praktisch, die Kernidee ist, Trend-Trading hervorzuheben und gleichzeitig das Risiko zu kontrollieren. Sie kann als Grundstrategie für den kurzfristigen Handel innerhalb eines Tages verwendet werden, aber auch nach verschiedenen Märkten und Sorten modular optimiert werden, um ein diversifiziertes Handelsportfolio zu erreichen. In der praktischen Anwendung ist es immer noch wichtig, auf Kostenkontrolle und Risikoverhinderung zu achten und die richtige Mentalität zu bewahren.

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

//@version=5
strategy("Trend Following Strategy with Stop Loss and Take Profit", overlay=true)

// Function to get previous day's close and open
getPrevDayClose() =>
    request.security(syminfo.tickerid, "D", close[1])

getPrevDayOpen() =>
    request.security(syminfo.tickerid, "D", open[1])

// Determine weekly trend
isUptrend = close > close[1]
isDowntrend = close < close[1]

// Determine daily conditions for buy
buyCondition = getPrevDayClose() > getPrevDayOpen() and getPrevDayOpen() > getPrevDayClose()[1] and isUptrend

// Calculate stop loss and take profit
stopLoss = getPrevDayClose() - 1.382 * (getPrevDayClose() - getPrevDayOpen())
takeProfit = getPrevDayClose() + 2 * (getPrevDayClose() - stopLoss)

// Strategy logic
if (isUptrend)
    strategy.entry("Buy", strategy.long, when = buyCondition)
    strategy.exit("Take Profit/Stop Loss", from_entry="Buy", loss=stopLoss, profit=takeProfit)
    
if (isDowntrend)
    strategy.entry("Sell", strategy.short)

// Plotting the trend on the chart
plotshape(series=isUptrend, title="Uptrend", color=color.green, style=shape.triangleup, location=location.abovebar)
plotshape(series=isDowntrend, title="Downtrend", color=color.red, style=shape.triangledown, location=location.belowbar)

// Plotting stop loss and take profit levels on the chart
plot(stopLoss, color=color.red, title="Stop Loss", linewidth=2, style=plot.style_cross)
plot(takeProfit, color=color.green, title="Take Profit", linewidth=2, style=plot.style_cross)