From Object Oriented Programming to Object Oriented Design

The good news is that I have finished my data scraping module for extracting all the company data listed on the two Toronto Stock Exchanges (TSX and TSV). I presented an alpha version of this data scraping module last week. I added the functionality to download all the historical quotes from Yahoo for all the companies. These data are stored locally in a cool HDF5 format for performance. I am very happy about that part.

The bad news is that my module looks more like a hacked job than a piece of software. There is no defined structure for my underlying codes. It is obvious to me that this module would be difficult to extend, which is the whole point of my project. In programming jargon, my code smells (Wikipedia).

Then it finally dawned on me. I am way behind in my programming skills.

For the past few years, my quant work has been confined to MatLab or some proprietary trading platforms. I wrote scripts. Not programs.

My problem with programming is that I am still stuck in a procedural programming mentality because that is what I’ve always used. Even though I updated my knowledge recently by learning Python, learning to program with an object oriented programming language is only the first step.  (I am also familiar with C++ and Java from way back)

To use an analogy, programming a software is like constructing a building. The actual coding itself is akin to the construction work. I got that part. But coding without a well designed plan can only go so far.

It is now clear to me that if I am to build the trading software to complement my trading as I have envisioned it, I need to step it up with my software design ability.

Consequently, I am now catching up on object oriented design and analysis, as well as software design patterns with a couple of books. I will try not to get too carried away with these though. My main focus is trading. But this will be very beneficial for my trading in the long run if I can build a more robust trading software that can easily grow with my future needs.

I have many big plans for this side project of mine.  I will post a UML diagram showing an architectural overview of my project another time.

Related posts:

  1. March 2010 Trading Review
  2. Re-learning Java a decade later
  3. Data Scraping the Toronto Stock Exchange: Extracting 3,660 companies’ data
  4. A sign that you are truly enjoying what you do
  5. Why I am not a big fan of MQL4 or trading platform scripting
This entry was posted in Quantitative Finance and tagged object oriented, programming. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

One Trackback

  1. [...] words such as “code smell“, “design pattern”, and the likes are creeping back into my world as I am [...]

Post a Comment

Your email is never published nor shared.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>