Trendfolgestrategie zum Überqueren des BB-Kanals und Durchbrechen des gleitenden Durchschnitts SMA200


Erstellungsdatum: 2023-11-16 11:04:42 zuletzt geändert: 2023-11-16 11:04:42
Kopie: 0 Klicks: 700
1
konzentrieren Sie sich auf
1617
Anhänger

Trendfolgestrategie zum Überqueren des BB-Kanals und Durchbrechen des gleitenden Durchschnitts SMA200

Überblick

Die Strategie kombiniert Bollinger Bands und Moving Averages und entwirft ein Handelssystem, das Trends verfolgt. Es handelt sich dabei um ein Handelssystem, das bei einem Bollinger Bandbruch einen Plus macht, wenn der Kurs über den SMA200 sinkt, bei einem Bollinger Bandbruch einen Teilabschluss macht und bei einem SMA200 einen vollständigen Abschluss macht. Die Strategie verfolgt Trends und stoppt Verluste, wenn sich der Trend ändert.

Strategieprinzip

  1. Berechnen Sie den SMA200 Exponential Moving Average als Indikator für einen großen Trend
  2. Berechnung des Brinbands, der die Oberbahn, die Mittelbahn und die Unterbahn umfasst, mit Farbgebung als Gewinnbereich
  3. Wenn die Brin-Band sowohl auf als auch abwärts über dem SMA200 liegt, ist dies ein Aufwärtstrend.
  4. Wenn der Preis die Bollinger-Band-Mittelbahn aufwärts durchbricht, machen Sie eine zusätzliche Eintrittsphase.
  5. Der Preis fiel nach unten und brach die Bollinger Bands ab, was zu einem teilweisen Ausgleich führte.
  6. Wenn der Preis unter den SMA200 fällt, bedeutet dies eine Trendwende und ein vollständiger Ausgleich.
  7. Setzen Sie einen Stop-Loss-Punkt, um zu verhindern, dass Sie zu viel verlieren.
  8. Anzahl der Transaktionen, berechnet auf Basis des Kontogeldes und der Risikobereitschaft

Die Strategie setzt die Existenz eines Trends voraus, dass die Bollinger Band vollständig über dem SMA 200 liegen muss und nur bei einem eindeutigen Aufwärtstrend einen Mehrkopf-Eintritt wählt. Wenn ein Abwärtstrend eintritt, wird das Risiko durch einen Schlüsselpunkt-Anteilsstillstand und einen Vollpositionsstillstand kontrolliert.

Analyse der Stärken

  1. Es gibt einen klaren Trend zur Einschätzung mit Brin-Bändern, anstatt auf Basis eines einzigen Indikators
  2. Der SMA 200 beurteilt die Richtung der großen Trends und vermeidet unnötige Transaktionen in schwankenden Zeiten.
  3. Ein Teil der Gewinne und Verluste wurden eingestellt, um den Trend zu verfolgen.
  4. Schlüsselfunktionsschließung: Schließung der Schließung, um eine Ausweitung der Schließung zu vermeiden
  5. Einführung von Risikomanagement-Konzepten zur Berechnung der Anzahl der Geschäfte, um zu verhindern, dass einzelne Verluste zu groß sind

Risikoanalyse

  1. Brin-Band-Breakout-Trading-Signale könnten zu einer höheren Falschsignalrate führen
  2. Einige Stop-Loss-Einstellungen müssen optimiert werden, um vorzeitige Verluste zu verhindern.
  3. Der Stoppwert ist zu klein und kann zu häufig auftreten.
  4. SMA-Zyklusparameter benötigen Testoptimierungen, um die Verzögerung und Empfindlichkeit auszugleichen
  5. Die Methode zur Berechnung der Anzahl der Transaktionen muss möglicherweise optimiert werden, um zu verhindern, dass die Einzelsumme zu hoch ist.

Diese Risiken können durch die sorgfältige Prüfung der Brin-Band-Parameter, die Optimierung der partiellen Stop-Loss-Strategie, die Anpassung der SMA-Zyklus-Parameter und die Einführung einer wissenschaftlicheren Risikomanagementmethode verringert werden.

Optimierungsrichtung

  1. Tests zur Optimierung von Brin-Band-Parametern und zur Verringerung der Fehleinschätzung
  2. Erforschen Sie, wie Sie einen geeigneteren partiellen Stopp setzen können.
  3. Optimierte Werte für die SMA-Periodenparameter
    1. Erwägen Sie die Einführung eines adaptiven Stop-Losses als Ersatz für einen festen Stop-Loss
  4. Die Studie führte die Volatilitätsquote ein, um die Größe der Transaktionen wissenschaftlicher zu berechnen.
  5. Rückmeldung zu den Transaktionskosten für Simulationen
  6. Erwägen Sie die Verwendung in Kombination mit anderen Indikatoren zur Steigerung der strategischen Stabilität

Zusammenfassen

Die Strategie integriert die Brin-Band-Kanal, SMA-Gewinnspanne, um eine vollständige Trend-Tracking-Strategie zu entwerfen. Es ist zuverlässiger, wenn ein Trend vorhanden ist, und hat eine starke Trend-Tracking-Fähigkeit. Durch die kontinuierliche Optimierung der Stop-Loss-Strategie, die Verringerung der Signalfehlerrate und die Einführung wissenschaftlicher Risikomanagement-Methoden kann die Strategie zu einer Trend-Strategie werden, die es wert ist, auf lange Sicht in der Praxis zu verfolgen.

Strategiequellcode
/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
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/
// © mohanee

//@version=4
strategy(title="BB9_MA200_Strategy", overlay=true, pyramiding=1,     default_qty_type=strategy.cash,  initial_capital=10000, currency=currency.USD)  //default_qty_value=10, default_qty_type=strategy.fixed, 


var stopLossVal=0.00

//variables BEGIN
smaLength=input(200,title="MA Length")
bbLength=input(21,title="BB Length")  

bbsrc = input(close, title="BB Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")


stopLoss = input(title="Stop Loss%", defval=5, minval=1)

riskCapital = input(title="Risk % of capital  == Based on this trade size is claculated    numberOfShares = (AvailableCapital*risk/100) / stopLossPoints", defval=10, minval=1)


sma200=ema(close,smaLength)

plot(sma200, title="SMA 200", color=color.orange)


//bollinger calculation
basis = sma(bbsrc, bbLength)
dev = mult * stdev(bbsrc, bbLength)
upperBand = basis + dev
lowerBand = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)

//plot bb
plot(basis, "Basis", color=color.teal, style=plot.style_circles , offset = offset)
p1 = plot(upperBand, "Upper", color=color.teal, offset = offset)
p2 = plot(lowerBand, "Lower", color=color.teal, offset = offset)
fill(p1, p2, title = "Background", color=color.teal, transp=95)


strategy.initial_capital = 50000

//Entry---

strategy.entry(id="LE", comment="LE capital="+tostring(strategy.initial_capital + strategy.netprofit ,"######.##"), qty=( (strategy.initial_capital + strategy.netprofit ) * riskCapital / 100)/(close*stopLoss/100) , long=true,  when=strategy.position_size<1 and upperBand>sma200 and lowerBand > sma200 and crossover(close, basis) )     //  // aroonOsc<0  //(strategy.initial_capital * 0.10)/close


barcolor(color=strategy.position_size>=1? color.blue: na)

//partial Exit
tpVal=strategy.position_size>1 ? strategy.position_avg_price * (1+(stopLoss/100) ) : 0.00
strategy.close(id="LE", comment="Partial points="+tostring(close - strategy.position_avg_price, "####.##"),  qty_percent=30 , when=abs(strategy.position_size)>=1 and close>tpVal and crossunder(lowerBand, sma200)   )   //close<ema55 and rsi5Val<20 //ema34<ema55


//close All on stop loss
//stoploss
stopLossVal:=   strategy.position_size>1 ? strategy.position_avg_price * (1-(stopLoss/100) ) : 0.00

strategy.close_all( comment="SL Exit points="+tostring(close - strategy.position_avg_price, "####.##"),  when=abs(strategy.position_size)>=1 and close < stopLossVal  )  //close<ema55 and rsi5Val<20 //ema34<ema55  //close<ema89//

strategy.close_all( comment="BB9 X SMA200 points="+tostring(close - strategy.position_avg_price, "####.##"),  when=abs(strategy.position_size)>=1 and  crossunder(basis, sma200)  )  //close<ema55 and rsi5Val<20 //ema34<ema55  //close<ema89