Stratégie de suivi de tendance de rupture des bandes de Bollinger


Date de création: 2023-09-22 14:31:17 Dernière modification: 2023-09-22 14:31:17
Copier: 1 Nombre de clics: 678
1
Suivre
1617
Abonnés

Aperçu

Cette stratégie est une stratégie de suivi de la tendance basée sur l’indicateur de la ceinture de Brin. Elle utilise la rupture de la ceinture de Brin sur la voie descendante pour déterminer la direction de la tendance et ouvre une position dans la direction correspondante.

Principe de stratégie

La stratégie utilise les indicateurs de la ceinture de Brin pour déterminer la direction de la tendance. La ceinture de Brin construit une trajectoire ascendante et descendante en calculant l’écart-type des prix. Lorsqu’un prix franchit une trajectoire ascendante, la tendance est considérée comme ayant commencé à monter; lorsqu’un prix franchit une trajectoire descendante, la tendance est considérée comme ayant commencé à descendre.

La logique de l’opération est la suivante:

  1. Calculer le milieu, le haut et le bas de la bande de Bryn.

  2. Lorsque le prix est en hausse, ouvrez un ordre plus élevé; lorsque le prix est en baisse, ouvrez un ordre vide.

  3. Utilisez un stop tracking pour contrôler le risque et arrêtez de perdre lorsque le prix commence à revenir en arrière

  4. La nouvelle rupture de l’orbite de la ceinture de Brin a entraîné une nouvelle tendance.

L’utilisation des courbes de Brin pour déterminer la direction de la tendance et le suivi dynamique des arrêts de perte permettent de contrôler efficacement les risques.

Analyse des avantages

Cette stratégie présente les avantages suivants:

  1. L’utilisation de l’indicateur de la ceinture de Brin pour évaluer les tendances est simple et efficace.

  2. La combinaison d’une entrée de rupture et d’un stop loss de trailing dynamique, qui prend en compte la capture de tendance et le contrôle du risque.

  3. La structure du code est claire et concise, facile à comprendre et à modifier.

  4. Il y a moins de paramètres pour l’optimisation.

  5. Il est adapté à différentes variétés et est très flexible.

  6. Les résultats sont bons et la marge de manœuvre est grande.

Analyse des risques

Les principaux risques de cette stratégie sont:

  1. Les bandes de Brin sont basées sur des caractéristiques statistiques et présentent un risque de correspondance avec la courbe.

  2. L’incapacité de distinguer l’expansion de la portée de la tendance réelle peut conduire à une mauvaise interprétation.

  3. Le point d’arrêt est trop dense et peut être affecté par les fluctuations normales des prix.

  4. L’impact sur le coût des transactions n’est pas pris en compte.

  5. Le temps de réponse est limité et peut être trop long.

La réponse:

  1. Optimiser les paramètres ou introduire d’autres signaux de vérification des indicateurs.

  2. L’augmentation de l’identification des secousses et des canaux

  3. Adaptez votre stop loss en fonction de l’ATR et d’autres indicateurs.

  4. Les frais d’adhésion et le calcul des points de glissement.

  5. Les résultats de la recherche ont été publiés dans le Journal of the American Medical Association (JAMA).

Direction d’optimisation

La stratégie peut être optimisée en fonction des facteurs suivants:

  1. Tester la combinaison de différents indicateurs

  2. Le nombre de personnes qui ont été infectées par le virus de la grippe a augmenté de manière significative.

  3. Paramètres d’optimisation dynamique pour les méthodes d’apprentissage automatique.

  4. Optimisation de la stratégie de stop loss en fonction de la rétroaction.

  5. Évaluer et ajouter les coûts de transaction.

  6. Optimisation de l’espace paramétrique pour trouver le paramètre optimal Settings。

  7. Augmentation de la gestion de l’argent pour contrôler le risque de position

Résumer

La stratégie est basée sur les indicateurs de la ceinture de Brin pour déterminer la direction de la tendance et le suivi des arrêts pour contrôler les risques. La logique de négociation globale est simple et claire. La stratégie a un bon effet de capture de tendance, mais elle peut être améliorée en introduisant plus d’indicateurs techniques, de paramètres d’optimisation et en ajoutant des calculs de coût.

Code source de la stratégie
/*backtest
start: 2022-09-15 00:00:00
end: 2023-09-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Bollinger Band Breakout", shorttitle = "BB Strategy",initial_capital=1000, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, commission_type = strategy.commission.percent, commission_value = 0.3, max_bars_back = 1000, overlay=true)

// Inputs //

sma = input(20,  minval=1)
mult   = input(1.2, minval=0.001, maxval=50)
src = input(close)

// alert msg  //

message_long_entry  = input("long entry")
message_short_entry = input("short entry")

// Calculations //

basis = sma(close, sma)
dev   = mult * stdev(close, sma)

upper = basis + dev
lower = basis - dev

// Backtest //
fromyear = input(2019, defval = 2019, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(1, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

leverage = input(1, "Leverage")

term = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))

// PLOT //

plot(basis, color = color.gray,  linewidth = 2)
lu = plot(upper, color = color.green, linewidth = 2)
ll = plot(lower, color = color.red,   linewidth = 2)

fill(lu, ll, color = color.gray)

// Signals //

long  = crossover(close, upper)
short = crossunder(close, lower)

// Strategy entry //
strategy.initial_capital = 50000
if (long and term)
    strategy.entry("long",  strategy.long, qty=strategy.initial_capital/close*leverage, when = long and barstate.isconfirmed, alert_message = message_long_entry)
    
if (short and term)
    strategy.entry("short",  strategy.short, qty=strategy.initial_capital/close*leverage, when = short and barstate.isconfirmed, alert_message = message_short_entry)

// strategy exit //

strategy.exit("long tsl", "long", loss = close*0.075 / syminfo.mintick, trail_points = close*0.05 / syminfo.mintick, trail_offset = close*0.005 / syminfo.mintick)
strategy.exit("short tsl", "short", loss = close*0.075 / syminfo.mintick, trail_points = close*0.05 / syminfo.mintick, trail_offset = close*0.005 / syminfo.mintick)