Adaptive Trendstrategie mit Kombination mehrerer Indikatoren

Schriftsteller:ChaoZhang, Datum: 2023-12-19 11:01:05
Tags:

img

Übersicht

Diese Strategie beurteilt den Trend durch die Kombination des doppelten Hull-Drehdurchschnittsindikators, des volumengewichteten gleitenden Durchschnittsindikators, des MACD-Indikators und des Indikators für die tatsächliche Stärke.

Strategieprinzip

Der Kernindikator dieser Strategie ist der doppelte Hull- gleitende Durchschnitt, der durch zwei Parameter Keh und Teh gesteuert wird. Diese beiden Parameter bestimmen den Zyklus der schnellen Linie und der langsamen Linie. Das goldene Kreuz und das tote Kreuz, das durch schnelle Linie und langsame Linie gebildet wird, beurteilen den aktuellen Trend.

Der Hilfsbeurteilungsindikator ist der volumengewichtete gleitende Durchschnitt meh1. Wenn der Preis höher als meh1 ist, ist es ein Aufwärtstrend; wenn der Preis niedriger als meh1 ist, ist es ein Bärentrend.

Ein weiterer Hilfsbeurteilungsindikator ist der MACD. Er wird durch Subtrahieren des schnellen gleitenden Durchschnitts vom langsamen gleitenden Durchschnitt erhalten, um den MACD zu erhalten, und dann den gleitenden Durchschnitt des MACD verwenden, um die Signallinie zu erhalten. Wenn der MACD höher als die Signallinie ist, ist es ein bullischer Trend.

Der letzte Hilfsbeurteilungsindikator ist TSI, der durch doppelte Glättung der Preisänderungsrate berechnet wird. Seine absolute Wertgröße repräsentiert die Dynamik der Preisänderung. In den Kauf- und Verkaufsbedingungen wird die Signallinie von TSI beurteilt, um den Zeitpunkt der Ein- und Ausgänge zu steuern.

Durch die Kombination der Signale dieser Indikatoren kann der Trend genau beurteilt und die Parameter automatisch an den Markt angepasst werden.

Vorteile

  1. Die Verwendung eines doppelten Hull- gleitenden Durchschnitts als Hauptbeurteilungsindikator in Kombination mit mehreren anderen Indikatoren kann die Beurteilungsgenauigkeit verbessern und falsche Signale reduzieren.

  2. Die Anwendung des TSI-Indikators zur Bestimmung des Zeitpunktes des Markteintritts und des Marktausstiegs kann Risiken kontrollieren.

  3. Mehrere einstellbare Parameter für eine hohe Anpassungsfähigkeit, die sich automatisch an Marktveränderungen anpassen kann.

  4. Die Idee der Kombination von Indikatoren und der Anpassung von Parametern macht die Strategie stabil und bietet eine hohe kontinuierliche Rentabilität.

Risikoanalyse

  1. Obwohl der TSI-Indikator verwendet wird, um den Zeitpunkt zu bestimmen, sind die Indikatoren, die im Algorithmus verwendet werden, immer noch Trendtypen.

  2. Eine falsche Einstellung von Parametern kann zu einem Strategieversagen führen.

  3. Die Kombination mehrerer Indikatoren erhöht den Berechnungsumfang, was die Möglichkeit von Fehlern in großen Datenbeständen und Zeiträumen erhöht.

  4. Notwendigkeit, die Berechnungswirkung der Indikatoren zu überwachen, um Störungen durch abnormale Daten zu vermeiden.

Optimierungsrichtung

  1. Andere Hilfsindikatoren wie BOLL können getestet werden, um das Signal genauer und zuverlässiger zu machen.

  2. Optimieren Sie die Ein- und Ausstiegslogik, setzen Sie Stop-Loss- und Take-Profit-Bedingungen fest, um einzelne Gewinne und Verluste zu kontrollieren.

  3. Ausbilden und Optimieren von Parametern für verschiedene Sorten, um sie besser für verschiedene Sorten geeignet zu machen.

  4. Erhöhen des Parameter-Selbstanpassungsmoduls, um die Strategieparameter automatisch anhand der jüngsten Transaktionswirkungen anzupassen.

Zusammenfassung

Diese Strategie integriert die Vorteile mehrerer Indikatoren und verwendet Indikatorenkombinationen, um die Trendrichtung zu beurteilen. Während Risiken kontrolliert werden, verbessert sie die Genauigkeit der Urteile. Durch Parameteroptimierung und Logikoptimierung kann die Strategie besser an Marktveränderungen angepasst werden, während aufeinanderfolgende Verluste reduziert und größere Gewinne erzielt werden. Diese Strategie ist stabil und kann langfristig für Aktien, Kryptowährungen und andere Sorten verwendet werden.


/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//                                                    Quad-HullMA-cross & VWMA & MacD & TSI combination  <<<<< by SeaSide420 >>>>>>
strategy("MultiCross420", overlay=true, calc_on_order_fills= true, calc_on_every_tick=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0)
keh=input(title="Double HullMA 1",defval=7, minval=1)
teh=input(title="Double HullMA 2",defval=14, minval=1)
meh=input(title="VWMA",defval=1, minval=1)
meh1=vwma(close,round(meh))
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma,sqn=round(sqrt(keh))
n2ma1=2*wma(close[2],round(keh/2))
nma1=wma(close[2],keh)
diff1=n2ma1-nma1,sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
b=n1>n2?lime:red
c=n1>n2?green:red
n2ma3=2*wma(close,round(teh/2))
nma2=wma(close,teh)
diff2=n2ma3-nma2,sqn2=round(sqrt(teh))
n2ma4=2*wma(close[2],round(teh/2))
nma3=wma(close[2],teh)
diff3=n2ma4-nma3,sqn3=round(sqrt(teh))
n3=wma(diff2,sqn2)
n4=wma(diff3,sqn3)
fastLength = input(title="MacD fastLength", defval=7)
slowlength = input(title="MacD slowlength", defval=14)
MACDLength = input(title="MacD Length", defval=3)
MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD
a1=plot(n1,color=c),a2=plot(n2,color=c)
plot(cross(n1, n2) ? n1 : na, style = cross, color=b, linewidth = 3)
a3=plot(n3,color=c),a4=plot(n4,color=c)
plot(cross(n3, n4) ? n1 : na, style = cross, color=b, linewidth = 3)
//a5=plot(meh1,color=c)
long = input(title="TSI Long Length",  defval=5)
short = input(title="TSI Short Length",  defval=3)
signal = input(title="TSI Signal Length",  defval=2)
linebuy = input(title="TSI Upper Line",  defval=4)
linesell = input(title="TSI Lower Line",  defval=-4)
price = close
double_smooth(src, long, short) =>
    fist_smooth = ema(src, long)
    ema(fist_smooth, short)
pc = change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
closelong = n1<n2 and n3<n4 and n1>meh1
if (closelong)
    strategy.close("Long")
closeshort = n1>n2 and n3>n4 and n1<meh1
if (closeshort)
    strategy.close("Short") 
longCondition = strategy.opentrades<1 and n1>n2 and MACD>aMACD and n1<meh1 and n3>n4 and ema(tsi_value, signal)>linesell
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = strategy.opentrades<1  and n1<n2 and MACD<aMACD and n1>meh1 and n3<n4 and ema(tsi_value, signal)<linebuy
if (shortCondition)
    strategy.entry("Short",strategy.short)

Mehr