Skip to content

bigdata2/streamingtrades

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

Aggregate Streaming Trades.

C++ code to generate statistics from streaming trades coming from a stock exchange.

Input:

The input file represents a stream of trades on an exchange.
Each row represents a trade, the data in which can be thought of as a time series of values in columns:

TimeStamp, Symbol, Quantity, Price

Definitions:

  • TimeStamp is value indicating the microseconds since midnight.
  • Symbol is the 3 character unique identifier for a financial instrument (Stock, future etc.)
  • Quantity is the amount traded
  • Price is the price of the trade for that financial instrument.

Assumptions:

  • TimeStamp is always for the same day and won't roll over midnight.
  • TimeStamp is increasing or same as previous tick (time gap will never be < 0).
  • Price - our currency is an integer based currency. No decimal points.
  • Price - Price is always > 0.

Example: here is a row for a trade of 10 shares of aaa stock at a price of 12

1234567,aaa,10,12

Implementation:

Find the following on a per symbol basis:

  • Maximum time gap (time gap = Amount of time that passes between consecutive trades of a symbol) if only 1 trade is in the file then the gap is 0.

  • Total Volume traded (Sum of the quantity for all trades in a symbol).

  • Max Trade Price.

  • Weighted Average Price. Average price per unit traded not per trade. Result should be truncated to whole numbers.

    Example: the following trades

    20 shares of aaa @ 18

    5 shares of aaa @ 7

    Weighted Average Price = ((20 * 18) + (5 * 7)) / (20 + 5) = 15

Output:

A file called 'output.csv', that should be a comma separate file with this format: symbol, MaxTimeGap, Volume, WeightedAveragePrice, MaxPrice

The output should be sorted by symbol ascending ('aaa' should be first).

Sample Input:

52924702,aaa,13,1136

52924702,aac,20,477

52925641,aab,31,907

52927350,aab,29,724

52927783,aac,21,638

52930489,aaa,18,1222

52931654,aaa,9,1077

52933453,aab,9,756

Sample Output:

aaa,5787,40,1161,1222

aab,6103,69,810,907

aac,3081,41,559,638

About

C++ code to generate statistics from streaming trades coming from a stock exchange.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages