4 votos

Aprender backtesting usando MATLAB

¿Cuáles son algunos buenos recursos (libros, artículos, ...) para aprender backtesting de estrategias de inversión usando MATLAB ?

Puede ser las estrategias relacionadas con la renta fija, renta variable, derivados, ... lo que sea. El proceso de backtesting es más importante que la estrategia actual.

Gracias.

Maxime.

4voto

Jawad Puntos 51

La idea general

Para valores de renta variable, un simple backtest consistirá típicamente en dos pasos:

  1. El cálculo de la cartera de devolución resultante de su cartera, la formación de la regla (o estrategia de negociación)
  2. Riesgo de ajuste de la rentabilidad de la cartera utilizando un modelo de valuación de activos

El paso 2 es simplemente una regresión y computacionalmente muy simple en Matlab. Lo más difícil es la implementación del paso 1, en el que tendrá que ser muy cómodo en Matlab, y hay diferentes maneras de hacer esto.

Si usted sabe cómo hacer una regresión OLS en Matlab, lo que usted debe centrarse en es todo tipo de matriz de manipulaciones.

La implementación en Matlab

Cartera de formación y devuelve la computación

Para dar un ejemplo de cómo una primitiva de la estrategia de negociación podría ser implementado en Matlab, vamos a suponer que el rendimiento mensual de datos y un uniforme período de tenencia de un mes en $n$ activos de más de $k$ períodos, donde $i \in \{1,...,n\}$ y $k \in \{1,...,t\}$.

Suponiendo que no hay cambios en la composición de las existencias del universo, su devuelve la matriz de $X$ es de dimensiones $k \times n$.

$$X = \begin{matriz} x_{11} & \dots & x_{1i} & \dots & x_{1n} \\ \vdots & \ddots & \vdots & \ddots & \vdots \\ x_{t1} & \dots & x_{ti} & \dots & x_{tn} \\ \vdots & \ddots & \vdots & \ddots & \vdots\\ x_{1} & \dots & x_{ki} & \dots & x_{kn} \\ \end{matriz}$$

Donde los beneficios se calculan como $x_{es} = \frac{p_{t+1,i}}{p_{ti}} -1$.

Suponiendo que el criterio de selección es algún tipo de stock característica que está disponible en frecuencia mensual, usted también tendrá una de las características de la matriz $C$.

Usted podría escribir un algoritmo que identifica a las entradas de $C$ que cumplan con tus criterios de selección (por ejemplo, superar un determinado umbral) y reemplazar las entradas correspondientes (donde $i$ y $t$ son el mismo) de una matriz de indicadores $I$ (que ha sido inicializado en cero de la matriz utilizando los ceros de la función) con los.

Luego, puede multiplicar las entradas de $I$, por los de las devoluciones de la matriz $X$ para obtener una matriz $R$, que indica la devuelve como resultado de su participación. Usted puede entonces calcular la media de la no-cero entradas para cada fila de $R$ a obtener su vector de la rentabilidad de la cartera.

Riesgo de ajuste y la identificación de los rendimientos anormales

En el paso 2 se compara este vector para el normal de los rendimientos obtenidos de la regresión de la estimación de un modelo de valoración de activos, tales como la Fama-modelo francés. Restando el rendimiento normal del vector de su rentabilidad de la cartera de vector, puede determinar si su estrategia comercial se ha traducido en un anormales positivos de retorno, que es lo que estás buscando.

Recomendaciones

Si usted es nuevo a Matlab, personalmente, sugiero que te familiarices con ella lo suficiente como para implementar esta estrategia simplista, antes de relajarse algunos de los supuestos simplificadores (tales como el uniforme periodo de mantenimiento y su periodicidad) y proceder a la más sofisticada de las implementaciones.

De nuevo, lo que me gustaría resaltar es que esto requiere que usted sea muy cómodo con Matlab y en especial de las diferentes formas de manipular las matrices, lo que puede tomar algún tiempo. Si usted no está obligado a usar Matlab para su pasantía y quisiera obtener resultados rápidos, usted podría hacer el paso 1 en Excel en su lugar, que es tedioso, pero no es necesario que el (la pena) inversión inicial que se necesita hacer para Matlab.

Para familiarizarse con Matlab, estoy seguro de que ya han descubierto la muy buena documentación que viene con él. Eso, para mí, es el recurso más valioso y probablemente más útil de más de finanzas-recursos específicos (con la que me gustaría esperar hasta que se familiarice con Matlab sí mismo). Todo lo que se requiere para determinar el rendimiento normal es una regresión por MCO y un conocimiento básico de los modelos de fijación de precios de activos.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X