UNPKG

talib-wasm

Version:

ta-lib.org package parsed with emscripten, that can be added to browser

259 lines (229 loc) 5.52 kB
# talib-wasm An emscripten wrapper around TA-LIB, that allows you to use technical analysis library from [ta-lib.org](https://ta-lib.org) with webpack or inside node.js. Supports typescript types. [![Support developer](readme-assets/buymeacoffee.png)](https://buymeacoff.ee/oItObEGUm) ## Installation To install the most recent release from npm, run: ```npm install talib-wasm --save``` ## Examples ### Simple usage ```javascript require('talib-wasm') .then((funcs) => { const totalLength = 50; const inputArray1 = new Array(totalLength); const inputArray2 = new Array(totalLength); for (let i = 0; i < totalLength; i++) { inputArray1[i] = Math.random() * 100; inputArray2[i] = Math.random() * 100; } const result = funcs.CORREL({ startIdx: 0, begIdx: totalLength - 1, inReal0: inputArray1, inReal1: inputArray2, optInTimePeriod: 5 }); console.log( result ); }); ``` Output: ``` { outReal: Float64Array [ -0.6928388933464642, -0.5839394251640864, -0.14373076952669628, 0.6790200559640114, 0.8465738940590309, 0.28576183066199495, ... ], returnCode: 0, returnCodeName: 'TA_SUCCESS' } ``` ### Get all function definitions ``` require('talib-wasm') .then((funcs) => { console.log( JSON.stringify(funcs.describeFunctions(), null, 2) ) }); ``` Output: ``` { "ACOS": { "RequiredInputArguments": [ { "name": "inReal", "defaultValue": null } ], "OptionalInputArguments": [], "OutputArguments": [ { "name": "outReal" } ] }, "AD": { "RequiredInputArguments": [ { "name": "High", "defaultValue": null }, { "name": "Low", "defaultValue": null }, { "name": "Close", "defaultValue": null }, { "name": "Volume", "defaultValue": null } ], "OptionalInputArguments": [], "OutputArguments": [ { "name": "outReal" } ] }, "ADD": { "RequiredInputArguments": [ { "name": "inReal0", "defaultValue": null }, { "name": "inReal1", "defaultValue": null } ], "OptionalInputArguments": [], "OutputArguments": [ { "name": "outReal" } ] }, ... } ``` ### MA Types Some indicators require or accept a optInMAType property: ``` SMA = 0 EMA = 1 WMA = 2 DEMA = 3 TEMA = 4 TRIMA = 5 KAMA = 6 MAMA = 7 T3 = 8 ``` ## Local build You need manually install [emscripten](https://emscripten.org/) to build this package. ``` npm run build ``` ## Modules versions ### Version 3.0.1 * Bugfix with nested C-functions (ffi) + tests ``` emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 2.0.14 clang version 12.0.0 node (EMSDK_NODE) version - 15.10.0 python (EMSDK_PYTHON) version - 3.9.2 ``` ### Version 3.0.0 * Result arrays now not contain blank fields at the end. Length of result array in version 2.x can be different with version 3.x * Result arrays now are not Float64Array. * Fixed memory leaks on functions calls. * Added `lookback` functions to get lookback info. Very useful to get difference between input and output arrays lengths. * Talib C++ sources from ta-lib.org now in project. * Added tests (uses jest). ``` emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 2.0.10 clang version 12.0.0 (/opt/s/w/ir/cache/git/chromium.googlesource.com-external-github.com-llvm-llvm--project 445289aa63e1b82b9eea6497fb2d0443813a9d4e) node (EMSDK_NODE) version - 15.3.0 python (EMSDK_PYTHON) version - 3.8.5 ``` ### Versions 2.0.1 - 2.0.6 Added main.d.ts file for typescript typings support. ``` emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 2.0.0 clang version 12.0.0 talib version - 1.1.3 node (EMSDK_NODE) version - 14.8.0 python (EMSDK_PYTHON) version - 3.8.5 ``` ### Version 2.0.0 Switch to emscripten v2.0.0 ``` emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 2.0.0 clang version 12.0.0 talib version - 1.1.3 node (EMSDK_NODE) version - 14.8.0 python (EMSDK_PYTHON) version - 3.8.5 ``` ### Version 1.1.3 ``` emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 1.40.1 talib - 1.1.3 node - 14.7.0 ``` ### Version 1.1.2 ``` emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 1.39.18 talib - 1.1.3 node - 14.5.0 ``` ### Version 1.1.1 ``` emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 1.39.14 talib - 1.1.3 node - 14.2.0 ``` ### Version 1.1.0 ``` emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 1.39.13 talib - 1.1.3 node - 14.0.0 ``` ### Version 1.0.6 ``` emcc - (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 1.39.6 talib - 1.1.3 node - 13.7.0 ``` ### Version 1.0.5 ``` emcc - (Emscripten gcc/clang-like replacement) 1.39.3 talib - 1.1.3 node - 13.2.0 ``` ### Version 1.0.4 ``` emcc - (Emscripten gcc/clang-like replacement) 1.39.1 talib - 1.1.3 node - 13.0.1 ``` ### Version 1.0.3 ``` emcc - (Emscripten gcc/clang-like replacement) 1.38.44 talib - 1.1.2 node - 12.10.0 binaryen - 89 ``` ## Support developer **_If you like this package - support me on [Buy me a coffee](https://buymeacoff.ee/oItObEGUm)._**