@kaishen/quantlib
TypeScript icon, indicating that this package has built-in type declarations

0.1.19 • Public • Published

@kaishen/quantlib

actions

Install this package

npm install @kaishen/quantlib --save

Support matrix

node10 node12 node14 node15
Windows x64
Windows x32
macOS x64
macOS arm64
Linux x64 gnu
Linux x64 musl
Android arm64

Performance

派息日历 @ 债券 x 174,647 ops/sec ±5.55% (92 runs sampled)
应计利息 @ 债券 x 1,854,755 ops/sec ±0.93% (95 runs sampled)
Fastest is 应计利息 @ 债券

Develop requirements

  • Install latest Rust
  • Install NodeJS@10+ which supports N-API

Test in local

  • npm install
  • npm run build
  • npm run test

And you will see:

$ ava --tap | tap-nyan

 138 -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-__,------,
 0   -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-__|  /\_/\
 0   -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_~|_( ^ .^)
     -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ ""  ""
  Pass!

Usage

Bond Calendars

import {Bond, DayCountDes} from '@kaishen/quantlib';

const bond = new Bond(
    '2013-05-09',
    '2013-05-09',
    '2013-11-09',
    '2043-05-09',
    2,
    DayCountDes.ISMAThirty360,
    4.25,
);

const calendars = bond.calendars();
console.log(`calendars: ${calendars}`);
$ console
calendars: ["2013-05-09","2013-11-09","2014-05-09","2014-11-09","2015-05-09","2015-11-09","2016-05-09","2016-11-09","2017-05-09","2017-11-09","2018-05-09","2018-11-09","2019-05-09","2019-11-09","2020-05-09","2020-11-09","2021-05-09","2021-11-09","2022-05-09","2022-11-09","2023-05-09","2023-11-09","2024-05-09","2024-11-09","2025-05-09","2025-11-09","2026-05-09","2026-11-09","2027-05-09","2027-11-09","2028-05-09","2028-11-09","2029-05-09","2029-11-09","2030-05-09","2030-11-09","2031-05-09","2031-11-09","2032-05-09","2032-11-09","2033-05-09","2033-11-09","2034-05-09","2034-11-09","2035-05-09","2035-11-09","2036-05-09","2036-11-09","2037-05-09","2037-11-09","2038-05-09","2038-11-09","2039-05-09","2039-11-09","2040-05-09","2040-11-09","2041-05-09","2041-11-09","2042-05-09","2042-11-09","2043-05-09"]

Bond Accrued

import {Bond, DayCountDes} from '@kaishen/quantlib';

const bond = new Bond(
    '2013-05-09',
    '2013-05-09',
    '2013-11-09',
    '2043-05-09',
    2,
    DayCountDes.ISMAThirty360,
    4.25,
);

const accrued = bond.accrued('2021-05-07', 1000000);
console.log(`accrued: ${accrued}`);
$ console
accrued: 21013.888888888887

Bond Gav

import {Bond, Trade, AssetType, DayCountDes, ActionType} from '@kaishen/quantlib';

const trades = new Trades('Bond', AssetType.Bond);
trades.add({
    action: ActionType.Buy,
    quantity: 1000000,
    price: 101,
    trade_date: '2020-01-02',
    settle_date: '2020-01-03',
});

const bond = new Bond(
    '2013-05-09',
    '2013-05-09',
    '2013-11-09',
    '2043-05-09',
    2,
    DayCountDes.ISMAThirty360,
    4.25,
);

const gav = bond.gav('2021-05-07', 110, trades);
console.log(`gav: ${gav}`);
$ console
gav: 1121131.9444444445

Package Sidebar

Install

npm i @kaishen/quantlib

Weekly Downloads

1

Version

0.1.19

License

MIT

Unpacked Size

20.9 kB

Total Files

4

Last publish

Collaborators

  • kaishen