CSE212 Coursework 3 2018
Overview
You will create an application to graph financial data sets. The application will
• On startup, read a data file of stock price data for a particular index over
aproximately thre years.
• Hold the data in an apropriate collection of custom data objects in
memory
• Display a chart of the closing price of a certain stock for a certain period,
as specified by the user, and filtered from the main data colection
• Allow the user to ad/remove overlays of technical indicators
Due: 8.0pm Friday Wek 14, submited on ICE.
User Input
Interaction will be provided with a text based chat interface. The interface
should aim to be both flexible and robust, as taught this semester. The chat input
procesor can be the one you have ben developing in the labs, but must be
100% your own work. The command words to implement are:
SHOW [tickers]FROM [date]TO [date]
This sets the curent series. Up to three overlays can be added to the
curent series, and removed, individualy. The period (start date and end
date) of the curent series cannot be altered after its creation.
ADD [overlay]
Adds an overlay to the curent series graph
COMPARE [ticker]
Adds another ticker to the curent series graph
HIDE [overlay][ticker]
Removes an overlay or ticker from the curent series graph
There is no clear command. The SHOW-FROM-TO command replaces the
current series with the new series.
Please note that a flexible chat interface has to cope with natural-language style.
input, for example (but not limited to)
Can you show me BABA from Dec 2006 to july 2008
OK add the 50DMA
Hide that
now compare it with AMZN
OUTPUT
Output will be a fully-labelled colour coded line graph. The class to do this will be
provided – it is part of the package we have been working with since week 8. You
wil simply have to cal convenience methods to display data sets; you do not
need to alter the source code of this package.
You will write methods to calculate series for 3 technical indicator overlays for
the graphs:
• Fifty day moving average
• 200 day moving average
• MACD Oscilator
The user will be able to add these to and remove them from the graph using the
chat interface.
You may re-use clases and methods from the labs in any part of the aplication.
Marking
Chat processor 50
Overlays 20
Code quality 30
MACD Calculation
MACD Line: (12-day EMA - 26-day EMA)
Signal Line: 9-day EMA of MACD Line
The MACD Line is the 12-day Exponential Moving Average (EMA) les the 26-day
EMA. Closing prices are used for these moving averages. A 9-day EMA of the
MACD Line is ploted with the indicator to act as a signal line and identify turns.
For more information go here:
htp:/stockcharts.com/schol/doku.php?id=chart_schol:technical_indicators:
moving_average_convergence_divergence_macd
This assignment is individual work. Plagiarism (e.g. copying materials from
other sources without proper acknowledgement) is a serious academic
ofence. Plagiarism wil not be tolerated and wil be dealt with in
acordance with the University Code of Practice on Assessment. Individual
students may be invited to explain parts of their code in person, and if they
fail to deonstrate an understanding of the code, no credit wil be given for
that part of the code.
Marking Descriptors
Core Requirements
Project must compile and run to pas (achieve 40%)
ChatProcessor 50
Robustnes/flexibility 20 Code originality/ideas 20 Ticker identification 10