Buscar:

Archivos de la etiqueta: ProBacktest

Sistemas de Trading para ProRealTime

Si os gustan los sistemas automáticos y sois usuarios de ProRealTime, os sugiero que os deis una vuelta por el nuevo blog de Jose7674, un blog que ha titulado de una forma lo suficientemente inequívoca para que huelguen más explicaciones: “Sistemas de Trading para PROREALTIME y MT4“.

El amigo José ya ha compartido su primer sistema denominado Rebote, que es un Probacktest para comprobar la utilidad del MACd con Bandas de Bollinger para detectar zonas de rebote y ha compartido el código abierto en su sitio web. Así que merece nuestro saludo y agradecimiento por su generosidad. ¡Gracias José y ánimo! Seguiremos con interés tu trabajo.

Maquillaje Para Sistemas (VI y Fin)

Título alternativo: EL BARNIZ DE LA OPTIMIZACIÓN

“Optimizar” resulta un verbo muy complicado para conjugar en cuanto al diseño de sistemas. El diccionario lo define como “lograr el resultado óptimo [en un proceso físico, industrial, etc.]

Una vez más, si estuviéramos en un proyecto honesto y hubiésemos obtenido un sistema ganador en la mayor parte de los casos y prudente en el manejo de las pérdidas, podríamos intentar ajustar al máximo su funcionamiento mediante técnicas de optimización. Pero, no es el caso. Ahora sólo pretendo demostrar cómo no es complicado “fabricar” la mejor curva posible de beneficios incluso para un mal sistema como este.

Partiremos del gráfico del último sistema propuesto, aquel que habíamos denominado %V y que comparamos con el primero:

sist_maq11

Comprobar, simplemente, que hemos pasado de un tramposo beneficio inicial del 4,95% a un mucho más tramposo 61,7%. Pues vamos a mejorarlo todavía más.

La técnica es sencilla. Como el sistema es muy simple en su lógica [cierres por encima o por debajo de una determinada media exponencial generan compras y ventas], vamos a incluir el cálculo de la mejor media posible en cada caso, es decir, aquella que nos ofrecerá en este caso y temporalidad, los mayores beneficios.

Para ello, pulsaremos sobre Propiedades del último ProBacktest [%V] y en el botón Modificar ProBacktest, y empezaremos el proceso para incluir una variable de optimización.

En la línea de código:

si = close > ExponentialAverage[20](close)

sustituiremos el valor “20” por una “x”, para que quede de este modo:

si = close > ExponentialAverage[x](close)

Ahora, a la derecha podemos observar el espacio “Optimización de variables”. Pulsamos sobre el botón Añadir y la configuraremos tal y como muestra la imagen siguiente:

sist_maq12

En pocas palabras, eso significa que tomará todos los valores pares de medias entre 6 y 120 y nos devolverá el de la media con la que obtendremos mayores beneficios. Pulsamos en Aceptar e, inmediatamente, ProRealTime se encargará de hacer los cálculos. El resultado [para mí y en este caso] es que la media exponencial que mejores resultados da para este valor y temporalidad concreta es la de periodo 12.

Pues ya está obrado el milagro. Acabamos de fabricar una gráfica de beneficios para un pésimo sistema que nos ofrece unos resultados de un 108,7% de beneficios, con una bonita pendiente que lo hace pasar por un sistema fiable y con pocas posibilidades de pérdida.

sist_maq14

Sólo nos hace falta corregir un último detalle que, además, es uno de los principales problemas para que la mayor parte de usuarios exploten correctamente un sistema tendencial.

Llamo tu atención sobre el primer tramo de ambas curvas. Más o menos entre el 1 de enero y el 15 de marzo la primera genera pérdidas, cosa que corregimos en la segunda para que no mostrase [aunque también las genera, porque recuerden que pusimos a cero los costos operativos].

Esto es una constante y un axioma en todos los sistemas tendenciales. Hasta que el activo no coge una buena primera tendencia, pierden dinero. Esa fase es desesperante y, la mayoría, renuncian al sistema mucho antes de esos tres meses y medio [en este caso, que a veces puede ser más]. La paciencia no es precisamente la principal virtud del trader.

Pues bien, para acabar toda la gama de trucos trileros que he visto por ahí, voy a desplazar el gráfico justo hasta el inicio de la primera tendencia y les voy a ahorrar la contemplación de esa primera fase agonística para hacerles creer que este sistema ofrece resultados maravillosos desde el primer día, tal y así:

sist_maq15

¿Alguien se daría cuenta de ese desplazamiento interesado? A que no. Bueno, más o menos hasta ahí las artimañas más simples que deberían servir para convencer a un usuario medio que se encuentra ante un sistema de gran calidad.

Ahora, las moralejas de este largo cuento:

  1. NO JUZGUEMOS jamás un sistema SÓLO por un gráfico de beneficios.
  2. La manera de conocer la bondad de un sistema está en el INFORME DETALLADO NUMÉRICO [queda pendiente para otra serie explicar el qué y el cómo]
  3. No te fíes de un sistema que no puedas probar. Cuando tengas uno, PRUÉBALO EN DISTINTOS ACTIVOS, MERCADOS Y TEMPORALIDADES; y aplícalo SOLO a aquellos casos a los que mejor se adapte.
  4. HASTA LOS MEJORES SISTEMAS DEPENDEN de la SITUACIÓN DEL MERCADO. En una situación desfavorable todos los sistemas parecerán mediocres, en una favorable cualquiera parecerá bueno.
  5. NO ES SIEMPRE MEJOR SISTEMA el que más BENEFICIOS proporciona; hay más factores. Aumentar la posibilidad de beneficios en un 50% aumentando el riesgo en un 100% no sólo es un mal negocio, sino que puede ser ruinoso.
  6. TODOS LOS SISTEMAS TENDENCIALES ganan en las tendencias y pierden en los laterales y, además, pueden tardar un tiempo indeterminado [hasta la primera tendencia larga] en entrar en beneficios. Requieren paciencia.
  7. ES MUY IMPORTANTE que los COSTOS OPERATIVOS estén correctamente contemplados, porque ahí se dará cuenta que los sistemas que operan poco son mejores para usted y peores para su bróker. [Hay mucho sistema por ahí que parece directamente diseñados por brokers y comisionistas, pues sólo a ellos les benefician siempre porque operan MUCHO siempre].
  8. ACTUALMENTE ESTAMOS EN LATERALIDAD, por lo que no encontrará NINGÚN SISTEMA TENDENCIAL puro [que son la mayoría] que ahora mismo le ofrezca grandes resultados. Paciencia, es el mercado quien siempre manda.

Y creo que ya hay suficiente. Espero que todo esto le resulte útil a alguien .

Maquillaje Para Sistemas (V)

Título alternativo: TUNEANDO LA CURVA DE BENEFICIOS

En este punto, no tengo más remedio que anticiparme al final para lanzar la moraleja de todo este largo folletín por entregas: NUNCA JAMÁS JUZGUEN UN SISTEMA SÓLO POR LA CURVA DE BENEFICIOS. Es mucho mejor hacerlo a través del informe numérico detallado.

El gráfico esconde la mayor parte de datos y somos capaces de apreciar [con nuestro ojo poco cultivado] sólo TRES aspectos: el resultado final, la pendiente y el trazado.

Cuánto más empinado y más regular sea el trazado, consideramos que el sistema es mejor, aunque creo que este ejercicio debería servir para demostrar que no siempre tiene por qué ser así y que fabricarse un trazado a medida es fácil para cualquiera un poco ejercitado. [Algunos ejemplos –inocentes- los pueden encontrar en algunos foros, y no son más que simples ejercicios de vanidad. Nadie con un sistema brutal alardea de él; simplemente lo pone en práctica y se enriquece –si es inteligente- en silencio].

Estas técnicas que voy a utilizar y mostrarles ahora me van a servir para, en primer lugar, corregir en la medida de lo posible los dientes de sierra que señalan periodos de pérdidas entre las ganancias. Voy a intentar moderarlos para que este desastroso sistema tenga todavía un aspecto mejor.

Puedo utilizar dos técnicas, tramposas en el contexto que las utilizo, aunque bien válidas para moderar las pérdidas de cualquier sistema. Para empezar, voy a generar un tercer sistema, copia del segundo [basta con editar el segundo y cambiarle el nombre; en mi caso lo llamaré Media E 20 MC%V]

Primera técnica para aplanar la curva: Como el informe detallado me informa que este sistema produce un valor Drow down [pérdida máxima en la curva de beneficios] de más de 2500 euros, voy a aplicarle un stop de pérdidas y a observar si eso, aplana mi curva sin mermarme muchos beneficios.

Para ello, voy a propiedades de este tercer sistema, pulso en Modificar ProBacktest y, luego en el botón Stops del grupo 2 – Money Manegement.

sist_maq09

Voy directamente a la primera pestaña Stop Loss y, después de probar varios valores, escojo aplicar un valor de stop loss de 300 euros que, al mismo tiempo que mejora los resultados, aplana algo la curva.

Esto que sería una técnica perfectamente legítima, deja de serlo desde el momento en que le hemos eliminado el cálculo de los costos operativos, pues operaremos casi un 20% más. Por lo tanto, si fuésemos honestos, del beneficio obtenido deberíamos descontar los costos operativos.

Pero todavía hay una segunda fullería que, por más que pueda parecer una auténtica burla, es uno de los trucos trileros más ampliamente difundidos: NO CERRAR JAMÁS CON PÉRDIDAS. Escoges un valor/temporalidad que dé beneficios [aunque sea la excepción] y le obligas a no cerrar ninguna operación con pérdidas cosa que, por supuesto, hará que la curva muestre de una pendiente impecable. Pero, ¿qué significa eso?

En primer lugar, que estás dispuesto a permitir que el sistema te arruine en todas y cada una de las entradas, pues no le pones un límite de pérdidas. Confiar que el mercado SIEMPRE volverá a una situación favorable sin agotar antes tus recursos, [especialmente teniendo en cuenta que, en el sistema del ejemplo, estamos invirtiendo el 95% de tu capital en cada una de ellas], es un auténtico suicidio estadístico.

Lo crean o no, hay multitud de sistemas “ganadores” basados simplemente en la técnica del “nunca cerrar en pérdidas”. Eso sí, sus curvas son impecables…, en esos activos que nos muestran, desde donde nos muestran [un buen punto de principio] y hasta donde nos quieren mostrar.

Bueno, yo no voy a ser TAN sinvergüenza, y les voy a mostrar otra técnica alternativa, algo más sutil para hacer eso sin que se note tanto. Ya que he eliminado los costos operativos [comisiones] me voy a permitir el lujo de cerrar con un stop si el precio vuelve al punto de entrada. Es casi lo mismo, pero la curva parece más natural [tiene subidas y bajadas, aunque nunca entra en perdidas]. Podría parecer un buen sistema.

Para ello utilizamos en PRT la sentencia:

SET STOP ENTRYQUOTE

Con lo que tendremos un código para este tercer sistema tal y como éste:

//———CODIGO——–

// Sistema Media 20 EXP%V

si = close > ExponentialAverage[20](close)

IF si THEN

buy 95%CAPITAL at market

SET STOP ENTRYQUOTE

ENDIF

IF NOT si THEN

sellshort 95%CAPITAL at market

SET STOP ENTRYQUOTE

ENDIF

//———FIN CODIGO——–

Puedes quitar o anular el anterior Stop Loss incluido en el apartado Stops porque, al incluir esta orden el código no llegará a actual nunca y, por lo tanto es inútil.

Una vez más, el truco está en trabajar sin cálculo de gastos operativos, porque esto dobla el costo en comisiones al operar el doble de veces. Pero la curva está mucho menos dentada y parece realmente un sistema cuidado para no sufrir grandes oscilaciones [lo parece, pero no lo es].

sist_maq10

Maquillaje Para Sistemas (IV)

Título alternativo: SOÑEMOS QUE TODO ES GRATIS

Reconozco que de todos los trucos, tretas y artimañas tramposas, esta que voy a explicar ahora es la que más me enerva. Cuando veo que alguien recurre a esta treta tramposa para maquillar un sistema me gustaría agarrarlo por el cuello y apretar un poquito.

La muestro primero y después la comento.

Vamos a tomar ese segundo sistema, en el que cambiamos la operativa a proporcional y que ya llevamos hasta casi el 57% de beneficios [ficticios y manipulados, por supuesto]. Apuntemos ahora el resultado en una hoja de papel [en el caso de nuestro ejemplo = 15.686].

Vamos a hacer ahora un sutil movimiento. Vayamos a propiedades del ProBacktest / Modificar ProBacktest y Gestión Capital, donde deberíamos ver esto:

sist_maq07

Bien, la primera matización es que, si no estuviésemos jugando a ser unos trileros tramposos, este apartado estaría equivocado. En la mayor parte de brokers nos cobrarían más de 3 euros por operaciones proporcionales del 95% de nuestro capital, que [en este caso concreto] rondaría entre los 9000 y los 13000 euros. Lo correcto sería poner el costo real en comisiones de cada cual pero, como media, entre 5 y 6 euros por operación podría ser adecuado.

Pues bien, uno de los trucos más sucios en el “maquillaje” de sistemas es eliminar el cálculo de los costos operativos. Esto es especialmente grave en algunos sistemas scalp y en el mercado FOREX. Algunos de estos sistemas pasan de unos resultados espectacularmente buenos directamente a pérdidas simplemente incorporándoles el costo real de comisiones/horquillas. Son sistemas que realizan cientos de pequeñas operaciones al día para EXCLUSIVA felicidad de brokers y comisionistas.

Entrar en algunos sitios centrados en sistemas sobre FOREX [paradigma del apalancamiento y del scalp más rabioso] y estudiar los sistemas allí ofertados haría sonrojarse de vergüenza al mismísimo Alí Babá.

Bueno, en nuestro caso la diferencia no será tan extrema, pero, ¿en cuánto piensa que mejoraría [arteramente, por descontado] nuestro ya tramposo sistema obviar el cálculo de las comisiones? Pues vamos a comprobarlo. En esa ventana vamos a poner un cero en los valores de Comisión por orden y Comisión mínima.

Damos a aceptar y comprobamos que, por obra de magia, lo que antes era 15.686 ahora ya es 15.800, con lo que este simple truco [indetectable mirando sólo el gráfico de liquidez] nos acaba de proporcionar un 2% extra de beneficios.

¿No te sientes ya como un auténtico sinvergüenza? :-)

Pues aún podemos exprimirlo más. Pero eso será en la próxima entrega…

Maquillaje Para Sistemas (III)

caerTítulo alternativo: ¿BAJAR RÁPIDO ES DESPEÑARSE?

Decía mi rústico pero entrañable abuelo, con la boina calada hasta las orejas, que no había manera más rápida de bajar la montaña que despeñarse, pero que él no lo recomendaba.

Aunque yo les presente estas técnicas como de “maquillaje”, algunas de ellas son muy útiles para pulir y mejorar los sistemas. El tema está en que todas ellas tienen tantas ventajas como inconvenientes y hay que conocerlos. Son como la conocida manta corta, que siempre te deja los pies al fresco.

Pero como ahora lo que les estoy mostrando es precisamente cómo fabricar un gráfico epatante, que les induzca a pensar que se encuentran ante un sistema maravilloso, no voy a tener nada de eso en cuenta.

Hemos escogido nuestra tramposa excepción, simplemente porque el histórico del activo se ajusta al sistema [y no al revés, como debería] y vamos a generar un segundo sistema. Ahora que la bruja ya no lo parece, vamos a convertirla [aparentemente] en una bella doncella.

Empezaremos por replicar el sistema cambiándole el nombre. Para ello pulsaremos sobre Nuevo Backtest y escribiremos [fíjese en que, simplemente añadimos el símbolo % al final del nombre]:

Nombre: Media E 20 MC%

//———CODIGO——–

// Sistema Media 20 EXP

si = close > ExponentialAverage[20](close)

P = 1000

IF si THEN

buy p cash at market

ENDIF

IF NOT si THEN

sellshort p cash at market

ENDIF

//————-FIN CODIGO———-

En Gestión Capital:

Cap. Inicial = 10000

Por orden = 3 €

Comisión Min. = 3 €

Reinvertir Beneficios = Marcado

Acumular Posiciones = No Marcado

Ahora explicaré el código antes de cambiarlo.

Fíjate en que este sistema, tal como está ahora, compra [o vende] una cantidad fija de dinero en cada operación a mercado siendo esa cantidad de 1000 euros [p = 1000]:

buy p cash at market

Cuando se diseña un sistema, es preferible tener elementos de valoración simples y estables para comprobar su buen funcionamiento.

Por supuesto, si invirtiendo en paquetes de 1.000 obtenemos X beneficios; si invertimos 2.000 obtendremos 2X y si son 5.000, 5X. Hasta ahí es fácil. [En el sistema bastaría cambiar la cantidad de P=1000 por otra cantidad y todo seguiría funcionando a la perfección].

Truco nº 2: si sabes que va a salir bien, exagéralo

Pero, ya saben, nuestra tarea es ahora aplicar capas de “maquillaje matemático”, así que vamos a cambiar el sistema de compras y ventas de cantidades fijas a proporcionales, con lo utilizaremos la palanca incremental. Con eso nos basta para que parezca pasar de “bueno” a “una maravilla” siendo exactamente el mismo. Como ya sabemos que, en este caso concreto, el sistema es ganador, vamos a operar, en cada ocasión, el 95% de nuestro capital. Así que cambiaremos el código anterior por este:

//———CODIGO——–

// Sistema Media 20 EXP

si = close > ExponentialAverage[20](close)

IF si THEN

buy 95%CAPITAL at market

ENDIF

IF NOT si THEN

sellshort 95%CAPITAL at market

ENDIF

//———FIN CODIGO——–

Así obtenemos una curva idéntica pero, eso sí, maximizando los resultados positivos.

sist_maq05

Ya ves, otro truquito sencillo pero muy efectivo. Hemos pasado de un 4,9% de beneficio a un 56,8%. Pero [por lo de la manta y en la misma proporción], también pasaríamos de pérdidas de -5% a más del -50%.

Esto no es gestión de capital. No se confundan. Esto es lo que decía mi abuelo: despeñarse por el barranco como camino más rápido de bajada. Hay otros métodos mejores que, simplemente, apostarlo todo [o casi] en cada jugada. Sólo cabe hacerlo sin pudor si somos unos tramposos y conocemos anticipadamente que resultado será positivo.

Pero, puesto sobre el gráfico, ¿a que encandila?

En la próxima entrega prometo ser todavía más trilero y tramposo, pero mejoraré aún más estos resultados embusteros…

Maquillaje para sistemas (II)

brujaTítulo alternativo: LA EXCEPCIÓN NO ES LA REGLA

Empecemos por uno de los peores sistemas [por resultados] que conozco. Es el basado en los cruces del precio sobre una media corta. Su funcionamiento es de lo más simple: si la barra produce un cierre sobre la media, compramos; si cierra por debajo de ella, vendemos.

Es un sistema tendencial bidireccional [cortos + largos] y generalmente ofrece unos resultados bastante mediocres. Pues bien, el desafío es hacer que este sistema tan simple y poco trabajado parezca un auténtico campeón.

Para los usuarios de ProRealTime que quieran seguir y comprobar el ejemplo, aquí tienen el código del que partimos: un sistema simplísimo basado en los cruces del precio sobre una media exponencial de periodo 20 [manual de ayuda aprender a trabajar con códigos en PRT: pulsa aquí]:

Nombre: Media E 20 MC

//———CODIGO——–

// Sistema Media 20 EXP

si = close > ExponentialAverage[20](close)

P = 1000

IF si THEN

buy p cash at market

ENDIF

IF NOT si THEN

sellshort p cash at market

ENDIF

//————-FIN CODIGO———-

En Gestión Capital:

Cap. Inicial = 10000

Por orden = 3 €

Comisión Min. = 3 €

Reinvertir Beneficios = Marcado

Acumular Posiciones = No Marcado

Luego de Validar programa, lo aplicaré sobre acciones de empresas del IBEX35 en periodo diario.

Para seguir el ejemplo, voy a pulsar sobre Propiedades del Backtest [icono herramienta] y pulsaré sobre el botón Modificar ProBacktest. En el apartado 3 [Fecha de inicio] voy a poner, por ejemplo, 1/Ene/2010.

Ahora fíjate los resultados que obtenemos de la aplicación de este sistema sobre la mayor parte de los activos del IBEX35.

A día de hoy [Mayo de 2011] si hubiésemos aplicado este sistema desde el 1/1/2010 hasta ahora de los 35 valores del IBEX en 19 habríamos tenido pérdidas y sólo en 16, beneficios. Pero lo peor es que sólo en 7 de esos 16 con beneficios, habríamos ganado más de un 2%. O sea, que en el 80% de los valores del IBEX35 en temporalidad diaria habríamos o perdido o ganado menos de un 2% ¿Aceptarían ahora si califico este sistema como MUY MEDIOCRE? Imagino que sí.

sist_maq04

Pues vamos con la primera capa de maquillaje:

Truco nº 1: no dejes que un mal sistema te estropee un buen gráfico

Como la idea es hacer pasar este “pollino” por un pura sangre, lo primero que tendremos que hacer es [tan simple como esto] presentar el valor que ofrezca mejores resultados [en gráfico] y obviar los otros. [Si hay que trabajar sobre un valor concreto, por ejemplo, un futuro o un índice, cambiar la temporalidad hasta que encontremos una que, ni que sea por casualidad, dé beneficios].

Como la gente se va a fijar sobre todo en la inclinación y en la parte final de la curva de beneficios, mejor TL5 que FCC, que en la parte final desciende.

sist_maq03

Ya tenemos la primera parte del maquillaje hecha. Sí ya sé que este primer truco es de “baja tecnología”, pero es el más común: presentar la excepción como norma y ejemplo. De todas formas, lo sofisticaremos algo más en las próximas entregas.

Maquillaje Para Sistemas (I)

johnny-guitarDime que me quieres aunque sea mentira - le pidió Johnny Guitar a Joan Crawford. Y ella le contestó que le quería, aunque fuese mentira.

Hace algunas semanas por fin me decidí a poner a disposición de los usuarios algunos sistemas de especulación clásicos bastante solventes. El problema es que [creo que se me nota] yo soy un técnico y estoy acostumbrado a presentaciones realistas y algo estoicas. Parto de la idea de que a mí no me impresionan determinadas curvas ni gráficos epatantes. Pero, al mismo tiempo, compruebo como algunos pequeños trucos [que yo llamo cariñosamente “maquillaje”] llegan a confundir y obnubilar a la mayor parte de usuarios no avezados en ciertos manejos, y creen de buena fe que una curva impresionante de beneficios es sinónimo de un excelente sistema, y eso no es forzosamente cierto. En muchos casos es justo lo contrario.

Así que me he decidido a mostrar y explicar en las menos palabras que sea capaz algunos trucos para conseguir que un sistema mediocre parezca superlativo con un par de capas de “maquillaje gráfico”, así todos, especialmente los usuarios menos expertos, tendrán más elementos para juzgar en el futuro.

No se trata de un curso avanzado, ni lo pretendo. Al contrario, son argucias sencillas, casi de “trilero matemático”, pero que veo siguen sin ser detectados por la gran mayoría.

Empezaremos por mostrar un gráfico con dos curvas de beneficio. La pregunta es sencilla: ¿cuál de los dos sistemas les parece mejor? ¿Cuál de ellos comprarían?

sist_maq01

Imagino que el 99% de los amables lectores escogerían el superior pues, en un mismo plazo de tiempo ha obtenido unos beneficios muy superiores (20.915 / 10.571 = 2,83 veces más).

La respuesta es que ambos son el mismo sistema, y precisamente se trata de un sistema tan simple como mediocre.

¿Cómo! ¿Llamo “mediocre” un sistema capaz de, aplicado sobre TL5, triplicar el capital en menos de año y medio?!

Bueno, rectificaré. Es MUY mediocre. Lo que ocurre es que le hemos dado un par de capas de maquillaje para taparle sus muchas imperfecciones y estoy seguro que podría vender ese gato como una liebre legítima. Pero les aseguro que no lo es, cosa que les mostraré y demostraré en los siguientes post sobre este tema. No se dejen encandilar, que no es oro todo lo que reluce, aunque lo parezca y mucho…

Este blog funciona gracias a WordPress | Condiciones de uso de los contenidos | Responsabilidad

FinancialRed.com es Bolsa | Economia | Productos Financieros