
Diese Strategie basiert auf der Konzeption des Brin-Bands, um die oberen und unteren Bahnen der Preiskanäle zu setzen und damit Trends zu beurteilen und Handelssignale zu erzeugen. Insbesondere wird die durchschnittliche absolute Abweichung des Preises als Kanalbandbreite berechnet, die mittlere Bahn als einfacher gleitender Durchschnitt der Preise, die oberen und unteren Bahnen jeweils mit einer Verringerung der mittleren Bahn um ein- oder zweimal.
Die Strategie beinhaltet folgende Punkte:
Der Mittelstrahl des Preises, der einfache bewegliche Durchschnitt des Preises, wird berechnet.
Der einfache Moving Average der absoluten Preisdifferenz wird als Kanalbandbreite berechnet.
Die oberen und unteren Schienen werden je nach Mittelbahn und Bandbreite bestimmt. Die oberen Schienen sind 1 oder 2 mal breiter als die mittleren Schienen, die unteren Schienen sind 1 oder 2 mal breiter als die mittleren Schienen.
Berechnen Sie die Indikatoren für die Beurteilung von hohen Trends. Wenn der Preis über der oberen Bahn 2 liegt, ist er hoch und wenn der Preis unter der unteren Bahn 2 liegt, ist er leer.
Erzeugt ein Handelssignal. Wenn der Preis in die oberen Bahn 2 geht, macht er mehr, wenn er in die unteren Bahn 2 geht, macht er nichts.
Setzen Sie die Stop-Line. Mehrfache Stop-Line ist die untere Schiene 1, die leere Single Stop-Line ist die obere Schiene 1.
Die Positionen werden nach den Anforderungen des Fondsmanagements berechnet.
Die Strategie kombiniert die Trends der beweglichen Durchschnittsbeurteilung, die Überkaufe der Bollinger Bands und die Umkehrung der Trends. Durch die Bollinger Band Differenz wird die Trendstärke beurteilt, während die Funktion der Bollinger Band Rückkehr auf die mittlere Achse ausgeübt wird, was insgesamt zu einem stabileren Handelssystem führt.
Diese Strategie hat folgende Vorteile:
Mit einem Dual-Track-System kann man die Stärke und Schwäche von Trends besser beurteilen.
Brin hat eine starke Regressionsfunktion, die einen falschen Durchbruch wirksam verhindert.
Die Doppelspurdifferenz arbeitet mit der Rücklaufzentrale der Brin-Band zusammen, um ein stabileres Handelssignal zu bilden.
Es gibt eine eindeutige Stop-Loss-Exit-Logik, um das Risiko zu kontrollieren.
Die Positions sind gemäß den Anforderungen der Fondsverwaltung eingerichtet, um Super-Leverage zu vermeiden.
Die Strategie ist klar, leicht zu verstehen und zu optimieren.
Flexible Parameter für die Optimierung für verschiedene Märkte.
Die Strategie birgt auch einige Risiken:
Die falsche Einstellung der Brin-Band-Parameter kann zu einem Schutzwall-Effekt führen, der die Preise nicht effektiv verfolgt.
Die Differenz zwischen den beiden Bahnen ist nicht ausreichend, um Trendfehler zu vermeiden.
In einem wackligen Markt kann es zu mehr ungültigen Signalen kommen.
Ein falscher Durchbruch kann zu Verlusten führen.
Es gibt eine gewisse Zeitverzögerung, die den Wechselpunkt verfehlen könnte.
Der Trend kann nicht unbegrenzt verfolgt werden.
Entsprechende Risikomanagementmaßnahmen:
Optimierung der Parameter, um den Brin-Band an unterschiedliche Perioden anzupassen.
Es ist wichtig, dass Sie sich mit anderen Indikatoren in Verbindung setzen, um Fehleinschätzungen zu vermeiden.
Das ist eine sehr wichtige Aufgabe.
Optimierung der Stop-Loss-Punkte und Gewährleistung der Gewinn- und Verlustquote
Um die Verzögerung zu verringern, sollten die Phasen entsprechend verkürzt werden.
Der Wind muss stabil sein und nicht unbegrenzt nach den Stürzen jagen.
Die Strategie kann in folgenden Richtungen optimiert werden:
Optimierung der Brin-Band-Parameter, um die Preise besser zu verfolgen. Anpassungsparameter können eingeführt werden.
Versuchen Sie mit verschiedenen Moving Averages wie EMA, DWMA usw.
Trend-Filter hinzufügen, um einen wackligen Markt zu vermeiden.
Hinzufügen von Exit-Aktivitäten, um mehr Trendgewinn zu erzielen. Kleine Stop-Losses, mobile Stop-Losses, Exit-Indikatoren usw. können berücksichtigt werden.
Einführung von mehreren Zeitzyklen zur Kombination, die für unterschiedliche Marktbedingungen geeignet sind.
Zusätzliche bedingte Logiken, wie z.B. Sprungvolumen, werden hinzugefügt, um falsche Sprünge zu vermeiden.
Es ist möglich, die Brin-Band umzukehren, die Oberbahn zu verkaufen und die Unterbahn zu kaufen.
Parameteroptimierungstests zur Suche nach optimalen Parameterkombinationen.
Die Strategie ist ein klares Konzept und hat eine starke Stabilität. Es gibt aber auch Raum für weitere Verbesserungen, die durch Parameteroptimierung, Logikoptimierung und Risikomanagement weiterentwickelt werden können. Sie kann eine sehr praktische Quantifizierungsstrategie sein.
/*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/
// © noro
//@version=4
strategy(title = "Noro's Bands Strategy", shorttitle = "Bands", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, commission_value = 0.1)
//Sattings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
lotsize = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
len = input(20, defval = 20, minval = 1, maxval = 1000, title = "Length")
src = input(ohlc4, title = "Source")
showbb = input(true, title = "Show Bands")
showof = input(true, title = "Show Offset")
showbg = input(false, title = "Show Background")
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")
//PriceChannel
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2
//Distance
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd2 = center + distsma * 2
ld2 = center - distsma * 2
//Trend
trend = 0
trend := high > hd2 ? 1 : low < ld2 ? -1 : trend[1]
bgcol = showbg == false ? na : trend == 1 ? color.lime : color.red
bgcolor(bgcol, transp = 70)
//Lines
colo = showbb == false ? na : color.black
offset = showof ? 1 : 0
plot(hd2, color = colo, linewidth = 1, transp = 0, offset = offset, title = "High band 2")
plot(hd, color = colo, linewidth = 1, transp = 0, offset = offset, title = "High band 1")
plot(center, color = colo, linewidth = 1, transp = 0, offset = offset, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, offset = offset, title = "Low band 1")
plot(ld2, color = colo, linewidth = 1, transp = 0, offset = offset, title = "Low band 2")
//Trading
size = strategy.position_size
needstop = needlong == false or needshort == false
truetime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)
lot = 0.0
lot := size != size[1] ? strategy.equity / close * lotsize / 100 : lot[1]
if distsma > 0
strategy.entry("Long", strategy.long, lot, stop = hd2, when = truetime and needlong)
strategy.entry("Short", strategy.short, lot, stop = ld2, when = truetime and needshort)
sl = size > 0 ? ld2 : size < 0 ? hd2 : na
if size > 0 and needstop
strategy.exit("Stop Long", "Long", stop = sl)
if size < 0 and needstop
strategy.exit("Stop Short", "Short", stop = sl)
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()
strategy.cancel("Long")
strategy.cancel("Short")