Stratégie de retracement de la cassure du canal Keltner


Date de création: 2023-12-27 14:49:39 Dernière modification: 2023-12-27 14:49:39
Copier: 0 Nombre de clics: 761
1
Suivre
1621
Abonnés

Stratégie de retracement de la cassure du canal Keltner

Aperçu

Cette stratégie est basée sur l’indicateur de la voie de Keltner pour concevoir une stratégie de retrait. Cette stratégie consiste à comparer la relation entre le prix et la trajectoire ascendante et descendante de la voie de Keltner, à déterminer le moment où le prix peut se retourner et à effectuer des opérations de plus ou moins appropriées.

Principe de stratégie

Cette stratégie utilise l’indicateur de la voie de Keltner pour déterminer la tendance des prix. La voie de Keltner est composée de la ligne moyenne et de l’amplitude réelle moyenne (ATR). La voie supérieure est égale à N fois la ligne moyenne plus ATR; la voie inférieure est égale à N fois la ligne moyenne moins ATR.

De plus, la stratégie juge l’opportunité de reprise en fonction du fait que le prix a touché ou franchi la frontière du canal. Par exemple, une hausse de prix a franchi la voie descendante, puis une baisse a touché la voie descendante sans toucher la voie supérieure, ce qui est une opportunité de faire plusieurs reprise. La stratégie ouvrira ses positions à ce moment-là.

Analyse des avantages

Il s’agit d’une stratégie de négociation qui utilise les caractéristiques de la rétrocession des prix.

  1. L’utilisation du canal Keltner pour déterminer la direction de la tendance des prix permet de filtrer efficacement le bruit.
  2. Les joueurs doivent adopter une stratégie de retrait, qui leur permet d’entrer dans le terrain avant le retour et de capturer les plus gros coups.

Analyse des risques

Les principaux risques de cette stratégie sont les suivants:

  1. Il y a peu de chances de tirer profit d’un marché qui se déplace de manière unilatérale sur une longue période.
  2. Les signaux de rétractation peuvent être mal interprétés, ce qui peut entraîner des pertes.

La réponse:

  1. Optimisation des paramètres, adaptation de la largeur des canaux, adaptation au marché
  2. La gestion des positions est renforcée et les pertes ponctuelles réduites.

Direction d’optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Le filtrage des ruptures est basé sur le volume des transactions, afin d’éviter les fausses ruptures.
  2. La taille de la position est ajustée en fonction de la volatilité.
  3. La mise à jour de la méthode de stop loss, le déplacement du stop loss pour verrouiller plus de profits.

Résumer

Cette stratégie, qui intègre des méthodes de jugement de tendance et de retrait de transactions, présente un avantage unique pour capturer les retournements. La stabilité et la rentabilité de la stratégie peuvent être encore améliorées par l’ajustement des paramètres et l’extension des fonctionnalités.

Code source de la stratégie
/*backtest
start: 2023-11-26 00:00:00
end: 2023-12-26 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("Keltner bounce from border. No repaint. (by Zelibobla)", shorttitle="Keltner border bounce", overlay=true)

price = close

// build Keltner
keltnerLength = input(defval=200, minval=1, title="Keltner EMA Period Length")
keltnerATRLength = input(defval=200, minval=1, title="Keltner ATR Period Length (the same as EMA length in classic Keltner Channels)")
keltnerDeviation = input(defval=8, minval=1, maxval=15, title="Keltner band width (in ATRs)")
closeOnEMATouch = input(type=bool, defval=false, title="Close trade on EMA touch? (less drawdown, but less profit and higher commissions impact)")
enterOnBorderTouchFromInside = input(type=bool, defval=false, title="Enter on border touch from inside? (by default from outside, which is less risky but less profitable)")
SL = input(defval=50, minval=0, maxval=10000, title="Stop loss in ticks (leave zero to skip)")
EMA = sma(price, keltnerLength)
ATR = atr(keltnerATRLength)
top = EMA + ATR * keltnerDeviation
bottom = EMA - ATR * keltnerDeviation

buyEntry = crossover(price, bottom)
sellEntry = crossunder(price, top)
plot(EMA, color=aqua,title="EMA")
p1 = plot(top, color=silver,title="Keltner top")
p2 = plot(bottom, color=silver,title="Keltner bottom")
fill(p1, p2)

tradeSize = input(defval=1, minval=1, title="Trade size")

if ( enterOnBorderTouchFromInside and crossunder(price, bottom) )
    strategy.entry("BUY", strategy.long, qty=tradeSize, comment="BUY")
else
    if( crossover(price, bottom) )
        strategy.entry("BUY", strategy.long, qty=tradeSize, comment="BUY")

if( crossover(price,EMA) and closeOnEMATouch )
    strategy.close("BUY")

if( 0 != SL )
    strategy.exit("EXIT BUY", "BUY", qty=tradeSize, loss=SL)
    strategy.exit("EXIT SELL", "SELL", qty=tradeSize, loss=SL)
   
if( enterOnBorderTouchFromInside and crossover(price, bottom) )
    strategy.entry("SELL", strategy.long, qty=tradeSize, comment="SELL")
else
    if ( crossunder(price, top) )
        strategy.entry("SELL", strategy.short, qty=tradeSize, comment="SELL")
    
    
if( crossunder(price, EMA) and closeOnEMATouch )
    strategy.close("SELL")