
Diese Strategie, die als “Quantitative Bollinger Bands Trading Strategy” bezeichnet wird, ist eine Index- und Aktienhandelsstrategie, die auf der Verbesserung der Bollinger Bands-Kanäle basiert. Die Strategie wird durch die Anpassung der Bollinger Bands-Parameter optimiert, um sowohl Long- als auch Short-Positionen gleichzeitig zu optimieren und somit in einem fallenden Markt zu profitieren.
Die Kernlogik der Strategie basiert auf dem Brin-Band-Kanal. Der Brin-Band besteht aus einer mittleren, einer oberen und einer unteren Bahn. Die mittlere Bahn ist der Moving Average des n-Tage-Schlusskurses, die oberen und unteren Bahnen sind die Abweichungen der mittleren Bahn.
Diese Strategie verwendet zwei Brin-Bänder, Brin-Band 1 ist für den Plus- und Brin-Band 2 ist für den Minus-Bereich geeignet. Die Parameter von Brin-Band 1 sind optimiert, mit einer Länge von 25 und einer Abweichung von 2,9 Mal. Die Parameter von Brin-Band 2 sind ebenfalls optimiert, mit einer Länge von 36 und einer Abweichung von 3,2 Mal.
Im Vergleich zur traditionellen Brin-Band-Strategie hat die Strategie folgende Vorteile:
Es gibt mehrere bilaterale Handelsplätze. Es ist für bilaterale Szenarien geeignet, um Handelsmöglichkeiten in verschiedenen Phasen des Marktes zu nutzen.
Die Parameter wurden optimiert. Die Parameter der beiden Brin-Bands wurden sorgfältig getestet, um ein effektives Handelssignal zu senden.
Risikokontrolle: Die Einseitigkeit des Risikos kann durch die Verwendung von mobilen Stop-Loss-Methoden wirksam kontrolliert werden.
Es gibt einige potenzielle Risiken bei dieser Strategie:
Die Brin-Band-Channel-Risiken können ausfallen, wenn die Märkte stark schwanken.
Die Stop-Loss-Risiken werden gedeckt. Bewegliche Stop-Loss-Risiken können gedeckt werden, wodurch die Verluste vergrößert werden. Die Stop-Loss-Risiken können angemessen geduldet oder rechtzeitig vermieden werden.
Risiken bei zu hoher Handelsfrequenz. Die Parameter sind zu sensibel eingestellt, was zu höheren Kosten führen kann.
Die Strategie kann noch weiter optimiert werden:
In Kombination mit anderen Indikatoren filtern Sie die Signale, um Fehler zu vermeiden, wenn die Brin-Band ausfällt.
Dynamische Anpassung der Parameter, um die Brin-Band besser an die Markteigenschaften unterschiedlicher Perioden anzupassen.
Optimierung der Stop-Loss-Methode, die Verwendung von Tracking-Stops oder Index-Moving-Stops, um das Risiko effektiv zu kontrollieren.
Automatische Optimierung der Parameter in Kombination mit Machine Learning-Algorithmen.
Diese Strategie overall basiert auf der doppelten Brin-Band-Kanal, durch Parameter-Optimierung, um die Optimierung der langen und kurzen bilateralen Handel. Im Vergleich zu den traditionellen Brin-Band-Strategie, mit mehreren Leerlauf, Risikokontrolle Vorteile, die für die Erfassung der verschiedenen Phasen des Marktes Gelegenheiten, hat einen gewissen praktischen Wert. Aber es gibt auch Brin-Band-Unwirksamkeit, Verlust-Stopp-Risiko und so weiter, noch weitere Optimierung und Verifizierung, bevor die Produktion.
/*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)