Les ressources ont été chargées... Je charge...

Une stratégie de trading

Auteur:ChaoZhang est là., Date: 2024-05-29 17h23 et 36 min
Les étiquettes:

img

Résumé

Cette stratégie utilise l'indicateur Ichimoku Kumo pour déterminer les tendances du marché et les signaux de trading. La stratégie va long lorsque le prix est en dessous du nuage Kumo et va court lorsque le prix est au-dessus du nuage Kumo. La stratégie utilise l'indicateur ATR pour le stop-loss et confirme les signaux d'entrée avec des ruptures des lignes Kijun-sen et Senkou Span. La stratégie vise à capturer les opportunités de trading dans les fortes tendances tout en contrôlant le risque.

Principe de stratégie

  1. Utilisez les lignes Kijun-sen, Tenkan-sen et Senkou Span de l'indicateur Ichimoku pour déterminer les tendances du marché.
  2. Générer un signal long lorsque le prix de clôture est en dessous de la ligne Senkou Span et que la ligne Kijun-sen est au-dessus du nuage Kumo.
  3. Générer un signal court lorsque le prix de clôture est au-dessus de la ligne Senkou Span et que la ligne Kijun-sen est en dessous du nuage Kumo.
  4. Calculer la position stop-loss à l'aide de l'indicateur ATR, qui est le point le plus haut/le plus bas des 5 dernières bougies moins/plus 3 fois l'ATR.
  5. Fermez la position lorsque le prix dépasse le niveau de stop-loss.

Les avantages de la stratégie

  1. La stratégie est basée sur l'indicateur Ichimoku, qui fournit une analyse complète des tendances du marché.
  2. La stratégie prend en compte la relation entre le prix, la ligne Kijun-sen et la ligne Senkou Span, améliorant la fiabilité des signaux d'entrée.
  3. L'utilisation d'ATR pour le stop-loss permet un ajustement dynamique de la position de stop-loss, ce qui permet de mieux contrôler le risque.
  4. L'établissement du stop-loss tient compte de la volatilité du marché et s'adapte aux différentes conditions du marché.

Risques stratégiques

  1. La stratégie peut générer de nombreux faux signaux dans les marchés instables, conduisant à des transactions fréquentes et des pertes de capital.
  2. La performance de la stratégie dépend de la sélection des paramètres de l'indicateur Ichimoku, et différents paramètres peuvent produire des résultats de négociation différents.
  3. Dans les marchés volatils, les prix peuvent rapidement dépasser la position stop-loss, provoquant des glissements et des pertes importants.

Directions d'optimisation de la stratégie

  1. Introduire d'autres indicateurs techniques ou une analyse prix-volume pour aider à déterminer les tendances et les délais d'entrée, améliorant ainsi la précision du signal.
  2. Optimiser le paramètre de stop-loss, par exemple en considérant les stops de retard ou les stop-loss en mouvement, afin de mieux protéger la sécurité du compte.
  3. Incorporer la taille des positions dans la stratégie, en ajustant la taille de chaque transaction en fonction de la volatilité du marché et du risque du compte.
  4. Effectuer une optimisation des paramètres sur la stratégie afin de trouver la combinaison de paramètres la plus appropriée pour les conditions actuelles du marché.

Résumé

Cette stratégie utilise plusieurs composantes de l'indicateur Ichimoku pour analyser de manière exhaustive les tendances du marché. Dans le même temps, la stratégie utilise le stop-loss ATR pour contrôler le risque, améliorant la robustesse de la stratégie. Cependant, la stratégie peut sous-performer sur les marchés variés et repose sur la sélection de paramètres.


/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © muratatilay

//@version=5
strategy(
     "Kumo Trade Concept", 
     overlay=true,
     initial_capital=10000,
     currency=currency.USDT,
     default_qty_type=strategy.percent_of_equity, 
     default_qty_value=30,
     commission_type=strategy.commission.percent,
     commission_value=0.1,
     margin_long=10, 
     margin_short=10)


// ICHIMOKU Lines 
//  INPUTS
tenkanSenPeriods = input.int(9, minval=1, title="Tenkan-sen")
kijunSenPeriods = input.int(26, minval=1, title="Kijun-sen")
senkouBPeriod = input.int(52, minval=1, title="Senkou span B")
displacement = input.int(26, minval=1, title="Chikou span")

donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
tenkanSen = donchian(tenkanSenPeriods)
kijunSen = donchian(kijunSenPeriods)
senkouA = math.avg(tenkanSen, kijunSen)
senkouB = donchian(senkouBPeriod)

// Other Indicators
float   atrValue    = ta.atr(5)

// Calculate Senkou Span A 25 bars back
senkouA_current = math.avg(tenkanSen[25], kijunSen[25])
// Calculate Senkou Span B 25 bars back
senkouB_current = math.avg(ta.highest(senkouBPeriod)[25], ta.lowest(senkouBPeriod)[25])

// Kumo top bottom 
senkou_max = (senkouA_current >= senkouB_current) ? senkouA_current : senkouB_current
senkou_min = (senkouB_current >= senkouA_current) ? senkouA_current : senkouB_current

// Trade Setups
long_setup = (kijunSen > senkou_max) and (close < senkou_min) 
short_setup = (kijunSen < senkou_min ) and ( close > senkou_max ) 

// Check long_setup for the last 10 bars
long_setup_last_10 = false
for i = 0 to 50
    if long_setup[i]
        long_setup_last_10 := true
short_setup_last_10 = false
for i = 0 to 50
    if short_setup[i]
        short_setup_last_10 := true


closeSenkouCross = (close > senkou_max) and barstate.isconfirmed 
closeKijunCross = (close > kijunSen ) 

senkouCloseCross = close < senkou_min
kijunCloseCross = close < kijunSen


// Handle Trades
// Enter Trade
var float trailStopLong = na
var float trailStopShort = na
if ( closeSenkouCross and long_setup_last_10 and closeKijunCross ) 
    strategy.entry(id="Buy", direction = strategy.long)
    trailStopLong := na
if senkouCloseCross and short_setup_last_10 and kijunCloseCross
    strategy.entry(id="Sell", direction = strategy.short)
    trailStopShort := na


// Update trailing stop
float temp_trailStop_long = ta.highest(high, 5) - (atrValue * 3)
float temp_trailStop_short = ta.lowest(low, 5) + (atrValue * 3)
if strategy.position_size > 0
    if temp_trailStop_long > trailStopLong or na(trailStopLong)
        trailStopLong := temp_trailStop_long
if strategy.position_size < 0
    if temp_trailStop_short < trailStopShort or na(trailStopShort)
        trailStopShort := temp_trailStop_short

// Handle strategy exit
if close < trailStopLong and barstate.isconfirmed
    strategy.close("Buy", comment="Stop Long")
if close > trailStopShort and barstate.isconfirmed
    strategy.close("Sell", comment="Stop Short")


// PRINT ON CHART
plot(kijunSen, color=color.rgb(214, 58, 30), title="Kijun-sen", linewidth=2)
p1 = plot(senkouA, offset=displacement - 1, color=#A5D6A7, title="Senkou span A")
p2 = plot(senkouB, offset=displacement - 1, color=#EF9A9A, title="Senkou Span B")
fill(p1, p2, color=senkouA > senkouB ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))
// PRINT SETUPS
plotshape(long_setup , style=shape.circle, color=color.green, location=location.belowbar, size=size.small)
plotshape(short_setup, style=shape.circle, color=color.red, location=location.abovebar, size=size.small)

// Trail Stop
plot(strategy.position_size[1] > 0 ? trailStopLong : na, style=plot.style_linebr, color=color.purple, title="Stop Loss")
plot(strategy.position_size[1] < 0 ? trailStopShort : na, style=plot.style_linebr, color=color.purple, title="Stop Loss")


Plus de