Momentum-TSI-Anzeige mit doppeltem Schiebefenster


Erstellungsdatum: 2024-01-08 11:20:35 zuletzt geändert: 2024-01-08 11:20:35
Kopie: 1 Klicks: 654
1
konzentrieren Sie sich auf
1617
Anhänger

Momentum-TSI-Anzeige mit doppeltem Schiebefenster

1. Überblick über die Strategie

Diese Strategie heißtStrategie für die TSI-IndikatorenDie Kernidee der Strategie besteht darin, die Preisveränderungen in der doppelten EMA-Schiebefenster zu glätten und die Trendrichtung zu kombinieren, um ein dynamisches Indikator zu erstellen, das die Kauf- und Verkaufskraft des Marktes widerspiegelt, den TSI, und seine Kauf- und Verkaufsentscheidungen als Handelssignale zu formulieren.

2. Strategieprinzipien

Diese Strategie verwendet zwei Schiebefenster mit einem binären Index-Moving-Average, um die Preisänderung zu berechnen. Die äußere Fensterperiode ist länger, die innere Fensterperiode ist kürzer. Durch das Doppelschleifen wird die teilweise Zufälligkeit der Preisdaten entfernt.

Zuerst berechnen wir die Veränderung der Einheiten des Preises:

pc = change(price)

Die Preise werden dann mit einem Doppelschieber-Fenster doppelt glatt:

double_smoothed_pc = double_smooth(pc, long, short)

Der absolute Wert der Preisänderung wird berechnet und mit einem doppelten Gleitfenster doppelt ausgeglichen:

double_smoothed_abs_pc = double_smooth(abs(pc), long, short)

Schließlich wird der TSI-Wert, der die Kauf- und Verkaufskraft widerspiegelt, durch die Absolute der Preisänderung nach der Glättung berechnet:

tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)

Durch die Einrichtung von langen und kurzen Fensterperioden unterschiedlicher Länge kann ein gewisses Maß an kurzfristigen Marktlärm gefiltert werden, so dass der TSI die Kauf- und Verkaufskraft in mittelfristigen Trends besser widerspiegelt. Ein Kaufsignal wird erzeugt, wenn der TSI seinen Moving Average überquert.

3. Strategische Vorteile

  1. Die Verwendung von doppelten Schieberfenstern filtert kurzfristigen Marktlärm effektiv aus und ermöglicht eine genauere Reaktion des Indikators
  2. Die Berechnung der Preisänderungen wurde ebenfalls doppelt glatt gemacht, was die TSI-Indikatoren stabiler und zuverlässiger macht.
  3. Verhältnis der Preisänderung zum absoluten Wert der Preisänderung, automatische Standardisierung, bessere Vergleichbarkeit
  4. Die Richtung und Intensität von Preisveränderungen werden als Qualitätsindikatoren für Handelsentscheidungen betrachtet.
  5. Setzen Sie verschiedene Parameter, um die Sensitivität des Indikators nach Bedarf anzupassen

4. Strategische Risiken

  1. Der TSI könnte bei einer langen Marktschwankung falsche Signale abgeben
  2. Die falsche Einstellung der Parameter beeinträchtigt auch die Qualität der Anzeige und des Signals
  3. Trotz der Doppelschiebefenster hat der Indikator eine gewisse Sensibilität für kurzfristigen Marktlärm.
  4. Wenn die Lücke zwischen den langen und kurzen Fenstern zu groß ist, können die Indikatoren und Signale verzögert werden.

Optimierung durch Anpassung der Fensterphase-Parameter und angemessene Verkürzung der Signaldurchschnittslänge; bei Marktschwankungen kann der Handel vorübergehend eingestellt werden, um das Risiko zu kontrollieren.

5. Optimierung

  1. Verschiedene Parameterkombinationen für die langen und kurzen Fensterzeiten testen, um die optimale Parameter zu finden
  2. Versuchen Sie mit anderen Arten von Moving Averages, wie z.B. mit linear gewogenen Moving Averages.
  3. Erhöhung der Glattheit der Kennziffern, Konstruktion von drei- oder mehrfach gleitenden Fenstern
  4. Optimierung der Kauf- und Verkaufsmöglichkeiten in Kombination mit anderen Hilfsindikatoren
  5. Setzen Sie eine Stop-Loss-Strategie und kontrollieren Sie Ihre Einzelschäden

VI. Fazit

Diese Strategie basiert auf der Doppel-Gleichung der Berechnung der TSI-Dynamik, die die Kauf- und Verkaufskraft widerspiegelt. Die Doppel-Schiebefenster filtern die Geräusche. Die Veränderungen der Preisänderung sind auch doppelt glatt, der Indikator ist stabiler und zuverlässiger.

Strategiequellcode
/*backtest
start: 2023-01-01 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("True Strength Indicator BTCUSD 2H", shorttitle="TSI BTCUSD 2H",initial_capital=1000, commission_value=0.2, commission_type =strategy.commission.percent, default_qty_value=100 , overlay = false, pyramiding=10, default_qty_type=strategy.percent_of_equity)

//BASED ON True Strength Indicator MTF
resCustom = input(title="Timeframe",  defval="120" )
long = input(title="Long Length",  defval=25)
short = input(title="Short Length",  defval=13)
signal = input(title="Signal Length",  defval=13)

length = input(title="Период",  defval=300)

FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2017, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"

price = request.security(syminfo.tickerid,resCustom,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)
tsi2=ema(tsi_value, signal)
plot(tsi_value, color=lime,linewidth=2)
plot(tsi2, color=red,linewidth=2)

hline(30, title="Zero")
hline(50, title="Zero",linewidth=2)
hline(70, title="Zero")

buy = crossover(tsi_value, tsi2)
sell = crossunder(tsi_value, tsi2)

if(buy)
    strategy.entry("BUY", strategy.long, when = window())
if(sell)
    strategy.entry("SELL", strategy.short, when = window()) 

//greentsi =tsi_value
//redtsi = tsi2

//bgcolor( greentsi>redtsi and rsiserie > 50 ? lime : na, transp=90)
//bgcolor( greentsi<redtsi and rsiserie < 50 ? red : na, transp=90)

//yellow1= redtsi > greentsi and rsiserie > 50 
//yellow2 = redtsi < greentsi and rsiserie < 50 
//bgcolor( yellow1 ? yellow : na, transp=80)
//bgcolor( yellow2  ? yellow : na, transp=50)

//bgcolor( yellow1 and yellow1[1] ? yellow : na, transp=70)
//bgcolor( yellow2  and yellow2[2] ? yellow : na, transp=70)

//bgcolor( rsiserie > 70 ? lime : na, transp=60)
//bgcolor( rsiserie < 30  ? red : na, transp=60)