Hackathon problem statement NIT Silchar
Hackathon problem statement NIT Silchar
This document defines and explains the problem statement for the hackathon.
You have 6 hours to provide the technical solution to the problem.
All data and tools that you need to solve the problem are available for free in the public
domain.
You are free to choose a technology stack of your choice to solve the problem, although we
would suggest using open-source technologies.
The Hackathon deals with creating reports based on daily Stock Prices and generating
appropriate visualizations on top of it.
Members of the technical team are around you. You can ask them questions when you have
exhausted all your means on Google.
Introduction
This hackathon involves developing a reporting system. This system should have the ability
to provide customized reports that include historic price data for a defined period.
Key Requirements:
1. Reports: Participants must develop a system capable of generating reports based on
client requests, ensuring that all visualizations are included to facilitate a clear
understanding of their portfolio.
2. Download Feature: An essential feature to be developed for users to download their
reports in PDF format for convenient offline access.
3. User Interface: Participants are expected to design an intuitive interface allowing
clients to select the desired report type and date range. Additionally, appropriate
filter options should be provided to refine the data according to specific criteria.
4. Visualization: The interface should enable users to choose the type of visualization
they prefer, along with the relevant date range. This customization enhances the
clarity and relevance of the reports.
5. Access Control: Implementation of access controls is crucial. The client should be
able to register/login. You should use a middleware to authorize the user (preferably
JWT)
Deliverables
The participants are expected to include the following in the application demonstration:
1. Frontend: Design a frontend user interface allowing users to log in or sign up and
generate reports. The interface should include options to filter data based on ticker,
start, and end dates, and download the generated report in PDF format. For the
purposes of this Problem Statement, consider Start Date as 1-Nov-2023 and End
Date as 31-Jan-2024
Preferred libraries/frameworks: react.js
3. Middleware: The middleware should be used to authorize the users based on JWT
claims.
Metrics
• Exponential Moving Average (EMA)
EMA is the type of moving average that places a greater weight and significance on
the most recent data points. It reacts more quickly to recent price changes compared
to a simple moving average.
The current problem statement deals with calculation of MACD for 3 stocks for the
period of last 3 months (i.e., Nov 2023, Dec 2023, and Jan 2024)
Signal Line:
This represents a nine-day Exponential Moving Average (EMA) of the
Moving Average Convergence Divergence (MACD). The initial value is
essentially a nine-day average of the most recent data points.
Subsequent values are determined using the following formula, with a
period of nine days.
Where,
Calculate the metrics for MACD and plot appropriate graphs to get the
insights from the data. Below is the example calculations and
visualizations for MACD.
a) MACD
22-May-13
20-May-13
21-May-13
16-May-13
15-May-13
14-May-13
10-May-13 9-May-13
8-May-13 3-May-13
6-May-13 29-Apr-13
MACD & Signal
2-May-13 23-Apr-13
30-Apr-13 17-Apr-13
26-Apr-13
11-Apr-13
24-Apr-13
5-Apr-13
Histogram
22-Apr-13
1-Apr-13
MACD
Signal
18-Apr-13
16-Apr-13 25-Mar-13
12 Day EMA
26 Day EMA
12-Apr-13 19-Mar-13
10-Apr-13 13-Mar-13
8-Apr-13 7-Mar-13
4-Apr-13
1-Mar-13
2-Apr-13
25-Feb-13
28-Mar-13
26-Mar-13 19-Feb-13
460
450
440
430
420
410
400
390
-5
-10
-15
5
0
10
Accessing Data
Use the Yahoo Finance API to retrieve historical data for the symbols
IVZ, BLK, and STT for the last three months i.e., from November 1, 2023,
to January 31, 2024
Reading Material: