RafaParticipant
Senior
// 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
Hace unos meses el walk forward y el back test funcionaban bien, pero de repente no me deja hacerlo con el tick por tick.
Otra cosa que he notado es que siempre pone los mismos valores en el walk forward, que corresponde a los valores mínimos que se ponen para testarlo.
Alguien sabe por qué?
Muchas gracias