Fortgeschrittene Handelsstrategie basierend auf Volumen-Preis-Pullback und mehreren Take-Profits


Erstellungsdatum: 2023-12-12 15:39:19 zuletzt geändert: 2023-12-12 15:39:19
Kopie: 0 Klicks: 612
1
konzentrieren Sie sich auf
1621
Anhänger

Fortgeschrittene Handelsstrategie basierend auf Volumen-Preis-Pullback und mehreren Take-Profits

Überblick

Die Strategie kombiniert die Bewegung der Durchschnittskreuzung, die relativ starken Indizes (RSI) und die Beurteilung der erheblichen Erhöhung des Handelsvolumens, die Positionen zu machen, wenn der Preis nach einem hohen Handelsvolumen einen Rückgang von einem bestimmten Prozentsatz erfasst, und setzt drei progressive Stop-Lists ein, um unterschiedliche Prozentsätze zu sperren. Die Strategie verfügt auch über eine optional Tracking-Stop-Loss-Funktion, um die Chancen zu erfassen, dass der Preis weiterhin günstig ist.

Strategieprinzip

RSI-Indikatoren werden verwendet, um Überkauf-Überverkauf zu bewerten, um die Signalstabilität zu gewährleisten. Wenn das Handelsvolumen deutlich über dem Durchschnitt liegt, bedeutet dies, dass die Aufmerksamkeit des Marktes auf eine potenzielle Preisänderung gerichtet ist. Diese Anziehungskraft der Transaktionen verstärkt die Stärke des Markteintrittssignals.

Das Prinzip des Abrufs und des Ausstiegs aus dem Abrufssignal ist ähnlich wie das Abrufen, das hier nicht beschrieben wird. Es ist darauf hinzuweisen, dass die Strategie sowohl Abrufen als auch Abrufen ermöglicht.

Analyse der Stärken

Die Strategie hat folgende Vorteile:

  1. Die Kreuzung der mittleren Linie in Kombination mit dem RSI bildet eine solide Eintrittszeitbestimmung, um die Gewinne zu vermeiden und die Wahrscheinlichkeit zu erhöhen, in überkauften und überverkauften Gebieten zu lagern.

  2. Der Anstieg des Handelsvolumens wird als Hilfsgrund verwendet, um sicherzustellen, dass die Wahl der intermittierten Lagerhaltung mit einer größeren Preisschwankung erfolgt, um die Indikative der Signale zu verstärken.

  3. Die Strategie, bei der der Preis und die Handelsmenge um einen bestimmten Prozentsatz zurückgehen, wird verwendet, um Positionen aufzubauen, um die Zeitgenauigkeit des Markteintritts zu erhöhen und die Chancen auf eine Umkehrung oder einen Anstieg zu erfassen.

  4. Es gibt drei aufeinanderfolgende Stop-Off-Beschlüsse, die den Raum für steigende Preisschwankungen nutzen, um Gewinne zu sichern. Der Anleger kann mehrere Stop-Off-Beschlüsse wählen, je nachdem, ob er das Risiko auf sich nimmt.

  5. Optionale Stop-Loss-Funktion, die den Anlegern erlaubt, die Marktschwankungen anzupassen und gleichzeitig einen höheren Gewinn zu erzielen.

  6. Die Strategie ist praktisch, da sie sowohl für den Über- als auch für den Leerhandel geeignet ist und sowohl bei steigenden als auch bei sinkenden Märkten profitiert.

Risikoanalyse

Obwohl diese Strategie so gut konzipiert ist, ist der Handel mit jeglichen Finanzprodukten mit Risiken verbunden, die man beachten sollte:

  1. Schnelle und langsame Durchschnittslinie-Kreuzungen sind nicht immer genau über die Marktentwicklung zu urteilen, und wenn die Durchschnittslinie-Parameter nicht richtig verwendet werden, kann ein falsches Signal erzeugt werden.

  2. Die falsche Einstellung der RSI-Indikatorparameter kann auch dazu führen, dass ein Überkauf-Überverkauf-Bereich eingebrochen wird. Die RSI-Zyklusparameter sollten entsprechend dem Markt angepasst werden.

  3. Der Anstieg des Volumens ist nicht unbedingt gleichbedeutend mit einer signifikanten Veränderung des Preises, und der Referenzwert für das Volumen kann entsprechend angepasst werden.

  4. Der Rückgang der Preise und der Handelsvolumen kann die Markteintrittszeit beeinträchtigen, was an die Marktlage angepasst werden muss.

  5. Die gesetzte Stop-Loss-Grenze garantiert keine vollständige Abwicklung der Stop-Loss-Werbung, und plötzliche Marktveränderungen können zu einem Slippage führen.

  6. Verfolgung von Stop-Losses: Ein zu großer Stop-Loss kann zu früh ausgeschaltet werden, was zu einem größeren Gewinn führt.

Um diese Risiken zu bewältigen, muss die Strategie durch Code-Optimierung, Parameteranpassung und strenge Rückmeldungen stabil und zuverlässig sein.

Optimierungsrichtung

Die Strategie kann noch weiter optimiert werden:

  1. Die Kombination von anderen Indikatoren, wie Brinband, KD und anderen, kann die Genauigkeit des Signals weiter verbessern.

  2. Die Entwicklung von Moving Averages in Kombination mit Methoden des maschinellen Lernens wie LSTM ermöglicht die automatische Anpassung der Durchschnittsparameter an die jüngsten Marktsituationen und verbessert die Trendschätzung.

  3. Hinzugefügt wurde eine Stop/Loss-Funktion, um die Stop-Loss-Dynamik auf Basis von Marktschwankungen automatisch an die momentane Marktfluktuation anzupassen.

  4. Die dynamische Annäherung nutzt die Realzeit-Optimierung des Rückfallfaktors basierend auf der Korrelation zwischen dem Gesamtbewertungswert und den einzelnen Aktien, um den optimalen Zeitpunkt für den Aufbau einer Position zu wählen.

  5. Der Einsatz von Multifaktormodellen in Kombination mit Stimmungsanalyse und Korrelationsregelanalyse kann die Strategiewirksamkeit erheblich verbessern.

Zusammenfassen

Diese Strategie ist im Allgemeinen für die Verwendung von mittleren und kurzen Investoren geeignet. Die optimierten Strategiefunktionen werden vollständig und intelligent sein und einen höheren Einsatzwert haben. Als eine aggressive, quantitative Handelsstrategie, die sowohl eine hohe Rendite als auch ein hohes Risiko bietet, wird sie sich bemühen, die Risiken zu reduzieren und wirklich zu behaupten.

Strategiequellcode
/*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)