Stratégie de négociation de l'indicateur AO moyen mobile

Auteur:ChaoZhang est là., Date: 12 septembre 2023 à 16h09
Les étiquettes:

Cette stratégie combine des moyennes mobiles et l'oscillateur AO pour identifier les tendances et les reculs commerciaux.

La logique de la stratégie:

  1. Calculer une EMA rapide et une SMA lente pour construire un système de moyenne mobile.

  2. Calculer les lignes d'AO rapides et lentes et leur différence.

  3. Allez long lorsque le MA rapide dépasse le MA lent, le MA proche dépasse le MA lent et le AO augmente.

  4. Faire du short lorsque le MA rapide passe sous le MA lent, le close est au-dessous du MA lent et l'AO tombe.

  5. L'AO compare les différences pour éviter les faux signaux.

Les avantages:

  1. Les MAs déterminent la tendance principale, les AO les inversions.

  2. La différence AO filtre les faux signaux.

  3. La combinaison des indicateurs améliore la précision.

Les risques:

  1. Les ajustements nécessaires pour faire correspondre les MA et AO aux conditions du marché.

  2. Les deux MAs et AO retard, potentiellement manquant les meilleures entrées.

  3. Difficile à arrêter sur des marchés variés, augmentant les risques de perte.

En résumé, cette stratégie combine les atouts des MAs et des AO pour la négociation. Cela peut améliorer la qualité du signal dans une certaine mesure, mais des arrêts appropriés sont toujours nécessaires pour gérer les risques pour des rendements stables.


/*backtest
start: 2023-09-04 00:00:00
end: 2023-09-11 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MA&AO", overlay = true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075, currency='USD')
startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end   = timestamp(input(9999, "End Year"),   input(1, "Month"),   input(1, "Day"),   0, 0)
_testPeriod() =>
    true

//Inputs
fast_ma = input(8, title="Fast EMA", minval=2)
slow_ma = input(20, minval=1, title="Slow SMA")
AO_fast = input(5, minval=1, title="Awesome Length Fast")
AO_slow = input(8, minval=1, title="Awesome Length Slow")

//MA
fast  = ema(close, fast_ma)
slow =  sma(close, slow_ma)

//AO
AO_1 = sma(hl2, AO_fast)
AO_2 = sma(hl2, AO_slow)
dif = AO_1 - AO_2
AO = dif>=0? dif > dif[1] ? 1 : 2 : dif > dif[1] ? -1 : -2

long   =  crossover(fast, slow) and close > slow and abs(AO)==1
short =   fast < slow and close < slow and abs(AO)==2

long_condition =  long and _testPeriod() 
strategy.entry('BUY', strategy.long, when=long_condition)  
 
short_condition = short 
strategy.close('BUY', when=short_condition)


plot(fast, color=color.green)
plot(slow, color=color.red)

Plus de