Skip to content
All library documents

Using Node.js for Trading Tools and Technical Indicators

Article Quant Q&A · Author: Nikos

Summary

The discussion surveys ways Node.js and JavaScript have been used in trading projects, from tracking market data and calculating indicators to reporting, backtesting, and live applications. One response recommends using a Node.js wrapper for the TA-Lib technical analysis library, which supplies a broad set of indicators, including moving averages, momentum measures, volatility measures, and candlestick-pattern functions. Other contributors describe using Node.js for reporting or platform services, and some cite JavaScript or TypeScript indicator and time-series packages.

The examples show that the ecosystem can support indicator work and real-time applications, but they do not compare performance, reliability, or suitability for production trading. The replies also distinguish supporting tools from a main signal-generation system. Package names and maintenance status reflect the time of the discussion, so readers should check current compatibility and support before relying on a library. The thread offers implementation leads rather than evidence that a particular language or indicator set improves trading results.

Key ideas

  • Node.js can support market-data projects, indicator calculations, reporting, and trading applications.
  • TA-Lib wrappers provide access to a broad catalog of technical indicators and pattern functions.
  • Contributors report varied uses, including reporting services and algorithm development.
  • The discussion does not benchmark tools or establish that JavaScript is suitable for every production system.
  • Library availability and maintenance may change, so current status should be checked.

Tags

Full text
# Is node.js being used in systematic trading software?


# Is node.js being used in systematic trading software?












I have a project where I would like to track some tick data and create some indicators to follow it. I am thinking of using Node.js for this project, but I would like to know from those in industry if they have come across it in their own or others systems and if they use any particular JavaScript finance libraries.

## Answer by sdude (score 6, accepted)

https://quant.stackexchange.com/a/19547

I think the best choice for technical analysis with node is node-talib, a wrapper around TA-Lib. We're using it for some projects and it works ok so far. Here's a list of the indicators you get out of the box:

```
AD                  Chaikin A/D Line
ADOSC               Chaikin A/D Oscillator
ADX                 Average Directional Movement Index
ADXR                Average Directional Movement Index Rating
APO                 Absolute Price Oscillator
AROON               Aroon
AROONOSC            Aroon Oscillator
ATR                 Average True Range
AVGPRICE            Average Price
BBANDS              Bollinger Bands
BETA                Beta
BOP                 Balance Of Power
CCI                 Commodity Channel Index
CDL2CROWS           Two Crows
CDL3BLACKCROWS      Three Black Crows
CDL3INSIDE          Three Inside Up/Down
CDL3LINESTRIKE      Three-Line Strike 
CDL3OUTSIDE         Three Outside Up/Down
CDL3STARSINSOUTH    Three Stars In The South
CDL3WHITESOLDIERS   Three Advancing White Soldiers
CDLABANDONEDBABY    Abandoned Baby
CDLADVANCEBLOCK     Advance Block
CDLBELTHOLD         Belt-hold
CDLBREAKAWAY        Breakaway
CDLCLOSINGMARUBOZU  Closing Marubozu
CDLCONCEALBABYSWALL Concealing Baby Swallow
CDLCOUNTERATTACK    Counterattack
CDLDARKCLOUDCOVER   Dark Cloud Cover
CDLDOJI             Doji
CDLDOJISTAR         Doji Star
CDLDRAGONFLYDOJI    Dragonfly Doji
CDLENGULFING        Engulfing Pattern
CDLEVENINGDOJISTAR  Evening Doji Star
CDLEVENINGSTAR      Evening Star
CDLGAPSIDESIDEWHITE Up/Down-gap side-by-side white lines
CDLGRAVESTONEDOJI   Gravestone Doji
CDLHAMMER           Hammer
CDLHANGINGMAN       Hanging Man
CDLHARAMI           Harami Pattern
CDLHARAMICROSS      Harami Cross Pattern
CDLHIGHWAVE         High-Wave Candle
CDLHIKKAKE          Hikkake Pattern
CDLHIKKAKEMOD       Modified Hikkake Pattern
CDLHOMINGPIGEON     Homing Pigeon
CDLIDENTICAL3CROWS  Identical Three Crows
CDLINNECK           In-Neck Pattern
CDLINVERTEDHAMMER   Inverted Hammer
CDLKICKING          Kicking
CDLKICKINGBYLENGTH  Kicking - bull/bear determined by the longer marubozu
CDLLADDERBOTTOM     Ladder Bottom
CDLLONGLEGGEDDOJI   Long Legged Doji
CDLLONGLINE         Long Line Candle
CDLMARUBOZU         Marubozu
CDLMATCHINGLOW      Matching Low
CDLMATHOLD          Mat Hold
CDLMORNINGDOJISTAR  Morning Doji Star
CDLMORNINGSTAR      Morning Star
CDLONNECK           On-Neck Pattern
CDLPIERCING         Piercing Pattern
CDLRICKSHAWMAN      Rickshaw Man
CDLRISEFALL3METHODS Rising/Falling Three Methods
CDLSEPARATINGLINES  Separating Lines
CDLSHOOTINGSTAR     Shooting Star
CDLSHORTLINE        Short Line Candle
CDLSPINNINGTOP      Spinning Top
CDLSTALLEDPATTERN   Stalled Pattern
CDLSTICKSANDWICH    Stick Sandwich
CDLTAKURI           Takuri (Dragonfly Doji with very long lower shadow)
CDLTASUKIGAP        Tasuki Gap
CDLTHRUSTING        Thrusting Pattern
CDLTRISTAR          Tristar Pattern
CDLUNIQUE3RIVER     Unique 3 River
CDLUPSIDEGAP2CROWS  Upside Gap Two Crows
CDLXSIDEGAP3METHODS Upside/Downside Gap Three Methods
CMO                 Chande Momentum Oscillator
CORREL              Pearson's Correlation Coefficient (r)
DEMA                Double Exponential Moving Average
DX                  Directional Movement Index
EMA                 Exponential Moving Average
HT_DCPERIOD         Hilbert Transform - Dominant Cycle Period
HT_DCPHASE          Hilbert Transform - Dominant Cycle Phase
HT_PHASOR           Hilbert Transform - Phasor Components
HT_SINE             Hilbert Transform - SineWave
HT_TRENDLINE        Hilbert Transform - Instantaneous Trendline
HT_TRENDMODE        Hilbert Transform - Trend vs Cycle Mode
KAMA                Kaufman Adaptive Moving Average
LINEARREG           Linear Regression
LINEARREG_ANGLE     Linear Regression Angle
LINEARREG_INTERCEPT Linear Regression Intercept
LINEARREG_SLOPE     Linear Regression Slope
MA                  All Moving Average
MACD                Moving Average Convergence/Divergence
MACDEXT             MACD with controllable MA type
MACDFIX             Moving Average Convergence/Divergence Fix 12/26
MAMA                MESA Adaptive Moving Average
MAX                 Highest value over a specified period
MAXINDEX            Index of highest value over a specified period
MEDPRICE            Median Price
MFI                 Money Flow Index
MIDPOINT            MidPoint over period
MIDPRICE            Midpoint Price over period
MIN                 Lowest value over a specified period
MININDEX            Index of lowest value over a specified period
MINMAX              Lowest and highest values over a specified period
MINMAXINDEX         Indexes of lowest and highest values over a specified period
MINUS_DI            Minus Directional Indicator
MINUS_DM            Minus Directional Movement
MOM                 Momentum
NATR                Normalized Average True Range
OBV                 On Balance Volume
PLUS_DI             Plus Directional Indicator
PLUS_DM             Plus Directional Movement
PPO                 Percentage Price Oscillator
ROC                 Rate of change : ((price/prevPrice)-1)*100
ROCP                Rate of change Percentage: (price-prevPrice)/prevPrice
ROCR                Rate of change ratio: (price/prevPrice)
ROCR100             Rate of change ratio 100 scale: (price/prevPrice)*100
RSI                 Relative Strength Index
SAR                 Parabolic SAR
SAREXT              Parabolic SAR - Extended
SMA                 Simple Moving Average
STDDEV              Standard Deviation
STOCH               Stochastic
STOCHF              Stochastic Fast
STOCHRSI            Stochastic Relative Strength Index
SUM                 Summation
T3                  Triple Exponential Moving Average (T3)
TEMA                Triple Exponential Moving Average
TRANGE              True Range
TRIMA               Triangular Moving Average
TRIX                1-day Rate-Of-Change (ROC) of a Triple Smooth EMA
TSF                 Time Series Forecast
TYPPRICE            Typical Price
ULTOSC              Ultimate Oscillator
VAR                 Variance
WCLPRICE            Weighted Close Price
WILLR               Williams' %R
WMA                 Weighted Moving Average
```

## Answer by chollida (score 12)

https://quant.stackexchange.com/a/12620

We use `Node` for reporting but not as part of our main signal generating trading system.

To be honest the answer will almost certainly be yes for every common programming technology as it just takes one person to use it somewhere to make the answer yes.

Just look at OCaml, before Jane street, most techno logiest on the street had never heard of it and now its very well known.

Probably the canonical answer for this type of question should be this one: https://quant.stackexchange.com/a/304/743

META RANT In general I find these kind of questions a bit troubling for this site for two reasons:

- for any given programming language or stack if you ask is anyone using this for trading the answer is mostly likely yes.

- There is no real outcome or call to action from the question. If someone answers yes, so what? if someone answers no, so what? What is the canonical answer to a question like this that

Or put another way, what answer would make the poster happy here?

END RANT

## Answer by jonkafton (score 6)

https://quant.stackexchange.com/a/14951

Cloud9Trader uses Node.js on the back end and JavaScript across its technology stack, including for writing the trading algorithms themselves.

https://www.cloud9trader.com

## Answer by Jack Slocum (score 4)

https://quant.stackexchange.com/a/14403

We use node.js at alta5. The event-driven, non-blocking I/O model performs well in data-intensive real-time applications like a trading platform.

http://alta5.com/

## Answer by Julien L (score 3)

https://quant.stackexchange.com/a/15791

I am using NodeJS for a similar project.

There's not a ton of packages on NPM for finance and stocks, so I wrote my own, that might help you get started:

- Fetching historical stock data, including intraday: https://www.npmjs.org/package/node-activetick

- Charting, analysing, forecasting the data: https://www.npmjs.org/package/timeseries-analysis

You can use timeseries-analysis to write your own indicators, and chart them with the stock data.

I am currently writing a new npm package to make using/creating indicators easier and more efficient. Mail me if you want to follow up or if you have any question.

## Answer by Benny Neugebauer (score 1)

https://quant.stackexchange.com/a/68783

With the rise of crypto trading more and more technical indicators, backtesting software and live trading applications have been created using JavaScript/TypeScript and Node.js. One of the most successful was probably gekko, which unfortunately is not maintained by its creator anymore but has some active forks.

If you are just interested in indicator libraries, then you should take a look at tulind which is a wrapper around the famous Tulip Indicators and provides 100+ technical analysis indicator functions. Other good ones are Anand Aravindan's technical indicators (pure JavaScript) or my trading-signals library (TypeScript & JavaScript).

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.