Crear un backtesting automático (parte 3)

Vamos a ver como crear un sistema tendencial ganador desde cero. Se aceptan críticas y todo tipo de ideas. Voy a ir creando el «robot» a medida que voy escribiendo el hilo, así que lo siento si los resultados no son muy espectaculares, pero tiene que ser lo más real posible. Voy a añadir una imagen a cada paso para que quede todo más claro. Empecemos.

Primero de todo escogemos un par tendencial y líquido, el GBPUSD mismo y le damos a crear backtest. 

foto1

Rellenamos la parte de la derecha con los datos de nuestro broker, yo lo tengo así:

foto2

El siguiente paso es definir cuando comprar y cuando vender. Va a ser un sistema tipiquísimo de cruce de medias. Lo de siempre, cuando la corta cruza la larga compramos y al revés vendemos. Añadimos las medias en el gráfico (he escogido las exponenciales de 20 y 50 pero pueden ser cualquier otras) y definimos los parámetros. Simplemente hay que hacer click en el propio gráfico para escogerlas en el backtest. Finalmente quedaría algo como esto.

Compra:

FotoSnap005

Venta:

FotoSnap009

Una vez tenemos todo configurado

foto5

le damos a validar y nos saldrá un código como este

foto6

Ahora que ya tenemos el código base hacemos la primera prueba para ver como va sin hacer nada más. Es un sistema muy sencillo y que no tiene más secreto. Este es el resultado:

foto7

Resultado previsible. Pérdidas pequeñas, drawdown alto, 99% de tiempo dentro del mercado, etc. Un sistema muy primitivo, ahora es cuando empieza lo bueno y hay que empezar a mejorar el código y darle cuerpo. Empezamos quitando las órdenes de salida de mercado (tanto de largos como de cortos) para añadir un stop de pérdidas y un take profit, ambos basados en la volatilidad (voy a utilizar el ATR). También eliminamos el 1 (de un contrato) por la variable posición y así le añadimos un Money Management del 1,5% por posición referenciado al stop. Es decir implementamos un MM y una gestión del riesgo muy básica al robot.

foto8

Eliminamos lo que está en rojo y añadimos lo que pongo ahora en verde

foto9

Ahora vamos a ver como funciona y ver si ha mejorado algo, aunque poco seguro que mejora. Al ser tendencial pongo de primer ejemplo un Stop x10 ATR y un TP x20 ATR. Validamos cambios y:

foto10

Prácticamente igual. Rentabilidad y DD casi igual y menor tiempo de exposición al mercado, el resto de datos muy parecidos. Seguimos que aun no podemos tirar la toalla. Ahora empezamos con la optimización. Sustituimos los valores de las medias, el stop y el Take Profit por variables a, b, c y d

foto11

y definimos los valores a calcular

foto12

Valido y veo que me da error porque son muchas variables a tener en cuenta por lo que debo reducir el número de posibilidades.

foto13

Reducimos posibilidades

foto14

y validamos

foto15