Quantitative trading strategies

Quantitative trading strategies – Trading Assignment 4 – distributed 11/2/21,
due 11/23/21
You will design an execution algorithm that uses order book data to beat a TWAP
algorithm, i.e. an algorithm that sells 100 shares every 50 quotes.
Collect the data - 2pts
• Install ib insync package via pip or pip3 (e.g. ”pip install ib insync”)
• Download and install latest TWS application (not stable) from the interactive brokers
• Open TWS, log in with your IB account, open File - Global Configuration - API

  • Settings, make sure the ”Enable ActiveX and Socket Clients” option is activated
    and the Socket port is 7496 by default. This step can be found here, ”Enable API
    connections” part.
    • Open the ib insynch-template.ibynb notebook. When TWS is open, run the first cell
    in notebook to set up connection, then run other cells.
    • Run the notebook for at least 2 hours to create a file with quotes for SDS and SH
    • You should upload a data file named netID.csv
    Write the algorithm - 6pts
    • Calculate the average price obtained from a TWAP algorithm that sell 100 share of
    SDS at the bid at the end of every 50 quotes.
    • Write a ”smart algo” that has the option to sell earlier in each 50 quotes interval,
    based on the value of the imbalance and spread. Express the over/under performance
    of your algorithm
    • Do the same for a TWAP algorithm that buys 100 shares of SDS at the ask, vs your
    ”smart algo” that can buy earlier in each 50 quotes interval.
    • Write a function called smartalgo, that takes in a file name and outputs the average
    buy minus the average sell price
    Performance - 2pts
    We will run your algorithm on all submitted data files and determine which algorithm
    minimizes the output.