Bollinger Bandbreitenskalierung Dual Moving Average Trend Screening Strategie


Erstellungsdatum: 2023-10-25 15:00:20 zuletzt geändert: 2023-10-25 15:00:20
Kopie: 3 Klicks: 782
1
konzentrieren Sie sich auf
1617
Anhänger

Bollinger Bandbreitenskalierung Dual Moving Average Trend Screening Strategie

Die Strategie basiert auf der Erzeugung von Handelssignalen in Brin-Bändern und Doppel-Even-Linien und kombiniert Trendfilter mit dem Ziel, eine hohe Gewinn- und Verlustquote zu erzielen.

Strategieprinzip

  1. Die Oberbahn, die Mittelbahn und die Unterbahn mit Brin-Bändern werden für die Bestimmung der Mehrraumsignale verwendet. Wenn der Preis die Oberbahn berührt, sieht er nach oben, wenn er die Unterbahn berührt, sieht er nach unten.

  2. Trends werden anhand eines mittleren kurzfristigen Mittelwertes mit einer Länge von 20 und eines langfristigen Mittelwertes mit einer Länge von 60 beurteilt. Der kurzfristige Mittelwert ist bei einem Überschreiten des langfristigen Mittelwertes bullish und bei einem Überschreiten des langfristigen Mittelwertes bearish.

  3. Die Stop-Position wird dynamisch an die Breite des Brinbands angepasst. Wenn die Breite des Brinbands größer als 0,5% ist, ist die Stop-Position unter der Schiene; wenn die Breite kleiner als 0,5% ist, wird die Stop-Position auf die Hälfte der Schiene verkleinert.

  4. Eintrittsbedingungen: Bei einem bullish Preis brechen Sie die Unterbahn als mehr Signal, bei einem bullish Preis brechen Sie die Oberbahn als Kaufsignal.

  5. Ausfahrtbedingungen: Stopp bei Berührung der Brin-Band-Schiene oder der kurzfristigen Mittellinie bei mehrfacher Ausfahrt; Stopp bei Berührung der Brin-Band-Schiene oder der kurzfristigen Mittellinie bei freier Ausfahrt.

  6. Stop-Loss-Bedingungen: Stop-Loss, wenn der Kurs unter dem Bollinger Band fällt. Stop-Loss, wenn der Kurs über den Bollinger Band fällt.

Strategische Vorteile

  1. Die Verwendung von doppelten Gleichungen zur Trendbeurteilung kann Trends, die unbekannt sind, oder Marktlärm effektiv filtern.

  2. Die Brin-Band-Mittelbahn als Stützungswiderstand und die Ober- und Unterbahn als dynamische Stoppposition können das Risiko kontrollieren.

  3. Anpassung der Stop-Loss-Werte an die Brin-Bandbreite, um die Wahrscheinlichkeit zu verringern, dass die Stop-Loss aktiviert wird, und um sicherzustellen, dass die Stop-Loss-Position angemessen ist.

  4. Es gibt eine hohe Gewinnrate, wenn man auf Trends verfolgt.

Strategisches Risiko

  1. Die Wahrscheinlichkeit, dass eine Doppel-Gleichgewicht-Linie einen falschen Durchbruch erzeugt, ist höher, und es ist möglich, dass ein Trendwendepunkt verpasst wird. Die Mittelwert-Zyklus kann entsprechend verkürzt werden.

  2. Die Brin-Zone ist in einem schwankenden Trend leicht zu erfassen. Sie kann durch Verringerung der Handelsfrequenz vermieden werden.

  3. Die Stop-Position kann leicht durchbrochen werden, wenn sie sich in der Nähe des Unterstützungswiderstands befindet. Die Stop-Range kann entsprechend erweitert werden.

  4. Chancen, dass eine kurze Rückführung nicht effektiv erfasst werden kann. Die Haltedauer kann entsprechend verkürzt werden.

Richtung der Strategieoptimierung

  1. Optimierung der Parameter für die Durchschnittszyklusphase und Suche nach einem geeigneten Marktumfeld für die Strategie.

  2. Optimierung der Multiplikatorparameter des Brint-Bands, um die Wahrscheinlichkeit zu berechnen, dass der Stop-Loss durchbrochen wird.

  3. Mehrfache Verifizierung mit zusätzlichen Kennzahlen verbessert die Signalqualität.

  4. Es ist wichtig, die Trends zu analysieren, um Abweichungen zu vermeiden.

  5. Optimierung der Vermögensverwaltung, z. B. durch Festsetzung der Anteile, Festsetzung der Stop-Loss-Regelung und Kontrolle von Einzelschäden.

  6. Der Preis-Schock-Behandlung, wie z. B. bei einem starken Ausfall der Leerlaufschwelle.

Zusammenfassen

Diese Strategie ist insgesamt stabil, die Richtung der Tendenz mit zwei Gleichgewichten zu beurteilen, Brin-Band bietet Unterstützung Widerstandswerte und setzte die dynamische Stop-Loss. Aber es gibt auch eine gewisse Einschränkung, wie die Fehleinschätzung der Tendenz, Stop-Loss zu kurz und so weiter.

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

//@version=2
strategy(title="yuthavithi BB Scalper 2 strategy", overlay=true)

len = input(20, minval=1, title="Length")
multiplier = input(4, minval=1, title="multiplier")
trendTimeFrame = input(60, minval=1, title="Trend Time Frame")
useTrendFilter = input(true, type=bool, title = "Use Trend Filter")

src = input(close, title="Source")
out = sma(src, len)
//plot(out, title="SMA", color=blue)

stdOut = stdev(close, len)
bbUpper = out + stdOut * multiplier
bbLower = out - stdOut * multiplier
bbUpper2 = out + stdOut * (multiplier / 2)
bbLower2 = out - stdOut * (multiplier / 2)
bbUpperX2 = out + stdOut * multiplier * 2
bbLowerX2 = out - stdOut * multiplier * 2
bbWidth = (bbUpper - bbLower) / out


closeLongTerm = request.security(syminfo.tickerid, tostring(trendTimeFrame), close)
smaLongTerm = request.security(syminfo.tickerid, tostring(trendTimeFrame), sma(close,20))

//plot(smaLongTerm, color=red)

trendUp = useTrendFilter ? (closeLongTerm > smaLongTerm) : true
trendDown = useTrendFilter? (closeLongTerm < smaLongTerm) : true

bearish = ((cross(close,bbUpper2) == 1) or (cross(close,out) == 1)) and (close[1] > close) and trendDown
bullish = ((cross(close,bbLower2) == 1) or (cross(close,out) == 1)) and (close[1] < close) and trendUp


closeBuy = (high[1] > bbUpper[1]) and (close < bbUpper) and (close < open) and trendUp 
closeSell = (((low[1] < bbLower[1]) and (close > bbLower)) or ((low[2] < bbLower[2]) and (close[1] > bbLower[1]))) and (close > open) and trendDown


cutLossBuy = iff(bbWidth > 0.005, (low < bbLower) and (low[1] > bbLower[1]) and trendUp, (low < bbLowerX2) and (low[1] > bbLowerX2[1]) and trendUp)
cutLossSell = iff(bbWidth > 0.005, (high > bbUpper) and (high[1] < bbUpper[1]) and trendDown, (high > bbUpperX2) and (high[1] < bbUpperX2[1]) and trendDown)


if (bullish)
    strategy.entry("Buy", strategy.long, comment="Buy")

if (bearish)
    strategy.entry("Sell", strategy.short, comment="Sell")
    

strategy.close("Buy", closeBuy or cutLossBuy)
   
strategy.close("Sell", closeSell or cutLossSell)