
Cette stratégie est basée sur l’indicateur de rupture de la ceinture de Brin, qui utilise le signal de rupture de Provide en aval de la ceinture de Brin pour effectuer des opérations d’achat et de vente. Cette stratégie possède à la fois un mécanisme de suivi des pertes et de mise en position, ce qui permet d’obtenir des gains plus élevés dans des conditions de tendance.
La stratégie commence par calculer le milieu, le haut et le bas de la bande de Brin. Le milieu est la moyenne mobile du prix, et le haut et le bas de la bande correspondent respectivement à un écart standard par rapport au milieu.
Lorsque le prix est en hausse, un signal d’achat est généré; lorsque le prix est en baisse, un signal de vente est généré. Cela signifie que le prix a franchi la zone de Brin et peut entrer dans la tendance.
En outre, la stratégie juge également la rupture de l’entité, si le prix de clôture est supérieur au prix d’ouverture et que l’entité a brisé la trajectoire moyenne d’un certain pourcentage, elle est à plat; si le prix de clôture est inférieur au prix d’ouverture et que l’entité a brisé la trajectoire moyenne d’un certain pourcentage, elle est à plat. Cela permet d’éviter les pertes causées par une fausse rupture.
Après l’ouverture de la position, la stratégie peut effectuer des opérations de stop-loss et d’augmentation de la position. Si le prix continue de se déplacer dans la direction favorable, la position peut être augmentée, ce qui augmente le profit possible. Si le prix est inversé, le risque est contrôlé par un stop-loss.
Cette stratégie présente les avantages suivants:
L’indicateur technique est simple et efficace pour déterminer la direction et la rupture des tendances à l’aide de l’indicateur de la ceinture de Brin.
La combinaison de l’entité et de la voie médiane pour juger de la fiabilité de la brèche permet d’éviter les dommages causés par une fausse brèche.
La traçabilité des pertes est utilisée pour contrôler le risque et bloquer le profit.
La méthode de l’hypothèque permet d’obtenir des rendements plus élevés dans des conditions de tendance.
La logique de la stratégie est claire et compréhensible, les paramètres sont simples et faciles à mettre en œuvre.
La stratégie présente également les risques suivants:
La rupture de la ceinture de Brin ne peut pas éviter une fausse rupture, mais il existe un certain risque de perte.
Une mauvaise configuration du point d’arrêt peut entraîner un arrêt prématuré ou invalide.
Le nombre et le ratio de mises en place incorrects peuvent entraîner une augmentation des pertes.
Si la tendance est inversée, l’échec de l’arrêt de la perte peut entraîner des pertes plus importantes.
L’optimisation insuffisante des paramètres peut entraîner une mauvaise efficacité de la stratégie.
Il existe un risque de suradaptation qui doit être vérifié sur différents marchés.
Cette stratégie peut être optimisée dans les domaines suivants:
Test et optimisation des paramètres de la bande de Bryn pour trouver la combinaison de paramètres la plus appropriée
Tester différentes stratégies de stop-loss et définir des points de stop-loss plus précis.
Test du nombre et du pourcentage de mise en réserve pour trouver le paramètre optimal.
Il est important d’augmenter les indicateurs de jugement de tendance et d’éviter les risques de revers.
Optimisation de la logique de jugement de la percée de l’entité et réduction de la probabilité de fausse percée.
Ajout d’une fonction conditionnelle, utilisant une combinaison de paramètres différente selon les conditions du marché.
Les essais ont été effectués sur plusieurs variétés et périodes de temps, ce qui a permis d’améliorer la stabilité.
L’optimisation automatique des paramètres par des méthodes telles que l’apprentissage automatique.
Dans l’ensemble, la stratégie utilise les indicateurs de la ceinture de Brin pour déterminer la direction de la tendance et les signaux de rupture, et est équipée de fonctionnalités telles que l’arrêt de la perte, la prise de position, etc., pour obtenir de meilleurs résultats. Cependant, il existe un certain risque, qui nécessite des améliorations par l’optimisation des paramètres, l’ajout de jugements conditionnels, etc., pour rendre la stratégie plus stable et plus fiable.
/*backtest
start: 2023-11-05 00:00:00
end: 2023-11-12 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy("Noro's Bollinger Strategy v1.1", shorttitle = "Bollinger str 1.1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 5)
//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, minval = 0.001, maxval = 50, title = "Bollinger Mult")
source = input(ohlc4, defval = ohlc4, title = "Bollinger Source")
showbands = input(true, defval = true, title = "Show Bollinger Bands")
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")
//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
up = close <= lower
dn = close >= upper
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open) and body > abody / 2
//Trading
if up
strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
if dn
strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
if time > timestamp(toyear, tomonth, today, 00, 00) or exit
strategy.close_all()