Stratégie de suivi de tendance de moyenne mobile de canal dynamique


Date de création: 2024-02-22 15:51:48 Dernière modification: 2024-02-22 15:51:48
Copier: 0 Nombre de clics: 577
1
Suivre
1617
Abonnés

Stratégie de suivi de tendance de moyenne mobile de canal dynamique

Aperçu

Cette stratégie est basée sur le principe de suivi de la tendance des canaux dynamiques et des courbes uniformes. Elle calcule la courbe dynamique des prix, détermine la direction de la tendance des prix par la montée et la descente de la courbe, en combinaison avec la dispersion des prix des ondes uniformes, et génère un signal de négociation.

Le principe

La stratégie est basée sur les principes suivants:

  1. Calculer le canal de prix dynamique. La ligne médiane du canal est calculée à partir du prix le plus élevé et du prix le plus bas. La ligne médiane du canal est la ligne médiane + la ligne médiane de la dispersion des prix, la ligne médiane de la dispersion des prix est la ligne médiane de la dispersion des prix.

  2. Déterminer la direction d’une tendance. Définie comme haussière lorsque le prix est en hausse; défini comme baissière lorsque le prix est en baisse.

  3. Le bruit des fluctuations aléatoires des prix des fluctuations aléatoires des prix.

  4. Génère un signal de transaction. Lorsqu’il est haussier, il génère un signal d’achat lorsque le prix de clôture du cycle est inférieur au prix d’ouverture. Lorsqu’il est baissier, il génère un signal de vente lorsque le prix de clôture du cycle est supérieur au prix d’ouverture.

Les avantages

Cette stratégie présente les avantages suivants:

  1. Les canaux dynamiques permettent de capturer les tendances des prix en temps réel.
  2. Le filtrage homogène réduit le nombre de fausses informations.
  3. Le signal de transaction est généré par la combinaison de la direction de la tendance et la direction de l’entité de la ligne K pour éviter d’être piégé.

Les risques

La stratégie présente également les risques suivants:

  1. Une mauvaise sélection de paramètres peut conduire à une optimisation excessive.
  2. Les vibrations peuvent générer des signaux erronés lors de l’assemblage des disques.
  3. Les prix peuvent fluctuer fortement.

La réponse:

  1. Les Params ont été sélectionnés et testés de manière rigoureuse.
  2. Les conditions de filtrage ont été ajoutées pour identifier les tremblements de terre.
  3. Réglez le stop-loss et maîtrisez le risque.

Direction d’optimisation

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

  1. la stabilité de différents paramètres périodiques;
  2. Augmenter le jugement sur les indicateurs de VOLUME ou de volatilité;
  3. Les entrées et les sorties sont déterminées en combinant les bandes et les canaux.

Résumer

L’idée de cette stratégie d’intégration des canaux dynamiques et des jugements de tendance linéaire s’est bien déroulée dans la capture des tendances des courts et moyens. Cependant, il existe certaines limitations qui nécessitent des tests et des optimisations supplémentaires pour s’adapter à de plus en plus de conditions de marché.

Code source de la stratégie
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Strategy v1.0", shorttitle = "NoroBands str 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
color = input(true, "Color")
needbb = input(false, defval = false, title = "Show Bands")
needbg = input(false, defval = false, title = "Show Background")
src = close

//PriceChannel 1
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//dist
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma

//Trend
trend = close < ld and high < hd ? -1 : close > hd and low > ld ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 90)

//up =  and trend == 1 ? 1 : 0
//dn =  and trend == -1 ? 1 : 0 

up = close < hd and trend == 1 and (close < open or color == false) ? 1 : 0
dn = close > ld and trend == -1 and (close > open or color == false) ? 1 : 0 

longCondition = up == 1
if (longCondition)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

shortCondition = dn == 1
if (shortCondition)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)