
La stratégie de suivi de tendance croisée des moyennes mobiles est une stratégie de négociation quantitative qui suit les tendances du marché. La stratégie consiste à calculer des moyennes mobiles rapides et des moyennes mobiles lentes et à générer des signaux de négociation lorsqu’elles se croisent afin de capturer les points de basculement des tendances du marché.
Le principe central de cette stratégie est d’utiliser différents paramètres de l’EMA pour déterminer la tendance du marché. La stratégie définit une EMA rapide et une EMA lente.
Lorsqu’elle est en hausse, la stratégie ouvre une position plus élevée et lorsqu’elle est en baisse, elle ouvre une position vide. La stratégie maintient la position jusqu’à ce que le stop loss soit déclenché ou qu’un autre signal de revers croisé se produise.
Cette stratégie présente les avantages suivants:
Cette stratégie comporte aussi des risques:
Pour réduire le risque, vous pouvez envisager de déterminer le type de tendance en le combinant avec d’autres indicateurs, ou de définir un stop-loss plus souple.
La stratégie peut également être optimisée dans les domaines suivants:
La stratégie de suivi de tendance croisée mobile est une stratégie de trading de tendance simple et pratique. L’idée centrale de la stratégie est claire et facile à mettre en pratique, mais il existe également une certaine marge d’optimisation. La stabilité et la rentabilité de la stratégie peuvent être continuellement améliorées par l’ajustement des paramètres, le jugement à plusieurs cycles et le stop loss dynamique.
/*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))