Progressive BB KC Trendstrategie


Erstellungsdatum: 2024-01-26 15:10:41 zuletzt geändert: 2024-01-26 15:10:41
Kopie: 0 Klicks: 725
1
konzentrieren Sie sich auf
1617
Anhänger

Progressive BB KC Trendstrategie

Überblick

Die Strategie verwendet eine Kombination aus Brin- und Kate-Linie-Signalen, um Markttrends zu identifizieren. Die Brin- und Kate-Linie-Signal ist ein technisches Analysetool, das die Kanäle anhand des Preisschwankungsbereichs definiert. Die Kate-Linie-Signal ist ein technischer Indikator für die Kombination von Preisvolatilität und Trendhaftigkeit, um Unterstützung oder Druck zu beurteilen.

Strategieprinzip

  1. Die Berechnung der 20-Zyklen-Brin-Mittelbahn, Oberbahn und Unterbahn mit einer Bandbreite von 2 mal der Standardabweichung ist vorgesehen.
  2. Die Bandbreite wird durch den 2,2-fachen der realen Schwankungsbreite bestimmt.
  3. Wenn Kate online durch die Brin-Band auf die Bahn geht und die Transaktionen größer als der 10-Zyklus-Durchschnitt sind, tun Sie mehr.
  4. Wenn Kate unter der Bahn durch die Brin-Band unter der Bahn geht und die Transaktionsmenge größer als der 10-Zyklus-Durchschnitt ist, wird eine Lücke gesetzt.
  5. Wenn 20 K-Linien nach der Eröffnung der Position nicht aussteigen, wird der Stop-Loss-Ausgang erzwungen.
  6. Setzen Sie den Stop-Loss auf 1,5% nach der Übernahme und den Stop-Loss auf 1,5% nach der Ausgabe. Setzen Sie den Tracking-Loss auf 2% nach der Übernahme und den Tracking-Loss auf 2% nach der Ausgabe.

Die Strategie basiert hauptsächlich auf Brin-Band, um die Bandbreite und Stärke der Schwankungen zu bestimmen. Die Verwendung von Kate-Line-unterstützter Validierung, die Kombination von zwei Indikatoren mit unterschiedlichen Parametern, aber ähnlicher Natur, kann die Genauigkeit des Signals verbessern, und die Einführung von Übertragungsmengen kann auch die Unwirksamkeit des Signals effektiv reduzieren.

Analyse der Stärken

  1. Die kombinierte Nutzung der Vorteile der beiden Indikatoren Brin-Band und Kate-Linie verbessert die Genauigkeit der Handelssignale.
  2. Die Kombination von Wechselkursen kann die inaktiven Signale der häufigen Markteinbrüche wirksam reduzieren.
  3. Ein Stop-Loss- und Tracking-Stopp-Mechanismus, der die Risiken wirksam kontrolliert.
  4. Nach dem Abbruch des Signals wird der Stoppschaden zwangsweise eingestellt.

Risikoanalyse

  1. Die Brin- und Kate-Linien sind Indikatoren, die auf Moving Averages basieren und in Kombination mit Volatilitätsberechnungen erzeugen können, was zu Fehlschlägen bei Erschütterungen führt.
  2. Es gibt keine Gewinn- und Verlustmechanismen, bei denen es zu einem zu hohen Verlust kommen kann, wenn es mehrmals eingeschlossen wird.
  3. Umkehrsignale sind häufiger, und nach der Anpassung der Parameter ist es leicht, eine Trendchance zu verlieren. Die Stop-Loss-Marge kann entsprechend gelockert werden, oder Hilfsindikatoren wie MACD können hinzugefügt werden, um das Risiko von Fehlsignalen zu verringern.

Optimierungsrichtung

  1. Die Auswirkungen verschiedener Parameter auf die Strategie-Rendite können getestet werden, wie z. B. die Längen der bereinigten Durchschnittslinie, die Multiplikatoren der Standardabweichung usw.
  2. Die Signalbestimmung kann mit Hilfe anderer Indikatoren, wie KDJ oder MACD, beurteilt werden.
  3. Automatische Optimierung der Parameter durch maschinelle Lernmethoden.

Zusammenfassen

Die Strategie verwendet Brin-Band- und Kate-Linie-Indikatoren, um Markttrends zu identifizieren, und wird durch Transaktionsvolumen-Indikatoren unterstützt, um Signale zu überprüfen. Die Strategie kann durch Parameteroptimierung und die Aufnahme anderer technischer Indikatoren weiter verstärkt werden, um sie an die breiteren Marktbedingungen anzupassen. Die Strategie ist insgesamt sehr funktionsfähig und gehört zu den quantitativen Handelsstrategien, die leicht zu beherrschen und anzupassen sind.

Strategiequellcode
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
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/
// © jensenvilhelm

//@version=5
strategy("BB and KC Strategy", overlay=true)

// Define the input parameters for the strategy, these can be changed by the user to adjust the strategy
kcLength = input.int(20, "KC Length", minval=1) // Length for Keltner Channel calculation
kcStdDev = input.float(2.2, "KC StdDev") // Standard Deviation for Keltner Channel calculation
bbLength = input.int(20, "BB Length", minval=1) // Length for Bollinger Bands calculation
bbStdDev = input.float(2, "BB StdDev") // Standard Deviation for Bollinger Bands calculation
volumeLength = input.int(10, "Volume MA Length", minval=1) // Length for moving average of volume calculation
stopLossPercent = input.float(1.5, "Stop Loss (%)") // Percent of price for Stop loss 
trailStopPercent = input.float(2, "Trail Stop (%)") // Percent of price for Trailing Stop
barsInTrade = input.int(20, "Bars in trade before exit", minval = 1) // Minimum number of bars in trade before considering exit

// Calculate Bollinger Bands and Keltner Channel
[bb_middle, bb_upper, bb_lower] = ta.bb(close, bbLength, bbStdDev) // Bollinger Bands calculation
[kc_middle, kc_upper, kc_lower] = ta.kc(close, kcLength, kcStdDev) // Keltner Channel calculation

// Calculate moving average of volume
vol_ma = ta.sma(volume, volumeLength) // Moving average of volume calculation

// Plotting Bollinger Bands and Keltner Channels on the chart
plot(bb_upper, color=color.red) // Bollinger Bands upper line
plot(bb_middle, color=color.blue) // Bollinger Bands middle line
plot(bb_lower, color=color.red) // Bollinger Bands lower line
plot(kc_upper, color=color.rgb(105, 255, 82)) // Keltner Channel upper line
plot(kc_middle, color=color.blue) // Keltner Channel middle line
plot(kc_lower, color=color.rgb(105, 255, 82)) // Keltner Channel lower line

// Define entry conditions: long position if upper KC line crosses above upper BB line and volume is above MA of volume
// and short position if lower KC line crosses below lower BB line and volume is above MA of volume
longCond = ta.crossover(kc_upper, bb_upper) and volume > vol_ma // Entry condition for long position
shortCond = ta.crossunder(kc_lower, bb_lower) and volume > vol_ma // Entry condition for short position

// Define variables to store entry price and bar counter at entry point
var float entry_price = na // variable to store entry price
var int bar_counter = na // variable to store bar counter at entry point

// Check entry conditions and if met, open long or short position
if (longCond)
    strategy.entry("Buy", strategy.long) // Open long position
    entry_price := close // Store entry price
    bar_counter := 1 // Start bar counter
if (shortCond)
    strategy.entry("Sell", strategy.short) // Open short position
    entry_price := close // Store entry price
    bar_counter := 1 // Start bar counter

// If in a position and bar counter is not na, increment bar counter
if (strategy.position_size != 0 and na(bar_counter) == false)
    bar_counter := bar_counter + 1 // Increment bar counter

// Define exit conditions: close position if been in trade for more than specified bars
// or if price drops by more than specified percent for long or rises by more than specified percent for short
if (bar_counter > barsInTrade) // Only consider exit after minimum bars in trade
    if (bar_counter >= barsInTrade)
        strategy.close_all() // Close all positions
    // Stop loss and trailing stop
    if (strategy.position_size > 0)
        strategy.exit("Sell", "Buy", stop=entry_price * (1 - stopLossPercent/100), trail_points=entry_price * trailStopPercent/100) // Set stop loss and trailing stop for long position
    else if (strategy.position_size < 0)
        strategy.exit("Buy", "Sell", stop=entry_price * (1 + stopLossPercent/100), trail_points=entry_price * trailStopPercent/100) // Set stop loss and trailing stop for short position