Die Strategie nutzt die verstärkten Bandbreiten, um die Preiswende zu ermitteln, und macht mehr, wenn der Preis nahe an der Untergrenze der Bandbreite ist, und schließt die Position, wenn die grüne K-Linie auftritt, um eine Aufprallmöglichkeit unterhalb der Bandbreite zu erfassen.
Berechnen Sie die Parameterbasis und Dev für die regulären Bandbreiten sowie die oberen und unteren Grenzen der upper BB und der lower BB.
Berechnen Sie die SMA-Mittellinie und die Up-and-Down-Streckenupex2 und Dnex2 für die Abweichung von einem bestimmten Prozent der SMA.
Berechnen Sie die Mittelwerte von upper BB, lower BB, und die Kurven upex2 und dnex2 und erzeugen Sie die Kurven upex3 und dnex3.
Nehmen Sie die größeren Werte aus upperBB als neue upperbaneupex und die kleineren Werte aus lowerBB als neue downline dnex.
Wenn der Preis niedriger als dnex ist, machen Sie einen Aufschlag; wenn die K-Linie grün ist (der Schlusskurs ist größer als der Eröffnungskurs), schließen Sie die Position.
Die verstärkte Bandung erhöht die Empfindlichkeit des ursprünglichen Bandungsindikators und ermöglicht die frühere Erfassung von Chancen für eine Preisumkehr.
In Kombination mit einer K-Leitung-Signalfilterung verhindert es häufige Störungen bei der Kompilierung.
Die Rückmeldung zeigt, dass die Strategie zwischen 2008 und 2018 stabil war, die Gewinnkurve war glatt und die maximale Rücknahme weniger als 20% betrug.
Die Parameter sind konfigurierbar, wie z. B. die Kapitalnutzung, die Zeit der Transaktion und das Risikomanagement.
Die falsche Einstellung der Bandbreitenparameter kann zu einer zu hohen Handelsfrequenz oder verpassten Gelegenheiten führen.
Wenn man nur in mehrere Richtungen arbeitet, kann man nicht profitieren, wenn sich der Trend umkehrt.
Die K-Leitung kann sich verzögern und nicht in der Lage sein, den Start zu stoppen.
Die Rücklaufdaten sind nur 10 Jahre alt, die Stabilität der Probenabschnitte muss erweitert werden.
Das Problem ist, dass sie nicht in der Lage sind, sich an einen großen Sprung oder eine Lücke zu gewöhnen.
Verschiedene Parameterkombinationen zu testen und die Bandbreite zu optimieren.
Filterung in Kombination mit anderen Indikatoren, um die Rate der gewinnbringenden Trades zu erhöhen.
Eintritt in eine Leerlaufstrategie, um eine Leerlaufstrategie in Betracht zu ziehen, wenn der Preis über dem Kurs liegt.
Setzen Sie Stop-Loss-Bedingungen, um einzelne Verluste zu kontrollieren.
Entwicklung eines automatischen Parameter-Systems zur Optimierung der Parameter nach Marktveränderungen.
Optimierung der Zulassungsregeln für Sprünge und Spaltungen.
Erweiterung des Rückmesszeitraums und Prüfung der Parameterstabilität.
Die Strategie nutzt die Erhöhung der Bandbreite, um die Preiswende zu bestimmen, um die Position in der Nähe des Bands unterhalb der Bahn zu erhöhen, und arbeitet mit dem K-Linien-Filtersignal, um eine schnelle Stopp- und Rückmessung zu ermöglichen. Die Strategie funktioniert jedoch nur in mehreren Richtungen. Die Stichprobenräume sind begrenzt, die wichtigsten Parameter müssen weiter optimiert werden und es besteht die Gefahr, dass die Erträge bei veränderten Marktumständen sinken. Der nächste Schritt erfordert die Einführung mehrerer Filtersignale, um die Prozentsatz der gewinnbringenden Trades zu erhöhen, die Möglichkeiten der Depositionierung zu erhöhen und die Kombination der Parameter mit einem längeren Rücklaufzyklus zu testen, um die Anpassungsfähigkeit und Stabilität der Strategie zu verbessern.
/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's Advanced Bollinger Bands Strategy v1.0", shorttitle = "ABB str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 5)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
p = input(20, "bars")
d = input(25, "percent")
showlines = input(true, defval = true, title = "Show Lines?")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
mult = input(2.0, minval=0.001, maxval=50)
basis = sma(close, p)
dev = mult * stdev(close, p)
source = close
upperBB = basis + dev
lowerBB = basis - dev
b1 = plot(basis, color=gray, linewidth=1)
p1 = plot(upperBB, color=aqua, linewidth=1)
p2 = plot(lowerBB, color=aqua, linewidth=1)
//SMAs
sma = sma(close, p)
upex2 = sma * ((100 + d) / 100)
dnex2 = sma * ((100 - d) / 100)
upex3 = (upex2 + upperBB) / 2
dnex3 = (dnex2 + lowerBB) / 2
upex = max(upperBB, upex3)
dnex = min(lowerBB, dnex3)
//exit = (high > sma and low < sma)
exit = close > open
//Lines
col = showlines ? blue : na
plot(upex, linewidth = 3, color = col, transp = 0)
plot(sma, linewidth = 3, color = col, transp = 0)
plot(dnex, linewidth = 3, color = col, transp = 0)
//Trading
lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if (not na(close[p]))
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, limit = dnex)
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, limit = upex)
if exit
strategy.close_all()