2 votos

minimizar el error de seguimiento mientras que se reduce el número de operaciones requeridas

Tengo una cartera que es un subconjunto de un punto de referencia. Quiero minimizar el error de seguimiento entre mi cartera y el punto de referencia.

Actualmente yo uso de APT modelo de riesgo para ello. Me puse a correr para 10 iteraciones. En cada iteración se reduce el número de operaciones por aproximadamente 10% de la iteración anterior y se minimiza el error de seguimiento.

Deseo utilizar mi propio modelo de riesgo en lugar de APT, por diversas razones.

Puedo minimizar el error de seguimiento de uso de mi propio modelo de riesgo. Sin embargo no estoy seguro de cómo minimizar el error de seguimiento y se limita el número de operaciones como APT no.

Un enfoque que es muy cruda es minimizar el error de seguimiento y calcular la contribución marginal de cada una de las acciones para el seguimiento de errores y decir el optimizador de que esas acciones no pueden ser objeto de comercio. ¿Qué es una mejor manera?

Actualización

Estoy usando matlab y la tomlab optimizador de conversiones, con la documentación que a continuación. Así que sí, la función objetivo es no lineal y tenemos restricciones lineales. He visto que tomlab ofrece una programación entera mixta de la función, sin embargo, no está seguro de cómo incorporar en mi actual problema?

 % -----------------------------------------------------
 %
 % QP minimization problem:
 %
 %
 %        min   0.5 * x' * F * x + c' * x.  x in R^n
 %         x
 %        s/t   x_L <=   x  <= x_U
 %              b_L <= A x  <= b_U
 %
 % Equality equations: Set b_L==b_U
 % Fixed    variables: Set x_L==x_U
%
% -----------------------------------------------------
%
% Syntax of qpAssign:
%
% function Prob = qpAssign(F, c, A, b_L, b_U, x_L, x_U, x_0, Name,...
%                 setupFile, nProblem, fLowBnd, x_min, x_max, f_opt, x_opt);
%
% INPUT (One parameter F must always be given. Empty gives default)
%
% F            The matrix F in 0.5 x' F x in the objective function
% c            The vector c in c'x in the objective function
% A            The linear constraint matrix
% b_L          The lower bounds for the linear constraints
% b_U          The upper bounds for the linear constraints
% x_L          Lower bounds on x
% x_U          Upper bounds on x 
%
%              b_L, b_U, x_L, x_U must either be empty or of full length
%
% x_0          Starting point x (may be empty)
% Name         The name of the problem (string)
% setupFile    The (unique) name as a TOMLAB Init File. If nonempty qpAssign
%              will create a executable m-file with this name and the given
%              problem defined as the first problem in this file.
%              See qp_prob.m, the TOMLAB predefined QP Init File.
%              If empty, no Init File is created. Also see nProblem.
% nProblem     Number of problems, or problem number, to define in the setupFile
%              Not used if setupFile is empty.
%
%              nProblem = 1 ==> File is created to make it easy to edit new
%              problems into the file. Text are included on how to add new
%              problems. The given problem is set as number 1.
%              If isempty(nProblem) same as nProblem=1.
%
%              length(nProblem) > 1 ==> A file suitable for large test sets
%              are setup, where the problem definition is read from mat-files.
%              Statements for problems nProblem(1) to nProblem(2) are defined.
%              The given input is assumed to be nProblem(1), and the
%              corresponding mat-file is created.
%
%              If nProblem > 1. Additional problems are assumed, and the only
%              thing done is to create a mat-file with the problem.
%
%              If isempty(setupFile), nProblem is not used
%
% fLowBnd      A lower bound on the function value at optimum. Default -1E300
%              A good estimate is not critical. Use [] if not known at all.
%              Only used running some nonlinear TOMLAB solvers with line search
% x_min        Lower bounds on each x-variable, used for plotting
% x_max        Upper bounds on each x-variable, used for plotting
% f_opt        Optimal function value(s), if known (Stationary points)
% x_opt        The x-values corresponding to the given f_opt, if known.
%              If only one f_opt, give x_opt as a 1 by n vector
%              If several f_opt values, give x_opt as a length(f_opt) x n matrix
%              If adding one extra column n+1 in x_opt,
%              0 indicates min, 1 saddle, 2 indicates max.
%              x_opt and f_opt is used in printouts and plots.

1voto

Vladimir Reshetnikov Puntos 18017

Primero de todo, necesitamos tener claro la diferencia entre el modelo de riesgo y el optimizador.

El Modelo De Riesgo

El modelo de riesgo es cómo evaluar el riesgo y el error de seguimiento de su cartera. En la mayoría de los modelos de riesgo de esto sería implementado por el uso de algo de la forma

w'eSe'w + wI

donde

  • w es un [nx1] vector de sus existencias de peso

  • correo es [nxm] de la matriz representa el factor de riesgo de la carga de sus acciones

  • S es un [mxm] de la matriz de la covarianza de su factor de riesgo

  • I es un [nx1] vector de sus valores idiosincrásicos de la volatilidad (la la volatilidad de los que no se explica por los factores de riesgo)

Esta puede venir de cualquier modelo de riesgo del proveedor o usted puede crear su propio como usted indica.

La Optimización De

Ahora el segundo problema y donde tu pregunta es realmente difícil de responder es cómo optimizar. No sabemos que el software que está utilizando actualmente o le gustaría utilizar para resolver el problema de optimización así que voy a tratar de ser bastante general.

La optimización del problema que se quiere resolver es encontrar el conjunto de los pesos de papel de tal forma que minimizar

w'eSe'w + wI

normalmente no habría limitaciones que Aw=b (restricciones lineales) y l < w < b (obligado restricciones) y, potencialmente, otras lineal o cuadrática en términos de su objetivo

Ya que su objetivo es de forma cuadrática y sus restricciones lineales más solver sería capaz de manejar de forma eficiente.

Ahora su pregunta se refiere al número máximo de operaciones a realizarse. Normalmente, esto se considera una Programación entera Mixta (MIP) donde se tiene una variable oculta que puede ser 1 o 0 para cada uno de los comerciales w-w* debe hacerse o no.

Esta no es una tarea sencilla para optimizar. Lo que usted sugiere en realidad podría ser utilizado y es una heurística que se pueden aplicar dentro de la solución general : Branch-and-Bound.

Esencialmente en rama y obligado desea evaluar las múltiples combinaciones de la variable oculta para ver lo que uno podría producir la solución más óptima sujeto a sus restricciones y lo cerca que se llega a la cota de la relajada solución óptima. Si la dimensionalidad es particularmente elevada, esto no es un problema trivial y es necesario definir varias cosas, tales como el real mecanismo de ramificación y la suspensión mecanismo.

La mayoría (pero no todos) optimizer (disponible comercialmente o de código abierto) tendrá funcionalidades y yo sugiero que dependen de ellos para implementar este tipo de estrategias. De lo contrario usted puede leer más en la rama y atado y tener su propia aplicación (aunque yo diría que en la mayoría de los casos este no es el enfoque recomendado)

También puede probar las diferentes heurísticas como la que se describe y la esperanza de que usted no está demasiado lejos de la solución óptima. La lectura sobre la rama y obligado ayudará a evaluar esto, en cualquier caso.

Sin saber que software específico que usted está usando este es el consejo general como puedo dar.

Buena suerte !


ACTUALIZACIÓN : Desde que agregó que la plataforma que se utilice : me gustaría ver en MILP/MIQP funcionalidades del solver. Tomlab no tiene fuera de la caja soluciones para este tipo de cartera de restricción por lo que es digno de la comprobación con Tomlab qué módulos que usted ha pagado y podría coincidir con el MILP/MIQP de problemas.

Una palabra de aviso : es no trivial de implementar, tendría que experimentar y si el tamaño de su universo es grande (>1000 nombres) la optimización puede ser particularmente lento.

  • Si usted tiene el tiempo : de aprender y de experimentar :) - Esperar al menos un par de semanas (2,4,8...16?) de trabajo para llegar allí, incluso si usted sabe lo que está haciendo
  • Si usted no tiene tiempo y no hay presupuesto adicional : Aplicar la heurística se describe en un proceso iterativo de forma. O algunos otros razonable la heurística y comparar los que le da la menor T. E. de manera consistente.
  • Si tienes un poco de tiempo y un montón de presupuesto para un comercial de solver, posiblemente especializada en la construcción de la cartera problema que ha específica BnB estrategias para este tipo de problemas.

También vale la pena agregar : es posible Que desee agregar una pena por los costos de transacción en su función de utilidad con una cantidad fija por transacción (y, potencialmente, un por ciento por cada dólar que se negocian y, potencialmente, con un impacto en el mercado modelo). Esto puede hacer que la optimización de un poco más natural y dar información cuando usted realmente NECESITA para el comercio más de lo habitual

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