Stratégie de trading technique composite des Trois Dragons


Date de création: 2023-12-21 11:56:31 Dernière modification: 2023-12-21 11:56:31
Copier: 0 Nombre de clics: 636
1
Suivre
1621
Abonnés

Stratégie de trading technique composite des Trois Dragons

Aperçu

Le système Tron est une stratégie de négociation technologique combinant l’indicateur de tendance de la quantité de prix prolongée, l’indicateur du canal de Dongxian et l’indicateur de SAR parallèle. Cette stratégie utilise les avantages complémentaires des trois indicateurs pour identifier la direction de la tendance du marché et les signaux potentiels d’achat et de vente.

Principe de stratégie

La stratégie utilise d’abord l’indicateur de tendance de la quantité de prix prolongée et le canal de Dongxian pour déterminer la direction de la tendance du marché. Lorsque l’indicateur de tendance de la quantité de prix prolongée est au-dessus de la ligne de base et que le prix est supérieur à la ligne de base, il indique une tendance à la hausse.

Après avoir identifié la direction de la tendance du marché, la stratégie introduit un indicateur de SAR parallèle pour identifier les moments de vente et d’achat spécifiques. Un signal d’achat est généré lorsque l’indicateur de SAR parallèle traverse le prix en dessous; un signal de vente est généré lorsque l’indicateur de SAR parallèle traverse le prix au-dessus.

Afin de valider davantage les signaux, la stratégie confirme la direction de la tendance sur plusieurs périodes de temps, évitant ainsi d’entrer en jeu pendant les fortes fluctuations du marché. En outre, la stratégie définit plusieurs niveaux de stop-loss pour verrouiller les bénéfices et contrôler les risques.

Analyse des avantages

Le plus grand avantage du système est que la combinaison d’indicateurs utilise trois types d’indicateurs différents qui sont complémentaires, ce qui permet de juger avec plus de précision les tendances du marché. Plus précisément, les principaux avantages sont:

  1. L’indicateur de tendance des prix prolongés permet d’identifier avec précision les points de changement de tendance et l’intensité de la tendance.
  2. L’indicateur de la voie de Dongxian permet de déterminer clairement la direction de la tendance et de mieux saisir la tendance.
  3. Le SAR parallèle, combiné à l’utilisation d’indicateurs de tendance, permet d’identifier plus précisément les points d’achat et de vente.

Grâce à la combinaison organique des indicateurs, il est possible de tirer pleinement parti des avantages de chaque indicateur, ce qui permet au système de Samsung de juger avec précision les tendances des grandes, moyennes et longues lignes et d’identifier plus précisément les points d’achat et de vente, ce qui permet d’obtenir un meilleur rapport bénéfice-risque.

Analyse des risques

Le risque global est maîtrisé en tant que stratégie de portefeuille d’indicateurs, mais il y a des risques à prendre en compte:

  1. L’indicateur de tendance à la quantité de prix prolongée évalue les risques de fausses ruptures et de revirements massifs;
  2. Pendant le processus de résolution des tremblements de terre, le passage de Dongjian pourrait se rétrécir, ce qui entraînerait une plus grande probabilité de signaux erronés.
  3. La mauvaise configuration des paramètres SAR de la parabole peut également avoir un impact sur l’identification des points d’achat et de vente.

Pour ces risques, nous recommandons d’ajuster les paramètres de l’indicateur et de faire référence à d’autres indicateurs afin de réduire la probabilité d’une défaillance d’un seul indicateur. De plus, un arrêt raisonnable et une gestion de la position sont également essentiels au contrôle du risque global de la stratégie.

Optimisation de la stratégie

Il y a encore de la place pour optimiser le système Samsung:

  1. Les paramètres de l’indicateur d’optimisation automatique peuvent être introduits dans les algorithmes d’apprentissage automatique.
  2. L’introduction d’indicateurs de volatilité pourrait être envisagée pour améliorer la stabilité stratégique;
  3. Les indicateurs d’humeur peuvent être combinés pour évaluer l’impact des fluctuations de l’humeur du public sur la stratégie.

Grâce à l’optimisation des paramètres algorithmiques, le jugement par combinaison de plusieurs indicateurs et l’analyse quantitative du comportement, il est prévu d’améliorer encore la rentabilité et la stabilité du système de Sanlong. Nous continuerons à nous concentrer sur les technologies de pointe de l’industrie et à optimiser continuellement le système de stratégie d’amélioration.

Résumer

Le système de Samron est une stratégie de combinaison d’indicateurs techniques qui permet de juger de la tendance du marché et de trouver des points d’achat et de vente grâce à l’indicateur de tendance du volume des prix, à l’indicateur du canal de Dongxian et à l’indicateur SAR de la parallèle. Cette stratégie est précise, contrôlable par le risque et, après plusieurs vérifications, est un système de stratégie efficace adapté aux investisseurs de moyenne et longue durée. Nous optimiserons continuellement le système de Samron afin d’obtenir un meilleur rapport risque / rendement.

Code source de la stratégie
/*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 ///////////