Stratégie d'inversion de la moyenne mobile double


Date de création: 2023-11-03 16:51:18 Dernière modification: 2023-11-03 16:51:18
Copier: 2 Nombre de clics: 595
1
Suivre
1621
Abonnés

Stratégie d’inversion de la moyenne mobile double

Aperçu

Cette stratégie utilise deux indicateurs pour générer des signaux de négociation: l’indicateur de la moyenne mobile 2020 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.

Le principe

La stratégie est composée de deux volets:

  1. L’indice 220 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.

  2. 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 220 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 220 EMA génère un signal à vide et que l’ATR se retourne pour générer un signal à plusieurs têtes, faites plus.

Analyse des avantages

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.

  1. 220 L’EMA est capable de reconnaître les tendances intermédiaires et d’éviter d’être trompée par le bruit du marché.

  2. L’indicateur de retournement ATR permet de capturer les retournements de prix à court terme et de saisir les opportunités de retournement.

  3. 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.

  4. Le paramètre de stop loss ATR est plus raisonnable et a un certain effet de contrôle des risques.

  5. Le multiplicateur ATR peut être personnalisé pour s’adapter aux caractéristiques de différentes variétés.

  6. Il est possible de choisir d’effectuer une transaction à l’envers ou à l’axe, selon les circonstances.

Analyse des risques

La stratégie présente également les risques suivants:

  1. Le paramètre 220 EMA est plus lent et peut manquer une occasion de courte ligne.

  2. Le stop ATR est susceptible d’être dépassé et doit être relâché de manière appropriée.

  3. Un seul indicateur est susceptible de générer des signaux erronés et doit être combiné avec d’autres facteurs filtrants.

  4. Attention à la fréquence des transactions, afin de ne pas les faire trop souvent.

  5. Optimisation et retestation des paramètres sont nécessaires pour confirmer la pertinence de la variété.

  6. Il est nécessaire de respecter strictement la gestion des fonds et de contrôler les risques individuels.

Direction d’optimisation

Cette stratégie peut être optimisée dans les domaines suivants:

  1. Ajustez les paramètres EMA pour trouver la meilleure combinaison de paramètres

  2. Optimisation de la taille du coefficient ATR pour équilibrer le stop loss

  3. Augmentation des conditions de filtrage, combinant des indicateurs tels que le taux de change, la volatilité

  4. Ajout d’un module de gestion de fonds et ajustement dynamique des positions

  5. Augmentation des stratégies de stop-loss, telles que la sortie de Chandelier

  6. Tester l’efficacité des paramètres de différentes variétés pour trouver la meilleure combinaison

  7. Un modèle d’apprentissage automatique pour améliorer les performances grâce au Big Data

  8. Combiner plusieurs stratégies pour découvrir plus d’alpha

Résumer

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.

Code source de la stratégie
/*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)