Momentum-Volatilität nach Strategie


Erstellungsdatum: 2023-11-28 16:57:28 zuletzt geändert: 2023-11-28 16:57:28
Kopie: 1 Klicks: 630
1
konzentrieren Sie sich auf
1619
Anhänger

Momentum-Volatilität nach Strategie

Überblick

Die Strategie ist eine auf Brin-Bändern basierende Strategie zur Beobachtung von Dynamikfluktuationen. Sie kombiniert Brin-Band-Indikatoren, um Markttrends und Wendepunkte zu ermitteln und Marktfluktuationen durch die Einrichtung von freien Positionen zu verfolgen.

Strategieprinzip

Der Kern der Strategie ist der Brin-Band. Der Brin-Band besteht aus der mittleren, der oberen und der unteren Bahn. Die mittlere Bahn ist ein n-Tage-Moving Average, die oberen und unteren Bahnen sind die Abweichungen der mittleren und unteren Bahn-Standarddifferenz.

Die Strategie beinhaltet gleichzeitig eine Trend- und eine Reverse-Position, die jeweils unterschiedlichen Handelsmöglichkeiten entsprechen. Die Trend-Position benötigt die mittlere Schiene als Unterstützungs-Widerstands-Referenz, um eine Durchbruch-Abweichung zu erzeugen. Die Reverse-Position wird direkt in der Nähe der unteren Schiene auf dem Brin-Band gebildet.

Analyse der Stärken

Die Strategie kombiniert die Überkauf-Überverkauf-Eigenschaften des Brin-Bands mit der Umkehrungsposition. Dies ermöglicht es, verschiedene Arten von Handelsmöglichkeiten gleichzeitig in Trend- und Schwingungsmärkten zu erfassen. Die Stop-Loss-Exit-Einstellung der Strategie verhindert die Ausweitung von Verlusten.

Im Vergleich zu einer einfachen Brin-Band-Strategie ermöglicht die Trendlogik, die in diese Strategie einbezogen wird, eine stabilere Position, während gleichzeitig eine Umkehrmöglichkeit ergriffen wird. Dies erhöht die Signal-Noise-Ratio. Zweitens nutzt der Mehrfach-Zwei-Wege-Handel die Handelsmöglichkeiten in verschiedenen Märkten umfassender.

Risikoanalyse

Die Strategie beruht hauptsächlich auf dem Überkauf-Überverkauf-Charakter des Brin-Bands. Die Brin-Band-Bereichs erweitern sich also ständig, wenn die Preise stark schwanken, was zu mehrfachen Verlusten führen kann. Dies ist ein potenzieller Risikopunkt.

Bei einem Ausfall der Brin-Band kann die n-Tage-Parameter verkürzt werden, um die Brin-Band-Sensitivität zu erhöhen. Oder die Bandbreite reduziert werden, um die Gefahr von Verlusten zu verringern. Für die Umkehrung der Kurvenbeurteilung kann der Fehler durch Optimierung der Durchbruchparameter verringert werden.

Optimierungsrichtung

Die Strategie kann in den folgenden Bereichen optimiert werden:

  1. Die Parameter für die Brin-Band können an die verschiedenen Märkte angepasst werden, um die optimale Kombination von Parametern zu finden.
  2. Die Berechnungsmethoden für die Größe der Trendabweichung und den Mittelwert können andere Optionen testen.
  3. Mehr Filter werden hinzugefügt, um die Wahrscheinlichkeit einer Fehleinschätzung zu verringern.
  4. Andere Modelle, wie z. B. Trail Stop, können getestet werden.
  5. Die Parameter können für bestimmte Sorten und Zeiten angepasst werden.

Zusammenfassen

Die Strategie ist eine effektive Erweiterung und Optimierung der Brin-Band-Standard-Strategie. Die Hinzufügung von Trend-Abweichungsurteilen erhöht die Stabilität und nutzt die Umkehrmöglichkeiten. Die mehreren freien Zwei-Wege-Trading- und Stop-Loss-Einstellungen machen die Strategie auch robuster. Durch die Optimierung der Parameter und die Hinzufügung von mehr Filtern kann die Wirksamkeit weiter verbessert werden.

Strategiequellcode
/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-27 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy("Noro's Bollinger Strategy v1.3", shorttitle = "Bollinger str 1.3", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 5)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")

length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length")
mult = input(2.0, defval = 2.0, minval = 0.001, maxval = 50, title = "Bollinger Mult")
source = input(ohlc4, defval = ohlc4, title = "Bollinger Source")

uset = input(true, defval = true, title = "Use trend entry")
usect = input(true, defval = true, title = "Use counter-trend entry")

fromyear = input(2018, defval = 2018, 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")
showbands = input(true, defval = true, title = "Show Bollinger Bands")

//Bollinger Bands
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev

//Lines
col = showbands ? black : na 
plot(upper, linewidth = 1, color = col)
plot(basis, linewidth = 1, color = col)
plot(lower, linewidth = 1, color = col)

//Body
body = abs(close - open)
abody = ema(body, 30)

//Signals
bar = close > open ? 1 : close < open ? -1 : 0 
up1 = bar == -1 and ohlc4 >= basis and ohlc4 < upper and (close < strategy.position_avg_price or strategy.position_size == 0) and uset
dn1 = bar == 1 and ohlc4 <= basis and ohlc4 > lower and (close > strategy.position_avg_price or strategy.position_size == 0) and uset
up2 = close <= lower and usect
dn2 = close >= upper and usect
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2

//Trading
if up1 or up2
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1 or dn2
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, 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()