Handelsstrategie für den Indikator beweglicher Durchschnittswert

Schriftsteller:ChaoZhang, Datum: 2023-09-12 16:09:01
Tags:

Diese Strategie kombiniert gleitende Durchschnitte und den AO-Oszillator, um Trends und Rückschläge zu erkennen.

Strategie Logik:

  1. Berechnen Sie schnelle EMA und langsame SMA, um ein gleitendes Durchschnittssystem zu konstruieren.

  2. Berechnen Sie schnelle und langsame AO-Linien und den Unterschied zwischen ihnen.

  3. Gehen Sie lang, wenn der schnelle MA über den langsamen MA überschreitet, schließen ist über dem langsamen MA und AO steigt.

  4. Wenn der schnelle MA unter den langsamen MA fällt, wird er kurz gehalten, wenn der schnelle MA unter den langsamen MA fällt und der AO fällt.

  5. AO vergleicht Unterschiede, um falsche Signale zu vermeiden.

Vorteile:

  1. MAs bestimmen den Haupttrend, AO mal Umkehrungen.

  2. AO-Differenz filtert falsche Signale.

  3. Die Kombination von Indikatoren verbessert die Genauigkeit.

Risiken:

  1. Ausrichtung erforderlich, um MA und AO an die Marktbedingungen anzupassen.

  2. Sowohl die MAs als auch die AO liegen zurück, möglicherweise fehlen die besten Einträge.

  3. Es ist schwer, in verschiedenen Märkten zu stoppen, das Risiko von Verlusten steigt.

Zusammenfassend lässt sich sagen, dass diese Strategie die Stärken von MAs und AO für den Handel kombiniert. Dies kann die Signalqualität bis zu einem gewissen Grad verbessern, aber geeignete Stops sind immer noch erforderlich, um Risiken für eine stabile Rendite zu bewältigen.


/*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)

Mehr