Tendance croisée moyenne mobile suivant la stratégie

Auteur:ChaoZhang est là., Date: 2024-02-05 14:12:27 Je vous en prie.
Les étiquettes:

img

Résumé

La stratégie de suivi de la tendance de la moyenne mobile est une stratégie de trading quantitative qui suit les tendances du marché.

La logique de la stratégie

Le principe de base de cette stratégie est de juger les tendances du marché en utilisant des moyennes mobiles exponentielles (EMA) avec différents paramètres. La stratégie définit une EMA rapide et une EMA lente. Lorsque l'EMA rapide dépasse la EMA lente, cela indique un renversement de tendance haussière sur le marché. Lorsque l'EMA rapide dépasse la EMA lente, cela indique un renversement de tendance baissière.

Lors des croisements à la hausse, la stratégie ouvrira des positions longues. Lors des croisements à la baisse, la stratégie ouvrira des positions courtes. La stratégie maintiendra sa position jusqu'à ce que le profit ou le stop loss soit déclenché, ou qu'un croisement dans la direction opposée se produise à nouveau.

Analyse des avantages

La stratégie présente les avantages suivants:

  1. La logique stratégique est simple et claire, facile à comprendre et à mettre en œuvre, adaptée aux débutants;
  2. L'utilisation des EMA pour lisser les prix peut filtrer efficacement le bruit du marché et identifier les tendances;
  3. Les paramètres peuvent être ajustés de manière flexible pour s'adapter aux marchés aux cycles différents;
  4. La stratégie peut être étendue à des versions multi-temporelles afin d'améliorer la stabilité.

Analyse des risques

La stratégie comporte également certains risques:

  1. Dans les marchés de variation, plusieurs arrêts de pertes peuvent se produire, ce qui a une incidence sur la rentabilité;
  2. Il ne peut pas identifier efficacement les types de tendance (baissière ou haussière), ce qui peut entraîner de lourdes pertes;
  3. Les paramètres de l'EMA ne sont pas correctement réglés et peuvent entraîner une survente ou des retards de détection.

Pour atténuer les risques, envisagez de combiner d'autres indicateurs pour déterminer les types de tendance ou de définir des ratios d'arrêt-perte plus larges.

Directions d'optimisation

La stratégie peut également être optimisée dans les aspects suivants:

  1. accroître le jugement sur les types de tendance afin d' éviter d' ouvrir des positions contre tendance;
  2. ajouter des jugements multi-temporels pour améliorer la qualité du signal;
  3. Ajustez dynamiquement les taux de stop loss et de profit pour optimiser les points de sortie;
  4. Combinez d'autres indicateurs pour filtrer les transactions erronées.

Conclusion

En résumé, la stratégie de suivi de tendance de la moyenne mobile est une stratégie de trading de tendance simple et pratique. Les idées de base de la stratégie sont claires et faciles à mettre en œuvre, et il y a également de la place pour l'optimisation. En ajustant les paramètres, en ajoutant une analyse multi-temporelle, des arrêts dynamiques, etc., la stabilité et la rentabilité de la stratégie peuvent être continuellement améliorées.


/*backtest
start: 2024-01-28 00:00:00
end: 2024-02-04 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('Zhukov trade', overlay=true, calc_on_every_tick=true, currency=currency.USD)

// INPUT:

// Options to enter fast and slow Exponential Moving Average (EMA) values
emaFast = input.int(title='Fast EMA', defval=10, minval=1, maxval=9999)
emaSlow = input.int(title='Slow EMA', defval=20, minval=1, maxval=9999)

// Option to select trade directions
tradeDirection = input.string(title='Trade Direction', options=['Long', 'Short', 'Both'], defval='Both')

// Options that configure the backtest date range
startDate = input(title='Start Date', defval=timestamp('01 Jan 2023 00:00'))
endDate = input(title='End Date', defval=timestamp('31 Dec 2030 23:59'))

// Set take profit and stop loss percentages
take_profit_percent = input(1.0, title ="Take Profit Percent") / 100.0
stop_loss_percent = input(1.0, title ="Stop Loss Percent") / 100.0

// CALCULATIONS:

// Use the built-in function to calculate two EMA lines
fastEMA = ta.ema(close, emaFast)
slowEMA = ta.ema(close, emaSlow)
emapos = ta.ema(close, 200)

// PLOT:

// Draw the EMA lines on the chart
plot(series=fastEMA, color=color.new(color.orange, 0), linewidth=2)
plot(series=slowEMA, color=color.new(color.blue, 0), linewidth=2)
plot(series=emapos, color=color.new(color.red, 0), linewidth=2)

// CONDITIONS:

// Check if the close time of the current bar falls inside the date range
inDateRange = true

// Translate input into trading conditions
longOK = tradeDirection == 'Long' or tradeDirection == 'Both'
shortOK = tradeDirection == 'Short' or tradeDirection == 'Both'

// Decide if we should go long or short using the built-in functions
longCondition = ta.crossover(fastEMA, slowEMA) and inDateRange
shortCondition = ta.crossunder(fastEMA, slowEMA) and inDateRange

// ORDERS:

// Submit entry (or reverse) orders
if longCondition and longOK
    strategy.entry(id='long', direction=strategy.long)

if shortCondition and shortOK
    strategy.entry(id='short', direction=strategy.short)

// Exit orders
if strategy.position_size > 0 and longOK
    strategy.exit(id='exit long', from_entry='long', limit=strategy.position_avg_price * (1 + take_profit_percent), stop=strategy.position_avg_price * (1 - stop_loss_percent))

if strategy.position_size < 0 and shortOK
    strategy.exit(id='exit short', from_entry='short', limit=strategy.position_avg_price * (1 - take_profit_percent), stop=strategy.position_avg_price * (1 + stop_loss_percent))


Plus de