Welcome to my latest project! In this blog I intend to create a series of posts and tutorials on some of my favorite subjects: Trading Systems, Intelligent Algorithms, and Visualization. I have been programming computers for over 30 years (anyone remember the VIC-20?) and am obsessed with learning the latest technologies and applying them to what interests me.
I fully realize that there are many excellent existing projects out there that cover the topics I plan on covering, and I have learned much from them. However, I believe in order to fully understand something, you must do it yourself from scratch. I also believe in simplicity. Many projects are extremely large and complex and have teams of people developing them. While there is certainly a need for projects such as those, it can be extremely difficult to learn about the fundamentals of a topic from such a code base.
Therefore, the code I will be posting (to paraphrase Einstein) will be as simple as possible, but not simpler. It is intended to be short, easy to understand, and a starting point for your own customization’s and explorations. It will represent just one of many ways to accomplish the same task. Of course, I am also very interested in any feedback, bug fixes, or improvements that you may have.
While the code I write may look simple, it is a function of the tools I use. These days there are many very high quality programming languages and utilities that can do an enormous amount of work in very little code. When someone writes a trading system from scratch, the result will be very different when implemented in C vs. Python. I prefer to use to the best tool for the job at hand, so you will see a variety of languages and tools used. Currently, Python is my favorite general purpose language, although Ruby is a close second. All of the languages and utilities I use are free, open source, and run on multiple platforms (at least OSX, Linux, and Windows). Most code will work with a default installation. However, sometimes a library may need to be installed. I will note when that is necessary.
One last note. While I strive to write simple code, I am going to focus on the algorithms involved and will assume that my readers have at least a basic knowledge of computer programming. If you are completely new to programming, there are many other excellent tutorials out there to get you started. Google is your friend.