TrumpBollingerEMCandlestick-Strategie

Schriftsteller:ChaoZhang, Datum: 2023-10-07 15:30:27
Tags:

Übersicht

Diese Strategie verwendet Bollinger Bands, EMA und Candlestick-Muster für den Dual-Line-Glücksspielhandel, der zu den kurzfristigen Handelsstrategien gehört.

Grundsätze

Die Strategie besteht aus folgenden Teilen:

  1. Bollinger-Bänder Genereren Sie oberen und unteren Schienen basierend auf Schlusskurs und Standardabweichung.

  2. EMA Berechnen Sie den 21-tägigen exponentiellen gleitenden Durchschnitt und generieren Sie Handelssignale, wenn der Preis die EMA überschreitet.

  3. Leuchtermuster Identifizieren Sie Preisumkehrpunkte wie unterste dunkle Wolkendecke und oberes Piercing-Muster, um Trades auszulösen.

  4. Zweistellige Glücksspiele Gehen Sie gleichzeitig lang und kurz, basierend auf Signalen von Bollinger, EMA Crossover und Candlestick-Mustern.

Die Logik lautet:

Verwenden Sie Bollinger Bands, um potenzielle Umkehrpunkte zu identifizieren, gehen Sie kurz auf der oberen Schiene und lang auf der unteren Schiene. Berechnen Sie den 21-Tage-EMA und gehen Sie lang auf dem goldenen Kreuz, gehen Sie kurz auf dem Todeskreuz. Verwenden Sie auch Kerzenmuster, um Umkehrungen zu identifizieren, gehen Sie lang auf der unteren dunklen Wolke und kurz auf dem oberen Piercing. Kombinieren Sie alle drei Signale, um endgültige zweiseitige Handelsentscheidungen zu treffen.

Die Strategie integriert mehrere Bestätigungssignale, um die Effizienz der Handelsentscheidungen zu verbessern.

Analyse der Vorteile

Die wichtigsten Vorteile dieser Strategie sind:

  1. Verbesserte Genauigkeit durch mehrfache Signalbestätigung

Die Verwendung von Bollinger, EMA und Candlestick zusammen erhöht die Genauigkeit durch die Validierung von Signalen. Dies hilft, falsche Signale und fehlerhafte Trades zu vermeiden.

  1. Zeitnahe Reaktion und Erfassung von Rückschlägen

Die kombinierten Signale identifizieren schnell potenzielle Umkehrpunkte für den rechtzeitigen Handel, bevor sich die Umkehrungen ausdehnen.

  1. Höhere Rentabilität beim Dual-Line-Handel

Sowohl Long- als auch Short-Positionen profitieren von großen Bewegungen in beide Richtungen, wodurch Risiken in einseitigen Märkten verringert werden.

  1. Flexibilität für den kurzfristigen Handel

Die kurzfristigen Bollinger- und EMA-Anzeigen ermöglichen die Erfassung kurzfristiger Bewegungen, die für häufige Handelsbewegungen geeignet sind und auf hohe Frequenzschwankungen reagieren.

  1. Direkt verwendbar und einfach zu bedienen

Der vollständige Strategiecode macht ihn direkt für den Live-Handel nutzbar.

Risikoanalyse

Die möglichen Risiken sind:

  1. Mögliche aufeinanderfolgende Stop-Loss

Whipsaw von Bollinger, EMA und Candlestick-Signale können aufeinanderfolgende Stop-Loss verursachen.

  1. Höhere Risiken beim Doppel-Line-Handel

Bei einer langen oder kurzen Positionshaltung können Verluste vergrößert werden.

  1. Für den kurzfristigen Handel ist eine enge Überwachung erforderlich

Der häufige kurzfristige Handel erfordert eine genaue Beobachtung des Marktes.

  1. Beschränkter Optimierungsraum

Bollinger und EMA haben relativ wenig Optimierungsraum.

  1. Häufige Leuchtermuster können unklar sein

Ein Teil der Strategie beruht auf Kerzensignalen, die manchmal unklar sein können.

Optimierungsrichtlinien

Die Strategie kann in folgenden Bereichen verbessert werden:

  1. Integrieren Sie mehr Indikatorsignale

Durch das Hinzufügen anderer Indikatoren wie KD diversifiziert der MACD die Signalquellen und verbessert die Entscheidungsgenauigkeit.

  1. Maschinelles Lernen einbeziehen

Verwenden Sie ML-Algorithmen, um historische Daten zu analysieren und einige Indikatorsignale zu erweitern oder zu ersetzen, um manuelle Interventionen zu reduzieren.

  1. Optimierung von Stop-Profit/Loss

Einführung eines anpassungsfähigen Stop-Profits basierend auf der Leistung und eines Trailing-Stop-Loss zur Verringerung des Risikos.

  1. Verbesserung des Risikomanagements

Optimierung der Kapitalzuweisung, Positionsgröße und Risikokontrollstrategien entsprechend den Marktbedingungen.

  1. Quantitative Backtesting und Optimierung

Verwenden Sie Backtesting und Papierhandel, um die Parameter wiederholt zu optimieren und Live-Handelsentscheidungen zu unterstützen.

  1. Automatisiertes Handeln

Parametrieren Sie die Strategie auf der Grundlage von Backtest-Ergebnissen und integrieren Sie sie in das automatisierte Handelssystem für die Handfreie Ausführung.

Schlussfolgerung

Diese Strategie integriert Bollinger-, EMA- und Kerzensignale für mehrfache Validierung. Der Dual-Line-Trading verbessert die Rentabilität weiter. Mit schneller Reaktion ist er für kurzfristigen häufigen Handel geeignet. Effektiver Stop-Profit/Loss und Parameteroptimierung können die Leistung weiter verbessern und gleichzeitig das Risiko reduzieren. Insgesamt hat diese einfache und praktische Strategie einen starken praktischen Wert.


/*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"}]
*/

//@version=4
//Design by MrPhu in August,10,2018
strategy("TrumpShipper_Long_Short V26", overlay=true)
filterFractals = input(true, title=" Follow Code #Trump On/Off")
dt = 0.0001
confidence=(request.security(syminfo.tickerid, 'D', close)-request.security(syminfo.tickerid, 'D', close[1]))/request.security(syminfo.tickerid, 'D', close[1])
prediction = confidence > dt ? true : confidence < -dt ? false : prediction[1]

if (prediction)
    strategy.exit("Close", "Short ")
    strategy.entry("Long ", strategy.long)

if (not prediction)
    strategy.exit("Close", "Long ")
    strategy.entry("Short ", strategy.short)
///////////Bollinger Band///////////////
length = 20
crc = close, title="Source"
mult = 2.0
basis = sma(crc, length)
dev = mult * stdev(crc, length)
upper = basis + dev
lower = basis - dev
spanColor = prediction ? green : red, transp=90

p1 = plot(upper, title="Short", style=line, linewidth=1, color=spanColor)
p2 = plot(lower, title="Long", style=line, linewidth=1, color=spanColor)

fill(p1, p2, color=spanColor, transp=90, title="Fill")

/////////////
Optional_TimeFrame = 'D'

M_HIGH = request.security(syminfo.tickerid, Optional_TimeFrame, high)
M_OPEN = request.security(syminfo.tickerid, Optional_TimeFrame, open)
M_LOW = request.security(syminfo.tickerid, Optional_TimeFrame, low)

H_RANGE = M_HIGH-M_OPEN
L_RANGE = M_OPEN-M_LOW

H_236 = M_HIGH - H_RANGE * 0.236
H_382 = M_HIGH - H_RANGE * 0.382
H_500 = M_HIGH - H_RANGE * 0.500
H_618 = M_HIGH - H_RANGE * 0.618
H_764 = M_HIGH - H_RANGE * 0.764

L_236 = M_LOW + L_RANGE * 0.236
L_382 = M_LOW + L_RANGE * 0.382
L_500 = M_LOW + L_RANGE * 0.500
L_618 = M_LOW + L_RANGE * 0.618
L_764 = M_LOW + L_RANGE * 0.764

pl1=plot(M_HIGH, color=M_HIGH != M_HIGH[1] ?na:black, style=line, linewidth=1, transp=80)

pl2=plot(H_236, color=H_236 != H_236[1] ?na:gray, style=line, linewidth=1, transp=80)
pl3=plot(H_382, color=H_382 != H_382[1] ?na:black, style=line, linewidth=1, transp=80)
pl4=plot(H_500, color=H_500 != H_500[1] ?na:red, style=line, linewidth=1, transp=80)
pl5=plot(H_618, color=H_618 != H_618[1] ?na:gray, style=line, linewidth=1, transp=80)
pl6=plot(H_764, color=H_764 != H_764[1] ?na:gray, style=line, linewidth=1, transp=80)

pl7=plot(M_OPEN, color=M_OPEN != M_OPEN[1] ?na:blue, style=line, linewidth=2)

pl8=plot(L_236, color=L_236 != L_236[1] ?na:gray, style=line, linewidth=1, transp=80)
pl9=plot(L_382, color=L_382 != L_382[1] ?na:black, style=line, linewidth=1, transp=80)
pl10=plot(L_500, color=L_500 != L_500[1] ?na:red, style=line, linewidth=1, transp=80)
pl11=plot(L_618, color=L_618 != L_618[1] ?na:black, style=line, linewidth=1, transp=80)
pl12=plot(L_764, color=L_764 != L_764[1] ?na:gray, style=line, linewidth=1, transp=80)

pl13=plot(M_LOW, color=M_LOW != M_LOW[1] ?na:black, style=line, linewidth=1, transp=80)

SHOW_MA = false
MA_SRC = hlc3
MA_LENGTH = 21

_MA = ema(MA_SRC, MA_LENGTH)
pl14=plot(not SHOW_MA ? na : _MA, color=teal, linewidth=2)

SHOW_SIGNALS = true

BUYX(_F) => cross(_F, MA_SRC) and rising(_MA, 1)
SELX(_F) => cross(_F, MA_SRC) and falling(_MA, 1)

SEL_SIGNAL = SELX(H_236) or SELX(H_382) or SELX(H_500) or SELX(H_618) or SELX(H_764) or SELX(L_236) or SELX(L_382) or SELX(L_500) or SELX(L_618) or SELX(H_764)

BUY_SIGNAL = BUYX(H_236) or BUYX(H_382) or BUYX(H_500) or BUYX(H_618) or BUYX(H_764) or BUYX(L_236) or BUYX(L_382) or BUYX(L_500) or BUYX(L_618) or BUYX(H_764)

//================= Chart 30m =================/////
//Jurij
h_left = 10
h_right = 10
//barCount = nz(barCount[1]) + 1
//check history and realtime PTZ
h_left_low = lowest(h_left)
h_left_high = highest(h_left)
newlow = low <= h_left_low
newhigh = high >= h_left_high
central_bar_low = low[h_right + 1]
central_bar_high = high[h_right + 1]
full_zone_low = lowest(h_left + h_right + 1)
full_zone_high = highest(h_left + h_right + 1)
central_bar_is_highest = central_bar_high >= full_zone_high
central_bar_is_lowest = central_bar_low <= full_zone_low
plotchar(central_bar_is_highest ? -1 : 0, offset=-h_right-1 ,color=red, text="Top")
plotchar(central_bar_is_lowest ? 1 : 0, offset=-h_right-1 ,location=location.belowbar, color=green, text="Bottom")

Mehr