Stratégie de la Croix d'or et de la Croix de la mort à double moyenne mobile


Date de création: 2023-09-17 22:35:07 Dernière modification: 2023-09-17 22:35:07
Copier: 1 Nombre de clics: 626
1
Suivre
1617
Abonnés

La stratégie consiste à calculer des moyennes mobiles de deux périodes différentes et à former des signaux d’achat et de vente en fonction de leurs fourches dorées.

Principe de stratégie

La stratégie permet d’abord à l’utilisateur de choisir le type et la longueur de la moyenne mobile. Les types comprennent les SMA, EMA, VWMA, etc., tandis que la longueur détermine la périodicité de la moyenne.

Ensuite, deux moyennes mobiles sont calculées selon le choix de l’utilisateur. Si la ligne rapide traverse la ligne lente par le bas, formant une fourchette dorée, un signal d’achat est généré. Si la ligne rapide traverse la ligne lente par le haut, formant une fourchette morte, un signal de vente est généré.

Ainsi, lorsque le prix moyen à court terme est supérieur au prix moyen à long terme, il est considéré que le marché est en tendance à la hausse et devrait être acheté. Lorsque le prix à court terme est inférieur au prix à long terme, il est considéré que le marché est en tendance à la baisse et devrait être vendu.

Analyse des avantages

  • La logique de la stratégie est simple, claire et facile à comprendre.
  • Les moyennes mobiles peuvent filtrer efficacement le bruit du marché et identifier les tendances.
  • Le type et les paramètres des moyennes mobiles peuvent être choisis avec souplesse pour s’adapter à différentes variétés et périodes.
  • Il est facile d’optimiser avec une combinaison d’indicateurs.

Analyse des risques

  • Il peut y avoir plusieurs signaux erronés lorsque le marché est sur le qui-vive.
  • Une mauvaise sélection de paramètres peut entraîner une mauvaise performance de la stratégie.
  • Les signaux sont retardés et ne permettent pas de saisir le point de virage en temps opportun.
  • Le risque d’un choc climatique dû à un événement imprévu.

Le risque peut être maîtrisé par l’optimisation appropriée des paramètres, la combinaison de signaux générés par d’autres indicateurs et la mise en place d’un stop-loss.

Direction d’optimisation

  • Test des paramètres de différents types et de différentes longueurs pour trouver la combinaison optimale.
  • Ajoutez des filtres pour d’autres indicateurs, tels que les indicateurs de quantité et de prix, les indicateurs de volatilité, etc.
  • Augmentation de la logique d’arrêt de perte et réduction du recul.
  • Les indicateurs de tendance sont combinés pour éviter un environnement de négociation inadéquat.
  • Optimiser les stratégies de gestion des fonds, telles que la gestion des positions, le budget des risques, etc.

Résumer

L’idée générale de la stratégie est simple et claire, elle forme un signal de négociation en calculant des lignes biunivoques, permet d’ajuster les paramètres de manière flexible en fonction de l’environnement du marché et d’optimiser d’autres combinaisons de stratégies, mais elle nécessite une attention particulière à la prévention des risques de choc sur le marché et une gestion rationnelle des fonds.

Code source de la stratégie
/*backtest
start: 2023-09-09 00:00:00
end: 2023-09-13 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's MAs Tests", shorttitle = "MAs tests", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)


len = input(30, defval = 30, minval = 2, maxval = 1000, title = "MA length")
type = input(1, defval = 1, minval = 1, maxval = 7, title = "Type")
src = input(close, defval = close, title = "Source")

//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 = nz(kama[1]) + nsmooth * (src - nz(kama[1]))

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

ma = type == 1 ? sma(src, len) : type == 2 ? ema(src, len) : type == 3 ? vwma(src, len) : type == 4 ? dema : type == 5 ? tema : type == 6 ? kama : type == 7 ? center : 0

plot(ma, color = blue, linewidth = 3, transp = 0)

trend = low > ma ? 1 : high < ma ? -1 : trend[1]

longCondition = trend == 1 and trend[1] == -1
if (longCondition)
    strategy.entry("Long", strategy.long)

shortCondition = trend == -1 and trend[1] == 1
if (shortCondition)
    strategy.entry("Short", strategy.short)