
La estrategia es una sencilla estrategia de cruzamiento de líneas de media SMA. Utiliza una media móvil simple de dos períodos diferentes (SMA) para abrir más posiciones cuando la línea rápida cruza la línea lenta de abajo hacia arriba, y para cerrar posiciones cuando la línea rápida cruza la línea lenta de arriba hacia abajo. La estrategia puede personalizar la longitud de las dos líneas de media, así como las fechas de inicio y finalización de la medición.
La idea principal de esta estrategia es aprovechar las características de la tendencia de la línea media y las características de la señal de la línea media cruzada para operar. Cuando la línea rápida está por encima de la línea lenta, indica que está en una tendencia ascendente, se debe mantener una posición de más de un cabeza; cuando la línea rápida está por debajo de la línea lenta, indica que está en una tendencia descendente, se debe esperar una posición cerrada.
La estrategia de cruce de la línea de equilibrio SMA es una estrategia de seguimiento de tendencias sencilla, fácil de entender y clásica, adecuada para que los principiantes la aprendan y la utilicen. Utiliza las características de la tendencia de la línea de equilibrio y las características de la señal de cruce de la línea de equilibrio para capturar rápidamente los cambios en la tendencia del mercado.
/*backtest
start: 2023-03-22 00:00:00
end: 2024-03-27 00:00:00
period: 1d
basePeriod: 1h
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/
// © j0secyn
//@version=5
strategy("MA Cross", overlay=true, margin_long=100, margin_short=100, default_qty_value=100, default_qty_type=strategy.percent_of_equity, initial_capital=10000)
// === INPUT BACKTEST RANGE ===
fromDay = input.int(defval = 1, title = "From Day", minval = 1, maxval = 31)
fromMonth = input.int(defval = 1, title = "From Month", minval = 1, maxval = 12)
fromYear = input.int(defval = 2018,title = "From Year", minval = 1970)
thruDay = input.int(defval = 30, title = "Thru Day", minval = 1, maxval = 31)
thruMonth = input.int(defval = 9, title = "Thru Month", minval = 1, maxval = 12)
thruYear = input.int(defval = 2024, title = "Thru Year", minval = 1970)
slow_ma_length = input.int(defval = 100, title = "Slow MA lenght")
fast_ma_length = input.int(defval = 30, title = "Fast MA lenght")
// === FUNCTION EXAMPLE ===
start = timestamp(fromYear, fromMonth, fromDay, 00, 00) // backtest start window
finish = timestamp(thruYear, thruMonth, thruDay, 23, 59) // backtest finish window
window() => true
// === LOGIC ===
crossOv = ta.crossover(ta.sma(close, fast_ma_length), ta.sma(close, slow_ma_length))
crossUn = ta.crossunder(ta.sma(close, fast_ma_length), ta.sma(close, slow_ma_length))
// === EXECUTION ===
// strategy.entry("L", strategy.long, when = window() and crossOv) // enter long when "within window of time" AND crossover
// strategy.close("L", when = window() and crossUn) // exits long when "within window of time" AND crossunder
strategy.entry("L", strategy.long, when = window() and crossOv) // enter long when "within window of time" AND crossover
strategy.close("L", when = window() and crossUn) // exits long when "within window of time" AND crossunder