Cette stratégie est basée sur l’indicateur de la ceinture de Brin, qui fait plus lorsque le prix dépasse la ceinture de Brin et plus quand le prix touche la ceinture de Brin. Cette stratégie utilise le principe d’inclusion de la ceinture de Brin pour suivre les ruptures de prix inhabituelles et réaliser des achats et des ventes bas.
Calculer le SMA de la courbe de Brin en prenant une moyenne mobile simple des cours de clôture récents.
Le décalage StdDev est calculé pour refléter la marge de fluctuation des prix.
La moyenne moyenne moyenne (SMA) plus le décalage de la différence standard (SDD) sont pris en compte par Brin.
Le SMA de la ligne médiane est dérivé de l’écart-type.
Il est préférable de faire une entrée supplémentaire lorsque le cours de clôture est descendu de bas en haut.
Quand le prix touche la voie, considérez le prix comme anormal et la position est levée.
Le plus grand avantage de cette stratégie est qu’elle utilise les caractéristiques statistiques de l’indicateur de la ceinture de Brin pour suivre efficacement les fluctuations anormales du marché et capturer les tendances. Par rapport aux stratégies de moyennes mobiles conventionnelles, la stratégie de la ceinture de Brin présente des avantages:
Le Brin s’adapte automatiquement aux fluctuations du marché.
La percée est plus fiable comme signal d’entrée.
Le retour sur l’axe central est raisonnable comme signal d’arrêt.
Les paramètres sont optimisés et peuvent être adaptés à différents marchés.
Il est possible de capturer les tendances de la ligne moyenne et longue, mais aussi de les utiliser sur la ligne courte.
Les principaux risques potentiels de cette stratégie sont les suivants:
Les bandes de broyage ne sont pas efficaces sur les marchés horizontaux, il faut éviter les erreurs.
Le signal de rupture peut être faux et doit être jugé avec prudence.
La position de l’arrêt est trop idéalisée pour être adaptée à la pratique.
Une mauvaise configuration des paramètres peut entraîner des transactions trop fréquentes ou conservatrices.
Le cycle de rétroaction doit être suffisamment long pour éviter la congruence.
Mesures de gestion du risque:
Les signaux de filtrage associés à l’indicateur de volume des transactions.
Optimiser les paramètres et tester l’efficacité des données sur différents marchés.
Ajout d’un arrêt mobile et d’un arrêt rotatif.
Les signaux d’évaluation doivent être déviés afin d’éviter les chutes.
Cette stratégie peut être optimisée dans les domaines suivants:
Essayez différents paramètres de taille de la bande de Bryn pour trouver la meilleure combinaison.
Ajout d’un filtre pour les signaux de rupture tels que la moyenne, le MACD.
Appliquer des algorithmes d’apprentissage automatique pour optimiser les paramètres de la bande de Bryn.
Tout en faisant une entrée en bourse, évaluer ses forces et ses faiblesses et ajuster sa position.
Les données de retour sur des périodes plus longues permettent de tester la stabilité des stratégies.
Le risque est maîtrisé par l’ajout d’un mécanisme de stop-loss.
La stratégie de la ceinture de Brin est une stratégie de suivi de tendance fiable dans l’ensemble. Elle permet de capturer efficacement les fluctuations anormales des prix. Mais nous devons également être attentifs à son écart par rapport à la pratique réelle et à l’optimisation continue des paramètres.
/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-12 04:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy(title="BB training No Repainting (OTS Mode)", overlay=true)
// Strategy Rules:
// 1. Enter trade when price crosses above the lower band
// 2. Exit trade when price touches the upper band
//
// Chart Properties
testStartYear = input(2010, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)
testStopYear = input(2030, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? #6c6f6c : na
bgcolor(testPeriodBackgroundColor, transp=97)
// User provided values
smaLength = input(title="SMA Length", type=input.integer, defval=20) // Middle band period length (moving average)
stdLength = input(title="StdDev Length", type=input.integer, defval=20) // Range to apply bands to
ubOffset = input(title="Upper Band Offset", type=input.float, defval=2.0, step=0.5) // Number of standard deviations above MA
lbOffset = input(title="Lower Band Offset", type=input.float, defval=2.0, step=0.5) // Number of standard deviation below MA
testPeriod() =>
time >= testPeriodStart and time <= testPeriodStop ? true : false
smaValue = sma(close, smaLength) // Middle band
stdDev = stdev(close, stdLength)
upperBand = smaValue + stdDev * ubOffset // Top band
lowerBand = smaValue - stdDev * lbOffset // Bottom band
// Plot bands to chart
plot(series=smaValue, title="SMA", color=color.green)
plot(series=upperBand, title="UB", color=color.blue, linewidth=2)
plot(series=lowerBand, title="LB", color=color.blue, linewidth=2)
longCondition = (crossover(close, lowerBand))
closeLongCondition = (close >= upperBand)
if (longCondition and testPeriod())
strategy.entry(id="CALL", long=true)
strategy.close(id="CALL", when=closeLongCondition)