Question: PYTHON PROGRAMMING When a share of common stock of some company is sold, the capital gain (or, sometimes, loss) is the difference between the share's

PYTHON PROGRAMMING When a share of common stock of some company is sold, the capital gain (or, sometimes, loss) is the difference between the share's selling price and the price originally paid to buy it. This rule is easy to understand for a single share, but if we sell multiple shares of stock bought over a long period of time, then we must identify the shares actually being sold A standard accounting principle for identifying which shares of a stock were sold in such a case is to use a FIFO protocol-the shares sold are the ones that have been held the longest. For example, suppose we buy 100 shares at $20 each on day 1 20 shares at $24 on day 2 200 shares at $36 on day 3 and then sell 150 shares on day 4 at $30 each Then applying the FIFO protocol means that of the 150 shares sold, 100 were bought on day 1, 20 were bought on day 2, and 30 were bought on day 3. The capital gain in this case would therefore be 100*10+20*6+30*(-6), or $940 Write a function capital_gain(filename) that takes as input the name of a file with sequence of transactions in the form "buy x share(s) at y each" or "sell x share(s) at y each", assuming that the transactions occur on consecutive days and the values x and y are integers. Given this input file, it returns the total capital gain (or loss) for the entire sequence, using the FIFO protocol to identify shares. Note: . Think about what data you want to store in queue Assume all the input files are valid input files, and you do not need to deal with the invalid inputs If the selling is larger than the current all shares purchased, just sell all you have. Each time a sell is performed, remember to update the current capital gain . and file4.dat, For instance, if the input files are file1.dat, file2.dat, file3.dat, capital gain(filename) should return 940, 1000, 1500, and-500, respectively Hint: Keep information about the purchased shares and prices in a queue, and then match those against sales. Care must be taken if only part of a purchase block is sold
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
