Este artículo es de Oscar Cagigas de www.onda4.com. Podéis suscribiros a todos sus informes desde http://www.onda4.com/informes.html
CORTESÍA DE ART COLLINS
En el último informe veíamos que el mercado estaba subiendo con fuerza, pero los osciladores e indicadores más populares no habían relajado sus lecturas de peligro.
Han pasado 4 días desde esto y la situación sigue siendo la misma: continúan las fuertes subidas y siguen sin relajarse los indicadores de peligro como los nuevos mínimos, que ayer cerraron a 548 (no mostrado), mientras que el futuro mini del SP500 hace un rally de un 2.4%. Y todo esto con un VIX de 29.70, típico de mercados bajistas en peligro.
-Y qué podemos decir de la estructura del VIX? Pues aquí sí que vemos cambios importantes respecto del martes. Los futuros del VIX ahora cotizan en su mayoría por encima del contado (la línea verde), y la estructura empieza a parecerse a una curva ascendente típica de mercados alcistas. Empieza a parecer que el suelo del 13 de octubre va en serio, y que de momento solo lo notamos en la estructura del VIX, pero lo otro irá llegando…

Hoy quiero hablar de un tipo de sistemas que nunca había comentado en los informes de Onda4: los sistemas de votación. Este tipo de sistemas se pueden ver en el libro de Art Collins que muestro debajo.
Para ser sincero, la primera vez que leí el libro de Collins me decepcionó mucho. Los sistemas que estaba viendo eran, en mi opinión, muy malos. Tenían porcentajes de acierto bajos, del 55-60%, y unos ratios de rendimiento muy malos comparado con lo que uno suele ver en libros de este tipo. Pero cuando seguí leyendo me di cuenta de que había tomado una conclusión precipitada. Los sistemas iniciales solo buscaban una pequeña ventaja estadística, para ser combinados todos en un sistema de votación, el verdadero sistema, que basándose en los sistemas individuales nos diría si la barra actual es de compra, de corto, o mejor no operar hoy.

Básicamente eso es un sistema de votación: una combinación de sistemas individuales que suman sus votos en la misma barra, y en función de la suma pues tendremos una determinada señal.
Por ejemplo: si vemos que comprar hoy después de caídas ayer tiene ventaja, y si también hay ventaja en comprar hoy si ayer el RSI estaba por debajo de 30, entonces el día que se cumplan las dos condiciones tendremos el mayor número de votos posible y el sistema generará una compra.
Así que para desarrollar este tipo de sistemas debemos tener una lógica que compre y abra cortos en la misma barra. Por ejemplo:

Esta porción de código compra si la puntuación combinada de los n sistemas (nscore) es positiva y cierra los largos al cierre de la barra. Es decir, la operación va de la apertura al cierre de hoy. Y lo mismo para los cortos, que se hacen cuando el nscore es negativo y se abren en la apertura y se cierran al final de la sesión.
Puesto que el mercado siempre ha sido alcista deberíamos comprobar cuánto se gana por comprar en todas las barras, y es que todo lo que esté por debajo de eso no añade ventaja a nuestro sistema. Procedo a poner nscore a 1 en el código anterior; y hago la prueba desde 2010 en el SPX, No hay multiplicador (es 1). El resultado es el siguiente:

Así que cualquier regla que gane menos de 1244 puntos no aporta nada. De la misma manera, si no podemos conseguir un recovery factor superior a 1.60 entonces tampoco nos va a interesar la regla que estemos probando en ese momento. También vemos que el 54% de los días en el mercado son alcistas, aunque este dato ya lo habíamos obtenido en informes anteriores.
Desafortunadamente, las reglas individuales del libro de Art Collins han perdido su ventaja con el tiempo. Estas son algunas que he probado, sin éxito (comento el caso alcista):
* Comprar si ayer hubo caídas
* Comprar si ayer se cerró por encima o debajo de una media
* Comprar si subió o bajó el VIX
* Comprar si el RSI estaba por debajo (o encima) de un nivel
* Comprar si una media de corto plazo está por debajo de una de largo plazo (o al revés)
* Comprar si el cierre de ayer estaba por encima o por debajo del promedio de máximos y mínimos
* Comprar tras N días consecutivos de caídas, o de subidas
* Comprar si suben los mínimos, o los máximos, o las aperturas
* Comprar si hubo un pivot Low de 3 días (un mínimo rodeado de dos mínimos más altos) o un Pivot High..
* Comprar si se traspasó una banda de Bollinger de cierres, o de máximos, o de mínimos…
* Comprar si ayer fue lunes, o martes, etc
Y más…
Y es que los mercados cada vez son más eficientes. En el libro de Pruit & Hill comentan sobre la ventaja de comprar hoy si ayer hubo caídas. El mismo Art Collins dice al principio de su libro que hace muchos años esa ventaja era tremenda, que producía resultados realmente significativos, pero en el momento de publicación del libro (2006), comenta que esa ventaja ya no existe.
Pero no todo está perdido. Tras mucho probar he encontrado dos ventajas que hoy en día arrojan mejores resultados que la referencia. La primera ventaja es comprar en la dirección de la apertura. Si hoy abre por encima del cierre de ayer entonces compramos. Si abre por debajo del cierre de ayer entonces abrimos cortos. Los resultados son los siguientes:

Como puede ver son impresionantes. Hay 14,800 puntos que se ganan por hacer esto, que es mucho más que los 1,244 puntos que esperaríamos del sesgo alcista del mercado. Debajo muestro un gráfico donde cada barra tiene un número azul que indica la puntuación o nscore de la barra. Por ejemplo, ayer hubo apertura bajista así que se deberían haber abierto cortos, que salieron mal. Pero el jueves también hubo apertura bajista y los cortos salieron bien. También salieron bien el miércoles.

Y la segunda ventaja es operar en la dirección de los Bonos. Esto es algo que he oído muchas veces a Larry Williams. Filtrar por los bonos siempre mejora los resultados. En este caso en concreto, así es. El sesgo o ventaja no es tan impresionante como el anterior, pero aún así es decente. Consiste en comprar hoy si ayer el TBond (el futuro) estaba por encima de su precio de hace 7 barras.
El resultado es:

Aunque no se mejore el porcentaje de aciertos, resulta que se ganan 3781 puntos (o 2537 por encima de la referencia) por operar en la dirección de los bonos, con un recovery factor de 6.4, que es muy superior al RF de 1.6 que teníamos como referencia.

Y ha llegado el momento de combinarlo todo en un sistema conjunto de votación, que aporte un +1 cada vez que se cumpla una de las dos ventajas, un cero si no se cumple, y un -1 si existe la ventaja contraria, la que activaría un corto. De esta manera, la máxima votación positiva es un 2, y la máxima votación negativa un -2, así que podríamos filtrar, si nos interesa, para que solo se abran posiciones si la votación es igual a 2 en valor absoluto. Evidentemente esto que muestro es solamente un ejemplo, y un sistema de votación podría tener unas 5 o 6 ventajas tan buenas como la primera de la apertura, si las encontramos, claro.
Debajo vemos que es muy frecuente que ocurran las dos condiciones en una barra, que haya una apertura alcista y que los Bonos suban, y viceversa para el caso bajista. De hecho, en la porción de histórico que se muestra, solo hay un día en que tenemos una puntuación de -1 por una apertura bajista, pero sin que caigan los bonos. Y luego están los días de 0 en los que se contradicen la apertura con los bonos, ya que la regla de apertura nunca vale cero; o es positiva (+1) o negativa (-1).

Cuando hacemos una votación de mayoría simple (comprar si la puntuación es mayor que cero y abrir cortos si es menor que cero) los resultados son los siguientes:

En este caso en concreto, estas estadísticas no mejoran por usar el tope de puntos (comprar si +2 y cortos si -2). Pero este sí que podría ser el caso si hay muchas reglas, así que todo sería cuestión de encontrar varias reglas y optimizar el umbral de decisión. Es probable que si hay 6 reglas el valor óptimo sea comprar si al menos 3 o 4 son positivas, o algo por el estilo. Aquí estamos viendo un ejemplo muy simplificado y debemos tener en cuenta que al tener solo dos reglas una y la otra se pueden contradecir, generando un cero. Este cero sería muy improbable si existen muchas reglas.

Lo que sí que he observado es que este sistema de votación funciona a la perfección desde 2020. Son muchos los que afirman que en 2020 cambió completamente el mercado y que no sirve de nada usar un histórico más antiguo que eso. Estoy de acuerdo, tanto la volatilidad como el comportamiento de materias primas y valores individuales cambiaron; y por consiguiente nos interesa este mercado reciente y lo que funciona ahora, y no lo que funcionaba en el año 2000. Así que le voy a mostrar los resultados de este sistema desde 2020:

Note que se ganan casi 4000 puntos, mucho más que la referencia (desde 2010), y con un ridículo máximo drawdown de 237 puntos, lo que resulta en un Recovery Factor de 16.8. Y lo que es mejor, con un 63% de aciertos y un ratio sharpe de 4, siendo este último un nivel al que no estamos acostumbrados!

ANEXO
SISTEMA DE VOTACIÓN. CÓDIGO AMIBROKER
//************************************
// SISTEMA DE VOTACIÓN
// OSCAR G. CAGIGAS
// 22 OCTUBRE 2022
//************************************
//salir en la misma barra
SetOption("allowsamebarexit",True);
//modo puntos
PositionSize = MarginDeposit = 1;
//%%%% DEFINICIONES %%%%
bonds = Foreign("&ZB_CCB","C");
BondsUp = bonds > Ref(bonds,-7);
BondsDn = bonds < Ref(bonds,-7);
//%%%%%% REGLAS INDIVIDUALES Y PESOS %%%%%
Setup1a = Open > Ref(C,-1);
Setup1b = -( Open < Ref(C,-1) );
Setup2a = Ref(BondsUP,-1);
Setup2b = -( Ref(BondsDn,-1) );
//score normalizado
nscore = Setup1a + Setup1b + Setup2a + Setup2b;
//ENTRADAS
Buy = nscore > 0;
Short = nscore < 0;
BuyPrice = ShortPrice = Open;
//SALIDAS
Sell = Buy;
Cover = Short;
SellPrice = CoverPrice = Close;
//-------------------------------------------------
//CHART//
SetChartOptions(0,chartShowDates);
Title = StrFormat("{{NAME}} - {{INTERVAL}} {{DATE}} Open %g, Hi %g, Lo %g, Close %g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) )
+"\n"+ FullName()+"\n"+ EncodeColor(colorBlue)+"SPX VOTACIÓN";
//PINTAR EL SCORE DE CADA BARRA
dist = 0.2*ATR(10);
Plot(C,"Last ",colorBlack,styleBar|styleThick);
for( i = 0; i < BarCount; i++ )
{
PlotText( NumToStr(nscore[i],1), i, L[ i ]-dist[i], colorBlue );
}
//EXPLORE
Filter = 1;
AddColumn(nscore,"nscore");
MAS ARTICULOS DEL AUTOR
NUEVA VERSIÓN DEL SISTEMA DE TRADING AUDAZ
ROOT FINDING EN AMIBROKER Y EL ALGORITMO GOLDEN RATIO
EL TEST DICKEY FULLER EN EXCEL Y OPERAR CON REVERSIÓN A LA MEDIA
ESTADISTICAS 2021. UN AÑO MUY RENTABLE
PROBAR SISTEMAS EN TIEMPO REAL
¿CÓMO COMPRAR CUANDO CAE? La barrera absorvente
COMO SOBREOPTIMIZAR UN SISTEMA DE TRADING
EL SISTEMA DEL MILLÓN. UNA LÓGICA APLASTANTE
LA LEY DE BENFORD. ESTÁ MANIPULADO EL MERCADO?
VENTA EN EL RATIO PUT/CALL DEMASIADAS SEÑALES DE PELIGRO
LA MEJOR ESTRATEGIA EN ESTE MERCADO VOLÁTIL
PERSPECTIVAS 2020 Y EL SISTEMA "ROCKSTAR"
LA OPERACIÓN PERFECTA. ¿ES POSIBLE?
LOS BONOS ANTICIPAN SUBIDAS. OPORTUNIDAD EN PLATA (III)
BAJISTAS Y RESISTENCIA EN 2820
OBJETIVO 2600 CONSEGUIDO ¿FUNCIONA LA ESTACIONALIDAD?
ESTACIONALIDAD Y SU EFECTO EN EL GANADO VACUNO
MEDIAS PONDERADAS POR VOLUMEN. NUEVOS MÁXIMOS EN LOS ÍNDICES