Ha respondido al tema Codigos Proscreener (Prorealtime)
Ir a respuesta
Si, a mí tampoco me dio la sensación de que funcionara muy bien y revisé a mano algunas acciones, efectivamente había varias que no pillaba. El código tenía un error de criterio detectaba los cierres (Close) más altos o bajos y no los máximos o mínimos. El código de las medias tenía un error de formulación. “Average [10]” es la media móvil de 10 periodos y no la media de los últimos 10 periodos como yo creía. Para sacar la media de los últimos diez periodos hay que usar "timeseriesaverage[N]".
Dejo la versión 3.0, esta sí parece que funciona bien. Prueba distintos periodos es curioso, en semanal por ejemplo sale una cantada de Jazztel y en diario OHL (alcista a pesar del batacazo del otro día) y en 15min te saldrán otras distintas.
En cualquier caso hay que tener en cuenta que en MACD no detecta un máximo o un mínimo, si no el valor más alto o más bajo de un periodo, así que en una div bajista por ejemplo si el MACD está en recorrido creciente la aparente divergencia que detecta el screener puede anularse en unos días si sigue subiendo. Hay que revisar los valores, pero viene bien como filtro.
Por otro lado lo he simplificado y solo rastrea los últimos 12 días comparados con los anteriores 12 (por aquello que el MACD también tiene en cuenta 12 y 26, más o menos los mismos días.
// Divergencia Bajista 12 periodos
MiMacd = (MACDline[12,26,9](close))
c0 = highest [12] (high) > highest [12] (high)[12]
c1 = Lowest[12](MiMacd) < Lowest[12](MiMacd)[6]
// Divergencia Alcista 12 periodos
c10 = lowest [12] (low) < lowest [12] (low)[12]
c11 = highest[12](MiMacd) > highest[12](MiMacd)[12]
// Filtro
c100 = (ExponentialAverage[15](Volume) >= 50000)
c101 = (Dclose(1) > 0.2)
criteria = ExponentialAverage[15](Volume)
SCREENER[(c0 AND c1 AND c100 AND c101) or (c10 AND c11 AND c100 AND c101)] (criteria AS "MM")