La stratégie de croisement des indicateurs de dynamique est une approche de trading basée sur la combinaison des signaux de moyenne mobile exponentielle (EMA) et de l'indice de force relative (RSI).
Le noyau de cette stratégie est le système croisé de lignes EMA rapides et lentes.ema1
, ema2
etema3
Parmi eux,ema1
représente une tendance à court terme,ema2
représente une tendance à moyen terme, etema3
représente une tendance à long terme. Lorsque la tendance à court terme dépasse la tendance à moyen terme, un signal d'achat est généré. Lorsque la tendance à court terme tombe en dessous de la tendance à moyen terme, un signal de vente est généré.
Pour filtrer les faux signaux, la stratégie définit également deux conditions supplémentaires:bodybar1 > bodybar2
etclose > entrybar
(pour le signal d'achat) ouclose < entrybar
Cela garantit que les deux bougies récentes répondent à la direction du signal et que le prix traverse le point d'entrée pour éviter une entrée redondante.
En outre, la stratégie intègre l'indicateur RSI pour évaluer les conditions de surachat et de survente. L'aire de surachat du RSI est utilisée pour définir les signaux d'achat excessifs, tandis que l'aire de survente est utilisée pour définir les signaux de vente excessifs. Cela aide à éviter les mauvais signaux sur les marchés surchauffés et sur-refroidis.
Les avantages de cette stratégie sont les suivants:
Les risques de cette stratégie comprennent:
La stratégie peut être optimisée dans les aspects suivants:
La stratégie d'intersection des indicateurs de dynamisme intègre les forces de l'EMA et du RSI et forme des signaux de trading basés sur des intersections d'indicateurs.
/*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