Stratégie de suivi intelligente Double B


Date de création: 2024-01-18 15:41:20 Dernière modification: 2024-01-18 15:41:20
Copier: 2 Nombre de clics: 539
1
Suivre
1617
Abonnés

Stratégie de suivi intelligente Double B

Il s’agit d’une stratégie de négociation utilisant l’indicateur de la ceinture de Brin. Cette stratégie vise à identifier les moments de forte fluctuation des prix et à prendre des décisions d’achat ou de vente en conséquence.

Principe de stratégie

La stratégie détermine si le prix actuel est dans la zone de fluctuation en calculant les lignes de haut, de milieu et de bas de la ceinture de Brin, afin de déterminer le moment de la position ou de la position basse. Lorsque le prix est proche du haut de la ceinture, il est considéré comme une zone de limite à plusieurs têtes, la stratégie choisit de vendre une position basse; lorsque le prix est proche du bas de la ceinture, il est considéré comme une zone de limite à vide, la stratégie choisit d’acheter une position.

En outre, la stratégie introduit un facteur de renversement de tendance, qui déclenche une décision d’achat ou de vente correspondante en cas de signal de renversement. Plus précisément, la logique de la stratégie est la suivante:

  1. Calculer les trains de haut, de milieu et de bas de la ceinture de Brin
  2. Déterminer si le prix a franchi l’orbite et les signaux de retour
    1. La rupture de la voie médiane comme signal de tendance
    2. En haut ou en bas de la voie comme signal de retour
  3. Émettre une instruction d’achat, de vente ou de liquidation

Voici la logique de trading de base de la stratégie. En utilisant les caractéristiques des bandes de Bryn, combinées à la tendance et au facteur de revers, la stratégie tente de saisir les points de revers et de négocier lorsque la volatilité s’intensifie.

Avantages stratégiques

Les avantages de cette stratégie par rapport à une moyenne mobile ordinaire sont les suivants:

  1. Les prix sont plus sensibles et capables de saisir les moments de fortes fluctuations.
  2. Le projet de loi sur la protection de la santé publique et la protection des consommateurs a pour objectif de réduire les risques de catastrophes naturelles et d’éviter les catastrophes naturelles.
  3. Un effet FILTER permettant d’éviter les transactions inutiles dans les zones de non-volatilité
  4. Réduire le nombre de transactions en déterminant la direction de la tendance principale à travers la voie médiane
  5. L’ajout de conditions de filtrage inverse réduit la probabilité d’erreur

Dans l’ensemble, la stratégie a bien combiné le jugement des entités de la zone de Brin avec celui des entités de prix, en négociant à des points de retournement raisonnables, garantissant à la fois un certain niveau de profitabilité et une maîtrise des risques.

Risque et optimisation

Cependant, cette stratégie comporte des risques, notamment:

  1. Les paramètres de la bande de Brin sont mal réglés et ne permettent pas de saisir pleinement les fluctuations des prix.
  2. La détection du signal de retournement est inexacte, omise ou mal interprétée.
  3. Les signaux de la voie médiane sont moins efficaces quand la tendance n’est pas claire.

En conséquence, il est possible d’optimiser à l’avenir les aspects suivants:

  1. Optimiser les paramètres de la bande de Bryn en fonction des paramètres des différentes variétés
  2. Augmentation de la probabilité de retour en arrière des modèles d’apprentissage automatique
  3. Passer à d’autres indicateurs lorsque la tendance est incertaine
  4. Filtrer les signaux de transaction avec plus de formes de prix

Résumer

Cette stratégie est généralement un modèle de stratégie de trading typique de la Brin Belt. Elle évite les inconvénients de la plupart des transactions inefficaces qui peuvent être facilement générées en utilisant uniquement la Brin Belt.

Code source de la stratégie
/*backtest
start: 2023-12-18 00:00:00
end: 2024-01-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy("Noro's Bollinger Strategy v1.2", shorttitle = "Bollinger str 1.2", overlay = true )

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")

length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length")
mult = input(2.0, defval = 2.0, minval = 0.001, maxval = 50, title = "Bollinger Mult")
source = input(ohlc4, defval = ohlc4, title = "Bollinger Source")

uset = input(true, defval = true, title = "Use trend entry")
usect = input(true, defval = true, title = "Use counter-trend entry")

fromyear = input(2018, defval = 2018, 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(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
showbands = input(true, defval = true, title = "Show Bollinger Bands")

//Bollinger Bands
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev

//Lines
col = showbands ? black : na 
plot(upper, linewidth = 1, color = col)
plot(basis, linewidth = 1, color = col)
plot(lower, linewidth = 1, color = col)

//Body
body = abs(close - open)
abody = ema(body, 30)

//Signals
bar = close > open ? 1 : close < open ? -1 : 0 
up1 = bar == -1 and close >= basis and close < upper and (close < strategy.position_avg_price or strategy.position_size == 0) and uset
dn1 = bar == 1 and close <= basis and close > lower and (close > strategy.position_avg_price or strategy.position_size == 0) and uset
up2 = close <= lower and usect
dn2 = close >= upper and usect
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open) and body > abody / 2

//Trading
if up1 or up2
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

if dn1 or dn2
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
    
if exit
    strategy.close_all()