
Esta estrategia se basa en el principio de la horquilla de oro de la media móvil simple (SMA). La estrategia utiliza dos SMA, es decir, el SMA rápido y el SMA lento, que genera una señal de compra cuando el SMA rápido rompe el SMA lento desde abajo; cuando el SMA rápido cae desde arriba y rompe el SMA lento, genera una señal de venta.
La estrategia se basa principalmente en dos líneas de indicadores SMA. Entre ellas, la configuración más corta durante el SMA rápido, puede capturar los cambios en los precios más rápidamente; la configuración más larga durante el SMA lento, puede filtrar parte del ruido. Cuando el SMA rápido cruza el SMA lento desde abajo, indica que el precio a corto plazo sube más rápido, produciendo una señal de compra.
Al configurar diferentes parámetros de ciclo SMA, se puede ajustar los parámetros de la estrategia hasta cierto punto para adaptarse a diferentes condiciones de mercado. Al mismo tiempo, la estrategia también permite configurar el rango de tiempo de retroceso para facilitar la prueba de los parámetros de la estrategia en datos históricos.
Las siguientes medidas pueden ser tomadas para hacer frente a los riesgos mencionados:
Esta estrategia es una estrategia típica de seguimiento de tendencias. Se utiliza un simple principio de doble recorrido uniforme, con la configuración adecuada de los parámetros, se puede obtener un mejor efecto de seguimiento. Sin embargo, la propia SMA tiene un cierto retraso y no puede juzgar la fuerza de la tendencia.
/*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)