Cette stratégie est basée sur l’indicateur de la ceinture de Brin et sur l’indicateur de la moyenne mobile oscillante. Elle construit un canal de prix qui émet un signal de transaction en franchissant les limites supérieures et inférieures du canal. Elle combine l’adaptabilité de la ceinture de Brin et la flexibilité de l’indicateur d’oscillation pour capturer en temps opportun les changements de tendance du marché.
Cette stratégie utilise la courbe de Brin et les moyennes mobiles oscillatrices pour construire un canal de prix. La courbe de Brin, la courbe supérieure et la courbe inférieure sont respectivement prolongées d’un pourcentage vers le haut et vers le bas sur 21 cycles. La courbe mobile oscillatrice est basée sur la courbe centrale et est étirée ou contractée dans les zones de survente.
Plus précisément, la formule de calcul de la trajectoire moyenne de Brin est la suivante:
中轨 = N日收盘价的移动平均线
La formule pour calculer la vitesse de montée et de descente est:
上轨 = 中轨 + WidthDev * 布林带N日标准差
下轨 = 中轨 - WidthDev * 布林带N日标准差
où WidthDev représente le pourcentage d’extension vers le haut et vers le bas.
Les moyennes mobiles oscillantes sont basées sur une trajectoire moyenne et se contractent ou s’étendent selon certaines règles. Lorsqu’un marché est en sur-achat ou en survente, elles s’étendent plus loin de la trajectoire moyenne, ce qui élargit les possibilités de faire plus de courts-circuits.
En résumé, cette stratégie dépeint le canal de prix à travers la bande de Brin, puis utilise l’indicateur de moyenne mobile oscillante pour déterminer le moment d’entrée, permettant de réaliser des transactions de rupture. Faire plus lorsque le prix franchit la trajectoire de Brin de bas en haut; Faire plus lorsque le prix franchit la trajectoire de Brin de haut en bas.
Réflexion sur les fluctuations du marché Les bandes de Brin reflètent en temps réel la volatilité et les tendances changeantes du marché, et les bandes d’en haut et de bas s’adaptent aux variations de la volatilité.
Réduire le nombre de faux signaux L’indicateur de moyenne mobile oscillante peut réduire efficacement les faux signaux générés par les bandes de Brin. Il augmente la largeur des canaux de la bande de Brin, prolonge le temps de détention des positions, et ainsi obtient plus de profit.
Une reprise en temps opportun Le croisement des courbes de Brent à la baisse et des moyennes mobiles oscillatrices fournit un avantage temporel et de prix pour émettre des signaux de négociation, ce qui permet de capturer efficacement les ajustements clés des polyèdres et des vaisseaux aériens et de saisir en temps opportun le renversement de la tendance du marché.
Paramètres de la bande de Bryn Une mauvaise configuration des paramètres de la ceinture de Brin, tels que le cycle de calcul et le double de l’écart standard, peut entraîner des distances trop grandes ou trop petites entre les voies ascendantes et descendantes, générant de nombreux faux signaux et affectant la stabilité de la stratégie.
Les tremblements de terre ont été trop forts La mise en place d’une moyenne mobile oscillante à une amplitude trop élevée peut entraîner un point d’arrêt trop éloigné et augmenter le risque de pertes.
Le retour en retard Les signaux de négociation émis par les indices des bandes de Brent et des moyennes mobiles oscillatrices peuvent être retardés lorsque le marché est en période de turbulence ou sans tendance claire, et ne peuvent pas refléter les variations de prix en temps opportun, ce qui entraîne un risque de reprise tardive.
Optimiser les paramètres de la bande de Bryn
Il est possible de tester différents paramètres de périodes, les multiples de l’écart-type, et de choisir la combinaison de paramètres qui produisent le meilleur nombre de signaux et moins de faux signaux.
Optimiser les paramètres de la moyenne mobile oscillante Il est possible de tester différentes amplitudes et périodes de vibration, en choisissant des paramètres capables de capturer les tendances et de réduire le retard du signal.
Ajout de conditions de filtrage Les signaux croisés des bandes de Bryn et des moyennes mobiles oscillatrices peuvent être utilisés pour filtrer des indicateurs auxiliaires tels que le volume de transactions, afin d’éliminer certains signaux de négociation inefficaces.
Portée stratégique Cette stratégie peut être utilisée en combinaison avec d’autres stratégies de suivi et d’arrêt des pertes ou une combinaison de stratégies d’apprentissage automatique pour contrôler davantage les risques et améliorer la stabilité.
Cette stratégie est basée sur les indicateurs des canaux d’adaptation de la ceinture de Brin et des moyennes mobiles oscillatrices, et réalise une combinaison organique de suivi de la tendance et de capture des retournements de tendance. Elle combine les avantages des deux indicateurs, prenant en compte à la fois la volatilité du marché et la flexibilité des signaux de négociation, afin de réaliser des transactions de rupture stables et efficaces.
/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
// Hull Cloud v2 by SEASIDE420
strategy("Hull Moving Average Cloud v2", shorttitle="hull_cloud_v2", overlay=true, commission_type=strategy.commission.percent, commission_value=0.075, default_qty_type=strategy.percent_of_equity, max_bars_back=200, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
hullperiod=input(title="HullMA Period",defval=210, minval=1)
Width=input(title="Cloud Width",defval=200, minval=2)
price=input(ohlc4,title="Price data")
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2017, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => true
n2ma=2*wma(price,round(hullperiod/2))
nma=wma(price,hullperiod)
diff=n2ma-nma
sqn=round(sqrt(hullperiod))
n2ma1=2*wma(price[1],round(hullperiod/2))
nma1=wma(price[1],hullperiod)
diff1=n2ma1-nma1
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
Hull_Line=n1-n1[1]/n2[1]
Hull_retracted=if(n1>n2)
Hull_retracted=Hull_Line-Width
else
Hull_retracted=Hull_Line+Width
c1=(Hull_retracted*n1)/price[1]
c2=(Hull_retracted*n2)/price[1]
c4=c1>c2?green:red
c2p=plot(c2, color=black, linewidth=1)
c3p=plot(price, color=black, linewidth=1)
fill(c3p, c2p, color=c4, transp=75)
plot(cross(c1, c2) ? c1 : na, style = circles,color=c4, linewidth = 4)
if (price<c2)
strategy.close("BUY", when=window())
if (price>c2)
strategy.close("SELL", when=window())
if (price[1]>c2 and price[1]>c1)
strategy.entry("BUY",strategy.long, when=window())
if (price[1]<c1 and price[1]<c2)
strategy.entry("SELL",strategy.short, when=window())// /L'-,
// ,'-. ` ```` / L '-,
// . _,--dMMMM\ ` ` ` '`.. / '-,
// : _,--, )MMMMMMMMM),. ` ,<> /_ '-,'
// ; ___,--. \MM( `-' )M//MM\ ,',.; .-'* ; .'
// | \MMMMMM) \MM\ ,dM//MMM/ ___ < ,; `. )`--' /
// | \MM()M MMM)__ /MM(/MP' ___, \ \ ` `. `. /__, ,'
// | MMMM/ MMMMMM( /MMMMP'__, \ | / `. `-,_\ /
// | MM /MMM---' `--'_ \ |-' |/ `./ .\----.___
// | /MM' `--' __,- \"" |-' |_, `.__) . .F. )-.
// | `--' \ \ |-' |_, _,-/ J . . . J-'-. `-.,
// | __ \`. | | | \ / _ |. . . . \ `-. F
// | ___ / \ | `| ' __ \ | /-' F . . . . \ '`
// | \ \ \ / | __ / \ | |,-' __,- J . . . . . \
// | | / |/ __,- \ ) \ / |_,- __,--' |. .__.----,'
// | |/ ___ \ |'. |/ __,--' `.-;;;;;;;;;\
// | ___ \ \ | | ` __,--' /;;;;;;;;;;;;.
// | \ \ |-'\ ' __,--' /;;;;;;;;;;;;;;\
// \ | | / | __,--' `--;;/ \;-'\
// \ | |/ __,--' / / \ \
// \ | __,--' / / \ \
// \|__,--' _,-;M-K, ,;-;\
// <;;;;;;;; '-;;;;
// :D