Stratégie de renversement de croisement à double moyenne mobile


Date de création: 2023-11-22 10:07:19 Dernière modification: 2023-11-22 10:07:19
Copier: 1 Nombre de clics: 605
1
Suivre
1617
Abonnés

Stratégie de renversement de croisement à double moyenne mobile

Aperçu

L’idée principale de cette stratégie est d’utiliser les croisements des moyennes rapides et des moyennes lentes pour juger de la tendance du marché et d’entrer en jeu lorsque les moyennes courtes et longues se retournent, ce qui permet de suivre la tendance.

Principe de stratégie

  1. Réglez les périodes de moyenne rapide (shortma ((7 jours par défaut) et de moyenne lente (longma ((77 jours par défaut))
  2. Lorsque la courte traverse la ligne moyenne sur la longue ligne, elle est considérée comme un signal d’achat, enregistré comme barssince ((mabuy), et la longue ligne signifie une entrée dans la tendance; lorsque la courte traverse la ligne moyenne sur la longue ligne, elle est considérée comme un signal de vente, enregistré comme barssince ((masell), et la longue ligne signifie la fin de la tendance
  3. Comparer la taille des barssince, plus le nombre de barres de la ligne moyenne courte qui se croisent de haut en bas indique la durée plus longue de la tendance; inversement, plus le nombre de barres de la ligne moyenne courte qui se croisent de bas en haut indique la plus forte des signaux de retournement
  4. Un signal d’achat est émis lorsque le nombre de bars du signal de vente est supérieur au nombre de bars du signal d’achat; un signal de vente est émis lorsque le nombre de bars du signal d’achat est supérieur au nombre de bars du signal de vente
  5. Une telle stratégie est essentiellement une stratégie de revers de tendance à la fois avec une ligne moyenne rapide et une ligne moyenne lente.

Avantages stratégiques

  1. Les signaux de transaction de bruit partiels sont filtrés à l’aide d’un jugement à double équilibre.
  2. Augmentation de la comparaison de barssince, évitant les signaux erronés causés par les faux-points et les retournements de prix de clôture
  3. Facile à comprendre et à mettre en œuvre
  4. Paramètres de moyenne mobile personnalisables pour différents cycles et marchés

Risque stratégique

  1. Les stratégies bi-parallèles génèrent plus de signaux et de transactions fréquentes.
  2. Une mauvaise configuration des paramètres de la moyenne mobile peut manquer une opportunité de tendance plus longue
  3. Le point d’arrêt peut être très éloigné et il y a un grand retrait lorsque la moyenne à long terme est franchie
  4. Les marchés en spirale et en tremblement ne peuvent pas être filtrés efficacement

Orientation de l’optimisation de la stratégie

  1. Ajout de filtres sur d’autres indicateurs pour éviter d’être pris dans une situation de choc
  2. Augmentation du mécanisme de prévention des pertes
  3. Optimiser la combinaison de paramètres de la moyenne mobile
  4. Paramètres de la moyenne mobile ajustés en fonction de la dynamique du cycle du marché

Résumer

La stratégie est logiquement claire et compréhensible dans son ensemble. Elle permet de déterminer les points de basculement des tendances du marché en utilisant des courbes rapides et des courbes lentes. En théorie, elle permet de suivre efficacement les tendances.

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

//@version=3
strategy("Up Down", "Up Down", precision = 6, pyramiding = 1, default_qty_type = strategy.percent_of_equity, default_qty_value = 99, commission_type = strategy.commission.percent, commission_value = 0.0, initial_capital = 1000, overlay = true)

buy = close > open and open > close[1]
sell = close < open and open < close[1]

longma = input(77,"Long MA Input")
shortma = input(7,"Short MA Input")
long = sma(close,longma)
short = sma(close, shortma)
mabuy = crossover(short,long) or buy and short > long
masell = crossunder(short,long) or sell and short > long

num_bars_buy = barssince(mabuy)
num_bars_sell = barssince(masell)
//plot(num_bars_buy, color = teal)
//plot(num_bars_sell, color = orange)

xbuy = crossover(num_bars_sell, num_bars_buy)
xsell = crossunder(num_bars_sell, num_bars_buy)
plotshape(xbuy,"Buy Up Arrow", shape.triangleup, location.belowbar, white, size = size.tiny)
plotshape(xsell,"Sell Down Arrow", shape.triangledown, location.abovebar, white, size = size.tiny)
plot(long,"Long MA", fuchsia, 2)

// Component Code Start
// Example usage:
// if testPeriod()
//   strategy.entry("LE", strategy.long)
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(7, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() => true
// Component Code Stop

if testPeriod()
    strategy.entry("buy", true, when = xbuy, limit = close)
    strategy.close("buy", when = xsell)