Trend-Abweichungsindex mit gleitender Durchschnittsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-11-06 14:46:40
Tags:

img

Übersicht

Diese Strategie berechnet den Trend-Abweichungsindex (TSI) des Preises, verarbeitet TSI mit gleitendem Durchschnitt und bildet die gleitende Durchschnittslinie von TSI. In Kombination mit der Kursleuchterrichtung bestimmt sie, ob sich der aktuelle Preis in einem Aufwärtstrend oder einem Abwärtstrend befindet und erzeugt so Kauf- und Verkaufssignale.

Grundsätze

Die wichtigsten Schritte dieser Strategie sind:

  1. Berechnen Sie die Preisänderungsquote
  2. Doppelschleimende PCT mit HMA, um doppelschleimte PC zu erhalten
  3. Berechnen Sie die doppelte HMA des absoluten pct, um double_smoothed_abs_pc zu erhalten
  4. Berechnung des TSI-Wertes: (100 * (double_smoothed_pc / double_smoothed_abs_pc))
  5. Prozess-TSI-Wert mit HMA, um TSI gleitende Durchschnittslinie tsihmaline zu erhalten
  6. Vergleich von TSI-Wert und TSI- gleitenden Durchschnittslinie, über dem gleitenden Durchschnitt ist Aufwärtstrend, darunter ist Abwärtstrend
  7. Bei Aufwärtstrend, wenn der Preis ebenfalls steigt, erzeugen Kaufsignale
  8. Bei Abwärtstrend, wenn der Preis ebenfalls sinkt, erzeugen Sie ein Verkaufssignal

Durch die oben genannten Schritte bestimmt es die allgemeine Trendrichtung, kombiniert mit der tatsächlichen Preisbewegung, um Handelssignale zu erzeugen.

Vorteile

  1. Doppel-HMA-Gleichung filtert kurzfristige Geräusche und Sperren aus
  2. Die TSI und ihre gleitende Durchschnittslinie bestimmen die allgemeine Trendrichtung
  3. In Kombination mit Preiskandeller vermeidet falschen Ausbruch, verbessert die Signalzuverlässigkeit
  4. Anpassungsfähige Parameter an unterschiedliche Zyklusmärkte angepasst
  5. Graphische Darstellung, grün für Aufwärtstrend, rot für Abwärtstrend

Risiken

  1. Kann mehrere falsche Signale während des Bereichsmarktes erzeugen
  2. Gleitende Durchschnittslinie Verzögerungen an Wendepunkten, möglicherweise fehlt der beste Einstiegspunkt
  3. Häufige Anpassung der Parameter zur Anpassung an den sich ändernden Markt
  4. Basierend auf einem einzigen TSI-Indikator, kann mit anderen Indikatoren optimiert werden

Erweiterung

  1. Fügen Sie Filter hinzu, um falsche Signale während der Konsolidierung zu vermeiden
  2. Hinzufügen anderer Indikatoren zur Bestätigung von Trendumkehrpunkten
  3. Automatische Optimierung von Parametern über maschinelles Lernen usw.
  4. Einführung von Stop Loss zur Kontrolle von Einzelhandelsverlusten

Schlussfolgerung

Diese Strategie verwendet TSI, um die Trendrichtung zu bestimmen, kombiniert mit Preiskerzen, um Handelssignale zu erzeugen, die den Trend effektiv erfassen, im Aufwärtstrend kaufen und im Abwärtstrend verkaufen können.


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

//@version=4
strategy(title="TSIHULLBOT", shorttitle="TSICCIHULL", default_qty_type=strategy.percent_of_equity, default_qty_value=100)
long = input(title="Long Length", type=input.integer, defval=50)
short = input(title="Short Length", type=input.integer, defval=50)
signal = input(title="Signal Length", type=input.integer, defval=7)
price = input(title="Source",type=input.source,defval=open)
lineupper = input(title="Upper Line", type=input.integer, defval=250)
linelower = input(title="Lower Line", type=input.integer, defval=-250)
double_smooth(price, long, short) =>
    fist_smooth = hma(price, long)
    hma(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))*5
tsihmaline=(hma(tsi_value,signal))*5
clr = tsihmaline < tsi_value ? color.red : color.lime
clr2 = tsi_value < tsi_value[1] ? color.red : color.lime
i1=plot(lineupper+3, color=color.black, linewidth=3)
i2=plot(linelower+3, color=color.black, linewidth=3)
i3=plot(lineupper, color=clr)
i4=plot(linelower, color=clr)
trendv=tsihmaline/5.6
plot(trendv, linewidth=7,  color=color.black)
plot(trendv, linewidth=4,  color=color.yellow)
j1=plot(tsi_value, linewidth=5, color=color.black)
j2=plot(tsi_value[1], linewidth=5, color=color.black)
j3=plot(tsi_value, color=clr2)
j4=plot(tsi_value[1], color=clr2)
fill(i3,i4,color=clr,transp=90)
fill(j3,j4,color=clr2,transp=15)
longCondition = tsihmaline>tsihmaline[1] and price>price[1]
if (longCondition)
    strategy.entry("Buy ⤴️", strategy.long)
shortCondition = tsihmaline<tsihmaline[1] and price<price[1]
if (shortCondition)
    strategy.entry("Sell ⤵️", strategy.short)

Mehr