Moving Stop Loss-Strategie kombiniert Parobel-Zyklus und Bollinger-Band


Erstellungsdatum: 2024-02-02 11:05:57 zuletzt geändert: 2024-02-02 11:05:57
Kopie: 2 Klicks: 465
1
konzentrieren Sie sich auf
1228
Anhänger

Moving Stop Loss-Strategie kombiniert Parobel-Zyklus und Bollinger-Band

Überblick

In diesem Artikel wird eine quantitative Handelsstrategie beschrieben, bei der der Parobel-Zyklus-Indikator mit dem Brin-Band-Indikator kombiniert wird, um eine mobile Stop-Loss-Strategie einzurichten. Diese Strategie berechnet die Parobel-Zykluslinie, um die Richtung des Markttrends zu bestimmen, und verwendet die Brin-Band-Dynamik, um die Stop-Loss-Position zu setzen, um so einen mobilen Stop-Loss zu erzielen, um Gewinne zu sperren.

Strategieprinzip

Die Strategie nutzt zunächst den Parobel-Indikator, um den aktuellen Markttrend zu ermitteln. Wenn der heutige Schlusskurs die Parobel-Zykluslinie von gestern überschreitet, kann man davon ausgehen, dass der Kurs sich zu einem Biss verändert.

Zweitens ist die Strategie in Kombination mit dem Bollinger Bands-Indikator, der eine dynamische Stop-Loss-Position festlegt. Die obere Spur in der Bollinger Band kann als Überkaufzone und die untere Spur als Überverkaufzone angesehen werden. Nach dem Überschreiten wird die Brechposition gestoppt, wenn der Preis wieder unter die Bollinger Bands-Unterbahn fällt.

Durch die oben genannten Prinzipien ermöglicht die Strategie, die Marktrichtung zu bestimmen und gleichzeitig einen dynamischen Stop-Loss-Mechanismus einzurichten, um die Gewinne zu verfolgen. Dies ermöglicht es, einen Teil der Anstiege und Abwärtstrends in großen Trends zu erfassen und gleichzeitig die Gewinne durch Stop-Loss zu sperren und Risiken zu vermeiden.

Strategische Vorteile

Im Gegensatz zu einer traditionellen Stop-Loss-Strategie, die nur einen festen Stop-Loss-Punkt festlegt, nutzt die Strategie die Brin-Band-Anzeige als Stop-Loss-Linie, so dass die Stop-Line mit den Preisbewegungen bewegt werden kann. Dies ermöglicht es, mehr Gewinne in vergleichsweise großen Geschäften zu sperren. Außerdem kann die Strategie die Brin-Band-Anzeige hinzufügen, um die Überkauf-Überverkaufszonen zu beurteilen, was viel genauer ist als die Verwendung einer Parobel-Zyklus-Linie.

Risiken und Lösungen

Das Hauptrisiko dieser Strategie besteht darin, dass die Parobel-Indikatoren keine starke Tendenz beurteilen. In einem bewegten Umfeld können die Preise mehrmals die Parobel-Zykluslinie überschreiten, so dass die Strategie häufige, aber winzige Transaktionen erzeugt. In diesem Fall können die Transaktionsgebühren und Schlupfkosten einen großen Anteil ausmachen und die Profitabilität der Strategie beeinträchtigen.

Um diese Risiken zu vermeiden, können Sie Parameter anpassen, um die Parobel-Periodenzähler zu vergrößern und die Wahrscheinlichkeit von Fehleinschätzungen zu verringern, oder Sie können andere Indikatoren kombinieren, um die Eintrittszeiten zu filtern. Sie können beispielsweise einen Schwingungsindikator hinzufügen, um zu entscheiden, ob die Situation trendiert oder schwingt, um unnötige Geschäfte zu reduzieren.

Strategieoptimierung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Optimierung der Parobel-Indikatorparameter, Anpassung der Parameter-Indikatoränderungsgeschwindigkeit und Verringerung der Wahrscheinlichkeit von Fehlentscheidungen

  2. Hinzufügen von Filtern für andere technische Indikatoren, wie z. B. die Aufnahme von MACD, KD und anderen, um die Art des Handels zu beurteilen, um einen arbitragen Schwingungsmarkt zu vermeiden

  3. Optimierung der Brin-Band-Parameter, Anpassung der Bandbreiten-Parameter, um die Brin-Band-Parameter näher an Preisänderungen anzupassen

  4. Erhöhung von Quantitätsindikatoren, wie beispielsweise Handelsvolumen, Haltungsvolumen usw., um falsche Durchbrüche zu vermeiden

  5. In Verbindung mit den Grundlagen der Aktien, um Probleme zu vermeiden, die die Ergebnisse der strategischen Lagerhaltung beeinflussen

Zusammenfassen

Die Strategie kombiniert Trendverfolgung und Risikokontrolle, um die Richtung und Stärke der Markttrends anhand von Parobel-Indikatoren zu bestimmen. Die Strategie kann im Vergleich zu herkömmlichen festen Stop-Strategien in größeren Situationen höhere Erträge erzielen. Durch die Optimierung der Parameter und die Hinzufügung anderer unterstützender Beurteilungsindikatoren kann die Strategie weiter verbessert werden.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © maxencetajet

//@version=5
strategy("HA_RSI", overlay=true, initial_capital=1000, default_qty_type=strategy.fixed, default_qty_value=0.5, slippage=25)

closeHA = request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close)

useDateFilter = input.bool(true, title="Filter Date Range of Backtest",
     group="Backtest Time Period")
backtestStartDate = input(timestamp("5 June 2022"), 
     title="Start Date", group="Backtest Time Period",
     tooltip="This start date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")
backtestEndDate = input(timestamp("5 July 2022"),
     title="End Date", group="Backtest Time Period",
     tooltip="This end date is in the time zone of the exchange " + 
     "where the chart's instrument trades. It doesn't use the time " + 
     "zone of the chart or of your computer.")

inTradeWindow = true

swingHighV = input.int(10, title="Swing High", group="number of past candles")
swingLowV = input.int(10, title="Swing Low", group="number of past candles")

emaV = input.int(200, title="Ema Period", group="EMA")

rsiV = input.int(14, title="RSI Period", group="RSI")

start = input(0.02, group="Parabolic SAR")
increment = input(0.02, group="Parabolic SAR")
maximum = input(0.2, "Max Value", group="Parabolic SAR")

ema = ta.ema(closeHA, emaV)
rsi = ta.rsi(closeHA, rsiV)
SAR = ta.sar(start, increment, maximum)

myColor = SAR < low?color.green:color.red

longcondition = closeHA > ema and rsi > 50 and closeHA[1] > SAR and closeHA[1] < SAR[1] 
shortcondition = closeHA < ema and rsi < 50 and closeHA[1] < SAR and closeHA[1] > SAR[1]

float risk_long = na
float risk_short = na
float stopLoss = na
float entry_price = na
float takeProfit = na

risk_long := risk_long[1]
risk_short := risk_short[1]

swingHigh = ta.highest(closeHA, swingHighV)
swingLow = ta.lowest(closeHA, swingLowV)

if strategy.position_size == 0 and longcondition and inTradeWindow
    risk_long := (close - swingLow) / close
    strategy.entry("long", strategy.long, comment="Buy")
    
if strategy.position_size == 0 and shortcondition and inTradeWindow
    risk_short := (swingHigh - close) / close       
    strategy.entry("short", strategy.short, comment="Sell")
    
if strategy.position_size > 0

    stopLoss := strategy.position_avg_price * (1 - risk_long)
    entry_price := strategy.position_avg_price
    strategy.exit("long exit", "long", stop = stopLoss)
    
if strategy.position_size < 0 

    stopLoss := strategy.position_avg_price * (1 + risk_short)
    entry_price := strategy.position_avg_price
    strategy.exit("short exit", "short", stop = stopLoss)

if closeHA[1] < SAR and close > strategy.position_avg_price
    strategy.close("long", comment="Exit Long")
    
if closeHA[1] > SAR and close < strategy.position_avg_price
    strategy.close("short", comment="Exit Short")

p_ep = plot(entry_price, color=color.new(color.white, 0), linewidth=2, style=plot.style_linebr, title='entry price')
p_sl = plot(stopLoss, color=color.new(color.red, 0), linewidth=2, style=plot.style_linebr, title='stopLoss')
fill(p_sl, p_ep, color.new(color.red, transp=85))

plot(SAR, "ParabolicSAR", style=plot.style_circles, color=myColor, linewidth=1)
plot(ema, color=color.white, linewidth=2, title="EMA")