
Cette stratégie, combinant les moyennes mobiles binaires et les moyennes Williams à trois lignes, forme un système intégré de suivi de tendance et de génération de signaux de renversement de tendance. Elle a une excellente efficacité de maintien de position et peut filtrer efficacement les faux signaux.
Cette stratégie est principalement composée de deux sous-stratégies:
Le Double Exponential Moving Average (DEMA) combine les performances de suivi de tendance d’une moyenne mobile à unité et le retard d’une moyenne mobile à unité. Il peut faire plus rapidement lorsque les prix augmentent; il peut également faire plus rapidement une levée de position lorsque les prix baissent.
Les trois moyennes de Williams. L’indicateur est composé des moyennes longues, moyennes et courtes. Il utilise le croisement de différentes moyennes périodiques pour juger de la variation de la tendance afin de générer un signal de négociation.
Le signal de négociation de cette stratégie est le résultat des deux sous-stratégies ci-dessus pour le calcul de l’axe et de l’axe. C’est-à-dire que la stratégie n’émettra des ordres que lorsque les deux sous-stratégies émettent des signaux en même temps. Cela peut réduire efficacement les faux signaux et améliorer la stabilité de la position.
Le plus grand avantage de cette stratégie est qu’elle permet de filtrer efficacement les faux signaux, ce qui est déterminé par sa structure stratégique. Bien que les moyennes mobiles doubles et les moyennes Williams aient leurs inconvénients, la combinaison des deux peut tirer parti de leurs avantages respectifs et se compenser mutuellement.
De plus, la stratégie a beaucoup d’espace pour optimiser les paramètres, et peut être adaptée aux caractéristiques du marché de différentes variétés et périodes en ajustant les paramètres des moyennes doubles et des moyennes à trois lignes de Williams.
Le principal risque de cette stratégie est que le point d’arrêt peut être franchi et entraîner une perte importante lorsque le marché est en forte volatilité. C’est un problème courant dans les stratégies de moyenne mobile. De plus, dans des situations de choc, la stratégie peut être souvent ouverte en position courte, augmentant la perte de frais de transaction.
Afin de contrôler ces risques, il est recommandé d’utiliser une méthode de Walk Forward Analysis lors de l’optimisation des paramètres et de définir des points de rupture raisonnables. En même temps, il est également possible d’introduire des indicateurs supplémentaires pour juger de l’état des marchés et de suspendre les transactions en cas de choc.
La stratégie a été optimisée dans les domaines suivants:
Adaptez les paramètres de la moyenne mobile à la variété et à la période.
Adaptation de la moyenne de Williams à la fréquence des fluctuations du marché.
Augmentation des conditions d’ouverture des positions, filtrage des signaux de négociation à certains moments de la transaction. Par exemple, ne pas négocier lors de fortes fluctuations.
Augmenter les indices de stop-loss pour contrôler les pertes. Des méthodes telles que le stop-loss, le stop-loss moyen, etc. peuvent être expérimentées.
Introduire des paramètres d’optimisation automatique dans les algorithmes d’apprentissage automatique
Cette stratégie permet de filtrer efficacement les signaux de négociation en combinant les avantages des moyennes doubles et des moyennes Williams. Elle permet de réduire les faux signaux et d’améliorer l’efficacité de la tenue de position. Elle peut obtenir de meilleures performances en optimisant les paramètres en fonction des conditions du marché.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 21/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 indicator calculates 3 Moving Averages for default values of
// 13, 8 and 5 days, with displacement 8, 5 and 3 days: Median Price (High+Low/2).
// The most popular method of interpreting a moving average is to compare
// the relationship between a moving average of the security's price with
// the security's price itself (or between several moving averages).
//
//
// 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
BWA3Lines(LLength,MLength,SLength,LOffset,MOffset,SOffset) =>
pos = 0.0
xLSma = ta.sma(hl2, LLength)[LOffset]
xMSma = ta.sma(hl2, MLength)[MOffset]
xSSma = ta.sma(hl2, SLength)[SOffset]
pos := close < xSSma and xSSma < xMSma and xMSma < xLSma ? -1 :
close > xSSma and xSSma > xMSma and xMSma > xLSma ? 1 : nz(pos[1], 0)
pos
strategy(title='Combo 2/20 EMA & Bill Williams Averages. 3Lines', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ 3Lines ═════●'
LLength = input.int(13, minval=1, group=I2)
MLength = input.int(8,minval=1, group=I2)
SLength = input.int(5,minval=1, group=I2)
LOffset = input.int(8,minval=1, group=I2)
MOffset = input.int(5,minval=1, group=I2)
SOffset = input.int(3,minval=1, 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)
prePosBWA3Lines = BWA3Lines(LLength,MLength,SLength,LOffset,MOffset,SOffset)
iff_1 = posEMA20 == -1 and prePosBWA3Lines == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosBWA3Lines == 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)