Ziggy Update

I let Ziggy, my automated futures-trading program, trade one SPX futures contract (ES) all week. It finished with a $297 profit. Here is the equity-curve chart for the week (click to enlarge):

ziggy-7-31-09

And here are the daily totals:

ziggy-7-31-09-2

As you can see, Monday and Tuesday were a disaster. There are two reason for that. First, both days were “reversal days” where prices glided down in the morning, and glided back up in the afternoon. Those are the worst days for Ziggy. Fortunately, they only occur once a month or so, but I had the bad luck of getting hit with two of them to start the week.

The second reason for the losses was slippage. My initial tests showed that Ziggy could do OK with market orders, but it turns out that that was a wrong conclusion. Ziggy got nickled-and-dimed to death with bad fills on Monday and Tuesday to the tune of about $300.

So, on Tuesday night, I re-tooled for limit orders, which is a big deal because it complicates the program’s logic. I don’t have an ideal solution to the problem of un-filled orders yet, but the new version works much better in the real world. As you can see on the “7/29/2009 – 7/31/2009” line of the table above, Ziggy v2.00 made $979 from Wednesday to Friday, with a 60% batting average.

Wednesday was the big day. That was the type of day that I had in mind when I first started working on the program. The SPX barely moved, but the intra-day action was wonderfully volatile. Watching Ziggy on Wednesday was like watching a John Deere combine harvesting the crop.

So, even though the week started out with an industrial accident, I’m very happy with how it finished up. It’s not easy to watch your computer makes trades. It requires a lot of discipline to resist the urge to “help” it. I only did that three times over the entire week, and without my “help”, Ziggy would have made another $100 or so.

It’s a funny thing; while I have coded my trading rules into software, the software is a much better trader than I am. Ziggy always follows its trading rules, it trades without emotion, like a robot, and it has perfect concentration. The latter is very important for scalping, which is sort of like driving a race car: if you doze off for just a few seconds, you might crash and burn.

Ziggy can make enough money to pay for its own electricity now, so it’s earning its keep. If it can prove itself over the next couple of weeks by building up enough equity, I will let it trade two contracts. At that point, I can start working on code that scales into, and out of, positions to get better average prices.