Die Strategie trägt den Namen
Die Kernlogik dieser Strategie basiert auf dem Bollinger Bands-Kanal, der aus Mittellinie, Oberband und Unterband besteht. Die Mittellinie ist der gleitende Durchschnitt des Schlusskurses für n Tage. Die oberen und unteren Bands sind Abweichungen oberhalb und unterhalb der Mittellinie. Wenn der Preis sich der oberen Band nähert, bedeutet dies, dass der Markt möglicherweise überhitzt ist und es kurze Chancen gibt. Wenn der Preis sich der unteren Band nähert, bedeutet dies, dass der Markt unterbewertet ist und es lange Chancen geben kann.
Diese Strategie verwendet zwei Bollinger Bands. Bollinger Band 1 eignet sich für lange Trades und Bollinger Band 2 eignet sich für kurze Trades. Die Parameter von Bollinger Band 1 sind mit einer Länge von 25 und einer Abweichung von 2,9 mal optimiert. Die Parameter von Bollinger Band 2 sind mit einer Länge von 36 und einer Abweichung von 3,2 mal optimiert. Wenn der Schlusskurs über das untere Band von Bollinger Band 1 kreuzt, wird es ein langes Signal erzeugen. Wenn der Schlusskurs unter dem oberen Band von Bollinger Band 2 kreuzt, wird es ein kurzes Signal erzeugen.
Im Vergleich zu traditionellen Bollinger-Band-Strategien hat diese Strategie folgende Vorteile:
Es realisiert einen bidirektionalen Handel sowohl auf der Long- als auch auf der Short-Seite, der Handelschancen in verschiedenen Marktstadien nutzen kann.
Die beiden Bollinger-Band-Parameter werden sorgfältig getestet, um effektiv Handelssignale zu erzeugen.
Das Risiko ist kontrollierbar. Die bewegliche Stop-Loss-Methode kann das Risiko einer Seite effektiv kontrollieren.
Es gibt auch einige potenzielle Risiken für diese Strategie:
Bollinger-Bänder können bei extremen Marktschwankungen ungültig werden.
Wir können den Stop-Loss richtig erweitern oder rechtzeitig stoppen, um dieses Risiko zu vermeiden.
Hohe Handelsfrequenzrisiken: Überempfindliche Parameter könnten zu häufigem Handel und erhöhten Handelskosten führen.
Diese Strategie kann noch weiter optimiert werden:
Kombinieren Sie andere Indikatoren, um Signale zu filtern und falsche Trades zu vermeiden, wenn Bollinger Bands scheitern.
Dynamische Anpassung der Parameter an die Merkmale des Marktes in verschiedenen Perioden.
Optimieren Sie die Stop-Loss-Methoden, indem Sie einen Trailing-Stop-Loss oder einen exponentiell beweglichen Stop-Loss verwenden, um Risiken effektiv zu kontrollieren.
Kombination von Algorithmen für maschinelles Lernen zur automatischen Optimierung der Parameter.
Zusammenfassend lässt sich sagen, dass diese Strategie insgesamt den zweidimensionalen Handel sowohl für die Long- als auch für die Short-Seiten auf der Grundlage des doppelten Bollinger-Bands-Kanals und der Optimierung der Parameter optimiert. Im Vergleich zu traditionellen Bollinger-Bands-Strategien hat sie die Vorteile des zweidimensionalen Handels und der Risikokontrolle. Sie eignet sich zur Nutzung von Chancen in verschiedenen Marktstadien und hat einen bestimmten praktischen Wert. Allerdings bestehen immer noch Risiken wie das Scheitern von Bollinger-Bands und das Erreichen von Stop-Loss. Vor der Produktivierung sind weitere Optimierungen und Überprüfungen erforderlich.
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 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/ // © exlux99 //@version=4 strategy("BB NDX strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, calc_on_every_tick = true, commission_type = strategy.commission.percent, commission_value = 0.01) source = close length = input(25, minval=1, title="Length BB long") mult = input(2.9, minval=0.001, maxval=50, step=0.1, title="MULT BB long") length2 = input(36, minval=1, title="Length BB short") mult2 = input(3.2, minval=0.001, maxval=50, step=0.1, title="MULT BB short") basis = sma(source, length) dev = mult * stdev(source, length) dev2 = mult2 * stdev(source, length2) upper = basis + dev2 lower = basis - dev buyEntry = crossover(source, lower) sellEntry = crossunder(source, upper) longEntry=input(true) shortEntry=input(true) g(v, p) => round(v * (pow(10, p))) / pow(10, p) risk = input(100) leverage = input(1.0, step = 0.5) c = g((strategy.equity * leverage / open) * (risk / 100), 4) tplong=input(0.065, step=0.005, title="Take profit % for long") sllong=input(0.04, step=0.005, title="Stop loss % for long") tpshort=input(0.025, step=0.005, title="Take profit % for short") slshort=input(0.04, step=0.005, title="Stop loss % for short") if(longEntry) strategy.entry("long",1,c,when=buyEntry) strategy.exit("short_tp/sl", "long", profit=close * tplong / syminfo.mintick, loss=close * sllong / syminfo.mintick, comment='LONG EXIT', alert_message = 'closeshort') strategy.close("long",when=sellEntry) if(shortEntry) strategy.entry("short",0,c,when=sellEntry) strategy.exit("short_tp/sl", "short", profit=close * tpshort / syminfo.mintick, loss=close * slshort / syminfo.mintick, comment='SHORT EXIT', alert_message = 'closeshort') strategy.close("short",when=buyEntry)