Stratégie de trading multi-périodes avec indicateur de moyenne mobile et d'écart


Date de création: 2023-12-26 10:13:34 Dernière modification: 2023-12-26 10:13:34
Copier: 0 Nombre de clics: 575
1
Suivre
1623
Abonnés

Stratégie de trading multi-périodes avec indicateur de moyenne mobile et d’écart

Aperçu

Cette stratégie combine trois indices: les moyennes mobiles, les bandes de Brin et les indices relativement faibles pour effectuer des transactions sur plusieurs cycles. Lorsqu’elle achète, elle prend en compte simultanément les trois conditions suivantes: une moyenne mobile lente traversée par une moyenne mobile rapide, un indice relativement faible inférieur à 50 et un prix de clôture inférieur au milieu de la bande de Brin. Lorsqu’elle vend, elle prend en compte un indice relativement faible supérieur à 70 et un prix de clôture supérieur à la bande de Brin.

Principe de stratégie

La stratégie utilise principalement trois indicateurs. Le premier est l’indicateur MACD, qui est composé de moyennes mobiles de deux périodes différentes, rapides et lentes, qui génèrent un signal d’achat lorsque la ligne rapide traverse la ligne lente. Le second est la bande de Bryn, qui est composé de trois lignes: la voie médiane, la voie supérieure et la voie inférieure.

Lors d’une transaction spécifique, la stratégie demande d’abord une moyenne mobile rapide à travers une moyenne mobile lente, indiquant que la dynamique de la hausse des prix des actions est renforcée et que l’on peut acheter. En même temps, elle demande un RSI inférieur à 50, indiquant que les actions peuvent être en zone de survente et entrer dans le moment de l’achat.

En ce qui concerne les arrêts et les arrêts de perte, lorsque le RSI est supérieur à 70, cela indique que le prix de l’action peut être en zone de survente, ce qui indique que l’élan haussier s’est atténué et qu’un arrêt devrait être envisagé. De plus, lorsque le prix de clôture est supérieur à la ceinture de Brin, cela indique également que le prix de l’action peut être trop élevé et qu’il y a un risque de reprise et un arrêt approprié.

Avantages stratégiques

La synthèse de la stratégie utilise les avantages de trois indicateurs: les moyennes mobiles, les bandes de Brin et le RSI, pour déterminer plus précisément le moment de l’achat et de la vente. Les avantages sont les suivants:

  1. Les moyennes mobiles permettent de déterminer l’élan à la hausse des cours, les courbes de Brin permettent de trouver des points d’achat dans la vallée des cours, et le RSI empêche l’achat d’actions à des points élevés. La combinaison de ces trois éléments permet de déterminer le meilleur moment d’achat à moyen terme.

  2. La combinaison du RSI et du Brin sur les rails permet de mieux saisir le pic du cours des actions, d’éviter les sur-achats et d’arrêter la baisse en temps opportun.

  3. L’application d’un jugement multi-cyclique permet de saisir les opportunités de trading à différents niveaux et d’élargir les marges de profit.

  4. La logique de négociation de cette stratégie est simple, claire et facile à comprendre et convient aux investissements à long terme.

Risque stratégique

Bien que la stratégie intègre plusieurs indicateurs de jugement, ce qui augmente la précision des décisions de négociation, les principaux risques sont les suivants:

  1. Les paramètres des moyennes mobiles, des bandes de Brin et du RSI doivent être ajustés en fonction de la situation réelle, car une mauvaise configuration des paramètres peut affecter l’efficacité des transactions.

  2. Les actions sont mieux adaptées à des situations multiples. Dans un marché baissier, les cours des actions baissent plus rapidement et les mesures de blocage des pertes de la stratégie peuvent ne pas être efficaces.

  3. Le risque de la seule action. Cette stratégie est mieux adaptée au portefeuille, le risque de la seule action est toujours présent et nécessite une diversification des investissements.

  4. La fréquence des transactions peut être trop élevée. Si les paramètres sont bien réglés, la stratégie peut être fréquente. Cela augmente les coûts de transaction et les taxes.

La réponse:

  1. Les paramètres doivent être ajustés en fonction des données de retour pour rendre la fréquence de signal de l’indicateur plus appropriée.

  2. Il est possible d’ajuster le cycle de la moyenne mobile de manière appropriée pour réduire la fréquence des achats et réduire les pertes.

  3. Augmentation de la variété des placements et réduction du risque d’une seule action grâce à la diversification des placements.

  4. La libéralisation des conditions d’achat et de vente, ainsi que la réduction de la fréquence des transactions.

Orientation de l’optimisation de la stratégie

Il y a encore de la place pour optimiser cette stratégie:

  1. Il est possible d’introduire des filtres sur d’autres indicateurs, tels que le volume de transactions, afin d’augmenter le volume de transactions lors de l’achat et d’accroître la précision de la décision.

  2. Un module de gestion de position peut être ajouté pour ajuster dynamiquement la position en fonction de la situation du marché.

  3. Il est possible de combiner des algorithmes d’apprentissage en profondeur pour optimiser automatiquement les paramètres en s’entraînant sur de grandes quantités de données.

  4. Il est possible d’ajouter plus de jugements sur des périodes de temps, ce qui élargit la portée.

Résumer

Cette stratégie est globalement logique, facile à comprendre, utilise de multiples indicateurs de jugement, réduit les faux signaux dans une certaine mesure. En optimisant les paramètres et en ajoutant plus d’indicateurs techniques, il est possible d’améliorer encore la précision des décisions et de renforcer la robustesse de la stratégie.

Code source de la stratégie
/*backtest
start: 2023-11-25 00:00:00
end: 2023-12-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//
//@author Alorse
//@version=4
strategy("MACD + BB + RSI [Alorse]", shorttitle="BB + MACD + RSI [Alorse]", overlay=true, pyramiding=0, currency=currency.USD, default_qty_type=strategy.percent_of_equity, initial_capital=1000, default_qty_value=20, commission_type=strategy.commission.percent, commission_value=0.01) 

txtVer = "1.0.1"
version = input(title="Version", type=input.string, defval=txtVer, options=[txtVer], tooltip="This is informational only, nothing will change.")
src = input(title="Source", type=input.source, defval=close)

// MACD
fast_length = input(title="Fast Length", type=input.integer, defval=12, group="MACD")
slow_length = input(title="Slow Length", type=input.integer, defval=26, group="MACD")
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9, group="MACD")
sma_source = input(title="Oscillator MA Type", type=input.string, defval="EMA", options=["SMA", "EMA"], group="MACD")
sma_signal = input(title="Signal Line MA Type", type=input.string, defval="EMA", options=["SMA", "EMA"], group="MACD")
fast_ma = sma_source == "SMA" ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source == "SMA" ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? sma(macd, signal_length) : ema(macd, signal_length)

// Bollinger Bands
bbGroup = "Bollindger Bands"
length = input(20, title="Length", group=bbGroup)
mult = input(2.0, title="StdDev", minval=0.001, maxval=5, group=bbGroup)

basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev

// RSI
rsiGroup = "RSI"
lenRSI = input(14, title="Length", minval=1, group=rsiGroup)
// lessThan = input(50, title="Less than", minval=1 , maxval=100, group=rsiGroup)
RSI = rsi(src, lenRSI)

// Strategy Conditions
buy = crossover(macd, signal) and RSI < 50 and close < basis
sell = RSI > 70 and close > upper


// Stop Loss
slGroup = "Stop Loss"
useSL = input(false, title="╔══════   Enable   ══════╗", group=slGroup, tooltip="If you are using this strategy for Scalping or Futures market, we do not recommend using Stop Loss.")
SLbased = input(title="Based on", type=input.string, defval="Percent", options=["ATR", "Percent"], group=slGroup, tooltip="ATR: Average True Range\nPercent: eg. 5%.")
multiATR = input(10.0, title="ATR   Mult", type=input.float, group=slGroup, inline="atr")
lengthATR = input(14, title="Length", type=input.integer, group=slGroup, inline="atr")
SLPercent = input(10, title="Percent", type=input.float, group=slGroup) * 0.01

longStop = 0.0
shortStop = 0.0

if SLbased == "ATR"
    longStop := valuewhen(buy, low, 0) - (valuewhen(buy, rma(tr(true), lengthATR), 0) * multiATR)
    longStopPrev = nz(longStop[1], longStop)
    longStop := close[1] > longStopPrev ? max(longStop, longStopPrev) : longStop

    shortStop := (valuewhen(sell, rma(tr(true), lengthATR), 0) * multiATR) + valuewhen(sell, high, 0)
    shortStopPrev = nz(shortStop[1], shortStop)
    shortStop := close[1] > shortStopPrev ? max(shortStop, shortStopPrev) : shortStop
if SLbased == "Percent"
    longStop  := strategy.position_avg_price * (1 - SLPercent)
    shortStop := strategy.position_avg_price * (1 + SLPercent)

strategy.entry("Long", true, when=buy)
strategy.close("Long", when=sell, comment="Exit")

if useSL
    strategy.exit("Stop Loss", "Long", stop=longStop)