Intelligente quantitative Handelsstrategie zur Umkehrung des Bottom-Tradings

Schriftsteller:ChaoZhang, Datum: 2023-12-08 10:45:49 Uhr
Tags:

img

Übersicht

Diese Strategie ist eine intelligente quantitative Bottom-Reversal-Handelsstrategie, die für Kryptowährungen entwickelt wurde. Sie nutzt Multi-Timeframe-Technologie und adaptive RSI-Indikatoren, um potenzielle kurzfristige Boden des Marktes zu identifizieren, und geht für eine Umkehr in der Nähe des Bodens ein, um übermäßige Renditen zu erzielen.

Strategieprinzip

Zunächst verwendet die Strategie die Veränderung des Preises und des Handelsvolumens zur Berechnung des adaptiven RSI-Indikators, um mögliche kurzfristige Marktboten zu beurteilen.

Der Adaptive RSI-Indikator wird wie folgt berechnet: Berechnen Sie zunächst die Preisänderung für jede Kerze, berechnen Sie dann das Handelsvolumen dieser Kerze. Multiplizieren Sie die beiden, um eine quantifizierte Dynamik für diese Kerze zu erhalten. Wenden Sie die RSI-Berechnung auf eine quantifizierte Dynamik an und nehmen Sie den N-Periodendurchschnitt, um den endgültigen Adaptive RSI-Indikator zu erhalten. Dieser Indikator kann Marktboden klar identifizieren.

Darüber hinaus beinhaltet diese Strategie eine Multi-Timeframe-Technologie, um Signale in einem höheren Zeitrahmen zu beurteilen, um Störungen durch kurzfristige Marktgeräusche zu vermeiden.

Analyse der Vorteile

Der größte Vorteil dieser Strategie liegt in der genauen Identifizierung von kurzfristigen Marktboden mithilfe des adaptiven RSI-Indikators, der effektive Signale für den Handel mit Bottom-Reversals liefert.

Im Vergleich zu traditionellen RSI-Indikatoren führt der adaptive RSI-Indikator eine quantifizierte Dynamik in seine Berechnung ein, wodurch er empfindlicher auf den sich rasch verändernden Kryptowährungsmarkt reagiert und somit in der Lage ist, Tiefststände früher und genauer zu identifizieren, was einen Vorsprung für den Tiefstumsumkehrhandel bietet.

In der Regel wird der Trend-Trading in einem Trend-Trading-System verwendet, bei dem der Trend-Trading-Strategie-Strategie-Strategie-Strategie-Strategie-Strategie verwendet wird.

Risikoanalyse

Das Hauptrisiko dieser Strategie besteht darin, dass die Genauigkeit der Bottom-Identifizierung nicht zu 100% gewährleistet werden kann. Kurzfristig kann es zu enormen irrationalen Schwankungen auf dem Markt kommen. Wenn sich der Boden weiter nach unten erstreckt, drohen große Stop-Loss-Risiken.

Darüber hinaus können zwischen verschiedenen Zeitrahmen Abweichungen auftreten, wenn Signale aus höheren Zeitrahmen zurückbleiben, kann dies zu Handelsverlusten führen.

Um Risiken zu kontrollieren, setzt diese Strategie relativ konservative Stop-Loss-Mechanismen ein und nimmt Gewinne in Chargen ein, um die Rendite schrittweise zu optimieren.

Optimierungsrichtlinien

Diese Strategie kann in folgenden Aspekten optimiert werden:

  1. Optimierung der Parameter des adaptiven RSI zur Verbesserung der Genauigkeit bei der Beurteilung des Marktbodens.

  2. Hinzufügen anderer Anzeigen zur Bestätigung, um falsche Signale zu vermeiden, z. B. Kombination mit Lautstärkenanzeigen usw.

  3. Optimieren des Stop-Loss-Mechanismus, um einen größeren Stop-Loss-Bereich zu ermöglichen und gleichzeitig ein gutes Risiko-Rendite-Verhältnis zu gewährleisten, um mehr Trendgewinne zu erzielen.

  4. Optimieren Sie die Zeitrahmenwahl, um die Signalzuverlässigkeit in einem größeren Maßstab zu gewährleisten.

  5. Testen Sie diese Strategie auf verschiedenen Kryptowährungsprodukten und wählen Sie die am besten funktionierenden aus.

Zusammenfassung

Diese intelligente quantitative Bottom-Reversal-Handelsstrategie identifiziert potenzielle kurzfristige Tiefststände mithilfe des adaptiven RSI-Indikators und der Multi-Timeframe-Technologie. Ihre Umkehrbarkeit ermöglicht übermäßige Gewinne unter unsicheren Marktbedingungen und kann gleichzeitig klaren Trends folgen. Mit kontinuierlichen Optimierungen hat diese Strategie das Potenzial, zuverlässigere Handelssignale zu generieren und langfristige stabile Gewinne zu erzielen.


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

// © theCrypster 2020

//@version=4
strategy(title = "Low Scanner strategy crypto", overlay = false, pyramiding=1,initial_capital = 1000, default_qty_type= strategy.percent_of_equity, default_qty_value = 100, calc_on_order_fills=false, slippage=0,commission_type=strategy.commission.percent,commission_value=0.075)
strat_dir_input = input(title="Strategy Direction", defval="long", options=["long", "short", "all"])
strat_dir_value = strat_dir_input == "long" ? strategy.direction.long : strat_dir_input == "short" ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
leng=1
p1=close[1]
min=input(10)
len55 = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   min / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7
//taken from https://www.tradingview.com/script/Ql1FjjfX-security-free-MTF-example-JD/
tf3 = input("60", type=input.resolution)
ti = change( time(tf3) ) != 0
T_c = fixnan( ti ? close : na )

vrsi = rsi(cum(change(T_c) * volume), leng)
pp=wma(vrsi,len55)

d=(vrsi[1]-pp[1])
min1 =input(1)
len100 = timeframe.isintraday and timeframe.multiplier >= 1 ? 
   min1 / timeframe.multiplier * 7 : 
   timeframe.isintraday and timeframe.multiplier < 60 ? 
   60 / timeframe.multiplier * 24 * 7 : 7
x=ema(d,len100)
//
zx=x/-1
col=zx > 0? color.lime : color.orange
plot(zx,color=col,linewidth=1)
//

tf10 = input("60", title = "Timeframe", type = input.resolution, options = ["1", "5", "15", "30", "60","120", "240","360","720", "D", "W"])

length = input(24, title = "Period", type = input.integer)
shift = input(1, title = "Shift", type = input.integer)

hma(_src, _length)=>
    wma((2 * wma(_src, _length / 2)) - wma(_src, _length), round(sqrt(_length)))
    
hma3(_src, _length)=>
    p = length/2
    wma(wma(close,p/3)*3 - wma(close,p/2) - wma(close,p),p)


a = security(syminfo.tickerid, tf10, hma(close, length))
b =security(syminfo.tickerid, tf10, hma3(close[1], length)[shift])
//plot(a,color=color.gray)
//plot(b,color=color.yellow)
close_price = close[0]
len = input(25)

linear_reg = linreg(close_price, len, 0)


//plot(linear_reg, color=color.blue, title="LR", linewidth=3)

buy=crossover(linear_reg, b) 
sell=crossunder(linear_reg, b) 
//
l = crossover(zx,0) or buy
        
if l 
    strategy.entry("buy", strategy.long)

per(pcnt) =>
    strategy.position_size != 0 ? round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss=input(title=" stop loss", defval=10, minval=0.01)
los = per(stoploss)
q1=input(title=" qty_percent1", defval=25, minval=1)
q2=input(title=" qty_percent2", defval=25, minval=1)
q3=input(title=" qty_percent3", defval=25, minval=1)
tp1=input(title=" Take profit1", defval=1, minval=0.01)
tp2=input(title=" Take profit2", defval=2, minval=0.01)
tp3=input(title=" Take profit3", defval=3, minval=0.01)
tp4=input(title=" Take profit4", defval=5, minval=0.01)
strategy.exit("x1", qty_percent = q1, profit = per(tp1), loss = los)
strategy.exit("x2", qty_percent = q2, profit = per(tp2), loss = los)
strategy.exit("x3", qty_percent = q3, profit = per(tp3), loss = los)
strategy.exit("x4", profit = per(tp4), loss = los)


Mehr