Stratégie de tendance progressive BB KC


Date de création: 2024-01-26 15:10:41 Dernière modification: 2024-01-26 15:10:41
Copier: 0 Nombre de clics: 725
1
Suivre
1617
Abonnés

Stratégie de tendance progressive BB KC

Aperçu

Cette stratégie utilise une combinaison de signaux de Brin et de Kate pour identifier les tendances du marché. La Brin est un outil d’analyse technique qui définit les canaux en fonction de la gamme de fluctuations des prix. La Kate est un indicateur technique qui combine la volatilité des prix et la tendance pour déterminer le support ou la pression.

Principe de stratégie

  1. Le calcul de la moyenne, la haute et la basse de Bryn est de 20 cycles, et la bande passante est de 2 fois le décalage standard.
  2. La bande passante est déterminée par 2,2 fois la plage de fluctuation réelle de l’orbite moyenne, de l’orbite supérieure et de l’orbite inférieure de Kate calculée sur 20 cycles.
  3. Faites plus lorsque Kate est en ligne, en train de traverser la ceinture de Brin et que le volume de transactions est supérieur à la moyenne des 10 cycles.
  4. Lorsque Kate est en train de traverser la ceinture de Brin en dessous de la ligne et que le volume de transactions est supérieur à la moyenne des 10 cycles, faites le vide.
  5. Si la ligne K n’est pas sortie après 20 lignes ouvertes, le stop loss est forcé.
  6. Le stop loss est de 1,5% après le plus, le stop loss est de -1,5% après le moins; le stop loss est de 2% après le plus, le stop loss est de -2% après le moins.

La stratégie repose principalement sur la bande de Bryn pour déterminer la portée et l’intensité des fluctuations, l’utilisation de la vérification auxiliaire de la ligne de Kate, l’utilisation conjointe de deux indicateurs de paramètres différents mais de nature similaire peut améliorer l’exactitude du signal et l’introduction de volumes de conversion peut également réduire efficacement les signaux inefficaces.

Analyse des avantages

  1. L’utilisation intégrée des deux indicateurs, les bandes de Bryn et les lignes de Kate, a amélioré la précision des signaux de trading.
  2. La combinaison d’indicateurs de volume de transaction peut réduire efficacement les signaux inefficaces des lignes de collision fréquentes du marché.
  3. La mise en place d’un mécanisme d’arrêt des pertes et de suivi des pertes permet de contrôler efficacement les risques.
  4. La mise en veille de l’arrêt forcé après le signal d’invalidation permet d’arrêter rapidement l’arrêt de l’arrêt.

Analyse des risques

  1. Les bandes de Bryn et les lignes de Kate sont des indicateurs basés sur des moyennes mobiles et combinés à des calculs de volatilité, susceptibles de générer des faux signaux en cas de tremblement de terre.
  2. Le mécanisme de non-retour est un mécanisme qui peut entraîner des pertes excessives en cas d’arrêt répété.
  3. Les signaux d’inversion sont plus fréquents et les opportunités de tendance sont facilement perdues après ajustement des paramètres. On peut assouplir la marge d’arrêt de manière appropriée ou ajouter des signaux de filtrage d’indicateurs auxiliaires tels que MACD pour réduire le risque de faux signaux.

Direction d’optimisation

  1. On peut tester l’influence de différents paramètres sur le taux de rendement de la stratégie, tels que la longueur de la moyenne ajustée, le multiple de la différence standard, etc.
  2. D’autres indicateurs peuvent être ajoutés pour déterminer le signal, comme l’aide de l’indicateur KDJ ou l’indicateur MACD.
  3. Les paramètres peuvent être automatiquement optimisés par des méthodes d’apprentissage automatique.

Résumer

Cette stratégie utilise les indices de Brin et de Kate pour identifier les tendances du marché, et est complétée par des indicateurs de volume de transactions pour vérifier les signaux. La stratégie peut être renforcée par l’optimisation des paramètres, l’ajout d’autres indicateurs techniques, etc. La stratégie peut être adaptée à une situation plus large du marché.

Code source de la stratégie
/*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