Stratégie de suivi de tendance basée sur l'indicateur WaveTrend

EMA SMA HLCC3 ESA
Date de création: 2024-04-28 13:56:27 Dernière modification: 2024-04-28 13:56:27
Copier: 1 Nombre de clics: 1517
1
Suivre
1617
Abonnés

Stratégie de suivi de tendance basée sur l’indicateur WaveTrend

Aperçu

La stratégie WaveTrend Cross LazyBear est une stratégie de négociation basée sur l’indicateur WaveTrend. Elle utilise deux lignes d’indicateur WaveTrend de différentes périodes, générant un signal d’achat lorsque la ligne d’indicateur WaveTrend de période plus rapide traverse la ligne d’indicateur WaveTrend de période plus lente et un signal de vente lorsque la ligne d’indicateur WaveTrend de période plus rapide traverse la ligne d’indicateur WaveTrend de période plus lente.

Principe de stratégie

Au cœur de la stratégie se trouve l’indicateur WaveTrend, calculé en trois étapes:

  1. Calculer le prix typique ((AP), qui est égal à la moyenne du prix le plus élevé, le prix le plus bas et le prix de clôture
  2. Calculer la moyenne mobile indicielle de l’AP (ESA) avec une période de n1⁄2
  3. Calculer la moyenne d’indicateur d’une variance absolue de l’AP par rapport à l’ESA, avec une période de n1。
  4. Calculer l’indicateur CI, qui est égal à ((AP - ESA) / (0,015 * d) )
  5. Calculer l’indicateur TCI de l’indicateur TCI, avec une période de n2, pour obtenir l’indicateur WaveTrend .

La stratégie utilise deux lignes indicateures WaveTrend de deux cycles différents (default 10 et 21), notées WT1 et WT2 respectivement. Lorsque WT1 est traversé par WT2, un signal d’achat est généré; lorsque WT1 est traversé par WT2, un signal de vente est généré. En outre, la stratégie définit 4 niveaux de jugement auxiliaires: niveau de surachat 1, niveau de surachat 2, niveau de surachat 1 et niveau de surachat 2, pour aider à juger de l’état du marché.

Avantages stratégiques

  1. L’indicateur WaveTrend, qui combine dynamisme et volatilité, est le meilleur indicateur pour capturer les tendances du marché.
  2. L’indicateur WaveTrend à double cycle permet de filtrer efficacement certains signaux de bruit.
  3. La mise en place d’un niveau de surachat et de survente peut, dans une certaine mesure, empêcher la stratégie de négocier fréquemment lorsque le marché est très volatil.
  4. La logique de la stratégie est claire, facile à comprendre et à mettre en œuvre.

Risque stratégique

  1. Cette stratégie peut entraîner une augmentation du nombre de faux signaux dans les villes en crise.
  2. Le choix des paramètres a une influence majeure sur la performance de la stratégie. Des paramètres différents peuvent entraîner des variations importantes dans la performance de la stratégie.
  3. La stratégie ne prend pas en compte la maîtrise des risques, ce qui pourrait entraîner des retraits plus importants dans des situations extrêmes.

Orientation de l’optimisation de la stratégie

  1. On peut envisager d’ajouter des conditions de filtrage de tendance, telles que la direction de la moyenne à long terme, pour réduire les faux signaux dans les marchés oscillante.
  2. Les paramètres de survente peuvent être optimisés pour s’adapter plus dynamiquement aux différentes conditions du marché.
  3. Le risque de transaction unique peut être maîtrisé par l’ajout de mécanismes de stop-loss et de stop-loss.
  4. L’optimisation des paramètres permet de trouver la meilleure combinaison de paramètres.

Résumer

La stratégie WaveTrend Cross LazyBear est une stratégie de suivi de la tendance basée sur l’indicateur WaveTrend, qui utilise la conception de l’indicateur du double cycle et le jugement auxiliaire des niveaux de survente et de survente, tout en prenant en compte un certain contrôle du risque. Cependant, la stratégie peut présenter de nombreux faux signaux dans les marchés instables et manque de mesures rigoureuses de gestion du risque.

Code source de la stratégie
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 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/
// © burakaydingr

//@version=5
strategy("WaveTrend with Crosses [LazyBear]", shorttitle="WT_CROSS_LB", overlay=true)

// Kullanıcı girişleri
n1 = input(10, title="Channel Length")
n2 = input(21, title="Average Length")
obLevel1 = input(60, title="Over Bought Level 1")
obLevel2 = input(53, title="Over Bought Level 2")
osLevel1 = input(-60, title="Over Sold Level 1")
osLevel2 = input(-53, title="Over Sold Level 2")

// Temel hesaplamalar
ap = hlc3
esa = ta.ema(ap, n1)
d = ta.ema(math.abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ta.ema(ci, n2)

// WaveTrend göstergeleri
wt1 = tci
wt2 = ta.sma(wt1, 4)

// Al ve Sat Sinyalleri
buySignal = ta.crossover(wt1, wt2)
sellSignal = ta.crossunder(wt1, wt2)

// Alım ve Satım pozisyonları
if (buySignal)
    if (strategy.position_size <= 0) // Eğer şu anda açık bir satış pozisyonu varsa, onu kapat
        strategy.close("Sell")
    strategy.entry("Buy", strategy.long, comment="Buy Signal: Price crossed above WT2")

if (sellSignal)
    if (strategy.position_size >= 0) // Eğer şu anda açık bir alım pozisyonu varsa, onu kapat
        strategy.close("Buy")
    strategy.entry("Sell", strategy.short, comment="Sell Signal: Price crossed below WT2")

// Renkler ve diğer görseller
plot(0, color=color.new(color.gray, 0), title="Zero Level")
plot(obLevel1, color=color.new(color.red, 0), title="Overbought Level 1")
plot(osLevel1, color=color.new(color.green, 0), title="Oversold Level 1")
plot(obLevel2, color=color.new(color.purple, 0), title="Overbought Level 2")
plot(osLevel2, color=color.new(color.orange, 0), title="Oversold Level 2")

plot(wt1, color=color.new(color.red, 0), title="WT1")
plot(wt2, color=color.new(color.blue, 0), title="WT2")
plot(wt1-wt2, color=color.new(color.purple, 80), style=plot.style_area, title="WT1-WT2 Area")

// İşaretler
plotshape(buySignal, location=location.absolute, color=color.new(color.yellow, 0), style=shape.circle, size=size.small, title="Buy Signal")
plotshape(sellSignal, location=location.absolute, color=color.new(color.red, 0), style=shape.circle, size=size.small, title="Sell Signal")