Bollinger Band Dynamische Gewinnentnahme und Dynamische Positionszusatzstrategie

Schriftsteller:ChaoZhang, Datum: 2024-03-22
Tags:

img

Strategieübersicht

Diese Strategie basiert auf dem Bollinger Band-Indikator. Sie eröffnet Positionen, wenn der Preis das obere oder untere Band erreicht, und setzt dynamische Take-Profit- und Dynamische Position-Adding-Logik auf. Wenn der Preis vom unteren Band zurückspringt und durch das mittlere Band bricht, hält die Strategie einen Aufwärtstrend für gebildet. Zu diesem Zeitpunkt fügt die Strategie Positionen hinzu, wenn der Preis zu einem bestimmten Prozentsatz des mittleren Bands zurückzieht. Wenn der Preis schließlich durch das obere Band bricht, schließt die Strategie Positionen, um Gewinne zu erzielen. In einem Abwärtstrend setzt die Strategie die entgegengesetzte Betriebslogik ein. Durch dynamische Take-Profit- und dynamische Position-Adding-Strategie auf Basis von Bollinger Bands kann diese Strategie mehr Gewinne in trending Märkten erzielen.

Strategieprinzip

Die wichtigsten Grundsätze dieser Strategie sind folgende:

  1. Berechnen Sie die oberen, mittleren und unteren Banden von Bollinger Bands. Die oberen und unteren Bande werden berechnet, indem N mal die Standardabweichung vom mittleren Band addiert und subtrahiert wird, wobei N angepasst werden kann.

  2. Wenn der Schlusskurs das untere Band durchbricht und keine Position zuvor eröffnet wurde, eröffnet die Strategie eine Long-Position; wenn der Schlusskurs das obere Band durchbricht und keine Position zuvor eröffnet wurde, eröffnet die Strategie eine Short-Position.

  3. Nach Eröffnung einer Long-Position, wenn der Schlusskurs durch das mittlere Band nach oben bricht, wird davon ausgegangen, dass sich ein Aufwärtstrend gebildet hat, und die Variable basisCrossed wird als wahr markiert. Nach Eröffnung einer Short-Position, wenn der Schlusskurs durch das mittlere Band nach unten bricht, wird auch basisCrossed als wahr markiert.

  4. Bei einer Long-Position, wenn der Schlusskurs das untere Band und die BasisCrossed durchbricht, und der aktuelle Preis um mehr als 2% vom ursprünglichen Eröffnungskurs gefallen ist, fügt die Strategie zu diesem Zeitpunkt Positionen hinzu und setzt BasisCrossed gleichzeitig auf falsch zurück. Im Fall einer Short-Position ist das Gegenteil der Fall. Die Position hinzufügende Logik hier ermöglicht es der Strategie, Positionen auf einem niedrigen Niveau während eines Trendrückgangs hinzuzufügen, wodurch der Gewinnraum erhöht wird.

  5. Wenn der Schlusskurs beim Halten einer Long-Position durch das obere Band bricht oder der Schlusskurs beim Halten einer Short-Position durch das untere Band bricht, schließt die Strategie alle Positionen, nimmt Gewinne und setzt verschiedene Markervariablen zurück, um sich auf die nächste Öffnung vorzubereiten.

Durch die oben genannte dynamische Öffnung, das Hinzufügen von Positionen und die Gewinnlogik kann diese Strategie flexibel in Trendmärkten operieren, um höhere Gewinne zu erzielen.

Analyse der Vorteile

  1. Dynamische Gewinnspanne: Diese Strategie passt die Gewinnspanne durch die oberen und unteren Bande der Bollinger-Bänder dynamisch an. Im Vergleich zu einem festen Gewinnspanne kann sie sich besser an die Marktschwankungen anpassen und die Gewinne flexibel schützen.

  2. Dynamisches Positionszuschließen: In der Pullback-Phase nach der Entstehung des Trends wird die Strategie allmählich Positionen hinzufügen, die in den Trendmärkten höhere Gewinne erzielen können.

  3. Flexible Parameter: Die Parameter der Bollinger-Bänder, wie z. B. N- und P-Werte, können flexibel an unterschiedliche Marktmerkmale und Handelsstile angepasst werden.

  4. Eine starke Anpassungsfähigkeit: Bollinger Band ist ein klassischer technischer Indikator mit einer guten Fähigkeit, Trends zu erfassen.

  5. Die Öffnungs- und Schlusskonditionen sowie die Logik der Addition und Reduktion von Positionen dieser Strategie sind sehr klar und leicht zu verstehen, was für Händler bequem zu verstehen und zu steuern ist.

Risikoanalyse

  1. Oszillierende Märkte: Bollinger-Band-Strategien haben häufig eine schlechte Performance in oszillierenden Märkten.

  2. Trendumkehrung: In dem entscheidenden Moment der Trendumkehrung kann bei dieser Strategie ein Nachlassen des Urteilsvermögens auftreten, was dazu führen kann, dass Positionen in die falsche Richtung aufgenommen werden, was zu einem größeren Rückzug führt.

  3. Extreme Situationen: In extremen Situationen (z. B. bei starken Anstiegen und Abfällen) kann der Trend der Bollinger Bands abnormal sein und die Strategie scheitern.

  4. Parameter-Einstellungen: Unangemessene Parameter-Einstellungen beeinträchtigen die Leistung dieser Strategie erheblich. Zum Beispiel führt die Einstellung des N-Wertes zu gering zu häufigen Transaktionen und die Einstellung des N-Wertes zu groß zu Signalverzögerungen.

  5. Black Swan Events: Bei großen politischen und wirtschaftlichen Ereignissen kann diese Strategie einem größeren Risiko ausgesetzt sein.

Um die oben genannten Risiken zu kontrollieren, können wir aus zwei Aspekten ausgehen: 1) Parameter vernünftigerweise festlegen und Parameter für verschiedene Ziele und Marktbedingungen optimieren; 2) Mehr Filterbedingungen in die Strategie hinzufügen, wie z. B. Trendbeurteilung, Volatilitätsfilterung usw., um die Qualität der Signale zu verbessern.

Optimierungsrichtung

  1. Trendfilterung: Fügen Sie bei der Eröffnung von Positionen die Logik des Trendurteils hinzu, wie z. B. die Verwendung von MA-Bullish-Arrangements als Filterbedingungen für den Long-Gang und MA-Beeish-Arrangements als Filterbedingungen für den Short-Gang, was die Erfolgsrate des Trendgreifens verbessern kann.

  2. Volatilitätsfilterung: Bollinger Bands sind eigentlich eine Art Volatilitätsindikator. Volatilitätsindikatoren wie ATR und historische Volatilität können eingeführt werden, um den Volatilitätszustand des Marktes zu identifizieren. Positionen können in hochvolatilen Zuständen angemessen reduziert und in niedrigvolatilen Zuständen erhöht werden, um Risiken besser zu kontrollieren.

  3. Dynamische Parameteroptimierung: Die Parameter der Bollinger Bands können dynamisch an die Marktbedingungen angepasst werden. Zum Beispiel kann der N-Wert in Trendmärkten erhöht und in oszillierenden Märkten verringert werden. Dies erfordert die Verwendung von maschinellem Lernen und anderen Technologien, um die optimalen Parameter durch Training auf historischen Daten zu finden.

  4. Kombinierte Strategien: Diese Strategie kann mit anderen klassischen Strategien wie MACD und RSI kombiniert werden, um kombinierte Strategien zu bilden, die die Robustheit und Rentabilität des Systems verbessern.

  5. Hinzufügen von Stop-Loss-Logik: Derzeit fehlt diese Strategie an einer klaren Stop-Loss-Logik. Wir können Mechanismen wie Trailing Stop oder Fixed Percentage Stop-Loss hinzufügen, um den maximalen Verlust einer einzigen Transaktion zu kontrollieren.

  6. Optimierung des Positionsmanagements: Bei der Addition und Reduktion von Positionen können klassische Positionsmanagementmethoden wie die Kelly-Formel und der optimale F-Wert verwendet werden, um Gewinne unter kontrollierbaren Risiken zu maximieren.

Durch die oben genannten Optimierungen kann das Risiko-Rendite-Verhältnis dieser Strategie weiter verbessert werden, so dass sie sich besser an das sich ändernde Marktumfeld anpassen und den Händlern stabile Renditen bringen kann.

Zusammenfassung

Die Bollinger Band Dynamic Take Profit und Dynamic Position Adding Strategy ist eine klassische Trend-Tracking-Strategie. Basierend auf Bollinger Bands sucht sie höhere Trendgewinne durch dynamische Anpassung von Positionen. Diese Strategie verfügt über eine klare Logik, flexible Parameter und starke Anpassungsfähigkeit. Es ist eine quantitative Handelsstrategie, die eine eingehende Forschung und Anwendung verdient. Aber gleichzeitig müssen wir auch sehen, dass diese Strategie in oszillierenden Märkten schlecht abschneidet und nicht in der Lage ist, mit Extremsituationen und Schwarzen Schwanen-Ereignissen umzugehen. Dies erfordert, dass wir uns auf Parameteroptimierung, Risikokontrolle und Kombinationsstrategie in der tatsächlichen Anwendung konzentrieren und die Wirksamkeit der Strategie unter verschiedenen Marktbedingungen regelmäßig testen. Durch ein tiefes Verständnis der internen Logik dieser Strategie und ihre kontinuierliche Optimierung und Verbesserung kann diese Strategie zu einem wichtigen Werkzeug für quantitative Trader und Investoren werden, um langfristige


/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//  Bollinger Bands 1Bb 상하한 크로스 롱숏 실행

strategy(shorttitle="BB", title="Bollinger Bands", overlay=true )
 // bb
length = input.int(12, minval=1)
src = input(close, title="Source")
mult = input.float(2.0, minval=0.001, maxval=50, title="StdDev")
basis = ta.sma(src, length)
dev = mult * ta.stdev(src, length)
upper = basis + dev
lower = basis - dev
offset = input.int(0, "Offset", 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)
add = input.float(0.98, step = 0.001)
// plot(upper - lower, "Basis", color=color.red, offset = offset)
var bool entryMade = false
var bool basisCrossed = false
var bool upperCrossed = false
var bool lowerCrossed = false
strategy.initial_capital = 50000
if close < lower and not entryMade
    strategy.entry("롱", strategy.long, qty = strategy.initial_capital/10000)
    entryMade := true
if ta.crossover(close, basis) and entryMade and not upperCrossed
    basisCrossed := true
if close > upper
    upperCrossed := true
if close < lower and entryMade and basisCrossed and not upperCrossed and close < strategy.position_avg_price*add
    strategy.entry("추가롱", strategy.long, strategy.initial_capital/10000)
    basisCrossed := false
if close > upper
    strategy.close("롱")
    strategy.close("추가롱")
    entryMade := false
    basisCrossed := false
    upperCrossed := false
///////////반대 포지션
if close > upper and not entryMade
    strategy.entry("s", strategy.short, qty = strategy.initial_capital/10000)
    entryMade := true
if ta.crossunder(close, basis) and entryMade and not lowerCrossed
    basisCrossed := true
if close < lower
    lowerCrossed := true
if close > upper and entryMade and basisCrossed and not lowerCrossed and close > strategy.position_avg_price*add
    strategy.entry("추가s", strategy.short, strategy.initial_capital/10000)
    basisCrossed := false
if close < lower
    strategy.close("s")
    strategy.close("추가s")
    entryMade := false
    basisCrossed := false
    upperCrossed := false


Mehr