System description

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

1.1 introduction

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

The list of stock options that your company currently holds is provided in a “current.csv” data fifile. The list of (stock) options that are available for purchase is provided in an “available.csv” data fifile. Each line of data in both of these fifiles 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 coeffiffifficient (a number between 0 and 1).

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

1.2 Main functionalities Fin金融代写

Your program should have the following functionalities.

  1. (10 marks) Price update. 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:

  • Pnew is the new current price of the option (after update); • Pold is its old current price (before update);
  • v is its volatility coeffiffifficient;
  • r is a uniform random variable on [−1, 1]. Fin金融代写

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

  1. (20 marks) Transactions. 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 fifiles 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” fifile in the system (this fifile 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 profifit/loss made on the sale should also be recorded, i.e. the difffference 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 fifile represent the prices at which these options were bought).

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

Code quality Fin金融代写

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.
Fin金融代写
Fin金融代写

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.1Design choices Fin金融代写

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 1.2? • which OOP concepts are incorporated into your system design? where?

This part should be 1-2 pages in length.

3.2Testing 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 Fin金融代写

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

  • A single ZIP archive of your entire Netbeans project. Your project must include all the resources it needs to run. The data fifiles included should be the initial fifiles provided (i.e. any modififications made to these fifiles as described in Section 1 should be cancelled), and you shouldn’t include the output TXT fifile. Make sure this is a ZIP archive, not RAR.

This fifile 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 fifile.

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