{"id":13460950,"url":"https://github.com/TulipCharts/tulipnode","last_synced_at":"2025-03-24T19:33:32.512Z","repository":{"id":14982376,"uuid":"76993879","full_name":"TulipCharts/tulipnode","owner":"TulipCharts","description":"Tulip Node is the official node.js wrapper for Tulip Indicators. It provides over 100 technical analysis overlay and indicator functions.","archived":false,"fork":false,"pushed_at":"2023-06-28T23:21:49.000Z","size":88,"stargazers_count":494,"open_issues_count":18,"forks_count":86,"subscribers_count":21,"default_branch":"master","last_synced_at":"2024-09-08T05:17:17.141Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://tulipindicators.org","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/TulipCharts.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS"}},"created_at":"2016-12-20T21:44:21.000Z","updated_at":"2024-09-07T14:40:53.000Z","dependencies_parsed_at":"2024-01-22T18:06:25.836Z","dependency_job_id":null,"html_url":"https://github.com/TulipCharts/tulipnode","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TulipCharts%2Ftulipnode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TulipCharts%2Ftulipnode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TulipCharts%2Ftulipnode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TulipCharts%2Ftulipnode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TulipCharts","download_url":"https://codeload.github.com/TulipCharts/tulipnode/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":222004392,"owners_count":16914876,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T10:00:51.457Z","updated_at":"2024-10-29T06:31:03.906Z","avatar_url":"https://github.com/TulipCharts.png","language":"JavaScript","readme":"[![Build Status](https://travis-ci.com/TulipCharts/tulipnode.svg?branch=master)](https://travis-ci.com/TulipCharts/tulipnode)\n[![Build Status](https://ci.appveyor.com/api/projects/status/ps9l8w7fxi81v2q5/branch/master?svg=true)](https://ci.appveyor.com/project/codeplea/tulipnode)\n[![npm](https://img.shields.io/npm/dw/tulind.svg)](https://www.npmjs.com/package/tulind)\n\n# Tulip Node\n\nTulip Node is the official node.js wrapper for [Tulip\nIndicators](https://tulipindicators.org). It provides 100+\ntechnical analysis indicator functions, such as:\nsimple moving average, Bollinger Bands, MACD, Parabolic SAR, Stochastic\nOscillator, and many more.\n\n\n## Installation\n\nInstallation should just be:\n\n``` js\nnpm install tulind\n```\n\nIt should work on Windows, Os X, and Linux. Node version 10, 11, 12, 13, 14 (LTS),\n15 and 16 are tested and supported on each platform.\n\nNote that pre-compiled binaries are available for Windows. For other platforms\nyou will need a C++ build environment installed. On Linux based distributions\nthis can be achieved by installing `build-essential` package.\n\nYou can force building from source with:\n\n```js\nnpm install tulind --build-from-source\n```\n\nIf you run into problems, let me know. I want this to be easy for everyone to\nuse.\n\n\n## Usage\n\nTulip Node is very easy to use.\n\n``` js\nvar tulind = require('tulind');\nconsole.log(\"Tulip Indicators version is:\");\nconsole.log(tulind.version);\n```\n\nIn these examples, we assume you already have price data loaded such as:\n``` js\n//Examples assume you have some price data like this:\n//Data order is from oldest to newset (index 0 is the oldest)\nvar open  = [4,5,5,5,4,4,4,6,6,6];\nvar high  = [9,7,8,7,8,8,7,7,8,7];\nvar low   = [1,2,3,3,2,1,2,2,2,3];\nvar close = [4,5,6,6,6,5,5,5,6,4];\nvar volume = [123,232,212,232,111,232,212,321,232,321];\n```\n\nCalculating a simple moving average is as easy as:\n\n``` js\n//Do a simple moving average on close prices with period of 3.\ntulind.indicators.sma.indicator([close], [3], function(err, results) {\n  console.log(\"Result of sma is:\");\n  console.log(results[0]);\n});\n```\n\n\n\nExample of calculating the Stochastic Oscillator:\n\n``` js\n//Functions that take multiple inputs, options, or outputs use arrays.\n//Call Stochastic Oscillator, taking 3 inputs, 3 options, and 2 outputs.\ntulind.indicators.stoch.indicator([high, low, close], [5, 3, 3], function(err, results) {\n  console.log(\"Result of stochastic oscillator is:\");\n  console.log(results[0]);\n  console.log(results[1]);\n});\n```\n\n\nIt's also easy to discover argument types at run-time:\n\n``` js\n//Discover argument types at run-time:\nconsole.log(tulind.indicators.stoch);\n\n//Produces:\n{ name: 'stoch',\n  full_name: 'Stochastic Oscillator',\n  type: 'indicator',\n  inputs: 3,\n  options: 3,\n  outputs: 2,\n  input_names: [ 'high', 'low', 'close' ],\n  option_names: [ '%k period', '%k slowing period', '%d period' ],\n  output_names: [ 'stoch_k', 'stoch_d' ],\n  indicator: [Function],\n  start: [Function] }\n```\n\n\nMany (most) indicators return an output array length smaller than the input length.\nYou can get the difference like this:\n\n``` js\nconsole.log(\"Given these options, the output arrays will be this much shorter than the input arrays:\");\nconsole.log(tulind.indicators.stoch.start([5,3,3]));\n```\n\n\nHopefully it's obvious, but you can see all the available indicators by doing:\n``` js\nconsole.log(tulind.indicators);\n```\n\nYou can also see a full list of the available indicators on the [Tulip\nIndicators website here](https://tulipindicators.org/list).\n\n","funding_links":[],"categories":["TA Lib","Trading System (Back Test \u0026 Live trading)","JavaScript","others","Technical analysis libraries"],"sub_categories":["Crypto Currencies","TA (Technical Analysis) Lib"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTulipCharts%2Ftulipnode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTulipCharts%2Ftulipnode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTulipCharts%2Ftulipnode/lists"}