Stratégie de croisement des moyennes mobiles des prix


Date de création: 2023-11-27 16:52:19 Dernière modification: 2023-11-27 16:52:19
Copier: 1 Nombre de clics: 372
1
Suivre
1166
Abonnés

Stratégie de croisement des moyennes mobiles des prix

Aperçu

La stratégie est essentiellement une stratégie de croisement de lignes. En calculant la moyenne mobile des prix et en définissant une certaine moyenne mobile à court terme, la stratégie est plus efficace lorsque la moyenne mobile à court terme traverse la moyenne mobile à long terme par le bas; elle est négative lorsque la moyenne mobile à court terme traverse la moyenne mobile à long terme par le haut.

Principe de stratégie

L’idée centrale de la stratégie de croisement des moyennes de prix est que les moyennes mobiles des prix reflètent efficacement la tendance des changements de prix. La stratégie génère un signal de négociation en définissant des moyennes mobiles de deux périodes différentes, ainsi qu’une certaine logique de négociation, pour juger des changements de tendance des prix.

La stratégie calcule une moyenne à plus long terme et une moyenne à plus court terme. La ligne longue est principalement utilisée pour déterminer les grandes tendances, tandis que la ligne courte est utilisée pour capturer les fluctuations à court terme dans le processus de la grande tendance. Les signaux de négociation de la stratégie proviennent principalement de la croisée de la ligne courte avec la ligne longue: la ligne courte passe par la ligne longue comme un signal multiple et la ligne courte passe par la ligne longue comme un signal vide.

Plus précisément, la stratégie utilise 7 types différents de moyennes mobiles, y compris SMA, EMA, VWMA, etc. Les utilisateurs peuvent choisir le type de moyenne mobile. La longueur de la moyenne mobile peut également être réglée de manière flexible.

Analyse des avantages

Les principaux avantages de la stratégie de croisement de la moyenne des prix sont les suivants:

  1. La logique de la stratégie est claire et simple, facile à comprendre et à mettre en œuvre, adaptée aux débutants.

  2. Les principes de la stratégie sont solides, basés sur des règles de négociation homogènes pleinement vérifiées et testées par la pratique du marché.

  3. Les paramètres de la stratégie sont flexibles et l’utilisateur peut choisir les paramètres appropriés en fonction de son jugement et de ses préférences sur le marché.

  4. Les stratégies comportent des mécanismes de contrôle du risque qui permettent de réduire le temps de détention des titres à perte et d’éviter les prises de position inversées inutiles.

  5. La stratégie contient plusieurs types de moyennes mobiles, et l’utilisateur peut choisir le type de moyenne mobile qui convient le mieux à sa variété de trading.

  6. Les stratégies permettent d’ouvrir la logique des transactions à des périodes de négociation spécifiques afin d’éviter les fluctuations anormales des principaux marchés des fêtes.

Analyse des risques

Bien que les stratégies de croisement de la moyenne des prix présentent de nombreux avantages, elles comportent également des risques dans les transactions réelles, principalement dans les deux aspects suivants:

  1. Étant donné que la plupart des moyennes mobiles sont en retard, les signaux de croisement peuvent apparaître tard après la fin de la reprise des cours et être facilement bloqués.

  2. Si les paramètres sont mal configurés, les signaux croisés peuvent être trop fréquents, ce qui entraîne une activité excessive et des coûts de transaction plus élevés.

Les risques susmentionnés peuvent être maîtrisés et combattus de la manière suivante:

  1. Contrôlez le risque de perte individuelle en définissant une marge de stop modérée.

  2. Augmenter les conditions de filtrage, réduire la fréquence des transactions et empêcher les transactions excessives. Par exemple, définir des conditions de canal de prix ou de largeur de fluctuation des prix.

  3. Optimiser les paramètres des moyennes mobiles, choisir la combinaison de paramètres qui convient le mieux à votre variété de transactions et à votre cycle. Tester la stabilité de la stratégie dans différentes conditions de marché.

Direction d’optimisation

Il y a encore de la place pour optimiser la stratégie de croisement de la moyenne des prix, principalement à partir des éléments suivants:

  1. Augmentation des mécanismes de protection en cas d’extrême volatilité. Par exemple, la suspension de la négociation en cas de forte fluctuation des prix pour éviter les périodes anormales du marché.

  2. Ajout d’autres conditions de filtrage et de combinaison des signaux de négociation, améliorant la qualité et la stabilité du signal. Par exemple, le croisement avec d’autres indicateurs techniques pour identifier une forte tendance.

  3. Système de paramètres dynamiques. Paramètres clés tels que la longueur des moyennes mobiles, le commutateur de transaction, etc., sont automatiquement ajustés en fonction des conditions du marché et des caractéristiques de la variété, au lieu d’utiliser des valeurs fixes.

  4. Le signal de croisement de la moyenne est utilisé dans les stratégies avancées telles que l’arbitrage multivarié composite. Combiné avec d’autres informations, il est utilisé pour l’optimisation de la stratégie en profondeur.

Les recommandations ci-dessus permettent d’élargir l’environnement d’application de la stratégie, d’améliorer l’efficacité des transactions et de mieux intégrer le risque et le rendement.

Résumer

Nous analysons l’idée de la stratégie, sa structure de principe, ses principaux avantages et les directions d’amélioration possibles. La stratégie dans son ensemble est logiquement claire, simple à utiliser, flexible en matière d’ajustement des paramètres et s’adapte à une variété d’environnements de négociation. Nous analysons également les problèmes et les risques présents dans la stratégie et donnons des recommandations de traitement ciblées. Nous sommes convaincus que ces analyses et discussions globales permettront aux traders de mieux comprendre ce type de stratégie et contribueront à l’optimisation continue de leur système de négociation en direct.

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

//Noro
//2019

//@version=4
strategy(title = "Noro's CrossMA", shorttitle = "CrossMA", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 0, commission_value = 0.1)

needlong = input(true, "long")
needshort = input(true, "short")
lotsize = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
type = input(defval = "SMA", options = ["SMA", "EMA", "VWMA", "DEMA", "TEMA", "KAMA", "PCMA"], title = "MA type")
src = input(close, defval = close, title = "MA Source")
len = input(30, defval = 30, minval = 1, title = "MA length")
off = input(00, defval = 00, minval = 0, title = "MA offset")
anti = input(true, defval = true, title = "Anti-saw filter")
showma = input(true, defval = true, title = "Show MA")
showbg = input(false, defval = false, title = "Show background")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//DEMA
dema = 2 * ema(src, len) - ema(ema(close, len), len)

//TEMA
xPrice = close
xEMA1 = ema(src, len)
xEMA2 = ema(xEMA1, len)
xEMA3 = ema(xEMA2, len)
tema = 3 * xEMA1 - 3 * xEMA2 + xEMA3

//KAMA
xvnoise = abs(src - src[1])
nfastend = 0.20
nslowend = 0.05
nsignal = abs(src - src[len])
nnoise = sum(xvnoise, len)
nefratio = iff(nnoise != 0, nsignal / nnoise, 0)
nsmooth = pow(nefratio * (nfastend - nslowend) + nslowend, 2)
kama = 0.0
kama := nz(kama[1]) + nsmooth * (src - nz(kama[1]))

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

sma_1 = sma(src, len)
ema_1 = ema(src, len)
vwma_1 = vwma(src, len)
ma2 = type == "SMA" ? sma_1 : type == "EMA" ? ema_1 : type == "VWMA" ? vwma_1 : type == "DEMA" ? dema : type == "TEMA" ? tema : type == "KAMA" ? kama : type == "PCMA" ? center : 0
ma = ma2[off]

macol = showma ? color.blue : na
plot(ma, color = macol, linewidth = 3, transp = 0)

//Background
trend = 0
trend := anti == false and close > ma ? 1 : anti == false and close < ma ? -1 : low > ma ? 1 : high < ma ? -1 : trend[1]
bgcol = showbg ? trend == 1 ? color.lime : trend == -1 ? color.red : na : na
bgcolor(bgcol, transp = 70)

//Trading
size = strategy.position_size
truetime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)
lot = 0.0
lot := size != size[1] ? strategy.equity / close * lotsize / 100 : lot[1]
if trend == 1 and trend[1] == -1
    strategy.entry("Long", strategy.long, lot, when = needlong and truetime)
if trend == -1 and trend[1] == 1
    strategy.entry("Short", strategy.short, lot, when = needshort and truetime)
if size > 0 and needshort == false and trend == -1
    strategy.close_all()
if size < 0 and needlong == false and trend == 1
    strategy.close_all()
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    strategy.cancel("Long")
    strategy.cancel("Short")