
Cette stratégie utilise l’indicateur EMA pour identifier les tendances des prix des actions et, combiné avec le calcul de la différence standard, permet de suivre la tendance des signaux d’achat et de vente. L’idée principale est de calculer la différence entre le prix actuel et l’EMA et de définir la valeur limite des achats.
La stratégie commence par calculer la différence v entre le prix de clôture et l’EMA de la longueur d’ema_length. Elle calcule ensuite le décalage standard entre le cycle d’ema_length de v. Elle détermine ensuite le coefficient de direction d’achat k, où k est 1 pour le bullish et k est -1 pour le bullish. Elle calcule ensuite le seuil de signal d’achat dev_limit, qui est k multiplié par dev et multiplié par le facteur de limitation.
La stratégie offre deux modes:
Acheter en baisse, c’est-à-dire suivre une tendance à la baisse, lorsque v est négatif.
L’achat d’une dev_limit sur v est suivi par une tendance à la hausse.
En résumé, la stratégie permet de suivre la tendance en calculant dynamiquement l’écart-type entre le prix et l’EMA, en définissant des seuils d’achat. Les paramètres de facteur contrôlent la sensibilité du signal d’achat. La longueur d’ema contrôle la période d’EMA. Le mode d’achat contrôle la direction d’achat.
Cette stratégie présente les avantages suivants:
L’utilisation de l’EMA pour identifier la direction de la tendance des prix, l’EMA pour lisser les prix, l’identification de la tendance est efficace.
Le calcul de la marge dynamique combinée à l’écart-type est plus adapté aux variations du marché que la marge fixe.
Les deux modes d’achat permettent de suivre une tendance à la hausse ou à la baisse.
Le paramètre factor fournit un espace pour ajuster la sensibilité d’achat. Le paramètre ema_length permet d’ajuster le paramètre d’optimisation du cycle EMA.
La logique de la stratégie est claire, simple, facile à comprendre et à modifier.
Il est possible de gérer ses positions de manière flexible et d’adopter des stratégies positives pour suivre les tendances à la baisse.
La stratégie présente également les risques suivants:
L’indicateur EMA est à la traîne et risque de manquer un tournant.
L’optimisation dépend des paramètres, et si les paramètres ne sont pas correctement définis, il peut être trop sensible ou lent.
Les risques liés à la poursuite d’une tendance, qui peut entraîner des pertes importantes si la tendance est inversée.
La fréquence des conversions multifonctionnelles entraîne une fréquence des transactions.
Les signaux sont plus fréquents en cas de fortes secousses et les frais de transaction augmentent.
Pour ces risques, on peut envisager d’ajouter des stratégies de contrôle des risques de stop loss, d’optimiser les tests de combinaison de paramètres pour trouver les paramètres optimaux, d’ajouter des conditions de filtrage pour éviter les transactions trop fréquentes, etc.
Cette stratégie peut être optimisée dans les domaines suivants:
Testez l’effet des paramètres de différents cycles EMA pour trouver la longueur optimale du cycle EMA.
Les facteurs de test sont évalués de différentes manières pour déterminer la sensibilité optimale aux seuils.
Optimiser les stratégies de gestion des positions ouvertes, par exemple, en suivant les tendances.
Ajouter des filtres sur d’autres indicateurs afin d’éviter les erreurs de trading en cas de choc.
Augmenter les stratégies de stop-loss pour contrôler les pertes individuelles.
Optimiser les paramètres pour les deux modes d’achat et trouver la meilleure combinaison de paramètres.
Il est possible d’étudier les signaux d’inversion de tendance et de désactiver le suivi de tendance.
La stratégie est basée sur l’identification de la direction de la tendance EMA, et le calcul dynamique de seuils générer des signaux d’achat et de vente, pour réaliser le suivi de la tendance. La logique de la stratégie est simple et claire, la gestion de la position peut être configurée de manière flexible pour suivre activement la tendance.
/*backtest
start: 2023-10-06 00:00:00
end: 2023-11-05 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Azzrael
// Based on EMA and EMA Oscilator https://www.tradingview.com/script/qM9wm0PW-EMA-Oscilator-Azzrael/
// (EMA - close) + Std Dev + Factor = detecting oversell/overbuy
// Long only!
// Pyramiding - sometimes, depends on ...
// There 2 enter strategies in one script
// 1 - Classic, buy on entering to OverSell zone (more profitable ~> 70%)
// 2 - Crazy, buy on entering to OverBuy zone (catching trend and pyramiding, more net profit)
// Exit - crossing zero of (EMA - close)
//@version=5
strategy("STR:EMA Oscilator [Azzrael]", overlay=false,
margin_long=100,
margin_short=100,
currency=currency.USD,
default_qty_type=strategy.percent_of_equity,
default_qty_value=30,
pyramiding=3)
entry_name="Buy"
ema_length = input.int(200, "Period", minval=2, step=10)
limit = input.float(1.7, "Factor", minval=1, step=0.1, maxval=10)
dno = input.string(defval="Buy on enter to OverSell", title="Model", options=["Buy on enter to OverSell", "Buy on enter to OverBuy"]) == "Buy on enter to OverSell"
v = close - ta.ema(close, ema_length)
dev = ta.stdev(v, ema_length)
k = dno ? -1 : 1
dev_limit = k*dev*limit
cond_long = dno ? ta.crossunder(v, dev_limit) : ta.crossover(v, dev_limit)
cond_close = ta.cross(v, 0)
// dev visualization
sig_col = (dno and v <= dev_limit) or (not dno and v >= dev_limit) ? color.green : color.new(color.blue, 80)
plot(dev_limit, color=color.green)
plot(k*dev, color=color.new(color.blue, 60))
plot(v, color=sig_col )
hline(0)
// Make love not war
strategy.entry(entry_name, strategy.long, when=cond_long)
strategy.close(entry_name, when=cond_close)