
Das Dongxian Adaptive Moving Average Trading System ist eine quantitative Trading-Strategie, die Preistrends verfolgt. Die Strategie nutzt die Dongxian Channel Indicator, kombiniert mit einer langen und einer kurzen Moving Average, um die Preisentwicklung zu beurteilen und zu verfolgen, um die Preisentwicklung der mittleren und langen Linie zu erfassen und trendmäßig zu handeln.
Die Strategie berechnet zunächst die reale Breite. Die reale Breite ist der Preiswechselbereich zwischen dem Schlusskurs der vorherigen K-Linie und dem Höchst- und Tiefstpreis der aktuellen K-Linie. Dann wird der lange einfache Moving Average der realen Breite als Bandbreite des Tangqian-Kanals berechnet.
Wenn der Preis über die langen gleitenden Durchschnittsbewegungen plus Bandbreite und die kurzen gleitenden Durchschnittsbewegungen plus Bandbreite geht, machen Sie mehr; wenn der Preis über die langen gleitenden Durchschnittsbewegungen minus Bandbreite und der kurze gleitende Durchschnittsbewegungen minus Bandbreite geht, machen Sie leere Positionen.
So kann die Strategie die Bandbreite des Tangxian-Kanals dynamisch an die tatsächliche Breite anpassen und in Kombination mit einer doppelten Moving-Age-Filterung die mittleren und langen Preistrends effektiv verfolgen, um Falschsignale zu reduzieren und somit stabile langfristige Handelsmöglichkeiten zu erhalten.
Die Strategie hat folgende Vorteile:
Die dynamische Anpassung der Kanalbandbreite durch Berechnung der realen Breite, die Vermeidung von toten Parametern und die bessere Anpassung an Marktveränderungen.
Durch die Kombination von Doppel-Moving-Averages kann Geräusche effizient gefiltert und Falschsignale reduziert werden.
Mit Hilfe der mittleren und langen Trends können Sie die Wiederholung von Transaktionen reduzieren, die Häufigkeit des Handels senken und langfristige Gewinnchancen erzielen.
Die Strategie ist einfach, klar und einfach zu implementieren, hat eine hohe Fehlerquote und eignet sich für automatische Quantifizierung von Geschäften.
Die Strategie birgt auch Risiken:
Es ist schwierig, die Eintrittszeit der Kurzlinie zu erfassen. Sie können die Kurzlinie in geeigneter Kombination mit Schwankungsindikatoren beurteilen und die Eintrittszeit optimieren.
Die Parameter müssen von Branche zu Branche optimiert werden. Eine Kombination von dynamisch bevorzugten Parametern kann berücksichtigt werden.
Wenn ein unerwartetes Ereignis zu einer signifikanten Trendänderung führt, ist eine angemessene Lockerung des Stop-Loss-Punktes erforderlich.
Im Allgemeinen ist das Dongguan Adaptive Moving Average Trading System insgesamt eine stabile, einfache und leicht umzusetzende Quantifizierungsstrategie. Die Strategie nutzt dynamische Kanäle und doppelte Gleichgewichtsfilter, um die langfristigen Trends des Marktes effektiv zu verfolgen, die Handelsfrequenz zu senken und langfristige Gewinne zu erzielen.
/*backtest
start: 2023-02-14 00:00:00
end: 2024-02-20 00:00:00
period: 1d
basePeriod: 1h
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/
// © dongyun
//@version=4
strategy("唐齐安移动平均交易系统", overlay=true)
longperiod = input(20,'长线')
shortperiod = input(5,'短线')
bandfactor = input(1.0,'')
TrueHigh = 0.0
TrueLow = 0.0
TrueRange = 0.0
TrueHigh := close[1] > high ? close[1] : high
TrueLow := close[1] < low ? close[1] : low
TrueRange := TrueHigh - TrueLow
AvgTrueRange = sma(TrueRange,longperiod)
MAlong = sma(close,longperiod)
MAshort = sma(close,shortperiod)
band = AvgTrueRange * bandfactor
if close > MAlong[1] + band[1] and close > MAshort[1] + band[1]
strategy.entry("Long", strategy.long, when=strategy.position_size < 1)
else
if close < MAlong[1] - band[1] and close < MAshort[1] - band[1]
strategy.entry("Short", strategy.short, when=strategy.position_size > -1)
if close < MAlong[1] - band[1] or close < MAshort[1] - band[1]
strategy.close("Long", when=strategy.position_size > 0)
else
if close > MAlong[1] + band[1] or close > MAshort[1] + band[1]
strategy.close("Short", when=strategy.position_size < 0)