Dynamische Folge-Stop-Loss-Strategie


Erstellungsdatum: 2023-12-21 15:58:54 zuletzt geändert: 2023-12-21 15:58:54
Kopie: 1 Klicks: 761
1
konzentrieren Sie sich auf
1623
Anhänger

Dynamische Folge-Stop-Loss-Strategie

Überblick

Diese Strategie basiert auf der Sonnenlinie, um die Richtung des Trends zu bestimmen, und nutzt dann die neuen Höhen oder Tiefen, die sich in 15 Minuten in der K-Linie bilden, als Stop-Loss- oder Tracking-Stop-Loss-Bereich, um die Stop-Loss-Strategie dynamisch anzupassen, um mehr Gewinne zu erzielen.

Strategieprinzip

  1. Die Richtung des Trends wird anhand eines Vergleichs zwischen dem Schlusskurs des Tages K und dem Höchst- und Tiefstpreis des Vortages ermittelt. Wenn der Schlusskurs höher als der Höchstpreis des Vortages ist, wird er als Aufwärtstrend definiert; wenn der Schlusskurs niedriger als der Tiefstpreis des Vortages ist, wird er als Abwärtstrend definiert.

  2. In einem Aufwärtstrend, wenn der 15-Minuten-K-Linie-Abschlusspreis höher ist als der höchste Preis der vorherigen 15-Minuten-K-Linie, machen Sie mehr; in einem Abwärtstrend, wenn der 15-Minuten-K-Linie-Abschlusspreis niedriger ist als der niedrigste Preis der vorherigen 15-Minuten-K-Linie, machen Sie eine Lücke.

  3. Nach dem Plus wird der niedrigste Preis der vorhergehenden 15-Minuten-K-Linie als Stop-Loss verwendet. Nach dem Shorting wird der höchste Preis der vorhergehenden 15-Minuten-K-Linie als Stop-Loss verwendet.

  4. Wenn die 15-minütige K-Linie erneut einen neuen Höhen- oder Tiefpunkt erzeugt, wird der Stop-Loss angepasst. Bei Überlauf wird der Stop-Loss auf einen neuen Tiefpunkt angepasst, während der Leerlauf auf einen neuen Hochpunkt, um einen dynamischen Tracking-Stop zu erreichen.

Analyse der Stärken

Der größte Vorteil dieser Strategie besteht darin, dass die Stop-Loss-Leistung dynamisch angepasst werden kann, um die Gewinne maximal zu sperren und die Wahrscheinlichkeit zu verringern, dass die Stop-Loss-Leistung getroffen wird, während die Risikokontrolle gewährleistet ist.

Die Vorteile sind:

  1. Auf Basis von Trendberechnungen können Sie die Marktentwicklung rechtzeitig beurteilen und die richtige Handelsrichtung wählen.

  2. Die 15-Minuten-Strecke ermöglicht es, häufiger ein- und auszusteigen und mehr Chancen zu ergattern.

  3. Die Strategie des Stop-Losses kann dynamisch angepasst werden, um das Risiko zu verringern, dass der Stop-Loss durch neue Höhen oder Tiefen getroffen wird.

  4. Die Stop-Loss-Position ist vernünftig eingestellt, um unnötige Verluste so weit wie möglich zu vermeiden.

Risikoanalyse

Die Hauptrisiken dieser Strategie bestehen aus fehlerhaften Trendbeurteilungen. Die spezifischen Risiken sind:

  1. Es gibt Fehler bei der Ermittlung der Trendlinie, die zu einer falschen Handelsrichtung führen können.

  2. Es gibt eine hohe Wahrscheinlichkeit, dass die 15-Minuten-Stop-Loss-Leistung durchbrochen wird, wenn die Situation in kurzer Zeit stark schwankt.

  3. Trend-Wechselpunkte sind falsch identifiziert und können zu Verlusten führen.

Die entsprechenden Lösungen sind wie folgt:

  1. Um Fehler zu vermeiden, die sich auf eine einzelne Periode beziehen, werden andere Zeitzyklusindikatoren hinzugefügt, um ein umfassendes Urteil zu fällen.

  2. Beurteilung der Marktvolatilität und angemessene Lockerung der Stop-Loss-Range bei größeren Schwankungen.

  3. Die Einführung von Trend-Wechselpunkt-Methoden, um die Positionen vor der Umkehrung zu begleichen.

Optimierungsrichtung

Die Strategie kann noch weiter optimiert werden:

  1. Das ist eine sehr wichtige Aufgabe, die sich in der Zukunft erstrecken wird.

  2. Verschiedene Stop-Loss-Ratio-Einstellungen werden getestet, um die optimalen Parameter auszuwählen.

  3. Es ist wichtig, dass die Kennzahlen erhöht werden, um zu verhindern, dass die Kennzahlen von falschen Transaktionen abweichen.

  4. Das ist ein Trendwechselmechanismus, der die Exit-Punkte optimiert.

  5. Es wird bewertet, dass die Trailing-Stopp-Bereichswerte erhöht werden, um die Wahrscheinlichkeit, dass die Stoppschläge getroffen werden, weiter zu reduzieren.

Zusammenfassen

Die Strategie funktioniert insgesamt gut, die Idee ist klar und leicht zu verstehen, hat die Vorteile von stop-loss-dynamischen Anpassungen, häufiger Handel, fortgeschrittener Entwicklung, kann effektiv Risiken kontrollieren und Gewinne sperren. Es lohnt sich, weiter zu testen und zu optimieren. Aber es gibt auch einen gewissen Raum für Verbesserungen.

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

//@version=5
strategy("Anand's Strategy", overlay=true)

// Get the high and low of the previous day's candle
prev_high = request.security(syminfo.tickerid, "D", high[2])
prev_low = request.security(syminfo.tickerid, "D", low[2])

// var float prev_high = na
// var float prev_low = na

prev_close = request.security(syminfo.tickerid, "D", close[1])


getDayIndexedHighLow(_bar) =>
    _indexed_high = request.security(syminfo.tickerid, "D", high[_bar])
    _indexed_low = request.security(syminfo.tickerid, "D", low[_bar])
    [_indexed_high, _indexed_low]

var index = 2

while index >= 0
    [indexed_high_D, indexed_low_D] =  getDayIndexedHighLow(index)
  
    if prev_close > indexed_high_D or prev_close < indexed_low_D
        prev_high := indexed_high_D
        prev_low := indexed_low_D
        break
    // Decrease the index to move to the previous 15-minute candle
    index := index - 1


// Determine the trade direction based on the candle criterion
trade_direction = prev_close > prev_high ? 1 : (prev_close < prev_low ? -1 : 0)

// Get the current close from 15-minute timeframe
current_close = request.security(syminfo.tickerid, "15", close[1])
prev_high_15m = request.security(syminfo.tickerid, "15", high[2])
prev_low_15m = request.security(syminfo.tickerid, "15", low[2])

// var float prev_high_15m = na
// var float prev_low_15m = na

getIndexedHighLow(_bar) =>
    _indexed_high = request.security(syminfo.tickerid, "15", high[_bar])
    _indexed_low = request.security(syminfo.tickerid, "15", low[_bar])
    [_indexed_high, _indexed_low]


// Loop through previous 15-minute candles until the condition is met
var  i = 2

while i >= 2
    [indexed_high_15m, indexed_low_15m] =  getIndexedHighLow(i)
  
    if current_close > indexed_high_15m or current_close < indexed_low_15m
        prev_high_15m := indexed_high_15m
        prev_low_15m := indexed_low_15m
        break
    // Decrease the index to move to the previous 15-minute candle
    i := i - 1



buy_condition = trade_direction == 1 and current_close > prev_high_15m
stop_loss_buy = prev_low_15m

// Sell Trade Criteria in Negative Trend
sell_condition = trade_direction == -1 and current_close < prev_low_15m
stop_loss_sell = prev_high_15m


// Trailing Stop Loss for Buy Trade
// Custom Trailing Stop Function for Buy Trade
var float trail_stop_buy = na
trailing_buy_condition = buy_condition and current_close > trail_stop_buy
if trailing_buy_condition
    trail_stop_buy := current_close

// Custom Trailing Stop Function for Sell Trade
var float trail_stop_sell = na
trailing_sell_condition = sell_condition and current_close < trail_stop_sell
if trailing_sell_condition
    trail_stop_sell := current_close

// Take Buy Trade with Stop Loss
if (buy_condition)
    strategy.entry("Buy", strategy.long)
    strategy.exit("Buy Stop Loss", "Buy", stop=stop_loss_buy)

// Take Sell Trade with Stop Loss
if (sell_condition)
    strategy.entry("Sell", strategy.short)
    strategy.exit("Sell Stop Loss", "Sell", stop=stop_loss_sell)

// Set the background color based on the trade direction
bgcolor(trade_direction == 1 ? color.new(color.green, 90) : trade_direction == -1 ? color.new(color.red, 90) : na)