#algorithmic-trading #trading #investing #networking #stock-market

app nse

NSE is a rust binary and library for extracting real-time data from National Stock Exchange (India)

1 unstable release

0.1.2 May 11, 2022

#199 in Finance

MPL-2.0 license

58KB
961 lines

NSE

rust badge license badge copyleft badge Build and Release

Check out the sister projects NsePython and SaveKiteEnctoken which are Python & Javascript libraries to use the NSE and Zerodha APIs respectively

NSE is an easy to use rust CLI program and library for extracting real-time data from National Stock Exchange (India)

Features

  • Download EOD 1-Minute Data for NFO-FUT, NSE-EQ, NSE-Index, NSE-CDS from NSE Tame Charts.
  • Download Intraday Futures & Options Data Snapshots with all LTP & OI Data.
  • Multi-threading for network intensive subcommands
    • You can configure the maximum number of additional threads using the --threads options

Installation

nse is a compiled, statically linked program that does not require any external dependencies.

nse is coming to more package managers soon!

Cargo Install

If you have the Rust toolchain, you can also compile and install nse by running cargo install nse.

Remember to use an add-on like cargo-update to keep nse updated to the latest version!

GitHub Releases

  1. Download the asset suitable for your operating system from the latest release
  2. Unzip the file and move it to a folder in your path such as ~/bin
  3. Remember to check the releases page for any updates!

First Startup

When you first start up, the program will create a new data download directory automatically named as NSE_Downloads_Data in which the download files will be further categorised, subcatogorised and saved into dated folders.

NSE_DOWNLOADS_DATA
├───1-Minute-OHLCV-Data
   ├───Commodity
   │   └───11-May-2022
   ├───Currency
   │   └───11-May-2022
   ├───Equity
   │   └───11-May-2022
   ├───Futures
   │   └───11-May-2022
   └───Index
   │   └───11-May-2022
├───BankNifty
   ├───Futures_Intraday_Snapshots
   │   └───11-May-2022
   ├───GraphsData
   │   └───11-May-2022
   └───Options_Intraday_Snapshots
       └───11-May-2022
├───FinNifty
   ├───Futures_Intraday_Snapshots
   │   └───11-May-2022
   ├───GraphsData
   │   └───11-May-2022
   └───Options_Intraday_Snapshots
       └───11-May-2022
├───Misc
   ├───Futures_Intraday_Snapshots
   │   └───11-May-2022
   ├───GraphsData
   │   └───11-May-2022
   └───Options_Intraday_Snapshots
       └───11-May-2022
└───Nifty
    ├───Futures_Intraday_Snapshots
       └───11-May-2022
    ├───GraphsData
       └───11-May-2022
    └───Options_Intraday_Snapshots
        └───11-May-2022

WARNING: When upgrading, any files not downloaded by nse will be moved to the .old folder in the output directory

Configure

To Be Updated

Manage

To Be Updated

Delete

To Be Updated

Feature Requests

If you would like to make a feature request, check the issues to see if the feature has already been added or is planned. If not, create a new issue.

Building from Source or Working with nse

Firstly, you need the Rust toolchain which includes cargo, rustup, etc. You can install these from the Rust website. You'll also need the Just command runner, its basically a much better version of make.

If you want to build nse without cloning the repo then run cargo install nse.

To build the project and install it to your Cargo binary directory, clone the project and run just install. If you want to install it for testing a developement version, run just (alias for just install-dev).

If you want to obtain executables for a specific OS, you can run just build-<OS> and replace <OS> with mac, win, or linux. The produced binaries will be zipped and moved to out/.

You can run clippy linters using just lint, and integration tests using cargo test. Finally you can delete all the build and test artefacts by using just clean.

Dependencies

~29–40MB
~685K SLoC