>
My road to Lisp
I had learned C and C++ in high school, but only the basics (Programs that imitated calculators, and not complicated ones at that). It was a royal waste of 2 years of computer classes. In fact, I learned more about C programming from a book I took out from the library in November 2008 than I did in those 2 years! I had also chosen to study Java seperately, but even at that time I felt it to be extremely long-winded. With both those languages, I never felt the spark of “I could use this to make something useful for myself”. I lost my interest in programming after that.
I started using the GNU/Linux operating system during high-school (I forget which grade), and got interested in programming again, but couldn’t ever conceive of a program that I could make that would be useful. I have read that good or great programs all start out as an attempt to “scratch an itch”. I didn’t itch. And because I didn’t see a goal at the end of the tunnel, I didn’t have the motivation to get back into programming.
I am a nerd. As a nerd, it is in my nature to create systems that do my work for me. As Protector Peace Corben says (Or thinks), “Technology doesn’t save time, it invests it”. I got back into programming in the summer of 2008 since I had just found out about the MetaTrader platform and that it allowed people to create automated trading systems of their own. I was at first intrigued but hesitant to learn MQL4 since the examples that I had seen looked very intimidating. I finally went through the online MQL4 book when a friend told me to just get moving on learning the language since it would save me the trouble of evaluating a trading system manually (Which is both time-consuming as well as very very fallible). In this regard, the quote rang true; the time I put in to learn the language was not just saved, but invested with a very high rate of return.
I knew I was going to be taking the “Numerical methods and programming in econometrics” seminar during my fourth year at Queen’s university, so I thought that it might be good to get back to “real” programming and brush up my knowledge about it. I had heard about new programming languages and had become aware of the existence of Perl, and Ruby, and Python. I had, in fact, heard really good things about Python (Like its easy to learn). Then I came across a webpage of “If programming languages were cars” and saw that Python was supposed to be a very easy language to learn. But I also saw that the entry on Lisp was strange; it said that Lisp could be a good airplane or submarine. I was confused, and intrigued. After that I was looking through the Python documentation and came across the entry on lambda-expressions. They said that that was an innovation from Lisp. And that was when I decided to just learn Lisp. Might as well get things from the source. I began learning Common Lisp in January 2009, and found it delightful.
After graduating from university, I started putting more time in searching for a profitable trading system since I was unsuccesful in finding a job. I would program these systems in MQL4 and test them using the “Strategy Tester” that is included in the MetaTrader platform. After some time, though, I began noticing issues in the results provided by running my programs through the MetaTrader Strategy Tester. I would notice that the system would not accept signals in a consistent manner. This is extremely bad since it calls into question the validity of any test done by it. As a free software user, I decided to stop bothering about this since I couldn’t verify the integrity of the MetaTrader source code (Since I don’t have access to it). I instead chose to just write my own trading system tester. I started to itch.
Right now the trading system tester is complete, and I will be publishing the source code for it. It didn’t take long, and I’ve learned a lot about Common Lisp as well as about programming in general. Nothing beats practical experience when learning new things.
I have currently settled on Common Lisp. I find it an easy language to learn and use, and think I am going to enjoy using it in the foreseeable future.
Leave a Reply