Automated day-trading application

Design team members: Michael Firek

Supervisor: Dr. Abdul-Rahim Ahmad

Background

The past decade has seen a revolution in the way stocks are traded amongst individuals and corporations. Not long before the turn of the century, the business of day trading, which attempts to profit from short-term price movements spanning less than a day, was limited to professionals with privileged access to the market. A direct link to the market had not yet been made available to the public, and amateurs were required to purchase stocks through brokers at marked-up prices, which made effective day-trading nearly impossible. The widespread adoption of internet technologies changed all of that, and amateurs were soon being given the same direct access to the market as trained professionals and Wall Street firms, through the use of online stock-trading platforms.

The continued evolution of technology has now made possible the next revolution in stock trading: the automated trading of stocks through the use of computers. A complete automation in the execution of trades has three main advantages to manual trading:

  • Eliminating the often negative effects of human emotion, primarily fear and greed, allows for more accurate execution of trading strategies
  • Increased processing speeds allow for trading strategies to be based on a much wider set of factors, and allow for a more thorough and accurate analysis of those factors
  • By automating execution, the trader is free to do other things, as opposed to mechanically analyzing the market

Project description

My project seeks to design and code a software application which will facilitate the automated day-trading of stocks. The final product will not claim to provide a profitable strategy, but rather will provide the user with a means by which to implement their preferred strategy in an automated environment.

The three primary objectives which will determine success of the project are:

  • Integration with an existing online trading platform which is available to Canadian traders
  • Method by which a trader can define their custom strategy
  • Tools for performing real-time as well as long-term (historical) simulations to evaluate the performance of their strategy

In addition, the following secondary objectives would enhance the usability of the software:

  • Tools for the generation of analysis reports illustrating trends in the market
  • A web interface allowing the trader to monitor and modify their trades while away from home

Design methodology

These objectives will be accomplished by integrating the software with Questrade Inc.'s QuestraderPRO Online Trading Platform (pictured below) to facilitate the execution of trades. The automated day-trading software will communicate with QuestraderPRO by analyzing the pixels obtained from screenshots to retrieve information, and by simulating mouse-clicks and keystrokes to execute trades.

An interface will be provided for the trader to define their trading strategy based on technical indicators such as moving averages and Bollinger bands, which are derived from a stock's price. The trader will construct rules for buying and trading by defining mathematical operations of these technical indicators.

Data for selected stocks will be stored on the hard drive so that simulations of trading strategies can be performed. Reports outlining the buy and sell times and corresponding profits or losses will be created so that the success of trading strategies may be evaluated.

the graphic user interface of the system