
Cette stratégie est basée sur le principe de la fourche dorée des moyennes mobiles simples (SMA). La stratégie utilise deux SMA, soit le SMA rapide et le SMA lent, qui génèrent un signal d’achat lorsque le SMA rapide franchit le SMA lent par le bas et un signal de vente lorsque le SMA rapide franchit le SMA lent par le haut.
La stratégie repose principalement sur deux lignes de l’indicateur SMA. Parmi celles-ci, les réglages plus courts pendant les SMA rapides permettent de capturer plus rapidement les variations de prix; les réglages plus longs pendant les SMA lents permettent de filtrer une partie du bruit. Lorsque les SMA rapides croisent les SMA lents en bas, cela signifie que les prix à court terme augmentent plus rapidement, ce qui génère un signal d’achat.
Les paramètres de la stratégie peuvent être adaptés à différents environnements de marché en définissant différents paramètres de cycle SMA. De plus, la stratégie permet de définir des intervalles de temps de rétrogradation, ce qui facilite le test des paramètres de la stratégie sur des données historiques.
Les mesures suivantes peuvent être prises pour contrer ces risques:
Cette stratégie est une stratégie de suivi de tendance typique. Elle utilise un principe simple de croisement biuniversale, qui permet d’obtenir de meilleurs résultats de suivi, à condition que les paramètres soient configurés de manière appropriée. Cependant, la SMA elle-même est un peu en retard et ne permet pas de juger de la force de la tendance.
/*backtest
start: 2023-12-17 00:00:00
end: 2023-12-18 19:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//strategy(title="MA Cross Entry & Exit w/Date Range", overlay=true, initial_capital=10000, currency='USD')
strategy(title="SMA Cross Entry & Exit Strategy", overlay=true)
// Credit goes to this developer for the "Date Range Code"
// https://www.tradingview.com/script/62hUcP6O-How-To-Set-Backtest-Date-Range/
// === GENERAL INPUTS ===
// short ma
maFastSource = input(defval = open, title = "Fast MA Source")
maFastLength = input(defval = 36, title = "Fast MA Period", minval = 1)
// long ma
maSlowSource = input(defval = open , title = "Slow MA Source")
maSlowLength = input(defval = 46, title = "Slow MA Period", minval = 1)
// === SERIES SETUP ===
// a couple of ma's..
maFast = sma(maFastSource, maFastLength)
maSlow = sma(maSlowSource, maSlowLength)
// === PLOTTING ===
fast = plot(maFast, title = "Fast MA", color = red, linewidth = 2, style = line, transp = 30)
slow = plot(maSlow, title = "Slow MA", color = green, linewidth = 2, style = line, transp = 30)
// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
// === FUNCTION EXAMPLE ===
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => time >= start and time <= finish ? true : false // create function "within window of time"
// === LOGIC ===
//enterLong = crossover(maFast, maSlow)
//exitLong = crossover(maSlow, maFast)
enterLong = crossover(maSlow, maFast)
exitLong = crossover(maFast, maSlow)
// Entry //
strategy.entry(id="Long Entry", long=true, when=window() and enterLong)
strategy.entry(id="Short Entry", long=false, when=window() and exitLong)
// === FILL ====
fill(fast, slow, color = maFast > maSlow ? green : red)