Thinking Stuff's ATM

Automated Trading Machine (ATM) makes it simple to remove fear and greed from your trading. Automated trading is no longer just for the rich or nerdy. Our revolutionary software runs on your computer, using your trading rules, but none of your emotions. There's just one requirement - you know how to use a mouse.  Learn more...

Thinking Stuff's ATE

Automated Trading Execution (ATE) is where we run your trading systems for you on our servers. Your system can be exported from ATM, or written in plain English and we'll make it for you. We'll even backtest and suggest improvements if you want us to. This service essentially automates your automated trading.  Learn more...

Thinking Stuff's Groups

Join a group of like-minded individuals, and help each other to trading success. Once you join a group, you will have access to that group's trading systems, ideas, and feedback. And please contribute your own knowledge as much as possible. Or contact us to start your own group.  Learn more...

Limitations

 
All Trading Systems Operate Separately From Each Other

That is, you can't tell one trading system to buy X units based on the profit/loss of a different trading system.  You *can* tell the one trading system to shrink or grow the number of units to buy based on its own previous trades, but not based on the trades of other systems.
 

A Trade Is Either All In, Or All Out

There's no pyramiding, in nor out.  The trade is opened, and then it's closed.

However, you can set up separate trading systems to achieve the same result.  To pyramid in, the entry rules of your two systems would be slightly different, but with the same exit rules.  To pyramid out, you set the entry rules the same, but the exit rules different.
 

It's Purely Mechanical

This is more of a strength than a weakness, but there are some situations when it is a weakness.

Firstly, there are some profitable chart patterns which humans are much better at recognising than software.  The Head & Shoulders pattern is one.

Secondly, let's use the example of the MACD Histogram crossing from below zero to above.  That is a purely objective, or mechanical trading rule, and this software can do this rule without any troubles.

Simply, select "MACD Histogram Above 0" as one Entry Rule.  And select "MACD Histogram Below 0", with a bar offset of 1, as another Entry Rule.  The bar offset of 1 means that you want the rule to have been true one bar ago.

Now when the software runs, it will check to see if the MACD Histogram was negative one bar ago, and if the MACD Histogram is currently positive.  If both conditions are true, an order will be placed.  Easy.  So where's the limitation?

The limitation comes about if in the next bar the price did not move high enough to take up the order.  The next bar finishes, and the Entry Rules are re-checked.

Now with this new current bar, was the MACD Histogram negative in the bar before?  No.  It was positive.  It had to be for the order to be placed back then.  The Entry Rules for the current bar are not satisfied, and the order will be cancelled.

A human whose trading rule says "Go long when the MACD Histogram crosses from negative to positive" would still probably look to enter into a trade, even if the cross happened 2 or 3 bars ago.  This software behaves mechanically, and can only allow this exactly when the MACD Histogram was negative for the previous bar, and positive for the current one.

Where possible, place a market order rather than a limit order to alleviate this problem.  If you think it's a problem.

Planned feature: When To Cancel An Order Rules, as opposed to simply cancelling an order when the Entry Rules are no longer true. This would get around the particular scenario described above, but not the "It's purely mechanical" feature/problem.
 

Backtesting Uses Interval Data

(As opposed to tick data).  The closest ATM can get to using tick prices is if you use bars of 1-second interval.  Which is pretty close.  But interval data tells us only the open, high, low, and close price during that bar.  There is no way to know how the price behaved during the bar, or the price at a particular time other than the very start and very end of the bar.

And the longer the timeframe - Daily, Weekly, Monthly, etc - the less information we have about how the price actually behaved. Therefore, certain assumptions have to be made.

For example, an order is placed, and stop loss set.  If a bar's range is wide enough so that both the order would have been taken up, and the stop loss taken out, there are 2 possible scenarios:

  1. Optimistic - The price first went down below the stop loss price, having no effect on us because the order had not yet been taken up.  The price then moved up to take up the order.  End result is that we are now in a trade with stop loss set.
  2. Pessimistic - The price first went up to take up the order.  Then the price fell down below the stop loss price, taking us out of the trade.  End result is that we are now out of the trade at a loss.

This software assumes the pessimistic case, which will most likely make the backtesting results a little out of sync with what actually happened.

The number of pessimistic trades is listed in the backtesting summary though.  If there were zero pessimistic trades, then there is nothing to worry about.  Similarly if there were 10 trades or more and only 1 or 2 pessimistic.  But if your backtesting results show 9 or 10 pessimistic trades out of 10, then the backtesting results should not be relied upon.

A trading system which places the stop loss very close to the initial entry price will suffer this problem, as most of the bars' ranges will be wide enough to have taken up the order and taken out the stop loss.  The normal candidate for this scenario is scalping techniques.