Instructions

Overview
This is an object oriented, multiprocessing algorithmic trading platform
programmed in Python v2.7.7 using Numpy and Pandas external libraries.
The function of this module is for users to create trading strategies
using technical and fundamental analysis and run the strategies on
historic market data from the New York Stock Exchange. The module then
spits back risk, return, and performance metrics.
How it works
User inputs are taken into python via a csv file. Users choose principal
investment amount, start and end dates, technical indicators and their
conditions (and later, company mix filtering).
The program is split into four modules, each being called from the main
Backtest Class. The first module is the DateSort module, which reads
through all of the company data and filters it based on start and end
dates.
Next, the information gets sent into the Technical Analysis module via a
dictionary, where the company data gets translated into 1’s, -1’s, and
0’s, indicating buys, sells, and skips. The data then gets saved to
another dictionary.
The BuySell module takes this data and converts it into buy and sell
signals, taking into account day-trading limits and implementing minimum
hold times on assets once they’re bought. This data is then sorted
chronologically across companies and saved to a dictionary called
Trades.
All of the above modules use Python’s multiprocessing pooling process.
This allows for the data to be processed in parallel instead of in
series, thus seriously reducing computation time.
Finally, the Metrics module takes data from the Trades dictionary and
analyzes it both absolutely and relative to benchmarks like the S&P500
and the risk free return rate. It also provides performance metrics for
how the program ran. Lastly, it gives the user the option to print all
of the trades performed to a text document.