Bollinger-Band-Fitting-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-10-24 16:52:52
Tags:

img

Übersicht

Diese Strategie verwendet den Bollinger Bands-Indikator für das Trendbeurteilungsverfahren, kombiniert mit dem RSI-Indikator, um Überkauf zu vermeiden, sowie Kerzenkörperfilter und Farbfilter, um Handelssignale weiter zu validieren.

Grundsätze

Diese Strategie verwendet zunächst das untere Band des Bollinger Bands-Indikators. Wenn der Preis unterhalb des unteren Bandes liegt, gilt es als Gelegenheit, eine Position zu eröffnen. Um Überkauf zu vermeiden, führt die Strategie auch den RSI-Indikator ein, bei dem der RSI weniger als 30 sein muss, um ein Kaufsignal zu generieren. Darüber hinaus setzt die Strategie einen Kerzenkörperfilter, bei dem der Körper des aktuellen Kerzenstockens größer als die Hälfte des durchschnittlichen Körpers der Kerzenstockens in den letzten 10 Perioden sein muss, um einen Kauf auszulösen. Schließlich erfordert der Farbfilter, dass die Kerze grün ist (höher schließt), um den Zeitpunkt des Kaufs weiter zu validieren.

Wenn der Preis durch das untere Band der Bollinger Bands bricht, der RSI kleiner als 30 ist, der Körper ausreichend groß ist und die Kerze grün ist, wird ein Kaufsignal generiert. Wenn der Schlusskurs höher ist als der Eröffnungskurs und der Körper größer als die Hälfte des Durchschnittskörpers ist, ist es ein Trendumkehrsignal, das auf das Schließen der Position hinweist.

Analyse der Vorteile

Der größte Vorteil dieser Strategie besteht darin, dass sie den Beginn eines Trends erfolgreich bestimmen und den Markt betreten und vor der Trendumkehr verlassen kann, wodurch das Gewinnpotenzial groß ist.

  1. Der Bollinger Bands-Indikator beurteilt die Trendrichtung genau. Er verwendet den Kursschwankungsbereich, um die Preisbewegungen zu bestimmen, so dass die Verwendung dieses Indikators den Anfang und das Ende der Trends effektiv bestimmen kann.

  2. Der RSI-Indikator vermeidet Überkauf. Der RSI kann überkaufte und überverkaufte Bedingungen messen.

  3. Entity-Filterung erhöht die Signalzuverlässigkeit. Ein größerer Kerzenkörper stellt einen stärkeren Durchbruch dar. Entity-Filterung sorgt für starke Durchbrüche.

  4. Nur der Kauf von grünen Kerzen bestätigt das richtige Timing.

  5. Wenn die Kerze grün wird, zeigt dies eine Trendwende nach dem Kauf an. Händler sagen, dass sich die Trends abwechseln, und wenn die Kerze grün wird, kann man über den Zeitpunkt der Umkehr entscheiden.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Es kann auch falsche Ausbruchssignale erzeugen, wenn der Markt schwankt.

  2. Der Mangel an Stop-Loss kann zu größeren Verlusten führen, wenn die Urteile falsch sind.

  3. Filterbedingungen, die zu streng sind, verpassen Kaufmöglichkeiten. Mehrere stapelte Filter können Möglichkeiten verpassen.

  4. Parameter- und Filter-Einstellungen müssen optimiert und verifiziert werden, reale Handelsergebnisse müssen ebenfalls verifiziert werden.

  5. Die grüne Wende der Kerze ist unzuverlässig, um eine Umkehrung des Trends zu bestimmen.

Für die Risiken kann Stop Loss Verluste kontrollieren, die Optimierung von Filtern reduziert verpasste Käufe, die Verwendung mehrerer Indikatoren überprüft Signale und überprüft Ergebnisse im Live-Handel.

Verbesserungsrichtlinien

Die Strategie kann in mehreren Aspekten optimiert werden:

  1. Optimieren Sie die Bollinger-Band-Parameter für die besten Einstellungen. Testen Sie verschiedene Perioden, Standardabweichungsmultiplen usw.

  2. Testen Sie anstelle des RSI verschiedene Oszillatoren, z. B. KDJ, Williams %R usw.

  3. Setzen Sie angemessene Stops auf Basis von Backtestdaten.

  4. Optimieren Sie die Filterverhältnisse, testen Sie unterschiedliche Körperfiltergrößen und -perioden.

  5. Einbeziehung anderer Indikatoren zur Bestätigung von Signalen, z. B. Volumenpreisbestätigungsindikatoren.

  6. Versuche verschiedene Umkehrsignale, z. B. gleitende Durchschnittskreuzungen, um eine Trendumkehr zu ermitteln.

  7. Test auf verschiedenen Produkten und Zeitrahmen.

Schlussfolgerung

Insgesamt hat die Strategie nach Fähigkeit und Anpassungsfähigkeit einen relativ starken Trend. Die Kernstärken sind die Verwendung von Bollinger Bands zur Bestimmung der Trendrichtung und die Verwendung von RSI und Filtern zur Sicherstellung des Timings. Es gibt aber auch bestimmte Risiken, die gezielt optimiert und getestet werden müssen. Wenn Parameter und Regeln überprüft werden können, kann es gute Ergebnisse im Live-Handel erzielen. Abschließend hat die Strategie einen praktischen Wert, der es wert ist, untersucht zu werden.


/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//Donate: 3BMEXvKkuJLobJrcpMm12bKTZoCnojZTjh

//@version=2
strategy(title = "Noro's Wizard Strategy v1.1", shorttitle = "Wizard str 1.1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 10)

//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
length = input(40, defval = 40, minval = 1, maxval = 200, title = "BB Period")
usebod = input(false, defval = false, title = "Use Body-Filter")
usecol = input(false, defval = false, title = "Use Color-Filter")
usersi = input(true, defval = true, title = "Use RSI-Filter")
showar = input(false, defval = false, title = "Show Arrows")
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")

//Bollinger
src = low
mult = 2
basis = sma(src, length)
dev = mult * stdev(src, length)
lower = basis - dev
plot(lower, color = lime, linewidth = 3, title="Bottom Line")

//Fast RSI Filter
fastup = rma(max(change(close), 0), 7)
fastdown = rma(-min(change(close), 0), 7)
rsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
rsif = rsi < 30 or usersi == false

//Body Filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 2 or usebod == false

//Signals
up1 = low < lower and (close < open or usecol == false) and body and rsif
exit = close > open and nbody > abody / 2

//Arrows
needar = up1 and showar
plotarrow(needar ? 1 : na)

//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

if up1
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

Mehr