We’re building a signal distribution system that launches signals across the MetaTrader and NinjaTrader platforms. Although the live account trades $20,000 in equity, the EA restricts new orders to 3 microlots. The goal during testing is to uncover problems without creating epic disasters.
Thank God for patience. We launched an internal update to the strategy today where 76 signals from the past 3 months pumped out within 30 seconds. The account churned through all 76 orders in under a minute. The losses from spread costs, however, only racked up to $50.
What would have happened if we were trading our target size of 3.6 mini lots per order instead of 3 microlots? The loss would have been 12 times as bad, or $600.
I can brush off $50 as an “oops” loss. $600 thrown down the drain would make me gag.
Hold your horses
So many traders developing automated systems want to start trading their new strategy yesterday. Long experience tells me it’s a disaster in the making.
It’s a rule of programming. If something can go wrong, it will. Just look at Knight Capital last year racking up a $389 million loss in 30 minutes. Oops!
What do you want to bet that Knight Capital implements a more robust software testing program before unleashing new software in their live accounts? If it can happen to a half billion dollar institution, it can happen to you.
Updates to software and expert advisors always face the chance of significant error. If you have the patience and discipline, testing on a demo account is always the best way to go.
The demo account option unfortunately is not available in our situation. We need at least 180 days of contiguous testing to check off all of our requirements. MT4 restricts demo account periods to 30 days.
The other real reason is that I really don’t care about demo accounts. Even if a trade is only worth $10, I don’t treat errors as seriously when they happen to Monopoly money. I seek a happy medium where I test on a live account where the screw up don’t cost too much money. That way I still care, but it doesn’t have to cost me an arm and a leg
Hello Shaun,
Thanks for another interesting post. On that topic, I always test my algos before going live and so far, all of them have been running smoothly once launched live (touching wood…). Some time ago I investigated with NT and my broker (IB) to see if there would be a way to add some safeguards in case one algo go crazy for any reasons (and start sending multiple transactions for example). Apparently, there’s nothing that can’t be done. I was wondering if you have found a way to mitigate that risk.
Regards
I’m glad that you enjoyed the post. The best safeguard is good ol’ fashioned human observation and intervention. When I discovered our latest problem, I first shut down the EA. Then, I sprinted into my developers office asking, “What happened!?!?!”
We’ve caught a few similar problems by anticipating them in advance. We write code to watch for any potential crazy scenarios. If the EA places X trades or more in less than Y minutes, a human needs to know about it.