
La stratégie de croisement d’indicateurs de momentum est une méthode de négociation qui combine les signaux d’une moyenne mobile exponentielle (EMA) et d’un indicateur relativement faible (RSI). La stratégie vise à utiliser la croisée des deux lignes EMA pour générer des signaux d’achat et de vente, permettant ainsi de négocier sur les marchés financiers.
Le cœur de la stratégie est le système de croisement des lignes rapides et lentes de l’EMA. La stratégie définit trois lignes EMA avec différents paramètres:ema1、ema2etema3Parmi eux,ema1La tendance est à court terme.ema2La tendance à moyen terme:ema3Représentant une tendance à long terme. Génère un signal d’achat lorsque la tendance à court terme est au-dessus de la tendance à moyen terme; génère un signal de vente lorsque la tendance à court terme est au-dessous de la tendance à moyen terme.
Pour filtrer les signaux diagnostiques erronés, la stratégie définit deux conditions supplémentaires:bodybar1 > bodybar2etclose > entrybar(signaux d’achat) ouclose < entrybar(Signal de vente) [2]. Cela garantit que la relation de longueur d’entité des deux lignes K les plus proches est conforme à la direction du signal et que le prix franchit le point d’entrée, évitant ainsi la répétition de l’entrée [2].
En outre, la stratégie est combinée avec l’indicateur RSI evalue, la zone haute du RSI est utilisée pour définir un signal de survente et la zone basse du RSI est utilisée pour définir un signal de survente. Cela aide à éviter de produire des signaux erronés dans des marchés surchauffés et surchauffés.
Cette stratégie présente les avantages suivants:
La stratégie présente également les risques suivants:
Cette stratégie peut être optimisée dans les directions suivantes:
La stratégie de croisement d’indicateurs dynamiques intègre les avantages de l’EMA et du RSI pour former des signaux de négociation basés sur la croisée d’indicateurs. La stratégie est simple et pratique, adaptée aux débutants, mais peut également être étendue et optimisée en fonction des besoins réels pour améliorer l’efficacité de la stratégie. Grâce à une gestion rigoureuse des risques, la stratégie est susceptible de générer des gains supplémentaires stables.
/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy('EMA Crossover Strategy', shorttitle='EMA Crossover', overlay=true)
// Define input for position size as a percentage of equity
position_size_pct = input(1, title='Position Size (%)') / 100
//Input EMA
len1 = input.int(25, minval=1, title='EMA 1')
src1 = input(close, title='Source')
ema1 = ta.ema(src1, len1)
len2 = input.int(100, minval=1, title='EMA 2')
src2 = input(close, title='Source')
ema2 = ta.ema(src2, len2)
len3 = input.int(200, minval=1, title='EMA 3')
src3 = input(close, title='Source')
ema3 = ta.ema(src3, len3)
//End of format
//Format RSI
lenrsi = input(14, title='RSI length')
outrsi = ta.rsi(close,lenrsi)
//plot(outrsi, title='RSI', color=color.new(color.blue, 0), linewidth=1)
//hline(70, 'Overbought', color=color.red)
//hline(30, 'Oversold', color=color.green)
//End of format
bodybar1 = math.abs(close - open)
bodybar2 = math.abs(close[1] - open[1])
// Plot the EMAs
plot(ema1, color=color.new(color.blue, 0), title='EMA 1')
plot(ema2, color=color.new(color.red, 0), title='EMA 2')
//plot(ema3, color=color.new(#ffffff, 0), title='EMA 3')
// EMA Crossover conditions
emaCrossoverUp = ta.crossover(ema1, ema2)
emaCrossoverDown = ta.crossunder(ema1, ema2)
var entrybar = close // Initialize entrybar with the current close
// Calculate crossovers outside of the if statements
emaCrossoverUpOccured = ta.crossover(close, ema1) and ema1 > ema2 and bodybar1 > bodybar2 and close > entrybar
emaCrossoverDownOccured = ta.crossunder(close, ema1) and ema1 < ema2 and bodybar1 > bodybar2 and close < entrybar
plotshape(series=emaCrossoverUpOccured, location=location.abovebar, color=color.new(color.green, 0), style=shape.triangleup, title='New Buy Order', size=size.tiny)
plotshape(series=emaCrossoverDownOccured, location=location.belowbar, color=color.new(color.red, 0), style=shape.triangledown, title='New Sell Order', size=size.tiny)
// Define trading logic with custom position size and RSI conditions
if emaCrossoverUp or emaCrossoverUpOccured
strategy.entry('Buy', strategy.long)
entrybar := close // Update entrybar when entering a new buy position
entrybar
if emaCrossoverDown or emaCrossoverDownOccured
strategy.entry('Sell', strategy.short)
entrybar := close // Update entrybar when entering a new sell position
entrybar