
Cette stratégie utilise deux indicateurs pour générer des signaux de négociation: l’indicateur de la moyenne mobile 20⁄20 et l’indicateur de l’inversion de la gamme de fluctuation réelle moyenne. Elle combine deux grandes idées stratégiques de suivi de la tendance et d’inversion à court terme, visant à trouver des opportunités d’inversion.
La stratégie est composée de deux volets:
L’indice 2⁄20 est une moyenne mobile. Il calcule la moyenne mobile de l’indice pour les 20 derniers jours et génère un signal de transaction lorsque le prix est traversé par une moyenne mobile de haut en bas ou de bas en haut.
L’indicateur d’inversion de la plage de fluctuation réelle moyenne. Il est basé sur la plage de fluctuation réelle moyenne du prix pour calculer le point d’arrêt, générant un signal lorsque le prix franchit ce point d’arrêt.
Cette stratégie intègre les deux signaux. Lorsque 2⁄20 EMA génère un signal à plusieurs têtes et que l’ATR se retourne pour générer un signal à vide, faites le vide; lorsque 2⁄20 EMA génère un signal à vide et que l’ATR se retourne pour générer un signal à plusieurs têtes, faites plus.
Cette stratégie combine les deux concepts de suivi de la tendance et de retournement de tendance, et vise à détecter les occasions de retournement de prix.
2⁄20 L’EMA est capable de reconnaître les tendances intermédiaires et d’éviter d’être trompée par le bruit du marché.
L’indicateur de retournement ATR permet de capturer les retournements de prix à court terme et de saisir les opportunités de retournement.
La combinaison de ces deux signaux permet d’attraper les retournements de tendance à moyen terme plus tôt, ce qui augmente la probabilité de gagner.
Le paramètre de stop loss ATR est plus raisonnable et a un certain effet de contrôle des risques.
Le multiplicateur ATR peut être personnalisé pour s’adapter aux caractéristiques de différentes variétés.
Il est possible de choisir d’effectuer une transaction à l’envers ou à l’axe, selon les circonstances.
La stratégie présente également les risques suivants:
Le paramètre 2⁄20 EMA est plus lent et peut manquer une occasion de courte ligne.
Le stop ATR est susceptible d’être dépassé et doit être relâché de manière appropriée.
Un seul indicateur est susceptible de générer des signaux erronés et doit être combiné avec d’autres facteurs filtrants.
Attention à la fréquence des transactions, afin de ne pas les faire trop souvent.
Optimisation et retestation des paramètres sont nécessaires pour confirmer la pertinence de la variété.
Il est nécessaire de respecter strictement la gestion des fonds et de contrôler les risques individuels.
Cette stratégie peut être optimisée dans les domaines suivants:
Ajustez les paramètres EMA pour trouver la meilleure combinaison de paramètres
Optimisation de la taille du coefficient ATR pour équilibrer le stop loss
Augmentation des conditions de filtrage, combinant des indicateurs tels que le taux de change, la volatilité
Ajout d’un module de gestion de fonds et ajustement dynamique des positions
Augmentation des stratégies de stop-loss, telles que la sortie de Chandelier
Tester l’efficacité des paramètres de différentes variétés pour trouver la meilleure combinaison
Un modèle d’apprentissage automatique pour améliorer les performances grâce au Big Data
Combiner plusieurs stratégies pour découvrir plus d’alpha
Cette stratégie intègre deux grandes idées et a une certaine capacité de capture de l’inversion des prix. Mais il existe également des risques liés à une mauvaise sélection des paramètres. La stabilité et la rentabilité de la stratégie peuvent être encore améliorées en optimisant la stratégie de stop loss, en ajoutant des conditions de filtrage, etc.
/*backtest
start: 2022-10-27 00:00:00
end: 2023-11-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 05/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
// Average True Range Trailing Stops Strategy, by Sylvain Vervoort
// The related article is copyrighted material from Stocks & Commodities Jun 2009
// Please, use it only for learning or paper trading. Do not for real trading.
//
//
// 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
ATRR(nATRPeriod,nATRMultip) =>
pos = 0.0
xATR = ta.atr(nATRPeriod)
nLoss = nATRMultip * xATR
xATRTrailingStop = 0.0
xATRTrailingStop := close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), close - nLoss) :
close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0) ? math.min(nz(xATRTrailingStop[1]), close + nLoss) :
close > nz(xATRTrailingStop[1], 0) ? close - nLoss : close + nLoss
pos:= close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0) ? 1 :
close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0) ? -1 : nz(pos[1], 0)
pos
strategy(title='Combo 2/20 EMA & Average True Range Reversed', shorttitle='Combo', overlay=true)
var I1 = '●═════ 2/20 EMA ═════●'
Length = input.int(14, minval=1, group=I1)
var I2 = '●═════ Average True Range Reversed ═════●'
nATRPeriod = input.int(5, group=I2)
nATRMultip = input.float(3.5, 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)
prePosATRR = ATRR(nATRPeriod,nATRMultip)
iff_1 = posEMA20 == -1 and prePosATRR == -1 and StartTrade ? -1 : 0
pos = posEMA20 == 1 and prePosATRR == 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)