Un algoritmo funciona si seguir todas sus instrucciones en el orden correcto conduce al resultado deseado. Ejemplo: La receta de espaguetis a la carbonara funciona si, siguiendo las instrucciones en el orden correcto, se obtienen espaguetis a la carbonara adecuados. Parece que los algoritmos son un tipo de teorías. Nos dicen: Si hace esto y luego eso y luego aquello, obtendrá este o aquel resultado.
Según la teoría de la ciencia hay dos tipos básicos de teorías:
- Teorías empíricas: teorías sobre objetos que podemos percibir y observar con nuestros sentidos, como por ejemplo teorías sobre cómo funciona el cuerpo humano o cómo se comportan los animales.
- Teorías analíticas: teorías sobre objetos que no podemos percibir con nuestros sentidos, pero que son, de alguna manera (no sabemos exactamente cómo) accesibles para nosotros, como teorías sobre los objetos de las matemáticas y la lógica (números, conjuntos, triángulos, ...)
Las teorías analíticas pueden probarse, es decir, verificarse o falsearse mediante razonamiento puro. Los matemáticos y los lógicos no observan ningún objeto con sus sentidos. No utilizan dispositivos, como microscopios, para observar los objetos sobre los que tratan sus teorías. Simplemente piensan sobre sus objetos y apuntan los resultados de su pensamiento.
Las teorías empíricas, por otro lado, no se pueden probar solo con el razonamiento. Con los objetos de las teorías empíricas, como, por ejemplo, el comportamiento de las ardillas, el razonamiento puede ayudar hasta cierto punto, pero nunca puede ser suficiente para probar o refutar nada. Las teorías empíricas se prueban con observaciones y experimentos son un tipo de observationes. Cuanto más consistente es una teoría con las observaciones realizadas, más se puede confiar en ella.
Profundicemos un poco más en esto. Considere la siguiente pregunta:
¿Las ardillas comen atún?¿Qué tipo de teoría se necesita para responder adecuadamente a esta pregunta? ¿Podemos encontrar una respuesta simplemente pensando sobre las ardillas? Obviamente no. Tenemos que hacer experimentos. Tenemos que observar ardillas.
Por supuesto, solo observar algunas ardillas de alguna manera no será suficiente para responder adecuadamente la pregunta. Muchas cosas pueden salir mal con nuestras observaciones. Podríamos, por ejemplo, observar solo tres ardillas durante cuatro días en los bosques del centro de Siberia. Tres ardillas no son suficientes para ser estadísticamente relevantes. Cuatro días es un período de tiempo demasiado corto. Y no hay atún en los bosques de Siberia central. Por lo tanto, observaciones de este tipo no serián científicamente válidas.
Aunque observar el comportamiento de las ardillas, y eso incluye experimentar con ardillas ofreciéndoles atún, es el camino a seguir, las observaciones por sí solas no serán suficientes. También necesitamos cierta comprensión de cómo las hipótesis empíricas, como la hipótesis de que las ardillas comen atún, se prueban de una manera científicamente válida.
¿Cómo se aplica todo esto al trading? Veamos nuevamente el algoritmo de trading de la última sección:
Si el precio del oro cae tres días seguidos, compre oro.¿Es este un problema empírico o un problema analítico? Obviamente, es como el problema de la ardilla: El precio del oro depende del comportamiento de los otros traders, es decir, de los otros participantes del mercado. Cuando muchos participantes del mercado compran oro, el precio sube. Cuando muchos participantes del mercado venden oro, el precio cae.
¿Por qué podría funcionar el algoritmo de trading anterior?
Podría haber un contramovimiento. Cuando el precio del oro cae tres días seguidos, algunas personas, tal vez muchas, podrían pensar: «El oro se ha vuelto más barato. Esta es una oportunidad para comprar». Y cuando mucha gente compra algo, su precio sube. Obviamente, el algoritmo también podría funcionar para otras «securities», por la misma razón. (En el trading, lo que se compra o vende, como una acción, una moneda, una materia prima, etc., a menudo se denomina «security»).
Sin embargo, como se trata de una cuestión empírica, el razonamiento por sí solo no será suficiente. Tenemos que probar nuestra hipótesis, en nuestro caso un algoritmo de trading, haciendo observaciones. Obviamente, no vamos a observar directamente a traders físicos en un mercado físico, como observaríamos directamente a ardillas físicas en un bosque físico. (Aunque, hace unos 500 años esto podría haber sido la única posibilidad). Sólo observaremos datos que el comportamiento de traders físicos ha dejado.
Puede probar fácilmente el algoritmo de trading anterior usted mismo sin saber nada sobre el comercio: Simplemente busque en Internet los precios históricos del oro, como, por ejemplo, los precios del oro en los últimos tres meses, y mire todas las series de tres días en los que el precio del oro subió de forma consecutiva. Suponga que compra oro el cuarto día en cada uno de estos eventos. Y suponga que vende su oro al quinto día. Escriba todas las ganancias como números positivos y todas las pérdidas como números negativos y sume todos estos números. Si la suma es un número positivo, entonces habría obtenido ganancias con el algoritmo. Si la suma es un número negativo, habría perdido dinero con el algoritmo.
Se pueden hacer varias observaciones con respecto al último párrafo: Primero, el tamaño de sus conjuntos de datos es importante. Si solo prueba el algoritmo de trading con datos de tres meses, no será una prueba científicamente válida. (Esto sería como solo observar tres ardillas). En segundo lugar, pasamos por alto el hecho de que cada operación conlleva ciertos costos. Para obtener resultados precisos, tendríamos que tener en cuenta estos costos en nuestros backtests. (Las pruebas de algoritmos con datos históricos se llaman «backtests»). En tercer lugar, resulta que la definición original de nuestro algoritmo de trading era bastante vaga: No decía nada sobre qué hacer con el oro comprado. Algunas opciones:
- no vender nunca
- vender al quinto día
- vender al sexto día
- vender después de un més
- vender cuando el oro haya subido un 5%
- vender cuando el oro haya subido un 10%
- ...
Es fácil ver que sería mucho trabajo probar todas estas posibilidades manualmente, especialmente con conjuntos de datos más grandes. Como vivimos en la era de las computadoras, probablemente sería mucho mejor dejar que ellas hagan este trabajo por nosotros. ¿Cómo se puede hacer esto? Lo examinaremos pronto. Pero, antes de hacer eso, preguntémonos si realmente se puede confiar en nuestra forma de probar nuestra estrategia de trading.