
La stratégie est un système de trading dynamique basé sur les bandes de Bollinger, qui utilise principalement les signaux de rupture des prix pour effectuer des entrées multiples et des sorties combinées avec la continuité de la tendance et le principe de la régression moyenne. La stratégie fonctionne dans un délai de 5 minutes, en définissant les paramètres de la bande de Bollinger et la tolérance de la tendance pour capturer les opportunités de rupture dans les fluctuations de courte durée du marché, réaliser des entrées rapides et contrôler les risques. La logique centrale de la stratégie est la suivante:
La stratégie est basée sur l’indicateur de la ceinture de Brin, composé de trois lignes: la voie médiane (la moyenne mobile simple à 20 cycles), la voie supérieure (la voie médiane + 1,9 fois l’écart-type) et la voie inférieure (la voie médiane - 1,9 fois l’écart-type). La logique de négociation est la suivante:
La stratégie utilise la variable barsNotAboveUpper pour compter le nombre de cycles consécutifs où le prix n’a pas été maintenu au-dessus de la trajectoire supérieure. Chaque fois que le prix est supérieur à la trajectoire supérieure, le compteur est réinitialisé à 0, sinon le compteur est ajouté à 1. Lorsque le compteur atteint le seuil de tolérance, ou lorsque le prix touche la trajectoire moyenne, la stratégie sort de la position à plat.
Bien que le code contienne le cadre de la stratégie de bord de mer, la partie de la négociation de bord de mer en cours d’exécution est annotée, ce qui rend la stratégie exclusivement multi-barres. Cela peut être une décision d’optimisation prise en fonction des caractéristiques du marché ou des résultats de la rétroaction.
Suivi des tendances et adaptation aux fluctuations: Brin s’adapte à la volatilité du marché et ajuste automatiquement la largeur des canaux dans différents environnements de volatilité, ce qui rend la stratégie efficace dans différentes conditions de marché.
Des règles claires d’entrée et de sortie: La stratégie fournit des signaux d’entrée clairs (brise de la voie) et deux conditions de sortie objectives (faible continuité de la tendance ou atteinte de la moyenne) et réduit le jugement subjectif.
Les mécanismes de contrôle des risques: En définissant des paramètres de tolérance de tendance, la stratégie peut réagir rapidement aux changements de tendance et arrêter les pertes en temps opportun. Ce mécanisme de double sortie basé sur le temps et le prix contrôle efficacement l’exposition au risque d’une seule transaction.
Optimisation de l’espace par paramètre: La stratégie fournit trois paramètres réglables pour la longueur de la bande de Brin, le multiplicateur et la tolérance à la tendance, permettant aux traders d’optimiser en fonction des différentes conditions du marché et des styles de négociation.
Application du principe de régression: La stratégie utilise le prix en contact avec la ligne médiane comme condition de sortie, ce qui correspond aux caractéristiques de la régression de la valeur moyenne des marchés financiers et améliore la rationalité de la sortie.
Intégration des systèmes d’alerte précoce: La stratégie intègre une fonction d’alerte de signal de transaction qui informe les traders en temps réel des signaux d’entrée et de sortie, améliorant ainsi l’efficacité de l’exécution des transactions.
Risque de fausse percéeLes prix peuvent revenir rapidement après une percée temporaire, ce qui entraîne de faux signaux et des transactions inutiles, augmentant les coûts de transaction.
Paramètre SensibilitéLes paramètres de longueur et de multiplicité de la bande de Brin ont un impact significatif sur les performances de la stratégie. Une configuration inappropriée des paramètres peut entraîner un excès de faux signaux ou des opportunités de trading importantes manquées.
Restrictions sur les transactions à sens uniqueLa stratégie actuelle consiste à exécuter uniquement des transactions à plusieurs titres, ce qui peut entraîner une perte de marge de profit dans un marché en baisse, entraînant une instabilité de la performance à long terme.
Les mécanismes de stop-loss dépendent du temps: La tolérance de tendance est basée sur le calcul des cycles plutôt que sur la volatilité des prix, ce qui peut ne pas être suffisant pour arrêter la perte en temps opportun dans des conditions extrêmes, augmentant le risque de baisse.
Le retrait n’est pas suffisant.: La stratégie manque de mécanisme de stop-loss basé sur la gestion globale des fonds, ce qui peut entraîner un retrait plus important du compte en cas de signaux d’erreur répétés.
Limite de la période: La stratégie est spécifiquement conçue pour les graphiques de 5 minutes et peut ne pas s’appliquer à d’autres périodes de temps, ce qui limite la portée de la stratégie.
Pour atténuer ces risques, il est recommandé: 1) d’ajouter des conditions de filtrage supplémentaires pour réduire les faux signaux de rupture; 2) de mettre en œuvre un contrôle des risques basé sur la position globale; 3) d’ajouter des indicateurs de confirmation de tendance; 4) d’envisager d’ajouter un mécanisme de stop-loss basé sur la marge de prix.
adxLength = input.int(14, "ADX Length")
adxThreshold = input.int(25, "ADX Threshold")
dI = ta.dmi(adxLength, adxLength)
adx = ta.adx(adxLength)
trendFilter = adx > adxThreshold and dI+"DI" > dI+"DI-"
longCondition := longCondition and trendFilter
Une stratégie complète de multiples espaces: Logique de trading aérien annotée dans le code d’activation, permettant à la stratégie de profiter de la même manière dans un marché en baisse. Cela améliorera l’adaptabilité et la globalité de la stratégie dans différents environnements de marché.
Optimisation de la gestion des fonds: Ajout de contrôles de taille de position et de gestion globale des risques, tels que des paramètres de stop-loss basés sur l’ATR, des limites de retrait maximum, etc.; par exemple:
atrPeriod = input.int(14, "ATR Period")
atrMultiplier = input.float(3.0, "ATR Multiplier")
atr = ta.atr(atrPeriod)
stopLossPrice = strategy.position_avg_price - (atrMultiplier * atr)
timeFilter = (hour >= 9 and hour < 16) or (hour >= 18 and hour < 22)
longCondition := longCondition and timeFilter
volatilityRatio = ta.atr(14) / ta.atr(56)
dynamicMult = volatilityRatio < 0.8 ? mult * 0.8 : mult * 1.2
var float trailingStop = na
if strategy.position_size > 0
trailingStop := math.max(trailingStop, close - atrMultiplier * atr)
if close < trailingStop
strategy.close("Long")
La stratégie de négociation quantifiée d’accélération de rupture dynamique de la ceinture de Brin est un système de négociation à court terme basé sur l’analyse technique, combinant le suivi de la tendance et le principe de la régression de la moyenne. La stratégie effectue une entrée à plusieurs niveaux en surveillant les signaux de rupture de la ceinture de Brin, en tirant parti de l’insuffisance de la continuité des prix ou de la proximité de la ligne d’équilibre, pour former une boucle de fermeture complète.
L’avantage de cette stratégie réside dans sa capacité à s’adapter à la volatilité du marché et à des règles de négociation claires, mais elle est également confrontée à des défis tels que le risque de fausse percée et la sensibilité aux paramètres. La stabilité et la rentabilité de la stratégie peuvent être considérablement améliorées par l’ajout de filtres de tendance, l’amélioration du système de négociation multi-champ, l’optimisation de la gestion des fonds et l’introduction de paramètres d’adaptation.
Pour les traders, cette stratégie est adaptée à une utilisation comme système de trading à court terme, en particulier dans des marchés très volatils et à caractère évidemment révolutionnaire. Une fois optimisée, elle a le potentiel de devenir une solution de trading complète, capable de maintenir une performance relativement stable dans divers environnements de marché.
/*backtest
start: 2024-03-25 00:00:00
end: 2025-03-24 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © GoodDayss
//@version=6
strategy("Bollinger Bands Strategy 5m", overlay=true)
length = input.int(20, "Bollinger Length", minval=1)
mult = input.float(1.9, "Bollinger Mult", minval=0.001, maxval=50)
tolerance = input.int(4, "Trend Tolerance", minval=1)
source = close
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upper = basis + dev
lower = basis - dev
plot(basis, color=color.yellow, linewidth=2, title="Basis")
plot(upper, color=color.white, linewidth=2, title="Up")
plot(lower, color=color.white, linewidth=2, title="Low")
var int barsNotAboveUpper = 0
var int barsNotBelowLower = 0
bool longCondition = ta.crossover(close, upper)
bool shortCondition = ta.crossunder(close, lower)
if longCondition and strategy.position_size <= 0
strategy.entry("Long", strategy.long)
// Alert
alertcondition(longCondition and strategy.position_size <= 0, title = "幹你媽買進", message = "{{{ticker}} 的價格是 {{close}},\n買進!!!.}")
// if shortCondition and strategy.position_size >= 0
// strategy.entry("Short", strategy.short)
if strategy.position_size > 0
if close > upper
barsNotAboveUpper := 0
else
barsNotAboveUpper += 1
bool touchedBasisLong = (low <= basis)
if barsNotAboveUpper >= tolerance or touchedBasisLong
// Alert
alert(message = "{{{ticker}} 的價格是 {{close}},\n塊陶啊,賣出!!!.}")
strategy.close("Long", comment="Exit Long")
barsNotAboveUpper := 0
if strategy.position_size < 0
if close < lower
barsNotBelowLower := 0
else
barsNotBelowLower += 1
bool touchedBasisShort = (high >= basis)
// if barsNotBelowLower >= tolerance or touchedBasisShort
// strategy.close("Short", comment="Exit Short")
// barsNotBelowLower := 0