Intelligente Tracking-Strategie von Double B


Erstellungsdatum: 2024-01-18 15:41:20 zuletzt geändert: 2024-01-18 15:41:20
Kopie: 2 Klicks: 539
1
konzentrieren Sie sich auf
1617
Anhänger

Intelligente Tracking-Strategie von Double B

Es handelt sich um eine Strategie, bei der der Bollinger Bands Indicator verwendet wird. Die Strategie soll die Bollinger Bands Indicator nutzen, um zu erkennen, wann die Preise stark schwanken, und entsprechend zu kaufen oder zu verkaufen.

Strategieprinzip

Die Strategie berechnet die Oberbahn, die Mittelbahn und die Unterbahn des Brinbands, um zu beurteilen, ob der aktuelle Preis in der Schwankungsbreite ist, um zu entscheiden, ob es an der Zeit ist, eine Position aufzubauen oder zu schließen. Wenn der Preis nahe an der Oberbahn ist, wird er als Multi-Head-Hextrenzone betrachtet, und die Strategie wählt eine schlechte Position zu verkaufen. Wenn der Preis nahe an der Unterbahn ist, wird er als Leer-Head-Hextrenzone betrachtet, und die Strategie wählt einen Kauf.

Darüber hinaus führt die Strategie einen Trendumkehrfaktor ein, der bei einem Umkehrsignal auch eine entsprechende Kauf- oder Verkaufsentscheidung auslöst. Konkret ist die Strategielogik wie folgt:

  1. Berechnung der Ober-, Mittel- und Unterbahnen des Brin-Bandes
  2. Beurteilung, ob der Preis aus dem Kurs geraten ist, und Umkehrsignale
    1. Durchbruch der mittleren Bahn als Trendsignal
    2. Umkehrsignale in der Nähe von Auf- oder Abfahrtsstrecken
  3. Erlass von Kauf-, Verkaufs- oder Stilllegungsbefehlen

Das ist die grundlegende Handelslogik der Strategie. Durch die Nutzung der Eigenschaften der Brin-Band, kombiniert mit dem Trend und den Umkehrfaktoren, versucht die Strategie, die Umkehrpunkte zu erfassen und zu handeln, wenn die Schwankungen zunehmen.

Strategische Vorteile

Im Vergleich zu einer gewöhnlichen Moving-Average-Strategie hat diese Strategie folgende Vorteile:

  1. Das ist eine neue Art von Marktbeobachtung, bei der die Preise in der Zeit, in der sie stark schwanken, besser erfasst werden können.
  2. Gleichzeitig werden Trend- und Umkehrfaktoren kombiniert, um Verluste durch vorzeitige Umkehrungen zu vermeiden.
  3. Ein gewisses Maß an FILTER-Effekt, um unnötiges Kaufen und Verkaufen in nicht-schwankenden Zonen zu vermeiden
  4. Verringerung der Anzahl der Transaktionen durch die Bestimmung der Haupttrendrichtung durch die Mittelschiene
  5. Mehr Umkehrfilterbedingungen, um die Wahrscheinlichkeit von Fehleinschätzungen zu verringern

Insgesamt ist die Strategie eine gute Kombination von Brin-Band- und Preis-Einheit-Urteilen, die am vernünftigen Wendepunkt gehandelt wird, um ein gewisses Maß an Gewinn zu garantieren und das Risiko zu kontrollieren.

Risiko und Optimierung

Allerdings ist diese Strategie mit Risiken verbunden, die sich in folgenden Punkten widerspiegeln:

  1. Die Brin-Band-Parameter sind falsch eingestellt, um die Preisschwankungen nicht ausreichend zu erfassen
  2. Fehlentscheidung der Wende, Fehlentscheidung oder Fehlentscheidung der Wende
  3. Wenn die Trends nicht sichtbar sind, wirken die Signalfunktionen in der Mitte nicht gut.

In diesem Zusammenhang kann man in Zukunft Optimierungen in folgenden Bereichen vornehmen:

  1. Optimierung der Brin-Band-Parameter an die verschiedenen Sorten
  2. Erhöhung der Umkehrwahrscheinlichkeit von Machine Learning-Modellen
  3. Wechseln Sie zu anderen Indikatoren, wenn Sie keine Trends kennen
  4. Filterung von Handelssignalen in Kombination mit weiteren Preisformeln

Zusammenfassen

Diese Strategie ist im Allgemeinen eine typische Brin-Band-Handelsstrategie-Vorlage. Sie umgeht die Nachteile von ineffizienten Transaktionen, die nur mit Brin-Bändern erzeugt werden können. Durch die Einführung von Trendumkehr-Urteilen kann eine effektive Filterung von Signalen erzielt werden, die in der Theorie eine bessere Strategieleistung ermöglichen.

Strategiequellcode
/*backtest
start: 2023-12-18 00:00:00
end: 2024-01-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy("Noro's Bollinger Strategy v1.2", shorttitle = "Bollinger str 1.2", overlay = true )

//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 close >= basis and close < upper and (close < strategy.position_avg_price or strategy.position_size == 0) and uset
dn1 = bar == 1 and close <= basis and close > 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)

if dn1 or dn2
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
    
if exit
    strategy.close_all()