Monday, October 5, 2009

Robot Strategy / Development

Without getting into detailed specifics I thought I'd try to answer a recent question about the strategies I'm trying with my various robots.

First, a bit of background in case this is the first post you see on this blog:
  • I design software and systems for a living
  • I've been trading for years -- learning through the heart of the downturn.
With that out of the way I'd suggest looking at one of my posts about microtrading.

You may also want to consider the fact that the Australian economy seems to be doing very well with respect to the rest of the world. I've been pointing that out on my blog from time to time. Also, if you follow AUDJPY as I do, you may notice that the RBA just hiked interest rates by 25 basis points. This bears out a previous post about the long term carry trade prognosis dated September 2008.

Anyway, what this all means is that I'm happy to open long positions in AUDJPY, to some pre-defined level of risk, and then wait for this currency pair to give me some profits. To get down to brass tacks, the AUDJPY trading robot looks for what appears to be decent entry points, perhaps via stochastics and/or moving average crossovers, and then opens up micro-positions.

Sure, often the robot is wrong for some period of time. Who cares? With confidence that the AUDJPY will eventually rebound, and/or pay decent carry trade rates, it doesn't hurt to wait. Besides, when the robot is wrong, trades entered at even lower levels can often be closed for a profit, repeatedly, prior to a later price rise allowing the short-term carry trade to be closed for a profit.

In case you are thinking this sounds like throwing darts here are a few of the strategic points that guide this strategy:
  • The fundamentals over the next period of years points to a rising AUDJPY.
  • A future period of panic is unlikely to exceed the unwind that occurred during the recent financial crisis.
  • A rising AUDJPY will eventually allow any position to be exited profitably during a new high.
  • Using microtrades allows frequent trading within precise levels of accumulated risk.
  • Adding logic to enter positions at what will often be an opportune time greatly improves the odds of taking profit from a position quickly.
Another robot, currently experimental, trades the EURCHF. The idea here is that this currency pair is relatively stable compared to some others. Here I'm basically trying to play a mathematical game. If one were to open a very small long or short position every few moments the price would eventually make at least one trade direction profitable.

The reason this is interesting is that you can define the rate of return you want. Trade N positions at size S per hour at P pips profit and you will earn $D. Of course, it isn't so simple, but that's where the challenge lies. How do you keep from accumulating all your long positions at a recent top and all your short positions at a recent bottom? How do you keep from accumulating positions during a lull in price movement? How can you goose profits during active periods to make up for price movement lulls?

This thing is a work in progress, is not significantly capitalized, and probably is a pure dart throwing exercise. However, it does keep me busy. This is important. If I don't keep busy I'll worry too much about what's happening in my AUDJPY sub-account and either make discretionary trades or tinker with something that is already working well enough.

Anyway, all strategies face the same basic issues. These include:
  • Prices will eventually move up and down in varying amounts.
  • Accumulation of positions incurs increasing levels of risk.
  • Avoidance of risk decreases maximum theoretical gains.
  • Carry trades have long term pressure supporting the carry trade.
  • Carry trade pairs have periodic unwinds.
  • Long term economic fundamentals are plainly visible to all but very often misunderstood.
Traditional robot development is based on the same concepts as discretionary trading. Find a high probability entry point, based on risk versus reward, set an appropriate stop-loss, and then wait to see the result.

In a nutshell -- my current robot strategy is to look for long term predictability and then try to take advantage of that predictability as often as possible using small individual units of risk.

A final word of advice. If I'm wrong about the AUDJPY, and it doesn't have a long term rising trajectory, then I'll have an unproductive robot sitting on some carry trades. Similarly, if you decide to take advantage of a longer term trend, make sure you have a solid basis for your predictions.

No comments: