@kaishen/quantlib
v0.1.19
Published
Node.js finance library
Downloads
14
Maintainers
Readme
@kaishen/quantlib
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 supportsN-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