1 votos

¿Es posible utilizar la biblioteca financiera quantlib para calcular las siguientes medidas?

Estoy trabajando en un proyecto que aborda las finanzas y tengo curiosidad por saber si podría utilizar qunatlib para ello. Ya he mirado una documentación al respecto pero como definitivamente no soy un experto en finanzas, no pude concluir si el quantlib se adapta bien a las medidas que tengo.

Por ejemplo, estoy calculando el pago de cupones / dividendos sobre un bono / acción en un día determinado. Veamos el ejemplo del cupón. En el día especificado un cliente tiene 10 bonos (cada uno tiene un importe nominal de 100 USD y una tasa de cupón del 7%), por la simple multiplicación calculo que el cliente recibe 70 USD en ese día.

Además, estoy calculando el valor contable y de mercado de los activos junto con las medidas de rentabilidad total y relativa de los precios también sobre el activo. Tengo curiosidad por saber si es posible calcular alguno de estos valores mediante el uso de qunatlib . Veo que en general se utiliza mucho y ofrece un manojo de características y la motivación adicional para esto es el hecho de que no me gustaría reinventar la rueda si hay una biblioteca que puede hacerlo por mí.

Si alguien pudiera decirme si es posible calcular alguna de esas medidas utilizando qunatlib e idealmente proporcionar una muestra de la medición sería genial. Agradeceré cualquier ayuda.

Gracias por adelantado

3voto

¿Es suficiente para usted? Crear un bono fijo y su precio limpio, precio sucio y YTM.

const Date t0 = Date(8, July, 2015);    // July 8th, 2015
const Date t1 = Date(10, August, 2015); // August 10th, 2015
const Date t2 = t0 + Period(2, Months); // September 8th, 2015
const Date t3 = t0 + Period(3, Months); // October 8th, 2015

// Make sure we're evaluating at t0
Settings::instance().evaluationDate() = t0;

Schedule sch(t0,
             t3,
             Period(Monthly),
             UnitedStates(),
             Unadjusted,
             Unadjusted,
             DateGeneration::Backward,
             false);

const auto dc = Actual360();

FixedRateBond bond(0, 1000, sch, std::vector<Rate> { 0.07, 0.07, 0.07 }, dc);

// We have four payments (three coupons + one nominal)
std::cout << bond.cashflows().size() << std::endl;

// Coupon for the first payment date
std::cout << bond.cashflows()[0]->amount() << std::endl;

// Coupon for the second payment date
std::cout << bond.cashflows()[1]->amount() << std::endl;

// Coupon for the final payment date
std::cout << bond.cashflows()[2]->amount() << std::endl;

// Nominal at the end of the bond
std::cout << bond.cashflows()[3]->amount() << std::endl;

Handle<YieldTermStructure> zero(flatRate(t0, 0.05, Actual360()));

boost::shared_ptr<PricingEngine> engine = boost::shared_ptr<PricingEngine>(
                                            new DiscountingBondEngine(Handle<YieldTermStructure>(zero)));
bond.setPricingEngine(engine);

std::cout << bond.dirtyPrice() << std::endl;
std::cout << bond.cleanPrice() << std::endl;
std::cout << bond.yield(dc, Simple, Monthly) << std::endl;

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