Giter VIP home page Giter VIP logo

fintechapi's Introduction

FintechAPI

RESTful fintechapi that provides essential portfolio information and market data.

Setup

Note: The node_module.zar should have the below modules installed except node and npm themselves. However, you can reinstall them by following the steps below to make sure.

  1. Install npm and node if you haven't already.
  • check installation by running node -v and npm -v respectively on the command line terminal.
  1. Create a folder for this project and navigate to that folder.
  2. Clone this repo and either decompress node_module.zar or delete node_module.zar and perform the below commands.
  3. Install mongoose by running npm install mongoose --save. This will allow us to interact with the MongoDB.
  4. Install request by running npm install request.
  5. Install express by running npm install express --save.
  6. Install body-parser by running npm install body-parser --save. This dependency will allow us to parse http requests.

Structure

server.js

This is the main file that defines and runs the server. We register the routes, data models and declare use of body-parser in this file.

fintechRoutes.js

This file defines the HTTP routing and the corresponding functions to call in the controller.

fintechController.js

This file deflines the functionalites that this API will perform. We will add functionalites on this file.

fintechModel.js

This file defines the data models we will use to store instances of mongoose data items in MongoDB. We are still working out the details of the data models to store essential portfolio data efficently.

fintechapi's People

Contributors

sunnyhuang2008 avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

spongebobjason

fintechapi's Issues

Pull daily closing price data Alpha Vantage API given current date, time duration and multiple tickers

Pull closing price data from Alpha Vantage API given some time duration and the current date of some ticker.
This is an example of the API call for MSFT: https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=MSFT&apikey=demo
Here is the API key: 04G9FLWCWQG6NRJO
Here is the API documentation: https://www.alphavantage.co/documentation/
This section should be under the TIME_SERIES_DAILY_ADJUSTED section.

Expectations:
Input:
One or multiple ticker symbol(s) (ex: MSFT, BABA, AAPL)
Duration: 3 months

Output:
3 months of daily pricing data starting from the current day the request is made.
Should be a long JSON document of the daily pricing objects for each ticker for 3 months.

pricing item:
"2017-09-08": {
"1. open": "74.3300",
"2. high": "74.4400",
"3. low": "73.8400",
"4. close": "73.9800",
"5. adjusted close": "73.9800",
"6. volume": "14474383",
"7. dividend amount": "0.0000",
"8. split coefficient": "1.0000"
}

Define data model for storing portfolio optimization data

In fintechModels.js define mongoose data models for storing portfolio information. Below are some information that needs to be stored:

  1. Portfolio optimization model on every round
  • Time stamp of the optimization
  • Tickers involved
  • Implied volatility
  • Weights on the s&p 500
    With these information, we can easily generate a portfolio optimization model whenever the user needs it.
  1. User edited version of the optimization
  • Co-variance matrix
  • Weights the user edited
    These information can combined to reconstruct the tracking error volatility, excess return, information ratio, TEV contribution and marginal TEV contributions.

Pull realtime intraday stock data from Alpha Vantage API

here is the documentation: https://www.alphavantage.co/documentation/#intraday
here is the api key: 04G9FLWCWQG6NRJO

Expectation:
Input: One or more ticker symbols: (ex. BABA, MSFT, AAPL)
Output:
Continuous close pricing data update per minute on the respective tickers.
Note: The market opens at 9:30 AM EDT and close at 4:00 PM EDT, and also the API documents the intra-day data for us if we wanted to analyze historical intraday results. So the function is expected to pull continuous pricing updates ONLY if during the open market sessions and ONLY when the user is looking at the intra-day portfolio data.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.