Strategie zur Erfassung der Dynamik auf Basis des gleitenden Durchschnitts

Schriftsteller:ChaoZhang, Datum: 2023-11-01 15:55:51
Tags:

img

Übersicht

Diese Strategie verwendet den gleitenden Durchschnitt als Haupthandelssignal, kombiniert mit Heikin-Ashi, um Trendumkehrungen zu erkennen, um kurzfristige Kursdynamik zu erfassen.

Strategie Logik

  1. Berechnen Sie den Heikin-Ashi-Schlusskurs nAMAn als Basispreis.

  2. Berechnen Sie den schnellen gleitenden Durchschnitt fma und den langsam gleitenden Durchschnitt sma anhand von nAMAn.

  3. Erzeugen Sie ein Kaufsignal, wenn FMA über SMA geht, und verkaufen Sie ein Signal, wenn FMA unter SMA geht.

  4. Die Ummalung wird in dieser Strategie entfernt, um Echtzeit-Handelssignale zu generieren und Backtesting-Vorurteile zu vermeiden.

Analyse der Vorteile

  1. Heikin-Ashi hilft, Trendumkehrpunkte genauer zu bestimmen.

  2. Der MA-Crossover filtert falsche Signale effektiv aus.

  3. Keine Verzögerung bei der Signalerzeugung sorgt für eine zuverlässige Live-Leistung.

  4. Flexible Parameteranpassung für verschiedene Produkte.

  5. Einfache und klare Logik, leicht zu verstehen und umzusetzen.

  6. Kann vollständig automatisiert werden, um manuelle Handelsrisiken zu minimieren.

Risikoanalyse

  1. Schlechte Performance auf dem Range-bound-Markt mit Preisschwankungen.

  2. Anfällig für die Erzeugung falscher Signale bei doppeltem MA-Crossover.

  3. Unangemessene MA-Parameter können zu fehlenden Trends oder zu einer zunehmenden Auslastung führen.

  4. Die Handelskosten beeinflussen den Nettogewinn beim Live-Handel.

  5. Einheitliche Risikopositionen

  6. Mechanische Handelsstrategien haben inhärente Abzugsrisiken und erfordern eine ordnungsgemäße Kapitalverwaltung.

Risikomanagementlösungen:

  1. Hinzufügen eines Volatilitätsfilters, um einen Bereichsmarkt zu vermeiden.

  2. Fügen Sie Filter hinzu, um die Signalqualität sicherzustellen.

  3. Optimieren Sie die MA-Parameter durch gründliche Tests.

  4. Anpassung der Handelshäufigkeit zur Verringerung der Kostenwirkung.

  5. Setzen Sie einen ordnungsgemäßen Stop-Loss, um Verluste bei Einzelgeschäften zu kontrollieren.

  6. Optimierung des Kapitalmanagements zur Kontrolle der Positionsgröße.

Anweisungen zur Verbesserung

  1. Optimierung der MA-Parameter zur Verbesserung der Signalqualität.

  2. Fügen Sie einen Trendfilter hinzu, um den Whipsaw-Markt zu vermeiden.

  3. Umfangsindikatoren zur Bestätigung des Trends.

  4. Implementieren dynamischer Stop-Loss und Profit-Taking zur Optimierung der Gewinngewinnung.

  5. Integration des Kapitalmanagementmoduls zur Steuerung der Positionsgröße.

  6. Hinzufügen eines algorithmischen Handelsmoduls zur vollständigen Automatisierung.

Zusammenfassung

Diese Strategie integriert Heikin-Ashi- und MA-Crossover-Techniken, um eine einfache und praktische kurzfristige Trendfolgestrategie zu erstellen. Sie erzeugt zuverlässige Echtzeit-Handelssignale und zeigt eine gute Performance im Live-Handel. Weitere Optimierungen an Parametern, Risikomanagement und algorithmischen Handelsmodulen können sie in eine vollautomatisierte Strategie verwandeln, die vertrauenswürdig ist.


/*backtest
start: 2022-10-25 00:00:00
end: 2023-10-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//Heikin/Kaufman by Gustavo v5
// strategy('Heikin Ashi EMA v5 no repaint ', shorttitle='Heikin Ashi EMA v5 no repaint', overlay=true, max_bars_back=500, default_qty_value=1000, initial_capital=100000, currency=currency.EUR)


// Settings - H/K
res1 = input.timeframe(title='Heikin Ashi EMA Time Frame', defval='D')
test = input(0, 'Heikin Ashi EMA Shift')
sloma = input(20, 'Slow EMA Period')
nAMA = hlc3

//Kaufman MA
Length = input.int(5, minval=1)
xPrice = input(hlc3)
xvnoise = math.abs(xPrice - xPrice[1])
Fastend = input.float(2.5, step=.5)
Slowend = input(20)
nfastend = 2 / (Fastend + 1)
nslowend = 2 / (Slowend + 1)
nsignal = math.abs(xPrice - xPrice[Length])
nnoise = math.sum(xvnoise, Length)
nefratio = nnoise != 0 ? nsignal / nnoise : 0
nsmooth = math.pow(nefratio * (nfastend - nslowend) + nslowend, 2)
nAMAn = nz(nAMA[1]) + nsmooth * (xPrice - nz(nAMA[1]))

//Heikin Ashi Open/Close Price
ha_t = ticker.heikinashi(syminfo.tickerid)
ha_close = request.security(ha_t, timeframe.period, nAMAn)
mha_close = request.security(ha_t, res1, hlc3)

//Moving Average
fma = ta.ema(mha_close[test], 1)
sma = ta.ema(ha_close, sloma)
plot(fma, title='MA', color=color.new(color.black, 0), linewidth=2, style=plot.style_line)
plot(sma, title='SMA', color=color.new(color.red, 0), linewidth=2, style=plot.style_line)

//Strategy
golong = ta.crossover(fma, sma)
goshort = ta.crossunder(fma, sma)

strategy.entry('Buy', strategy.long, when=golong)
strategy.entry('Sell', strategy.short,when=goshort)



Mehr