// Definición de los parámetros del código
DEFPARAM CumulateOrders = False // Acumulación de posiciones desactivada
// El sistema anulará todas las órdenes pendientes y cerrará todas las posiciones a las 0:00. No se permitirá ninguna nueva orden ni posición después de la hora "FLATBEFORE".
DEFPARAM FLATBEFORE = 090000
// Anular todas las órdenes pendientes y cerrar todas las posiciones a la hora "FLATAFTER"
DEFPARAM FLATAFTER = 210000
// Impide al sistema crear nuevas órdenes para entrar al mercado a aumentar el tamaño de la posición antes de una hora precisa
noEntryBeforeTime = 090000
timeEnterBefore = Time >= noEntryBeforeTime
// Impide al sistema lanzar nuevas órdenes para entrar al mercado o aumentar el tamaño de la posición después de una hora precisa
noEntryAfterTime = 210000
timeEnterAfter = Time < noEntryAfterTime
// Impide al sistema operar en días precisos de la semana
daysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0
// ===== Variables =====
ValorRSI = 9
ValorEMA = 18
ValorMOM = 20
// ====== Constantes ======
MiSTOP = 90
MiPROFIT = 60
//===== INDICADORES DE LA ESTRATEGIA ======
MIRSI = RSI[ValorRSI](close)
MiEMA = ExponentialAverage[ValorEMA](MiRSI)
MiMOM = Momentum[ValorMOM]
MiESTO = SMI[8,3,5](Close)
// ===== Condiciones para ejecutar la estrategia =====
Condicion1Larga = MiMOM[1] < MiMOM
Condicion2Larga = MiESTO[1] < MiESTO
Condicion1Corta = MiMOM[1] > MiMOM
Condicion2Corta = MiESTO[1] > MiESTO
// ****** Esta es la Estrategia ******
CruceLargo = MiRSI CROSSES OVER MiEMA AND (Condicion1Larga AND Condicion2Larga)
CruceCorto = MiRSI CROSSES UNDER MiEMA AND (Condicion1Corta AND Condicion2Corta)
// Condiciones para entrada de posiciones largas
IF CruceLargo AND (timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry) THEN
BUY 1 SHARES AT MARKET
ENDIF
// Condiciones de salida de posiciones largas
IF CruceCorto THEN
SELL AT MARKET
ENDIF
// Condiciones de entrada de posiciones cortas
IF CruceCorto AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THEN
SELLSHORT 1 SHARES AT MARKET
ENDIF
// Condiciones de salida de posiciones cortas
IF CruceLargo THEN
EXITSHORT AT MARKET
ENDIF
// Stops y objetivos
SET STOP $TRAILING MiSTOP
SET TARGET $PROFIT MiPROFIT