La stratégie utilise le croisement de la moyenne mobile à 5 jours (EMA5) et de la moyenne mobile à 13 jours (EMA13) pour générer un signal de négociation. Lorsqu’un EMA5 est porté sur EMA13, un signal de multiplication est généré; lorsqu’un EMA5 est porté sur EMA13, un signal de rupture est généré. La stratégie vise à capturer les changements de tendances à court terme et utilise le croisement des deux moyennes mobiles pour déterminer les points d’entrée et de sortie.
Le cœur de cette stratégie est de générer un signal de négociation en utilisant le croisement de deux moyennes mobiles indicielles (EMA) de différentes périodes. L’EMA est un indicateur technique couramment utilisé qui donne plus de poids aux données de prix les plus récentes et reflète donc plus en temps opportun les changements de prix que la simple moyenne mobile (SMA).
La stratégie de croisement entre EMA5 et EMA13 est une stratégie de suivi de tendance simple et facile à utiliser pour capturer les changements de tendance des prix par le croisement de deux EMA de différentes périodes. L’avantage de cette stratégie réside dans sa simplicité, son adaptabilité et sa rapidité, mais il existe également des risques tels que de faux signaux, de retard et de manque de stop-loss.
/*backtest
start: 2023-05-11 00:00:00
end: 2024-05-16 00:00:00
period: 2d
basePeriod: 1d
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/
// © Milankacha
//@version=5
strategy('5-13 EMA by Naimesh ver04', overlay=true)
qty = input(1, 'Buy quantity')
testStartYear = input(2021, 'Backtest Start Year')
testStartMonth = input(1, 'Backtest Start Month')
testStartDay = input(1, 'Backtest Start Day')
testStartHour = input(0, 'Backtest Start Hour')
testStartMin = input(0, 'Backtest Start Minute')
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, testStartMin)
testStopYear = input(2099, 'Backtest Stop Year')
testStopMonth = input(1, 'Backtest Stop Month')
testStopDay = input(30, 'Backtest Stop Day')
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)
testPeriodBackground = input(title='Color Background?', defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? #00FF00 : na
testPeriod() => true
ema1 = input(5, title='Select EMA 1')
ema2 = input(13, title='Select EMA 2')
//ema3 = input(50, title='Select EMA 3')
//SL = input(70, title='Stoploss')
//TR = input(250, title='Target')
expo = ta.ema(close, ema1)
ma = ta.ema(close, ema2)
//EMA_50 = ta.ema(close, ema3)
//avg_1 = avg (expo, ma)
//s2 = ta.cross(expo, ma) ? avg_1 : na
//plot(s2, style=plot.style_line, linewidth=3, color=color.red, transp=0)
p1 = plot(expo, color=color.rgb(231, 15, 15), linewidth=2)
p2 = plot(ma, color=#0db63a, linewidth=2)
fill(p1, p2, color=color.new(color.white, 80))
longCondition = ta.crossover(expo, ma)
shortCondition = ta.crossunder(expo, ma)
if testPeriod()
//strategy.entry('Long', strategy.long, when=longCondition)
strategy.entry('Short', strategy.short, when=expo<ma)
//strategy.close("Long", expo<ma, comment= 'SL hit')
strategy.close("Short", expo>ma, comment= 'SL hit')
//plotshape(longCondition and close>EMA_50, title='Buy Signal', text='B', textcolor=color.new(#FFFFFF, 0), style=shape.labelup, size=size.normal, location=location.belowbar, color=color.new(#1B8112, 0))
//plotshape(shortCondition and close<EMA_50, title='Sell Signal', text='S', textcolor=color.new(#FFFFFF, 0), style=shape.labeldown, size=size.normal, location=location.abovebar, color=color.new(#FF5733, 0))