Stratégie de croisement de moyennes mobiles doubles Momentum


Date de création: 2023-10-20 16:44:30 Dernière modification: 2023-10-20 16:44:30
Copier: 1 Nombre de clics: 618
1
Suivre
1617
Abonnés

Stratégie de croisement de moyennes mobiles doubles Momentum

Aperçu

Cette stratégie utilise la croisée des lignes pour déterminer la direction de la dynamique des prix, en complément de la fourche dorée pour déterminer la tendance globale, permettant le suivi de la tendance.

Principe de stratégie

La stratégie utilise l’intersection des deux lignes de mesure EMA et SMA pour juger de la direction de la dynamique des prix. L’EMA réagit plus rapidement et la réaction SMA est plus stable.

En outre, la stratégie utilise également la croisée des SMA à cycle rapide et des SMA à cycle lent pour juger de la direction de la tendance globale. Lorsqu’un SMA à cycle rapide traverse un SMA à cycle lent, c’est une fourche dorée, jugée comme une tendance à la hausse à long terme; lorsqu’un SMA à cycle rapide traverse un SMA à cycle lent, c’est une fourche morte, jugée comme une tendance à la baisse à long terme.

La stratégie est jugée comme une opportunité de surenchère lorsqu’elle traverse le SMA sur l’EMA. Si c’est une fourche dorée, cela indique que la surenchère n’a pas seulement un soutien dynamique à court terme, mais aussi en accord avec la tendance à long terme, ce qui est une bonne opportunité de surenchère; si c’est une fourche morte, cela indique que la surenchère n’a que un soutien dynamique à court terme, ce qui n’est pas en accord avec la tendance à long terme, ce qui est une opportunité de surenchère plus risquée.

Analyse des avantages

  • Le croisement des moyennes pour déterminer le mouvement et la direction des prix
  • En tenant compte des dynamiques à court terme et des tendances à long terme
  • Signal de confirmation à double indicateur, plus fiable
  • Adaptable à différentes périodes en ajustant les paramètres de la moyenne
  • Configurable pour afficher des signaux de transaction spécifiques, l’interface est personnalisable

Analyse des risques

  • Le décalage de la ligne moyenne peut entraîner une perte des meilleurs points d’achat et de vente
  • Les SMA à cycle fixe ne peuvent pas refléter les variations de prix en temps réel
  • Une moyenne à longue et courte périodes peut générer un faux signal de croisement
  • Le risque d’augmentation de capital à long terme

Le risque peut être réduit en combinant des signaux de confirmation avec d’autres indicateurs, en optimisant les paramètres de cycle de la moyenne, ou en définissant un stop-loss.

Direction d’optimisation

  • Ajouter des filtres sur d’autres indicateurs tels que le volume des transactions, les bandes de Brent, etc.
  • Augmentation des stratégies de réduction des pertes
  • Optimiser le paramètre de périodicité moyenne
  • Optimisation de la gestion des fonds
  • Considérer un ajustement en temps réel du ratio de position

Résumer

Cette stratégie est une stratégie de suivi de tendance plus stable et plus fiable dans l’ensemble. Elle prend en compte à la fois la dynamique des prix à court terme et la direction de la tendance à long terme, formant un signal de transaction par la croisée des courbes. Par rapport à une seule stratégie de courbe, elle est associée à une confirmation de double indicateur.

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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Cryptoluc1d

//@version=4
strategy("Equal-Length EMA/SMA Crossover Strategy", initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=25, commission_type=strategy.commission.percent, commission_value=0.2, overlay=true)

// Create inputs

mom_length = input(title="Momentum Length (EMA=SMA)", defval=50)
bias_length_fast  = input(title="Golden Cross Length (Fast)", defval=50)
bias_length_slow  = input(title="Golden Cross Length (Slow)", defval=100)

// Define MAs

ema = ema(close, mom_length) // EMA/SMA crossover of the same period for detecting trend acceleration/deceleration
sma = sma(close, mom_length)
bias_fast = sma(close, bias_length_fast) // golden/death cross for overall trend bias
bias_slow = sma(close, bias_length_slow)

// Define signal conditions

buy_trend = crossover(ema, sma) and bias_fast >= bias_slow // buy when EMA cross above SMA. if this happens during a bullish golden cross, buying is in confluence with the overall trend (bias).
buy_risky = crossover(ema, sma) and bias_fast < bias_slow // buy when EMA cross above SMA. if this happens during a bearish death cross, buying is early, more risky, and not in confluence with the overall trend (bias).
buy_late = crossover(sma, bias_slow) and ema > sma // the SMA crossing the Slow_SMA gives further confirmation of bullish trend, but signal comes later.
sell = crossunder(ema, sma) // sell when EMA cross under SMA.

// Enable option to hide signals, then plot signals

show_signal = input(title="Show Signals", defval=true)

plotshape(show_signal ? buy_trend : na, title='Trend Buy', style=shape.triangleup, location=location.belowbar, color=color.green, text='TREND BUY')
plotshape(show_signal ? buy_risky : na, title='Risky Buy', style=shape.triangleup, location=location.belowbar, color=color.olive, text='RISKY BUY')
plotshape(show_signal ? buy_late : na, title='Late Buy', style=shape.triangleup, location=location.belowbar, color=color.lime, text='LATE BUY')
plotshape(show_signal ? sell : na, title='Sell', style=shape.triangledown, location=location.abovebar, color=color.red, text='SELL')

// Define entry and exit conditions

longCondition = ema > sma and bias_fast >= bias_slow // LONG when EMA above SMA, and overall trend bias is bullish
if (longCondition)
    strategy.entry("BUY TREND", strategy.long)
exitLong = crossunder(ema, sma) // close LONG when EMA cross under SMA
strategy.close("BUY TREND", when=exitLong)

// // short conditions. turned off because up only.
// shortCondition = ema < sma and bias_fast <= bias_slow // SHORT when EMA under SMA, and overall trend bias is bearish
// if (shortCondition)
//     strategy.entry("SELL TREND", strategy.short)
// exitShort = crossover(ema, sma) // close SHORT when EMA cross over SMA
// strategy.close("SELL TREND", when=exitShort)

// Enable option to show MAs, then plot MAs

show_ma = input(title="Show MAs", defval=false)

plot(show_ma ? ema : na, title="Momentum EMA", color=color.green, linewidth=1)
plot(show_ma ? sma : na, title="Momentum SMA", color=color.yellow, linewidth=1)
plot(show_ma ? bias_fast : na, title="Golden Cross SMA (Fast)", color=color.orange, linewidth=2)
plot(show_ma ? bias_slow : na, title="Golden Cross SMA (Slow)", color=color.red, linewidth=2)