
Cette stratégie est appelée stratégie de combinaison de l’indicateur de la ligne moyenne d’inclinaison et de la volatilité des prix. Elle combine une moyenne mobile à double exponentiel (DEMA) et un indicateur de la volatilité des prix pour générer un signal de négociation intégré.
La stratégie est composée de deux volets:
L’indicateur DEMA, qui calcule les moyennes mobiles indicielles du 20e et du 2e jour, génère un signal de transaction lorsque le prix franchit la ligne du 2e jour de haut en bas ou la ligne du 20e jour de bas en haut.
L’indicateur reflète l’ampleur des fluctuations des prix au cours d’un cycle. Ici, nous calculons une moyenne mobile simple de 16 jours des indicateurs de fluctuation des 20 dernières lignes K, qui génère un signal de transaction lorsque la fluctuation de la ligne K actuelle est supérieure ou inférieure à cette moyenne.
La combinaison des deux ensembles de signaux, si le DEMA et l’indicateur de volatilité émettent un signal simultané, génère une instruction finale de négociation de plusieurs têtes ou de têtes vides.
Cette stratégie présente les avantages suivants:
La combinaison de plusieurs indicateurs permet de réduire les faux signaux et d’améliorer la fiabilité des signaux.
La ligne 20 permet d’identifier efficacement les tendances à moyen et long terme, la ligne 2 capte les fluctuations à court terme, et l’utilisation combinée permet de faire face à différentes conditions de marché.
L’indicateur de volatilité permet de refléter efficacement la volatilité du marché et les opportunités de négociation.
En ajustant les paramètres, il est possible de s’adapter à différents types de marché et à différents cycles.
Cette stratégie comporte aussi des risques:
Dans les marchés tendanciels où la volatilité est faible, l’indicateur de volatilité peut générer de faux signaux. Le filtrage peut être effectué en combinaison avec d’autres indicateurs de liquidité.
Dans un mouvement unilatéral rapide, une double EMA peut entraîner un retard. Les paramètres peuvent être raccourcis de manière appropriée ou combinés avec d’autres indicateurs.
La combinaison de plusieurs indicateurs augmente la complexité de la stratégie et augmente le risque de sur-optimisation. Un retour complet et des tests de stabilité des paramètres sont nécessaires.
La stratégie peut également être optimisée pour:
L’augmentation des mécanismes d’arrêt des pertes permet de contrôler efficacement chaque perte.
Les paramètres sont optimisés en fonction des variétés et des périodes, ce qui les rend plus adaptables.
Augmentation de la fluidité et de l’indicateur de volatilité en combinaison pour améliorer la qualité du signal.
L’ajout d’algorithmes d’apprentissage automatique, de paramètres dynamiques et d’ajustement de poids.
La stratégie, combinant une double EMA et des indicateurs de volatilité, permet d’obtenir de bonnes performances de négociation dans les marchés en tendance et en tremblement. Il existe également un certain risque qui nécessite une optimisation et une amélioration supplémentaires. Mais dans l’ensemble, la stratégie est claire et a une valeur opérationnelle réelle.
/*backtest
start: 2023-11-17 00:00:00
end: 2023-12-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 12/04/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
// This histogram displays (high-low)/close
// Can be applied to any time frame.
//
//
// 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
HLCH(input_barsback,input_percentorprice,input_smalength) =>
pos = 0.0
xPrice = (high-low)/close
xPriceHL = (high-low)
xPrice1 = input_percentorprice ? xPrice * 100: xPriceHL
xPrice1SMA = ta.sma(math.abs(xPrice1), input_smalength)
pos := xPrice1SMA[input_barsback] > math.abs(xPrice1) ? 1 :
xPrice1SMA[input_barsback] < math.abs(xPrice1) ? -1 : nz(pos[1], 0)
pos
strategy(title='Combo 2/20 EMA & (H-L)/C Histogram', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ (H-L)/C Histogram ═════●'
input_barsback = input(20, title="Look Back", group=I2)
input_percentorprice = input(false, title="% change", group=I2)
input_smalength = input(16, title="SMA Length", 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)
prePosHLCH = HLCH(input_barsback,input_percentorprice,input_smalength)
iff_1 = posEMA20 == -1 and prePosHLCH == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosHLCH == 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)