Technische Handelsstrategie „Three Dragons Composite“


Erstellungsdatum: 2023-12-21 11:56:31 zuletzt geändert: 2023-12-21 11:56:31
Kopie: 0 Klicks: 636
1
konzentrieren Sie sich auf
1621
Anhänger

Technische Handelsstrategie „Three Dragons Composite“

Überblick

Das Samsung System ist eine kombinierte Technologie-Trading-Strategie, die den Extended Price Volume Trend Indicator, den Dongxian Channel Indicator und den Parabolic SAR Indicator kombiniert. Die Strategie nutzt die komplementären Vorteile der drei Indikatoren, um die Richtung der Markttrends und potenzielle Kauf- und Verkaufssignale zu erkennen.

Strategieprinzip

Die Strategie nutzt zunächst den Extended Price Volume Trend Indicator und den Tangxian Channel, um die Richtung der Marktentwicklung zu bestimmen. Wenn der Extended Price Volume Trend Indicator oberhalb der Basislinie liegt und der Preis über dem Tangxian Channel liegt, ist er im Aufwärtstrend; Umgekehrt ist der Extended Price Volume Trend Indicator unterhalb der Basislinie und der Preis unterhalb des Tangxian Channel unten.

Nach der Identifizierung der Richtung des Markttrends führt die Strategie die Parabola-SAR-Anzeige ein, um bestimmte Kauf- und Verkaufsmomente zu identifizieren. Wenn die Parabola-SAR-Anzeige unter dem Preis durchbricht, erzeugt sie ein Kaufsignal; wenn die Parabola-SAR-Anzeige über dem Preis durchbricht, erzeugt sie ein Verkaufsignal.

Die Strategie bestätigt die Richtung des Trends über mehrere Zeiträume, um die Signale weiter zu verifizieren und vermeidet den Einstieg in den Markt während starker Marktschwankungen. Darüber hinaus setzt die Strategie mehrere Stop-Low-Levels ein, um Gewinne zu sichern und Risiken zu kontrollieren.

Analyse der Stärken

Der größte Vorteil des System besteht darin, dass die Kombination von Indikatoren drei verschiedene Arten von Indikatoren verwendet, die sich gegenseitig ergänzen, um die Marktentwicklung umfassender und genauer zu beurteilen. Insbesondere sind die Hauptvorteile:

  1. Der Extended Price Quantity Trend Indicator (EPTIM) ermöglicht eine genaue Identifizierung von Trendwechselpunkten und Trendstärken und ist grundsätzlich gut.
  2. Der Indikator für den Dongjian-Kanal kann die Richtung des Trends deutlich bestimmen und den Trend besser erfassen.
  3. Die Verwendung von Parabola-SAR in Verbindung mit Trendindikatoren ermöglicht eine genauere Bestimmung von Kauf- und Verkaufspunkten.

Durch die organische Kombination der Indikatoren können die Vorteile der einzelnen Indikatoren voll genutzt werden, so dass das Samsung-System die Entwicklung der großen, mittleren und langen Linien genauer beurteilen und die Kauf- und Verkaufspunkte genauer identifizieren kann, wodurch ein besseres Risiko-Gewinn-Verhältnis erzielt werden kann.

Risikoanalyse

Das Gesamtrisiko ist zwar steuerbar, aber es gibt einige Risiken, die beachtet werden müssen:

  1. Erweiterung der Preis-Menge-Trend-Indikatoren, um das Risiko von Fehlbeurteilungen bei falschen Durchbrüchen und massiven Umkehrungen zu beurteilen;
  2. Während der Erschütterung kann sich der Tangjian-Kanal schrumpfen, was zu einer größeren Wahrscheinlichkeit für falsche Signale führt.
  3. Die falsche Einstellung der SAR-Parameter für die Parallellinie kann auch Auswirkungen auf die Identifizierung von Kauf- und Verkaufspunkten haben.

In Bezug auf die oben genannten Risiken empfehlen wir, die Einstellung der Indikatorparameter entsprechend anzupassen und die Wahrscheinlichkeit zu verringern, dass ein einzelner Indikator fehlschlägt. Darüber hinaus ist ein angemessener Stop-Loss- und Positionsmanagement für die Gesamtrisikokontrolle der Strategie von entscheidender Bedeutung.

Strategieoptimierung

Das System hat noch Raum für weitere Optimierungen:

  1. Die automatische Optimierung der Kennzahlenparameter durch ein Machine-Learning-Algorithmus kann eingeführt werden.
  2. Die Einführung von Indikatoren zur Unterstützung der Beurteilung der Volatilität kann in Erwägung gezogen werden, um die Strategie zu stabilisieren.
  3. Der Einfluss von Stimmungsfluktuationen auf die Strategie kann anhand von Stimmungsindikatoren beurteilt werden.

Durch algorithmische Parameteroptimierung, Multi-Indikator-Kombinationsurteile und Verhaltens-Quantitative-Analysen wird erwartet, dass die Rendite und Stabilität von Sanlong-Systemen weiter verbessert werden. Wir werden uns kontinuierlich auf branchenführende Technologien konzentrieren und die Strategie zur Verbesserung der Systeme ständig optimieren.

Zusammenfassen

Das Sanlong-System ist eine Kombination aus technischen Indikatoren, die die Marktentwicklung und den Kauf- und Verkaufspunkt durch die Erweiterung des Preis-Menge-Trend-Indikators, des Dongxian-Kanal-Indikators und des SAR-Indikators ergänzt. Die Strategie ist präzise, risikokontrollierbar und nach mehreren Überprüfungen ein wirksames Strategie-System für mittel- und langfristige Anleger.

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

//@version=5
strategy(title="TRIPLE DRAGON SYSTEM", overlay=true,default_qty_type = strategy.percent_of_equity,default_qty_value=100,initial_capital=1000,pyramiding=0,commission_value=0.01)
/////////////// DRAG-ON ///// EMA'S /////////////// 
emar = ta.ema(close,5)
plot(emar, color=color.blue, title="S-Fast EMA")
//EMAlengthTRF = input.int(200, minval=1,title = "EMA Filter")
//ematrf = ta.ema(close,EMAlengthTRF)
//plot(ematrf, "EMA-TREND FILTER", color=color.red,linewidth = 4)
/////////////// 1-DRAG-ON /////EXTENDED PRICE VOLUME TREND /////////////// 
lenght = input(200,"EPVT - Trend Lenght")   
var cumVol = 0.
cumVol += nz(volume)
if barstate.islast and cumVol == 0
    runtime.error("No volume is provided by the data vendor.")
src = close

vt = ta.cum(ta.change(src)/src[1]*volume)
upx = ta.highest(vt,lenght)
downx = ta.lowest(vt,lenght)
basex = (upx +downx)/2
VTX = vt - basex

/////////////// 2-DRAG-ON ///// DON TREND /////////////// 

length = input.int(200, minval=1, title = "Donchian Lenght")
lower = ta.lowest(length)
upper = ta.highest(length)
basis = math.avg(upper, lower)

updiff = upper - close
downdiff = lower - close
dontrend = -(updiff + downdiff)   

xupx = ta.highest(dontrend,length) >0 ? ta.highest(dontrend,length) : 0 

xdownx = ta.lowest(dontrend,length) < 0 ?ta.lowest(dontrend,length) :0 
xxbasisxx = math.avg(xdownx, xupx)

inversedragup = xupx[1]  
inversedragdown = xdownx[1]  
inversedragon = (inversedragup+inversedragdown)/2

/////////////// 3-DRAG-ON ///// SUPER SAR-X /////////////// 
start = input(0.02)
increment = input(0.02)
maximum = input(0.8)
entry_bars = input(1, title='Entry on Nth trend bar')

atr = ta.atr(14)

atr := na(atr) ? ta.tr : atr

psar = 0.0  // PSAR
af = 0.0  // Acceleration Factor
trend_dir = 0  // Current direction of PSAR
ep = 0.0  // Extreme point
trend_bars = 0

sar_long_to_short = trend_dir[1] == 1 and close <= psar[1]  // PSAR switches from long to short
sar_short_to_long = trend_dir[1] == -1 and close >= psar[1]  // PSAR switches from short to long

trend_change = barstate.isfirst[1] or sar_long_to_short or sar_short_to_long

// Calculate trend direction
trend_dir := barstate.isfirst[1] and close[1] > open[1] ? 1 : barstate.isfirst[1] and close[1] <= open[1] ? -1 : sar_long_to_short ? -1 : sar_short_to_long ? 1 : nz(trend_dir[1])

trend_bars := sar_long_to_short ? -1 : sar_short_to_long ? 1 : trend_dir == 1 ? nz(trend_bars[1]) + 1 : trend_dir == -1 ? nz(trend_bars[1]) - 1 : nz(trend_bars[1])

// Calculate  Acceleration Factor
af := trend_change ? start : trend_dir == 1 and high > ep[1] or trend_dir == -1 and low < ep[1] ? math.min(maximum, af[1] + increment) : af[1]

// Calculate extreme point
ep := trend_change and trend_dir == 1 ? high : trend_change and trend_dir == -1 ? low : trend_dir == 1 ? math.max(ep[1], high) : math.min(ep[1], low)

// Calculate PSAR
psar := barstate.isfirst[1] and close[1] > open[1] ? low[1] : barstate.isfirst[1] and close[1] <= open[1] ? high[1] : trend_change ? ep[1] : trend_dir == 1 ? psar[1] + af * atr : psar[1] - af * atr

//////////////// MELODY ///////////////////
VTY = ta.valuewhen(ta.cross(VTX,0),close,0)
//plot(VTY, color=color.black, title="Extended-PVT")

//DONTRENDX = ta.valuewhen(ta.cross(dontrend,0),close,0)
//plot(DONTRENDX, color=color.red, title="DONCHIAN TREND")

SSARX = ta.valuewhen(ta.cross(psar,close),close,0)
//plot(SSARX, color=color.black, title="SSAR-X")

MAXDRAG = math.max(SSARX,VTY)
//plot(MAXDRAG, color=color.black, title="MAX DRAG")
MINDRAG = math.min(SSARX,VTY)
//plot(MINDRAG, color=color.black, title="MIN DRAG")
BASEDRAG = math.avg(MAXDRAG,MINDRAG)
//plot(BASEDRAG, color=color.red, title="BASE DRAG")


/////BUY AND SELL LOGIC ///////////
DRAGONBUY = (ta.crossover(close,MAXDRAG) or ta.crossover(close,MINDRAG) )
DRAGONBUYSTOP = (ta.crossunder(close,MAXDRAG) or ta.crossunder(close,MINDRAG)) 
DRAGONBUYPLOT = ta.valuewhen(DRAGONBUY==true,close,0)
plot(DRAGONBUYPLOT, color=color.red, title="BUY LINE")

DRAGONSELL = (ta.crossunder(close,MAXDRAG) or ta.crossunder(close,MINDRAG) ) 
DRAGONSELLSTOP = (ta.crossover(close,MAXDRAG) or ta.crossover(close,MINDRAG))
DRAGONSELLPLOT = ta.valuewhen(DRAGONSELL==true,close,0)
plot(DRAGONSELLPLOT, color=color.red, title="SELL LINE")

/////TAKE PROFIT LOGIC ///////////
tp1 = input.int(5, minval=1,title = "TP-1")
tp2 = input.int(10, minval=1,title = "TP-2")
tp3 = input.int(15, minval=1,title = "TP-3")

TPTAKA1B = DRAGONBUYPLOT*(1+tp1/100)
//plot(TPTAKA1B, "BUY-TP1", color=color.red,linewidth = 1)
TPTAKA2B = DRAGONBUYPLOT*(1+tp2/100)
//plot(TPTAKA2B, "BUY-TP2", color=color.red,linewidth = 1)
TPTAKA3B = DRAGONBUYPLOT*(1+tp3/100)
//plot(TPTAKA3B, "BUY-TP3", color=color.red,linewidth = 1)

TPTAKA1S = DRAGONSELLPLOT*(1-tp1/100)
//plot(TPTAKA1S, "SELL-TP1", color=color.red,linewidth = 1)
TPTAKA2S = DRAGONSELLPLOT*(1-tp2/100)
//plot(TPTAKA2S, "SELL-TP2", color=color.red,linewidth = 1)
TPTAKA3S = DRAGONSELLPLOT*(1-tp3/100)
//plot(TPTAKA3S, "SELL-TP3", color=color.red,linewidth = 1)


BUYTP = ta.crossunder(emar,TPTAKA1B) or ta.crossunder(emar,TPTAKA2B) or ta.crossunder(emar,TPTAKA3B) 
SELLTP = ta.crossover(emar,TPTAKA1B) or ta.crossover(emar,TPTAKA2B) or ta.crossover(emar,TPTAKA3B)

/////STRATEGY ///////////
// Enter condition 
longCondition = DRAGONBUY==true 
if longCondition
    strategy.entry('Long', strategy.long, comment = "ENTER-LONG")

// Exit condition 
strategy.close('Long', when=DRAGONBUYSTOP, comment = "EXIT-LONG")

// Enter condition 
ShortCondition = DRAGONSELL  
if ShortCondition
    strategy.entry('Short', strategy.short, comment = "ENTER-SHORT")

// Exit condition 
strategy.close('Short', when=DRAGONSELLSTOP, comment = "EXIT-SHORT")
///// END OF STRATEGY ///////////