RafaParticipant
Senior
Hola,
Me he iniciado a la programación de Screeners. Estoy construyendo un Screener basado en Ichimoku. Una de las reglas del Ichimoku es comparar espacios temporales, es decir, Si opero en 15 minutos, he de comprobar los gráficos de 1 hora y 4 horas.
En concreto la estrategia es la siguiente: Rotura de Kumo en 15 minutos. Supongamos que es una rotura alcista. Chikou y precio rompen la nube hacia arriba. Necesito saber cómo programar que el screener compruebe 1 hora y 4 horas de tal manera que el precio esté por encima de la nube (ya que se trata de una rotura alcista)
He intentado varias opciones pero no funcionan.
El código de esta estrategia lo pongo ahora. Funciona muy bien sin comprobación con otros espacios temporales.
Muchas gracias por adelantado
Rafa
//****************************************************************
//* Estrategia Rotura de Kumo Completa
//* Autor: Rafa Barreto: Ayuda Nicolás
//****************************************************************
// ===== VALORES MODIFICABLES =====
//Diferencia = 0.0001
// -- Construyendo la graficación Ichimoku --
// -- Valores NO Standar: Fibonacci: 8; 21; 55 --
// -- Valores NO Standar: Actuales : 7;22;44
// -- Valores Standar: 9; 26; 52
PeriodoCorto = 7
PeriodoMedio = 22
PeriodoLargo = 44
Tenkan = (highest[PeriodoCorto](High) + lowest[PeriodoCorto](Low)) / 2
Kijun = (highest[PeriodoMedio](High) + lowest[PeriodoMedio](Low)) / 2
SpanA = (TenKan[PeriodoMedio] + Kijun[PeriodoMedio]) / 2
SpanB = (highest[PeriodoLargo](High[PeriodoMedio]) + lowest[PeriodoLargo](Low[PeriodoMedio])) / 2
Chikou = Close
// ===== A partir de aquí no se toca el código =====
// --- Condiciones de Posiciones Largas ---
Condicion1Larga = (close > SpanA) AND (close > SpanB)
//Condicion2Larga = (Tenkan > SpanA) AND (Tenkan > SpanB)
//Condicion3Larga = (Kijun > SpanA) AND (Kijun > SpanB)
//Condicion4Larga = (Chikou > SpanA) AND (Chikou > SpanB)
Condicion5Larga = (SpanA[PeriodoMedio] > SpanB[PeriodoMedio])
Condicion6Larga = (SpanA[PeriodoMedio] < SpanB[PeriodoMedio])
//Condicion7Larga = Close < (SpanA + (SpanA * Diferencia))
RoturaLargoOpcion1 = Chikou CROSSES OVER SpanA[PeriodoMedio] AND (Condicion1Larga AND Condicion5Larga )
RoturaLargoOpcion2 = Chikou CROSSES OVER SpanB[PeriodoMedio] AND (Condicion1Larga AND Condicion6Larga )
// -- Condiciones de Posiciones Cortas ---
Condicion1Corta = (close < SpanA) AND (close < SpanB)
//Condicion2Corta = (Tenkan < SpanA) AND (Tenkan < SpanB)
//Condicion3Corta = (Kijun < SpanA) AND (Kijun < SpanB)
//Condicion4Corta = (Chikou < SpanA) AND (Chikou < SpanB)
Condicion5Corta = (SpanA[PeriodoMedio] < SpanB[PeriodoMedio])
Condicion6Corta = (SpanA[PeriodoMedio] > SpanB[PeriodoMedio])
//Condicion7Corta = Close > (SpanA - (SpanA * Diferencia))
RoturaCortoOpcion1 = Chikou CROSSES UNDER SpanA[PeriodoMedio] AND (Condicion1Corta AND Condicion5Corta)
RoturaCortoOpcion2 = Chikou CROSSES UNDER SpanB[PeriodoMedio] AND (Condicion1Corta AND Condicion6Corta)
// ===== SCREENER =====
SCREENER [RoturaLargoOpcion1 OR RoturaLargoOpcion2 OR RoturaCortoOpcion1 OR RoturaCortoOpcion2]
RafaParticipant
Senior
Por qué esto no es válido o no funciona?
No es el programa entero después de esto vendrían las condiciones en corto (igual pero al revés) al final SCREENER [CruceLargo OR CruceCorto]
Es un trozo del screener para saber qué falla
Abrazos
Rafa
// ===== VALORES MODIFICABLES =====
ValorRSI = 10
ValorEMA = 10
// -- Construyendo la graficación Ichimoku --
// -- Valores NO Standar: Fibonacci: 8; 21; 55 --
// -- Valores NO Standar: Actuales : 7;22;44
// -- Valores Standar: 9; 26; 52
PeriodoCorto = 7
PeriodoMedio = 22
PeriodoLargo = 44
Tenkan = (highest[PeriodoCorto](High) + lowest[PeriodoCorto](Low)) / 2
Kijun = (highest[PeriodoMedio](High) + lowest[PeriodoMedio](Low)) / 2
SpanA = (TenKan[PeriodoMedio] + Kijun[PeriodoMedio]) / 2
SpanB = (highest[PeriodoLargo](High[PeriodoMedio]) + lowest[PeriodoLargo](Low[PeriodoMedio])) / 2
Chikou = Close
// ===== A partir de aquí no se toca el código =====
// --- Condiciones de Posiciones Largas ---
Condicion1Larga = (close > SpanA) AND (close > SpanB)
Condicion2Larga = (Tenkan > SpanA) AND (Tenkan > SpanB)
Condicion3Larga = (Kijun > SpanA) AND (Kijun > SpanB)
Condicion4Larga = (Chikou > SpanA) AND (Chikou > SpanB)
TIMEFRAME(4 HOURS)
Condicion5Larga = (Close > SpanA) AND (Close > SpanB)
TIMEFRAME(1 HOURS)
Condicion6Larga = (Close > SpanA) AND (Close > SpanB)
TIMEFRAME(15 MINUTES)
CruceLargo = Tenkan CROSSES OVER Kijun AND (Condicion1Larga AND Condicion2Larga AND Condicion3Larga AND Condicion4Larga AND Condicion5Larga AND Condicion6Larga)
RafaParticipant
Senior
Dear Nicolas
Why this code is not working?
Best regards
Rafa