La stratégie utilise les signaux de vérification du double indicateur en combinant les moyennes mobiles et les bandes de Brin pour juger des tendances et effectuer des transactions. La stratégie utilise les forks d’or des moyennes mobiles rapides et lentes pour faire plus, les forks morts pour faire moins; et la combinaison des percées des bandes de Brin sur et en dessous de la voie comme signaux de vérification auxiliaires pour améliorer la stabilité de la stratégie.
Calculer les moyennes mobiles rapides et lentes, produire des signaux multiples lorsque la ligne rapide traverse la ligne lente et des signaux vides lorsque la ligne descend. Calculer simultanément la trajectoire ascendante et descendante de la bande de Brin. Le signal de transaction de la moyenne mobile n’est confirmé que lorsque le prix traverse simultanément la bande de Brin.
Il est possible de raccourcir de manière appropriée les cycles de la moyenne et de la bande de Brin, ou d’optimiser la combinaison de paramètres pour contrôler le risque.
La stratégie intègre des signaux de vérification à double indice, réduit les faux signaux et convient aux positions de ligne moyenne et longue. Des améliorations supplémentaires de la stratégie, telles que l’optimisation des paramètres, permettent d’obtenir de meilleurs résultats.
/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("MA-Zorrillo",overlay=true)
ma_short= sma(close,8)
ma_long= sma(close,89)
entry_ma = crossover (ma_short,ma_long)
exit_ma = crossunder (ma_short,ma_long)
BBlength = input(24, minval=1,title="Bollinger Period Length")
BBmult = 2 // input(2.0, minval=0.001, maxval=50,title="Bollinger Bands Standard Deviation")
BBbasis = sma(close, BBlength)
BBdev = BBmult * stdev(close, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close
entry_bb = crossover(source, BBlower)
exit_bb = crossunder(source, BBupper)
vs_entry = false
vs_exit = false
for i = 0 to 63
if (entry_bb[i])
vs_entry := true
if (exit_bb[i])
vs_exit := true
entry = entry_ma and vs_entry
exit = exit_ma and vs_exit
strategy.entry(id="long_ma",long=true,when=entry)
strategy.close(id="long_ma", when=exit)
strategy.entry(id="short_ma",long=false,when=exit)
strategy.close(id="short_ma",when=entry)