Cette stratégie utilise des indicateurs de bandes de volatilité renforcées pour déterminer les points de retournement des prix, en faisant plus lorsque les prix sont proches de la limite inférieure de la bande de volatilité et en s’arrêtant lorsque la ligne K verte apparaît, dans le but de capturer des opportunités de rebond le long de la bande de volatilité.
Calculer les paramètres de base et de dev pour les bandes de fréquence régulières, ainsi que les limites supérieures (upper BB) et inférieures (lower BB)
Calculer la moyenne SMA et le pourcentage de déviation de la SMA de la trajectoire ascendante et descendante de l’upex2 et de la dnex2.
Calculer la moyenne de l’upex2, du dnex2 et du upperBB, du lowerBB, pour obtenir les courbes de l’upex3 et du dnex3.
Prenez l’upex3 avec la plus grande valeur dans le upper BB comme une nouvelle uptrendupex, et dnex3 avec la plus petite valeur dans le lower BB comme une nouvelle downtrend dnex.
Lorsque le prix est inférieur à dnex, faire plus d’entrée; lorsque la ligne K est verte (le prix de clôture est plus grand que le prix d’ouverture), faire un arrêt de la position.
Les bandes d’oscillation amplifiées améliorent la sensibilité de l’indicateur des bandes d’oscillation primitives et permettent de saisir plus tôt les occasions de reprise des prix.
Il est associé au filtrage des signaux de la ligne K, afin d’éviter les pannes fréquentes lors de la conversion.
Les retours d’expérience ont montré que la stratégie était rentable et stable entre 2008 et 2018, avec une courbe de rendement lisse et un retrait maximal inférieur à 20%.
Paramètres tels que le taux d’utilisation des fonds, le moment de la transaction, le risque est contrôlable.
Une mauvaise configuration des paramètres de la bande oscillante peut entraîner une fréquence de négociation excessive ou des opportunités manquées.
Il n’y a pas d’autres moyens de faire de l’argent que de faire de l’argent dans plusieurs directions.
Les signaux de filtrage du K-Line peuvent être retardés et ne peuvent pas être arrêtés à temps.
Les données de retracement sont de seulement 10 ans, il est nécessaire d’élargir l’intervalle d’échantillonnage pour vérifier la stabilité.
Il n’est pas adapté aux sauts en hauteur ou aux crevasses.
Tester différentes combinaisons de paramètres pour optimiser les paramètres de la bande de fréquence.
filtrer les signaux d’autres indicateurs pour augmenter le pourcentage de trades rentables;
Adhérer à une stratégie de couverture, en tenant compte de la couverture lorsque le prix dépasse la barre supérieure.
définir des conditions de stop-loss pour contrôler les pertes individuelles;
Développer des procédures d’ajustement automatique pour optimiser les paramètres en fonction des évolutions du marché.
Optimisation des règles d’entrée pour les sauts en hauteur et les manches.
Élargissement de la période de réévaluation pour vérifier la stabilité des paramètres
Cette stratégie utilise l’augmentation des bandes d’oscillation pour déterminer les points de retournement des prix, en faisant plus près de la bande d’oscillation en dessous de la trajectoire et en s’associant à un signal de filtrage en K pour un arrêt rapide et un retour de mesure. Cependant, cette stratégie fonctionne uniquement dans plusieurs directions. L’échantillonnage est limité, les paramètres clés doivent être optimisés davantage et le risque de baisse des bénéfices peut être présent en cas de changement de l’environnement du marché. La prochaine étape nécessite l’introduction de plusieurs signaux de filtrage pour augmenter le taux de trades rentables, augmenter les possibilités de prise de position et tester la robustesse de la combinaison de paramètres à l’aide d’un cycle de rétroaction plus long pour améliorer l’adaptabilité et la stabilité de la stratégie.
/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's Advanced Bollinger Bands Strategy v1.0", shorttitle = "ABB str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 5)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(false, defval = false, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
p = input(20, "bars")
d = input(25, "percent")
showlines = input(true, defval = true, title = "Show Lines?")
fromyear = input(1900, defval = 1900, 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")
mult = input(2.0, minval=0.001, maxval=50)
basis = sma(close, p)
dev = mult * stdev(close, p)
source = close
upperBB = basis + dev
lowerBB = basis - dev
b1 = plot(basis, color=gray, linewidth=1)
p1 = plot(upperBB, color=aqua, linewidth=1)
p2 = plot(lowerBB, color=aqua, linewidth=1)
//SMAs
sma = sma(close, p)
upex2 = sma * ((100 + d) / 100)
dnex2 = sma * ((100 - d) / 100)
upex3 = (upex2 + upperBB) / 2
dnex3 = (dnex2 + lowerBB) / 2
upex = max(upperBB, upex3)
dnex = min(lowerBB, dnex3)
//exit = (high > sma and low < sma)
exit = close > open
//Lines
col = showlines ? blue : na
plot(upex, linewidth = 3, color = col, transp = 0)
plot(sma, linewidth = 3, color = col, transp = 0)
plot(dnex, linewidth = 3, color = col, transp = 0)
//Trading
lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if (not na(close[p]))
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, limit = dnex)
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, limit = upex)
if exit
strategy.close_all()