Kurzfristige Bitcoin-Handelsstrategie basierend auf dem True Strength Index


Erstellungsdatum: 2023-10-07 15:12:08 zuletzt geändert: 2023-10-07 15:12:08
Kopie: 0 Klicks: 782
1
konzentrieren Sie sich auf
1617
Anhänger

Überblick

Die Strategie ermöglicht den Short-Line-Handel mit Bitcoin durch Berechnung des True Strength Index (TSI) zur Identifizierung von Markttrends und kombiniert den RSI-Indikator mit einem Filter, um mehr Leerlaufzeiten zu machen. Die Strategie ist für Investoren geeignet, die den Bitcoin-Markt nach den Umständen programmieren.

Strategieprinzip

Die Strategie basiert hauptsächlich auf dem TSI. Der TSI misst die Größe und Richtung der absoluten Werte der Preisänderung durch die doppelte Gleitkurve.

  1. Berechnung der Preisänderungsrate Pc
  2. Double-Smoothed-PC mit langfristiger EMA und kurzfristiger EMA
  3. Doppelschmieren des absoluten Werts PC erzeugt double_smoothed_abs_pc
  4. Die TSI-Wert ist double_smoothed_pc dividiert durch double_smoothed_abs_pc multipliziert mit 100

Die Strategie kombiniert außerdem die RSI-Indikatoren, um die TSI-Handelssignale zu filtern, die nur dann mehrere Signale erzeugen, wenn der RSI-Wert größer als 50 ist, und die Fehlsignale erzeugen, wenn der RSI-Wert kleiner als 50 ist, wodurch einige Falschsignale gefiltert werden.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. TSI-Indikatoren sind in der Lage, die absolute Stärke und Richtung von Preisänderungen zu erkennen und sind empfindlicher, um Trends zu erfassen.
  2. Doppelte EMA-Gleichung der Preisänderung, wirkungsvolle Noise von Preisveränderungen zu filtern, nicht empfindlich auf Unvorhergesehene.
  3. In Kombination mit RSI-Filterung können weitere Fehltrades vermieden werden, die durch Lärm verursacht werden.
  4. Die Kurzstrecken-Trading-Methode ermöglicht es, kurzfristige Marktchancen zu nutzen.
  5. Die Optimierung von Strategieparametern ist groß und kann durch Anpassung von Parametern wie EMA-Zyklen optimiert werden.

Risikoanalyse

Die Strategie birgt auch folgende Risiken:

  1. Als Trend-Tracking-Indikator hat der TSI Probleme mit dem Rückstand und könnte den Preiswendepunkt verpassen.
  2. Die RSI-Filterbedingungen sind zu streng und können einige Handelschancen verpassen.
  3. Die Doppel-EMA-Filter können auch einige der effektiven Handelssignale filtern.
  4. Kurzstrecketrades haben eine höhere Handelsfrequenz und erfordern höhere Transaktionskosten und Slippage-Risiken.

Der Effekt von Schwankungen und Verzögerungen kann durch eine angemessene Lockerung der RSI-Filterbedingungen und die Verkürzung der EMA-Zyklen verringert werden. Gleichzeitig kann die Stop-Loss-Strategie optimiert und das Risiko eines einzelnen Handels streng kontrolliert werden.

Optimierungsrichtung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Optimieren Sie die Parameter des TSI und des RSI, um die optimale Kombination von Parametern zu finden. Sie können die Länge der EMA-Zyklen, die RSI-Parameter usw. anpassen.

  2. Zusätzliche Indikatoren können kombiniert werden, um ein Multifaktormodell zu bilden. So können beispielsweise Indikatoren wie MA, KD und andere hinzugefügt werden, um die Vorteile der einzelnen Indikatoren voll auszuschöpfen.

  3. Optimierung der Einstiegsbedingungen, Vermeidung von Schlag mit der Luft, Schlag mit der Luft. Die Richtung kann anhand der grossen Zyklustrends bestimmt werden.

  4. Optimierung von Stop-Loss-Strategien, wie z. B. Bewegungsstop, Zeitstop, Stop-Break.

  5. Optimierung der Ausgangskonditionen, um zu verhindern, dass die Schäden zu früh oder zu spät ausgehen. Die Ausgangskonditionen können in Verbindung mit den Schwankungsraten beurteilt werden.

  6. Optimierung der Handelsvarianten und -zeiten, Konzentration auf die effektivsten Sorten und -zeiten.

Zusammenfassen

Diese Strategie identifiziert Bitcoin-Kurzzeittrends durch echte Stärken und Filtersignale mit RSI-Indikatoren. Sie ermöglicht den effizienten kurzfristigen Programmierhandel mit Bitcoin. Die Strategie hat die Vorteile, Trends zu erkennen und Geräusche zu beseitigen, aber es gibt auch einige Rückstandsprobleme und Handelsrisiken. Durch vielseitige Optimierung kann die Strategie noch weiter verbessert werden.

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


// strategy("True Strength Indicator BTCUSD 15p", shorttitle="TSI BTCUSD 15p",initial_capital=1000, commission_value=0.15, 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="15" )
long = input(title="Long Length",  defval=25)
short = input(title="Short Length",  defval=13)
signal = input(title="Signal Length",  defval=13)
price = request.security(syminfo.tickerid,resCustom,close)


double_smooth(src, long, short) =>
    fist_smooth = ta.ema(src, long)
    ta.ema(fist_smooth, short)
pc = ta.change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(math.abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)
tsi2=ta.ema(tsi_value, signal)
plot(tsi_value, color=color.lime,linewidth=2)
plot(tsi2, color=color.red,linewidth=2)




rsiserie = ta.rsi(price,7)
cciserie = ta.cci(price,14)
stochserie = ta.stoch(price,14,3,3)

plot(rsiserie,color=color.purple)



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

buy = ta.crossover(tsi_value, tsi2) //and rsiserie[1]<25 //and cciserie<-100 and stochserie<20
sell = ta.crossunder(tsi_value, tsi2) //and rsiserie[1]>85 //and cciserie>100 and stochserie>80


alertcondition(buy, title='TSI system', message='Buy signal at!' )
alertcondition(sell, title='TSI system', message='Sell signal at!' )

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

greentsi =tsi_value
redtsi = tsi2

bgcolor( greentsi>redtsi and rsiserie > 50 ? color.lime : na, transp=90)
bgcolor( greentsi<redtsi and rsiserie < 50 ? color.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 ? color.lime : na, transp=60)
bgcolor( rsiserie < 30  ? color.red : na, transp=60)