Momentum Breakout Bollinger Band Handelsstrategie


Erstellungsdatum: 2024-02-05 10:53:46 zuletzt geändert: 2024-02-05 10:53:46
Kopie: 0 Klicks: 699
1
konzentrieren Sie sich auf
1617
Anhänger

Momentum Breakout Bollinger Band Handelsstrategie

Überblick

Die Strategie kombiniert Bollinger Bands mit Volumenindikatoren, um in einem Umfeld mit hohem Volumen die Chance zu identifizieren, die Bollinger Bands zu durchbrechen, um ein Kauf zu tätigen. Die Strategie kombiniert auch die Moving Average-Indikatoren, um die Richtung des Trends zu bestimmen und das Risiko einer Stillstandsposition zu verringern.

Strategieprinzip

  1. Der Brin-Band-Indikator wird verwendet, um zu bestimmen, ob der Preis die Brin-Band-Strecke überschritten hat.
  2. Der Index der Transaktionsmenge wird verwendet, um zu beurteilen, ob die aktuelle Transaktionsmenge deutlich höher ist als die durchschnittliche Transaktionsmenge der letzten Zeit.
  3. Bei einem aktiven Umsatz und einem Kursbruch von Brin auf die Bahn, wird ein Kauf vorgenommen.
  4. Kurz- und mittelfristige Trends mit Hilfe von Moving Average-Indikatoren zu beurteilen, und bei ungünstigen Trends zu beenden.

Die Strategie berücksichtigt drei Faktoren: Preis, Dynamik und Trends. Wenn der Preis durch die Bollinger Bands in die Kaufzone eintritt, führt ein großer Geldfluss zu einem Anstieg des Handelsvolumens, was auf eine starke Unterstützung und Dynamik hinweist.

Strategische Vorteile

  1. Das Trading-Signal ist präzise und verhindert falsche Durchbrüche. In Kombination mit dem Trading-Volumen-Indikator wird nur bei wirklich starken Trades gekauft, um das Positionsrisiko zu verringern.

  2. Durch die Beurteilung der Richtung des Trends durch den Moving Average kann ein zeitnaher Stop-Loss erzielt werden, um den Verlust von Leerpositionen zu reduzieren.

  3. Eine quantitative Strategie zur Entscheidungsfindung mit einer Vielzahl von Indikatoren wurde realisiert, wobei die Parameter flexibel an verschiedene Sorten und Perioden angepasst werden können.

  4. Die Code-Struktur ist klar und die Strategie ist lesbarer. Die Organisation von Indikatoren, Handelssignalen, Open-Hold-Logik usw. in einzelnen Modulen erleichtert die spätere Wartung.

Strategisches Risiko

  1. Der Brin-Band als Indikator für die Bandbreite von Schwankungen kann für Extremsituationen nicht wirksam sein. Wenn es zu außergewöhnlichen Schwankungen kommt, wird ein Kaufsignal verpasst oder ein falsches Signal erzeugt.

  2. Wenn der Gesamtmarkt nicht ausreichend gehandelt wird, ist es schwierig, einen Gewinn zu erzielen, selbst wenn ein Kaufsignal erzeugt wird.

  3. Der Moving Average kann auch als Trendsurteilungsindikator fehlschlagen und keine vollständige Stop-Loss-Garantie bieten.

  4. Die falsche Einstellung der Parameter beeinflusst auch die Strategie-Ertrag. Zum Beispiel wird die Handelszeitfenster zu kurz gesetzt, die Trendwende wird verpasst usw.

Richtung der Strategieoptimierung

  1. Es kann in Erwägung gezogen werden, mehr technische Kennzahlen hinzuzufügen, um Trends zu beurteilen, Widerstandspunkte zu unterstützen und die Verlustverhinderung zu verbessern, z. B. K-Linie-Formen, Kanal-Kennzahlen, wichtige Unterstützungsstellen usw.

  2. Erhöhung der Wahrscheinlichkeit, dass ein maschinelles Lernmodell einen echten Durchbruch ermittelt, und Verringerung der Falschsignalrate. Deep-Learning-Modelle wie LSTM.

  3. Optimierung der Geldmanagementstrategien, wie z. B. dynamische Positionsanpassungen, Verfolgung von Stop-Loss-Linien usw.

  4. Testung von mehr Sorten und Zeitzyklusparametern. Anpassung von Brin-Band-Parametern, Transaktionsvolumenparametern usw. zur Optimierung von Strategien zur Marktanpassung.

Zusammenfassen

Die Strategie integriert Bollinger Bands und Trading Volume Indicators, um in starken Verhältnissen zu erkennen, wann es Zeit ist, zu kaufen. Gleichzeitig wird ein Moving Average-Indikator verwendet, um Trends zu beurteilen und zeitnah zu stoppen. Im Vergleich zu einem einzigen technischen Indikator hat die Strategie eine höhere Genauigkeit und Stop-Loss-Fähigkeit. Durch die modulare Gestaltung und die Hinzufügung von Trends, Beurteilung und Stop-Loss-Strategien bildet sie eine brechende Handelsstrategie, die leicht zu optimieren und zu pflegen ist.

Strategiequellcode
/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 1h
basePeriod: 15m
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/
// © KAIST291

//@version=4
initial_capital=1000
strategy("prototype", overlay=true)
length1=input(1)
length3=input(3)
length7=input(7)
length9=input(9)
length14=input(14)
length20=input(20)
length60=input(60)
length120=input(120)
ma1= sma(close,length1)
ma3= sma(close,length3)
ma7= sma(close,length7)
ma9= sma(close,length9)
ma14=sma(close,length14)
ma20=sma(close,length20)
ma60=sma(close,length60)
ma120=sma(close,length120)
rsi=rsi(close,14)
// BUYING VOLUME AND SELLING VOLUME //
BV = iff( (high==low), 0, volume*(close-low)/(high-low))
SV = iff( (high==low), 0, volume*(high-close)/(high-low))
vol = iff(volume > 0, volume, 1)
dailyLength = input(title = "Daily MA length", type = input.integer, defval = 50, minval = 1, maxval = 100)
weeklyLength = input(title = "Weekly MA length", type = input.integer, defval = 10, minval = 1, maxval = 100)
//-----------------------------------------------------------
Davgvol = sma(volume, dailyLength)
Wavgvol = sma(volume, weeklyLength)
//-----------------------------------------------------------
length = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
mult2= input(1.5, minval=0.001, maxval=50, title="exp")
mult3= input(1.0, minval=0.001, maxval=50, title="exp1")
mult4= input(2.5, minval=0.001, maxval=50, title="exp2")
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
dev2= mult2 * stdev(src, length)
Supper= basis + dev2
Slower= basis - dev2
dev3= mult3 * stdev(src, length)
upper1= basis + dev3
lower1= basis - dev3
dev4= mult4 * stdev(src, length)
upper2=basis + dev4
lower2=basis - dev4
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)
plot(basis, "Basis", color=#FF6D00, offset = offset)
p1 = plot(upper, "Upper", color=#2962FF, offset = offset)
p2 = plot(lower, "Lower", color=#2962FF, offset = offset)
fill(p1, p2, title = "Background", color=color.rgb(33, 150, 243, 95))
//----------------------------------------------------
exit=(close-strategy.position_avg_price / strategy.position_avg_price*100)
bull=( BV>SV and BV>Davgvol)
bull2=(BV>SV and BV>Davgvol)
bux =(close>Supper and close>Slower and volume<Davgvol)
bear=(SV>BV and SV>Davgvol)
con=(BV>Wavgvol and rsi>80)
imInATrade = strategy.position_size != 0
highestPriceAfterEntry = valuewhen(imInATrade, high, 0)
// STRATEGY LONG //
if (bull and close>upper1 and close>Supper and high>upper and rsi<80)
    strategy.entry("Long",strategy.long)

if (strategy.position_avg_price*1.02<close)
    strategy.close("Long")
else if (low<ma9 and strategy.position_avg_price<close)
    strategy.close("Long")
else if (ma20>close and strategy.position_avg_price<close )
    strategy.close("Long")
else if (rsi>80 and strategy.position_avg_price<close)
    strategy.close("Long")
else if (strategy.openprofit < strategy.position_avg_price*0.9-close)
    strategy.close("Long")
else if (high<upper and strategy.position_avg_price<close)
    strategy.close("Long")
//////////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////////
strategy.entry("Short",strategy.short,when=low<ma20 and low<lower1 and close<Slower and crossunder(ma60,ma120))

if (close<strategy.position_avg_price*0.98)
    strategy.close("Short")

else if (rsi<20)
    strategy.close("Short")