1 votos

Cómo calcular el ratio de cobertura entre dos valores utilizando el modelo de mínimos cuadrados en Java

¿Cómo puede uno, teniendo dos listas de precios Y y X y deseando ajustar el modelo de mínimos cuadrados, realizar esto en Java?

El ajuste es necesario para calcular el ratio de cobertura en una estrategia de negociación de pares.

Para cada periodo, el diferencial se calcula como sigue:

symbol1.close - hedgeRatio * symbol2

Pretendemos comparar el rendimiento de esta fórmula frente a la utilización de medias móviles normalizadas.

El siguiente código de Python utiliza la biblioteca statsmodels y el método de mínimos cuadrados ordinarios (OLS).

import statsmodels.api as sm

def hedge_ratio(Y, X):
    X = sm.add_constant(X)
    model = sm.OLS(Y, X).fit()
    return model.params[1]

1voto

Jonathan Puntos 157

El siguiente código nos funciona:

    final boolean includeIntercept = false;
    SimpleRegression simpleRegression = new SimpleRegression(includeIntercept);

    for (int i = 0; i < symbol1Bars.size(); i++) {
        simpleRegression.addData(symbol1Bars.get(i).getClose(), symbol2Bars.get(i).getClose());
    }

Esto utiliza el Biblioteca Apache Commons Math 3

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