0% found this document useful (0 votes)
2 views

Hackathon problem statement NIT Silchar

This document outlines the problem statement for a hackathon focused on developing a reporting system for daily stock prices, including the generation of customized reports and visualizations. Participants have 6 hours to create a technical solution using open-source technologies, with key requirements including report generation, a user-friendly interface, and access control. The evaluation criteria emphasize understanding the problem, technical approach, accuracy, and presentation of the solution.

Uploaded by

Sumanth Badugu
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Hackathon problem statement NIT Silchar

This document outlines the problem statement for a hackathon focused on developing a reporting system for daily stock prices, including the generation of customized reports and visualizations. Participants have 6 hours to create a technical solution using open-source technologies, with key requirements including report generation, a user-friendly interface, and access control. The evaluation criteria emphasize understanding the problem, technical approach, accuracy, and presentation of the solution.

Uploaded by

Sumanth Badugu
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Instructions:

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.

This document has the following sections:


• Introduction
• Details of each step with the information on the technical solution that needs to be
developed.
• Sample Calculations to calculate metrics for one month.
• Take time to read the document carefully to fully understand the problem.
• You may look-up the internet to further understand/research the problem.

Your technical evaluation will be based on:


• Ability to understand a real-life problem.
• Research on the problem domain
• Technical approach/Solution design
• Accuracy of the solution
• Presenting your research, approach, design, and solution to the evaluators

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

2. Backend: An appropriate backend server should be set up locally to process and


serve the requests coming from the client(frontend). The user information should be
stored in a database, preferably an SQL database.
Preferred libraries: python FastApi, MySQL.

3. Middleware: The middleware should be used to authorize the users based on JWT
claims.

4. Report generation: A reporting engine to generate reports in pdf/excel.


Preferred libraries: jspdf, jspdf-autoable, pdfkit (pdfkit · PyPI)

5. Visualizations: participants should create visualizations and render it to the UI by


following modern UI/UX practices.
Preferred libraries: react-chartjs2.

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.

EMAtoday = ClosingPrice*multiplier + EMApreviousDay*(1-multiplier)

➢ ClosingPrice is the closing price of the stock on the current day.


➢ Multiplier is calculated as follows.
𝟐
o
𝒏+𝟏
➢ n is the number of days used for the calculation. (n-day 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)

• Moving Average Convergence/Divergence (MACD)


o This is a trend-following momentum indicator that shows the relationship
between two moving averages of an asset’s price. It consists of a MACD line
(the difference between a short-term and a long-term exponential moving
average) and a signal line (a shorter-term moving average of the MACD line).
Traders use MACD crossovers and divergences to identify trend reversals and
momentum shifts.
o MACD is best used with daily periods, where the traditional settings of
26/12/9 days is the default.

MACD=12-Period EMA − 26-Period EMA

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,

MACDn = MACD of previous day


Signaln-1 = Signal of previous day
Illustration

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:

1. Exponential Moving Average (EMA) (groww.in)


2. MACD (investopedia.com)
3. Portfolio Management (investopedia.com)

You might also like