System description

金融报告代写 You work for a company, and your responsibilities includes managing their financial assets, in the form of stock options.

  • introduction

You work for a company, and your responsibilities includes managing their financial assets, in the form of stock options.

The list of stock options that your company currently holds is provided in a “current.csv” data file. The list of (stock) options that are available for purchase is provided in an “available.csv” data file. Each line of data in both of these files contains the information of one option. In order, a line contains: a “ticker” (e.g. BABA) identifying the option, the current price of the option, and its volatility coefficient (a number between 0 and 1).

On launching, the program should load the data of these files into memory, so that the program stores a list of current options and a list of available options. (5 marks)

 

Your program should have the following functionalities.

 

  1. (10marks) Price  It should be possible to update the prices of all the stock options in the system (both currently held and available). The formula to update the price of an option is given by:

Pnew =Pold(1+v∗r),

where:

  • Pnewis the new current price of the option (after update);  Pold is its old current price (before update);
  • vis its volatility coefficient;
  • ris a uniform random variable on [−1, 1].

Updating the options’ prices should modify both the lists stored in memory as detailed in Section 1.1, and the CSV data files in the system.

 

  1. (20marks)  The company should be able to buy an available stock option or sell a current stock option. This should modify both the lists stored in memory as detailed in Section 1.1, and the CSV data files in the system. 金融报告代写

When a transaction is made, the information of the transaction should be both printed to the output console, and stored in an “output.txt” file in the system (this file should keep records of all transactions made). The information of a transaction should include: the type of transaction, the details of the option that is bought/sold, and the date and time at which the transaction occurs. In addition, when an option is sold, the profit/loss made on the sale should also be recorded, i.e. the difference between the price at which the option was bought and the price at which it was sold (the prices in the original “current.csv” data file represent the prices at which these options were bought).

 

3.(10 marks) Data filtering. It should be possible to filter the list of current options by price, i.e. extract those whose price is within a given range. The filtered list should be displayed to the output console, in increasing order of price.

 

Code quality

The remaining marks (25) for the coding part will be awarded for general code quality and the use of an appropriate class structure. Here is some guidance.

 

  • Keep your code neat and tidy; make sure it is properly indented throughout.
  • Choose suitable names for variables and methods.
  • Comment your code as needed.
  • Split your code into separate methods as appropriate; code in the main method should be kept to a minimum; methods overall should not be too long.
  • You should also design your program carefully to ensure an appropriate class structure, with suitable data objects and utility classes.

 

Report 金融报告代写

You will write a report providing some details on how you designed and implemented the system and functionalities described in Section 1. Your report will consist of two main parts.

金融报告代写
金融报告代写

3.1 Designchoices

You should explain the design of your system in terms of its class structure, and how you incorporated some of the OOP concepts covered in the course materials. You should consider the following questions:

  • what is the purpose of each class? what do they contain?
  • how did you go about implementing the functionalities described in Section 2? • which OOP concepts are incorporated into your system design? where?

This part should be 1-2 pages in length.

 

3.2 Testing description 金融报告代写

In your report, you should include a description of the testing you undertake of your system, paying particular attention to the functionalities outlined in Section 1.2. State clearly which functionalities you are testing, what test you are carrying out, and why. You may include screenshots (of code, the output console, etc.) for clarity. This part should be 1-2 pages in length, screenshots excluded.

 

Submission instructions

In the dedicated “Coursework resit submission” Assignment activity on the Learning Mall Online, you will need to submit the following two (2) documents.

  • Asingle ZIP archive of your entire Netbeans  Your project must include all the resources it needs to run. The data files included should be the initial files provided (i.e. any modifications made to these files as described in Section 1 should be cancelled), and you shouldn’t include the output TXT file. Make sure this is a ZIP archive, not RAR. This file should be named “CPT206 CWResit Project studentId.zip”.
  • Your report from Section 3, typed into for instance a Word document, and converted into a PDF file.

This file should be named “CPT206 CWResit Report studentId.pdf”. The submission deadline is: Sunday 1st August, 2021, 10PM.