Erweiterte Strategie mit Volumen- und Preisrückgewinn

Schriftsteller:ChaoZhang, Datum: 2023-12-12
Tags:

img

Übersicht

Diese Strategie kombiniert einen gleitenden Durchschnitts-Crossover, einen Relative Strength Index (RSI) und ein signifikant vergrößertes Handelsvolumen, um nach dem Nachweis eines bestimmten Prozentsatzes eines Pullbacks des Preises bei hohen Volumenspitzen Long/Short-Positionen einzunehmen.

Grundsätze

Die Überschneidung von schnellen und langsamen gleitenden Durchschnitten liefert frühe Signale für eine Trendrichtungänderung. Der RSI-Indikator bewertet Überkauf/Überverkauf, um diese Szenarien für robustere Einstiegssignale zu vermeiden. Eine signifikante Steigerung über das Durchschnittsvolumen signalisiert eine mögliche Preisbewegung, die die Aufmerksamkeit des Marktes erregt. Diese Volumenspitzen verstärken die Stärke der Einstiegssignale. Nach dem Volumenspike und Preisanstieg werden Einstiegsorders ausgelöst, wenn der Preis und das Volumen einen bestimmten Prozentsatz zurückgezogen haben, was auf eine mögliche Korrektur oder Umkehr hinweist.

Dies gilt auch für Short-Entry- und -Exit-Signale, die sowohl Long- als auch Short-Trades ermöglichen.

Analyse der Vorteile

Hauptvorteile dieser Strategie:

  1. Das Crossover von schnellen/langsamen MAs in Kombination mit dem RSI erzeugt starke Einstiegssignale und vermeidet Überkauf-/Überverkaufsgebiete, um die Gewinnquoten zu erhöhen.

  2. Volumenspitzen sorgen dafür, dass große Kursschwankungen für die Positionsbestimmung erfasst werden und die Signalkraft verstärken.

  3. Der Preis-Volumen-Pullback-Mechanismus verbessert die Präzision des Eintrittszeitpunkts, um Umkehr- oder Aufschwungsmöglichkeiten zu erfassen.

  4. Drei-Stufen-TPs nutzen den Kursanstieg, um Gewinne zu erzielen, die auf der Risikotoleranz basieren.

  5. Der optionale Trailing-Stop ermöglicht eine Flexibilität, um das Kapital zu erhalten und gleichzeitig die Chance auf höhere Gewinne abhängig von der Marktvolatilität zu erhalten.

  6. Sie kann sowohl für lange als auch für kurze Trades angewendet werden und kann sowohl auf Auf- als auch auf Abwärtstrendmärkten profitieren, wodurch der Nutzen erhöht wird.

Risikoanalyse

Trotz sorgfältiger Planung birgt der Handel mit Finanzprodukten Risiken.

  1. Bei unpassenden MA-Parametern können falsche Signale auftreten.

  2. Eine falsche Periode-Einstellung des RSI kann dazu führen, dass nicht überkaufte/überverkaufte Bereiche vermieden werden.

  3. Volumenspitzen entsprechen nicht unbedingt vollkommen signifikanten Preisänderungen.

  4. Ein übermäßiger oder unzureichender Preis-/Volumenrückgang beeinflusst den Zeitpunkt des Eintritts.

  5. Vorgegebene Gewinnspielzeiten können keine vollständige Ausführung von TP-Aufträgen gewährleisten.

  6. Eine zu breite Stop-Loss-Lösung kann dazu führen, dass Positionen vorzeitig beendet werden, wodurch größere Gewinne verloren gehen.

Diese Risiken erfordern Codeoptimierung, Parameter-Tuning und strenge Backtests, um die Zuverlässigkeit der Strategie zu gewährleisten.

Optimierungsrichtlinien

Weitere Verbesserungen

  1. Hinzufügen anderer Indikatoren wie Bollinger Bands oder KD, um die Eintrittsentscheidungen zu unterstützen und die Genauigkeit zu verbessern.

  2. Einbeziehung von Machine-Learning-Modellen wie LSTM zur Erstellung dynamischer MAs, die die Parameter automatisch an die neuesten Marktbedingungen anpassen und so die Tendenzfassung verbessern.

  3. Einbau dynamischer Stop-Loss-/Gewinnentnahme basierend auf der Marktvolatilität, um die Niveaus entsprechend automatisch anzupassen.

  4. Nutzung der Kointegrationsanalyse zur optimalen Auswahl des Pullback-Faktors pro marktweiter Preisbewegung gegenüber einzelnen Aktienkorrelationen, um einen optimalen Eintrittszeitpunkt zu erhalten.

  5. Multi-Faktor-Modelle mit Sentiment-Analyse, Association Rules Mining usw. verwenden, um Aktien mit den höchsten Preis-Volumen-Veränderungs-Korrelationen auszuwählen, um eine Strategie für einen enormen Leistungsanstieg umzusetzen.

Schlussfolgerung

Dies ist eine ausgezeichnete Strategie für mittelfristige bis kurzfristige Händler nach der Verbesserung. Mit zunehmend robusten und intelligenten Funktionen, die auf Optimierung basieren, hat es große praktische Vorzüge für den Live-Handel und strebt gleichzeitig danach, Marktverluste mit fest kontrollierten Risiken zu erzielen. Als fortschrittlich fortschrittliche quantitative Strategie ist es ein Beispiel für einen stetigen und umsichtigen Handel.


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

//@version=4
strategy("Advanced Strategy with Volume and Price Retracement and Multi-Take Profit (USDT)", overlay=true)

// Parametreler
fastLength = input(12, minval=1, title="Fast Moving Average")
slowLength = input(26, minval=1, title="Slow Moving Average")
rsiPeriod = input(14, minval=1, title="RSI Period")
volLength = input(20, minval=1, title="Volume MA Length")
volMultiplier = input(2.0, title="Volume Spike Multiplier")
trailOffset = input(1, title="Trailing Offset (%)")
usdtPerTrade = input(50000, title="USDT per Trade")
retraceFactor = input(0.8, title="Retracement Factor for Entry")
takeProfit1 = input(1, title="Take Profit 1 (%)")
takeProfit2 = input(2, title="Take Profit 2 (%)")
takeProfit3 = input(3, title="Take Profit 3 (%)")
trailForTP = input(true, title="Use Trailing Stop for Take Profits")

// Hesaplamalar
fastMA = sma(close, fastLength)
slowMA = sma(close, slowLength)
rsi = rsi(close, rsiPeriod)
volMA = sma(volume, volLength)
volumeSpike = volume > volMA * volMultiplier

// Durum Değişkenleri ve Saklanan Değerler
var float spikeVolume = na
var float spikePrice = na
var int direction = 0

// Alım/Satım Sinyalleri
longCondition = crossover(fastMA, slowMA) and rsi < 70
shortCondition = crossunder(fastMA, slowMA) and rsi > 30

// Hacim Spike ve Fiyat Hareketinin Saklanması
if (longCondition and volumeSpike)
    spikeVolume := volume
    spikePrice := close
    direction := 1
else if (shortCondition and volumeSpike)
    spikeVolume := volume
    spikePrice := close
    direction := -1

// Retracement Kontrolü ve Giriş Emirleri
if (direction == 1 and volume < spikeVolume * retraceFactor and close < spikePrice * (1 - trailOffset / 100))
    strategy.entry("Long", strategy.long, qty=usdtPerTrade / close)
    spikeVolume := na
    direction := 0
else if (direction == -1 and volume < spikeVolume * retraceFactor and close > spikePrice * (1 + trailOffset / 100))
    strategy.entry("Short", strategy.short, qty=usdtPerTrade / close)
    spikeVolume := na
    direction := 0

// Take Profit Emirleri
if strategy.position_size > 0
    strategy.exit("TP1", "Long", limit=strategy.position_avg_price * (1 + takeProfit1 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) / 2 : na)
    strategy.exit("TP2", "Long", limit=strategy.position_avg_price * (1 + takeProfit2 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) : na)
    strategy.exit("TP3", "Long", limit=strategy.position_avg_price * (1 + takeProfit3 / 100), qty_percent=34, trail_offset=trailForTP ? atr(14) * 1.5 : na)

if strategy.position_size < 0
    strategy.exit("TP1", "Short", limit=strategy.position_avg_price * (1 - takeProfit1 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) / 2 : na)
    strategy.exit("TP2", "Short", limit=strategy.position_avg_price * (1 - takeProfit2 / 100), qty_percent=33, trail_offset=trailForTP ? atr(14) : na)
    strategy.exit("TP3", "Short", limit=strategy.position_avg_price * (1 - takeProfit3 / 100), qty_percent=34, trail_offset=trailForTP ? atr(14) * 1.5 : na)

// Pozisyon çıkışları
strategy.close("Long", when=shortCondition)
strategy.close("Short", when=longCondition)


Mehr