Bollinger Band Kurzfristige Umkehr Quantitative Strategie basierend auf dem gleitenden Durchschnitt


Erstellungsdatum: 2023-12-19 16:17:47 zuletzt geändert: 2023-12-19 16:17:47
Kopie: 0 Klicks: 665
1
konzentrieren Sie sich auf
1621
Anhänger

Bollinger Band Kurzfristige Umkehr Quantitative Strategie basierend auf dem gleitenden Durchschnitt

Überblick

Die Strategie ist eine kurze Linie-Umkehr-Handelsstrategie, die auf den Brin-Band-Indikatoren basiert. Sie kombiniert die Mittellinie, die Standarddifferenz und den Brin-Band-Kanal, um nach außergewöhnlich abweichenden Gelegenheiten für den Umkehrhandel zu suchen.

Strategieprinzip

  1. Berechnen Sie die Mittellinie und die Standarddifferenz.

  2. Auf- und Abfahrt des Brinbandes berechnet auf Basis der Mittellinie und der Standardabweichung. Die Oberbahnlinie ist Preis + Standardabweichung*1, die untere Linie ist Preis-Standarddifferenz*1。

  3. Wenn der Preis auf oder abgeht, was auf eine außergewöhnliche Preisentwicklung hinweist, entscheiden wir uns für einen Umkehrhandel.

  4. Wenn der Preis unterhalb der unteren Bahn liegt, handeln wir mehrköpfig; wenn der Preis über der oberen Bahn liegt, handeln wir kurzköpfig.

Analyse der Stärken

  1. Die Verwendung von Brin-Band-Kanälen als Grundlage für den Umkehrhandel zur Bestimmung von Preisabweichungen.

  2. In Kombination mit dem Gleichgewichtsfaktor kann ein teilweiser Lärmhandel effektiv gefiltert werden.

  3. Die Einführung eines Standarddifferenz-Faktors ermöglicht dem Brin-Band-Kanal eine dynamischere und bessere Beurteilung von Preisabweichungen.

  4. Die Strategie ist kleiner und stabiler.

Risikoanalyse

  1. Der Brin-Band-Indikator ist nicht in der Lage, eine Ausnahme zu bestimmen, wenn es zu einem falschen Preisbruch kommt.

  2. Es ist empfehlenswert, die Parameter entsprechend anzupassen, um die Häufigkeit der Transaktionen zu kontrollieren.

  3. Das Durchbrechen der Brin-Band auf das Abfahrtssignal kann länger dauern und erfordert eine angemessene Anpassung der Parameter für eine bessere Umkehrwirkung.

  4. Die Einführung von Stop-Loss-Systemen ist geeignet, um das Risiko zu kontrollieren.

Optimierungsrichtung

  1. Optimierung der Durchschnittszyklus- und Standardabweichungsparameter für einen vernünftigeren Brin-Band-Passage.
  2. Zusätzliche Faktoren wie EMA und MACD werden hinzugefügt, um die Signalpartikel zu filtern.
  3. Einführung von Stop-Loss- und Positionskontrollmechanismen.
  4. Optimierung der Positionsgröße und der Positionskontrollmaßnahmen.

Zusammenfassen

Die Strategie wird mit Hilfe von Brin-Band-Indikatoren für außergewöhnliche Preise beurteilt und mit Mittellinien und Standarddifferenz-Parametern umgekehrt gehandelt. Sie hat eine gewisse Stabilität. Wir müssen die maximale Rücknahme der Strategie durch Parameteroptimierung, die Einführung von Hilfsfaktoren, die Stop-Loss-Verwaltung und die Positionskontrolle weiter reduzieren und die Stabilität erhöhen.

Strategiequellcode
/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("BCE Version of EMA, SMA Mean Reversion", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
 
// Inputs
st_yr_inp = input(defval=2017, title='Backtest Start Year')
st_mn_inp = input(defval=01, title='Backtest Start Month')
st_dy_inp = input(defval=01, title='Backtest Start Day')
en_yr_inp = input(defval=2025, title='Backtest End Year')
en_mn_inp = input(defval=01, title='Backtest End Month')
en_dy_inp = input(defval=01, title='Backtest End Day')
sma_lookback = input(defval=100, title="Lookback Period For SMA")
ema_lookback = input(defval=10, title="Lookback Period For EMA")
long_diff_perc = input(defval=6, title="Percentage Deviation From SMA to go Long")/100
short_diff_perc = input(defval=20, title="Percentage Deviation From SMA to go Short")/100
ema_filter_bars = input(defval=4, title="The number of bars the EMA must rise/fall")
lng_allwd = input(defval=true, title="Allow Longs?")
srt_allwd = input(defval=true, title="Allow Shorts?")
use_stop = input(defval=true, title="Use Stoploss?")
stop_perc = input(defval=30, title="Stop Loss Percentage")/100
 
// Dates
start = timestamp(st_yr_inp, st_mn_inp, st_dy_inp,00,00)
end = timestamp(en_yr_inp, en_mn_inp, en_dy_inp,00,00)
can_trade = time >= start and time <= end
// Indicators Setup
sma = sma(close, sma_lookback)
ema = ema(close, ema_lookback)
 
// Strategy Calcuations
close_stdev = stdev(close, sma_lookback)
sd1_upper = close + (close_stdev * 1)
sd1_lower = close - (close_stdev * 1)
close_diff = (close - sma) / sma
 
// Entries and Exits
longCondition = close > sma and open > sma
if (time >= start and time <= end)
    if (longCondition)
        strategy.entry("Long", strategy.long)
    if use_stop
        stop_price = close * (1 - stop_perc)
        strategy.order("Long Stoploss", false, stop=stop_price)
 
shortCondition = close < sma and open < sma
if (shortCondition)
//    strategy.entry("Short", strategy.short)
//    if use_stop
//        stop_price = close * (1 + stop_perc)
//        strategy.order("Short Stoploss", true, stop=stop_price)
//if (time >= start)    
    strategy.close("Long", when=close < sma and open < sma)
//strategy.cancel("Long Stoploss", when=sma < sma[1])
//    strategy.close("Short", when=close > sma and open > sma)
//strategy.cancel("Short Stoploss", when=close_diff<=0)
 
// Plotting
sma_col = sma > sma[1] ? green : red
ema_fill = close_diff <= -long_diff_perc ? lime : close_diff >= short_diff_perc ? maroon : aqua
p_sma = plot(sma, color=sma_col, linewidth=3)
p_ema = plot(ema, color=black, linewidth=2)
p_sd1 = plot(sd1_upper, color=black, linewidth=1, transp=85)
p_sd2 = plot(sd1_lower, color=black, linewidth=1, transp=85)
fill(p_sd1, p_sd2, title='STDEV Fill', color=silver, transp=80)
fill(p_sma, p_ema, title='EMA > Mean Percentage', color=ema_fill, transp=80)