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

Stratégie de suivi du canal Keltner

Auteur:ChaoZhang est là., Date: 2023-12-25 13h14 et 24h
Les étiquettes:

img

Résumé

Cette stratégie est conçue sur la base de l'indicateur Keltner Channel pour générer des signaux de trading lorsque le prix franchit les bandes supérieure et inférieure du canal.

La logique de la stratégie

La stratégie utilise SMA et ATR pour construire le canal de Keltner.

La bande supérieure = SMA + ATR * multiplicateur La bande inférieure = SMA - ATR * multiplicateur

Lorsque le prix dépasse la bande supérieure, un signal d'achat est généré. Lorsque le prix dépasse la bande inférieure, un signal de vente est généré.

Puisqu'il ne va que long, si un signal de vente apparaît, il annulera les commandes précédentes et aplatira la position.

La logique est la suivante:

  1. Construire le canal Keltner avec SMA et ATR
  2. Lorsque le prix dépasse la bande supérieure, régler le prix d'entrée et aller long
  3. Lorsque le prix dépasse la fourchette inférieure, aplatir la position longue précédente

Analyse des avantages

Les avantages de cette stratégie:

  1. Logie simple et claire, facile à comprendre et à mettre en œuvre
  2. Le canal Keltner est intuitif pour identifier les tendances
  3. Seul le risque d'arrêt des pertes est évité
  4. Commandes conditionnelles pour les entrées de précision

Analyse des risques

Il y a aussi des risques:

  1. Opérations ouvertes/fermées fréquemment pendant les fluctuations du marché
  2. Incapable de profiter des opportunités courtes
  3. Manque de mécanisme de sortie, nécessité d'une intervention manuelle

Les solutions:

  1. Optimiser les paramètres du canal pour réduire les faux signaux
  2. Ajouter un module court pour les transactions bidirectionnelles
  3. Ajouter des mécanismes de sortie tels que le stop-loss en mouvement, le stop-trailing

Directions d'optimisation

La stratégie peut être optimisée dans les aspects suivants:

  1. Optimiser les paramètres tels que la période du canal, ATR multiplicateur etc.
  2. Ajouter un module court basé sur la bande inférieure
  3. Incorporer des mécanismes d'arrêt des pertes tels que l'arrêt de trail ATR
  4. Considérez plus de filtres pour éviter de faux signaux
  5. Efficacité des essais sur différents produits

Conclusion

Cette stratégie capte efficacement les tendances du marché avec des règles simples du canal de Keltner. La logique est claire et facile à comprendre. Bien que l'absence de sorties et de module court, elle a un grand potentiel d'amélioration comme le réglage des paramètres, l'ajout d'arrêts, le short, etc. Dans l'ensemble, une stratégie quantitative précieuse qui mérite une recherche et une application approfondies.


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

//@version=3
strategy("Keltner Channel Strategy", overlay=true)
source = close

useTrueRange = input(true)
length = input(20, minval=1)
mult = input(1.0)

ma = sma(source, length)
range = useTrueRange ? tr : high - low
rangema = sma(range, length)
upper = ma + rangema * mult
lower = ma - rangema * mult

crossUpper = crossover(source, upper)
crossLower = crossunder(source, lower)

bprice = 0.0
bprice := crossUpper ? high+syminfo.mintick : nz(bprice[1])

sprice = 0.0
sprice := crossLower ? low -syminfo.mintick : nz(sprice[1]) 

crossBcond = false
crossBcond := crossUpper ? true 
 : na(crossBcond[1]) ? false : crossBcond[1]

crossScond = false
crossScond := crossLower ? true 
 : na(crossScond[1]) ? false : crossScond[1]

cancelBcond = crossBcond and (source < ma or high >= bprice )
cancelScond = crossScond and (source > ma or low <= sprice )

if (cancelBcond)
    strategy.cancel("KltChLE")

if (crossUpper)
    strategy.entry("KltChLE", strategy.long, stop=bprice, comment="KltChLE")

if (cancelScond)
    strategy.cancel("KltChSE")

if (crossLower)
    strategy.entry("KltChSE", strategy.short, stop=sprice, comment="KltChSE")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Plus de