Tuesday, June 06, 2006

Quote of the Week - Programming

The time at my current employer is coming to an end and my new job soon beginning. I'm currently in the process of gathering up all the systems I have designed and supported over the past 8 years and ensuring the documentation is complete and up-to-date and the code nice and tight. I'll be turning these kids of mine over to another programmer to adopt and support. The programmer taking over the systems is a great guy and will indeed treat them well. But, as I'm cross-checking user guides, code documentation, and data dictionaries...I find motivation in the quote below:

"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." -- M. Golding

I've always followed a similar mantra...Always design your systems to be supported by someone else even if it will only be supported by yourself. Because our main goal should be to let our code sail...

"A ship in port is safe, but that is not what ships are built for. I want all the youngsters to sail out to sea and be good ships." -- Grace Hopper

Speaking of software...what software tools do you use in your daily routine? Editors? Backtesters? Spreadsheets? Calculators? Here's a breakdown of my software tool set...

Wealth-Lab - Rapid Prototyping! I typically develop one or two trading systems over a 3 to 6 month time-frame. Each day I'll scribble ideas onto pieces of paper. Trying to find ways to improve the system and use Wealth-Lab to test those ideas out.

R Project - Great batch analysis of Wealth-Lab backtests. I'll run a Wealth-Lab simulation that generates a comma-delimited file of the trade output. Then analyze the CSV file with a batch R script that outputs to the terminal or to HTML. Couldn't live without this tool in backtesting and system studies.

ActiveState ActivePython - I can connect to the TC2005 database with Python and parse the securities anyway I please. Build portfolios by sector, exchange, etc. Oh, and ActiveState includes the Pythonwin IDE which is nice. Update: I also can connect to Wealth-Lab Developer with Python and run chartscripts against custom portfolios. Very cool when watching the Python script open and close the Wealth-Lab Chartscripts for each symbol in the list or table you're reading down.

gVim - This is my notepad replacement. I haven't used it very long...but so far so good. Also experimenting with jEdit. If only someone would develop an EVE Editor for Windows!

Excel - Hey, I know...pretty simple huh? Well, sometimes there's nothing better than Excel in dumping data quickly and testing out various scenarios.

Calcr - If you need to quickly calculate something...this website rocks! It can even handle assignment of variables. Such as x=2; x*2. Also the Google Search Bar always works in a crunch as shown in my Amortization Formula post.

Later Trades,

MT

Technorati : , , , , , , ,
Del.icio.us : , , , , , , ,

2 comments:

Anonymous said...

Hey, Michael. Nice post. I'm a sucker for these types of posts. Hey, your Python/TC2005 integration caught my eye. Do you use the COM interface to connect to TC2005? Are you able to use all the functions that are included in the API? I have trouble with the GetAllChartLists function for example. There are others that I get strange errors on as well.

Any, by the way, when I developed StockTickr, every keystroke was in gvim!

Thanks, Dave http://www.stocktickr.com

Mike Taylor said...

Dave, yes, I use the COM interface to connect to TC2005. I haven't tried all the functions such as the GetAllChartLists you mentioned. But, shoot me an email and I'll send you some of my code for the TC2005 connection.

So, a gVim user, huh? What's your favorite tricks of the trade? I just recently found out the "/" shortcut for find. And it also works in FireFox. Very cool!

Take care,

MT