
Cette stratégie est basée sur la conception de l’indicateur de double EMA et de l’indicateur d’oscillation accélérée AC. L’indicateur double EMA est utilisé pour déterminer la direction de la tendance des prix, tandis que l’indicateur AC est utilisé pour confirmer le signal de tendance et obtenir un effet de filtrage.
La stratégie est composée de deux modules:
Module double EMA
Construire un double EMA avec une EMA de 2 jours et une EMA de 20 jours. Considérer comme un signal d’achat lorsque le prix dépasse l’EMA de 2 jours; Considérer comme un signal de vente lorsque le prix dépasse l’EMA de 20 jours.
Ce module permet de déterminer les tendances à court et à moyen terme des prix et de suivre les tendances fondamentales.
Module à courant alternatif
Le signal de tendance est confirmé par la valeur positive-négative de l’indicateur d’oscillation accélérée AC. Un signal de transaction n’est généré que lorsque les deux indicateurs EMA et AC sont dans la même direction.
Le module améliore la fiabilité du signal en filtrant les faux signaux.
Dans l’ensemble, la stratégie intègre les jugements de tendances majeures des deux EMA, ainsi que les fausses percées de filtrage des indicateurs AC, pour former un système de suivi des tendances systématique.
Cette stratégie présente les avantages suivants:
Les doubles EMA suivent la tendance moyenne longue ligne, l’AC élimine le bruit à court terme, et la combinaison est bonne.
Le filtrage des signaux est efficace pour éviter le blanchiment aveugle après un gain de plusieurs têtes, ou le surmenage aveugle après un gain de tête vide.
Les paramètres d’ajustement sont flexibles et peuvent être adaptés aux différentes variétés et aux paramètres d’ajustement du marché.
Les stratégies sont claires et faciles à comprendre, ce qui permet aux traders de quantifier, d’optimiser et d’améliorer.
Il est possible d’obtenir un bon suivi dans les variétés tendances.
Cette stratégie présente aussi des risques:
Une mauvaise configuration des paramètres de double EMA peut entraîner la perte de tendances plus courtes ou la survente des transactions.
Une mauvaise configuration des paramètres d’AC peut filtrer un signal efficace plus faible ou ne pas filtrer suffisamment de bruit.
La plupart des entreprises ne sont pas en mesure de faire face aux changements rapides du marché, tels que les baisses rapides et abruptes.
Les investisseurs qui ne peuvent pas réaliser de profits suffisants dans un marché instable devraient utiliser cette stratégie pour suivre les tendances.
Cette stratégie peut être optimisée dans les dimensions suivantes:
Testez plus de combinaisons de paramètres pour trouver les paramètres optimaux qui correspondent le mieux aux caractéristiques des différentes variétés.
Ajout d’un module Stop Loss, permettant de se retirer des pertes lorsque les pertes sont trop importantes.
L’optimisation du filtrage des signaux est associée à d’autres indicateurs.
Développer une stratégie de combinaison de long et de court, suivre le long et le moyen dans la tendance, et utiliser des transactions ciblées sur le court pour le long.
Cette stratégie combinant les deux tendances de jugement EMA et le bruit de la boîte de vitesses AC mérite d’être étudiée. L’avantage de cette stratégie réside dans la qualité du signal, la fiabilité élevée et la possibilité de suivre des variétés de tendances.
/*backtest
start: 2023-01-08 00:00:00
end: 2024-01-14 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 19/01/2022
// This is combo strategies for get a cumulative signal.
//
// First strategy
// This indicator plots 2/20 exponential moving average. For the Mov
// Avg X 2/20 Indicator, the EMA bar will be painted when the Alert criteria is met.
//
// Second strategy
// The Accelerator Oscillator has been developed by Bill Williams
// as the development of the Awesome Oscillator. It represents the
// difference between the Awesome Oscillator and the 5-period moving
// average, and as such it shows the speed of change of the Awesome
// Oscillator, which can be useful to find trend reversals before the
// Awesome Oscillator does.
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
EMA20(Length) =>
pos = 0.0
xPrice = close
xXA = ta.ema(xPrice, Length)
nHH = math.max(high, high[1])
nLL = math.min(low, low[1])
nXS = nLL > xXA or nHH < xXA ? nLL : nHH
iff_1 = nXS < close[1] ? 1 : nz(pos[1], 0)
pos := nXS > close[1] ? -1 : iff_1
pos
AC(nLengthSlow,nLengthFast) =>
pos = 0.0
xSMA1_hl2 = ta.sma(hl2, nLengthFast)
xSMA2_hl2 = ta.sma(hl2, nLengthSlow)
xSMA1_SMA2 = xSMA1_hl2 - xSMA2_hl2
xSMA_hl2 = ta.sma(xSMA1_SMA2, nLengthFast)
nRes = xSMA1_SMA2 - xSMA_hl2
cClr = nRes > nRes[1] ? color.blue : color.red
iff_1 = nRes > 0 ? 1 : nz(pos[1], 0)
pos := nRes < 0 ? -1 : iff_1
pos
strategy(title='Combo 2/20 EMA & Accelerator Oscillator (AC)', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ Accelerator Oscillator ═════●'
nLengthSlow = input(33, title="Length Slow", group=I2)
nLengthFast = input(6, title="Length Fast", group=I2)
var misc = '●═════ MISC ═════●'
reverse = input.bool(false, title='Trade reverse', group=misc)
var timePeriodHeader = '●═════ Time Start ═════●'
d = input.int(1, title='From Day', minval=1, maxval=31, group=timePeriodHeader)
m = input.int(1, title='From Month', minval=1, maxval=12, group=timePeriodHeader)
y = input.int(2005, title='From Year', minval=0, group=timePeriodHeader)
StartTrade = time > timestamp(y, m, d, 00, 00) ? true : false
posEMA20 = EMA20(Length)
prePosAC = AC(nLengthSlow,nLengthFast)
iff_1 = posEMA20 == -1 and prePosAC == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosAC == 1 and StartTrade ? 1 : iff_1
iff_2 = reverse and pos == -1 ? 1 : pos
possig = reverse and pos == 1 ? -1 : iff_2
if possig == 1
strategy.entry('Long', strategy.long)
if possig == -1
strategy.entry('Short', strategy.short)
if possig == 0
strategy.close_all()
barcolor(possig == -1 ? #b50404 : possig == 1 ? #079605 : #0536b3)