Stratégie de grille de suivi de la moyenne mobile double des bandes de Bollinger


Date de création: 2023-12-13 17:12:38 Dernière modification: 2023-12-13 17:12:38
Copier: 0 Nombre de clics: 733
1
Suivre
1621
Abonnés

Stratégie de grille de suivi de la moyenne mobile double des bandes de Bollinger

Aperçu

Cette stratégie utilise l’indicateur de la voie de Brin pour tracer des bandes basées sur l’ATR et la régression de Fibonacci comme voie de prix de la grille. En combinaison avec la moyenne bi-EMA, elle détermine la direction de la tendance globale et définit une grille de suivi des pertes de suivi sur les prix de la bande de Brin de manière sélective dans la direction de la tendance, pour réaliser un arbitrage de suivi de tendance.

Principe de stratégie

  1. La construction d’une bande de prix ascendante et descendante est basée sur l’ATR et les 4 lignes de régression de Fibonacci.

  2. L’EMA rapide et la SMA lente sont des lignes doubles équivalentes qui déterminent la direction de la tendance générale. La ligne rapide est une rupture de la ligne lente pour les marchés à plusieurs têtes, au contraire, pour les marchés à vide.

  3. Dans le marché à plusieurs têtes, faites plus, choisissez de faire plus le long de la voie de rupture de prix près de la voie descendante de Brin; dans le marché à tête vide, faites vide le long de la voie de rupture de prix près de la voie supérieure de Brin.

  4. Les conditions de stop loss sont les suivantes: Si la ligne K est inversée de manière significative, la position doit être abandonnée dans la direction actuelle.

Analyse des avantages

  1. Utilisez les lignes de double équilibre pour juger des tendances à grande échelle et éviter les transactions à contre-courant.

  2. Le réseau de canaux ATR de Brin a mis en place plusieurs prix d’ouverture de positions, ce qui a augmenté le taux de réussite des ouvertures de positions.

  3. La rétrogradation de Fibonacci a été mise en place dans des bandes de dispersion des prix, avec un nombre différent de positions dans les différentes bandes de rétrogradation, ce qui a permis la dispersion des fonds.

  4. Les conditions d’arrêt en temps réel permettent de stopper rapidement les pertes et de réduire le retour de profit.

Analyse des risques

  1. Une erreur de jugement de tendance à grande échelle peut entraîner des pertes de contre-courant. Les paramètres de la ligne moyenne peuvent être ajustés de manière appropriée ou d’autres indicateurs peuvent être ajoutés pour aider à juger.

  2. Si les fluctuations sont trop importantes, le prix peut franchir directement la zone de la grille et ne pas pouvoir ouvrir une position. Les paramètres de la zone de la grille peuvent être ajustés pour augmenter les chances d’ouvrir une position.

  3. Les conditions d’arrêt sont subjectives et il peut y avoir des erreurs dans les critères d’identification des différents traders. Il est recommandé de tester et d’optimiser les conditions d’arrêt.

Direction d’optimisation

  1. Ajout d’une analyse auxiliaire de l’indicateur apo pour les jugements de tendance bi-homogène.

  2. L’utilisation d’indicateurs de volatilité du marché pour optimiser les paramètres des bandes de Bryn afin de mieux s’adapter aux changements dynamiques du marché.

  3. Réduire la marge d’arrêt et ajouter le paramètre d’arrêt d’OTHER pour réduire l’erreur.

Résumer

L’idée générale de cette stratégie est claire. L’utilisation du canal Brin ATR et de la double ligne d’équilibre permet de réaliser un jugement global et intégré des signaux de négociation de la stratégie, réduisant au maximum le risque de jugement erroné. L’avantage de la stratégie est évident et pratique.

Code source de la stratégie
/*backtest
start: 2023-11-12 00:00:00
end: 2023-12-12 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Aayonga

//@version=5
strategy("fib trend grid@Aa", overlay=true,initial_capital=2000, default_qty_type=strategy.fixed, default_qty_value=1)

//回测时间
useDateFilter=input.bool(true,title = "启用回测时间范围限定(backtest)", group = "回测范围(backtest)")
backtesStarDate=input(timestamp("1 Jan 2015"),title = "开始时间(Start)", group = "回测范围(backtest)")
backtestEndDate=input(timestamp("1 Jan 2040"),title = "结束时间(finish)",group = "回测范围(backtest)")
inTradeWindow=true


//入场位 entry
bolllen=input.int(defval=20,minval=1,title="布林长度,(boll length)",group = "入场位(entry)")
sma=ta.sma(close,bolllen)
avg=ta.atr(bolllen)
fib1=input(defval=1.236,title="Fib 1",group = "入场位(entry)")
fib2=input(defval=2.382,title="Fib 2",group = "入场位(entry)")
fib3=input(defval=3.618,title="fib 3",group = "入场位(entry)")
fib4=input(defval=4.236,title="Fib 4",group = "入场位(entry)")
r1=avg*fib1
r2=avg*fib2
r3=avg*fib3
r4=avg*fib4
top4=sma+r4
top3=sma+r3
top2=sma+r2
top1=sma+r1
bott1=sma-r1
bott2=sma-r2
bott3=sma-r3
bott4=sma-r4



//趋势 trend

t4=plot(top4,title="卖 (sell)4",color=color.rgb(244, 9, 9))
t3=plot(top3,title = "卖(sell) 3",color=color.rgb(211, 8, 8))
t2=plot(top2,title="卖 (sell)2",color=color.rgb(146, 13, 13))
t1=plot(top1,title="卖(sell) 1",color=color.rgb(100, 3, 3))

b1=plot(bott1,title="买(buy)1",color=color.rgb(4, 81, 40))
b2=plot(bott2,title="买(buy)2",color=color.rgb(15, 117, 46))
b3=plot(bott3,title = "买(buy)3",color =color.rgb(8, 176, 42) )
b4=plot(bott4,title="买(buy)4",color=color.rgb(15, 226, 103))
plot(sma,style=plot.style_cross,title="SMA",color=color.rgb(47, 16, 225))

//趋势
LengthF=input(defval = 25,title = "快线长度(fastlength)")
LengthS=input(defval=200,title = "慢线长度(slowlength)")
emaF=ta.ema(close,LengthF)
smaS=ta.sma(close,LengthS)
longTrend=emaF>smaS
longb=ta.crossover(emaF,smaS)
bgcolor(longb ? color.new(color.green,40):na,title = "多头强势(bull trend)")
shortTrend=smaS>emaF
shortb=ta.crossunder(emaF,smaS)
bgcolor(shortb ? color.new(#951313, 40):na,title = "空头强势(bear trend)")

//pinbar
bullPinBar = ((close > open) and ((open - low) > 0.6* (high - low))) or ((close < open) and ((close - low) > 0.9 * (high - low)))
//plotshape(bullPinBar  , text ="pinbar", textcolor=color.rgb(9, 168, 144),location=location.belowbar, color=color.rgb(29, 103, 67), size=size.tiny)
bearPinBar = ((close > open) and ((high - close) > 0.7 * (high - low))) or ((close < open) and ((high - open) > 0.7 * (high - low)))
//plotshape(bearPinBar  , text ="pinbar", textcolor=color.rgb(219, 12, 12),location=location.abovebar, color=color.rgb(146, 7, 7), size=size.tiny)

buy1=ta.crossunder(close,bott1) and longTrend and close>ta.ema(close,100)
buy2=ta.crossunder(close,bott2) and longTrend and close>ta.ema(close,80)
buy3=ta.crossunder(close,bott3) and longTrend and close>ta.ema(close,80)
buy4=ta.crossunder(close,bott4) and longTrend and close>ta.ema(close,80)
buyclose=bearPinBar or ta.crossunder(close,smaS)




if buy2 or buy3 or buy4 or buy1 and inTradeWindow
    strategy.order("多(buy)",strategy.long)

if buyclose  and inTradeWindow
    strategy.close("多(buy)")

sell1=ta.crossover(close,top1) and shortTrend and close<ta.ema(close,200)
sell2=ta.crossover(close,top2) and shortTrend and close<ta.ema(close,200)
sell3=ta.crossover(close,top3) and shortTrend and close<ta.ema(close,200)
sell4=ta.crossover(close,top4) and shortTrend and close<ta.ema(close,200)
sellclose=bullPinBar or ta.crossover(close,ta.sma(close,220))

if  sell1 or sell2 or sell3 or sell4 and inTradeWindow
    strategy.order("空(sell)",strategy.short)

if sellclose  and inTradeWindow
    strategy.close("空(sell)")