La idea general
Para valores de renta variable, un simple backtest consistirá típicamente en dos pasos:
- El cálculo de la cartera de devolución resultante de su cartera, la formación de la regla (o estrategia de negociación)
- 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.