Advice for gaining ATS experience through real trading

Discussions about custom-built testing platforms written in C, C++, or Java.
Post Reply
KBochez
Contributing Member
Contributing Member
Posts: 5
Joined: Tue May 25, 2004 10:21 pm
Location: JAPAN

Advice for gaining ATS experience through real trading

Post by KBochez » Thu Jun 10, 2004 9:42 pm

Here is my problem:
I have a small stack of around $5K that I don't mind at all to lose totally. I would like to do some real trading with that small stack of money in order to gain some experience with my buggy, brand-new home-made automated trading system because I know that there are things which I can't really experiment through papertrading (like losing real money...sorry,just a bad joke). Hence I consider those $5K as my tuition fee. The main point is that I want to learn something from that money and would try to avoid to blow out the full stack in one single day. Hence my question is:

What are the most dangereous bugs in a brand-new home-made ATS that could lead me to blow out my whole stack almost instanteneously ?

My worst nightware is that my ATS sends a buy or a sell order with one more zero or one less zero in the price... Is that kind of thing possible ?

My purpose here is not to make money or even hope to keep my stack at the same level (I guess that even if things go smoothly I will lose half of my stack in a few weeks). To tell the thruth, for a start, I just intend to use a double moving average with a 2% per trade 6% total open risk money management strategy (I know, all this stuff is not really new!) ! The aim is to find bugs in my ATS framework while avoiding the most obvious ones from start.

Any advice is welcome.

Regards
Karl

si
Senior Member
Senior Member
Posts: 48
Joined: Sun May 30, 2004 4:39 pm
Location: Austin, USA

Just paper trade.

Post by si » Fri Jun 11, 2004 2:08 am

KBochez wrote:My purpose here is not to make money or even hope to keep my stack at the same level (I guess that even if things go smoothly I will lose half of my stack in a few weeks).
:roll: Your request is confusing. If I understand right, you want to discover and debug your software errors by trading with real money.

Did you run your code on data to see what results it gives? To locate bugs in the code, read the code. To see if it gives the proper position sizes, paper trade and see if there are too few or too many zeroes.

Why trade before you test your system?

leonardo
Roundtable Knight
Roundtable Knight
Posts: 100
Joined: Wed Apr 30, 2003 2:27 pm
Location: Minneapolis, MN
Contact:

Post by leonardo » Fri Jun 11, 2004 2:26 am

My original post was rendered moot due to facts which were made clear by a later posting:oops:

I will include the later part of my post for those who might like to find an alternative way to improve some of their trading abilities in an inexpensive manner:

My very serious suggestion: If you really want to improve your abilities to trade without spending much money, learn to play blackjack by counting cards. Use this method:

Knock-Out Blackjack: by Olaf Vancura Phd.,and Ken Fuchs.
http://www.amazon.com/exec/obidos/ASIN/ ... ingblox-20

Go to a fair casino and use some risk capital to fund your play betting the smallest size possible for your newly-acquired edge. This way, playing $5 a hand or less, you will learn all about money management principles, what perfect trading of a system feels like; and fear and greed; which will indelibly plant themselves into your psyche because the plays/trades are happening in real time. The only way you can learn new behaviors is when your emotions are stoked.

Maybe you'll make some money while playing blackjack. But at least you won't be spending much money for great training value.

--Leonardo-- (a winning blackjack player who prefers trading)
Last edited by leonardo on Tue Jun 15, 2004 10:32 am, edited 2 times in total.

si
Senior Member
Senior Member
Posts: 48
Joined: Sun May 30, 2004 4:39 pm
Location: Austin, USA

blackjack!

Post by si » Fri Jun 11, 2004 2:44 am

leonardo wrote:My very serious suggestion: If you really want to improve your abilities to trade when you have sufficient capital in the future, learn to play blackjack by counting cards.
Leonardo, this is a fantastic suggestion! I remember doing precisely this some years back, to evaluate personal emotional responses to fear/greed, and the ability to stick to a plan. However, I employed no bet sizing, and stayed about break even at blackjack. Soon after, the markets taught me the importance of money management.

ksberg
Roundtable Knight
Roundtable Knight
Posts: 208
Joined: Fri Jan 23, 2004 1:39 am
Location: San Diego

War Stories

Post by ksberg » Fri Jun 11, 2004 2:49 am

Hi Karl,

I'm sure there are probably a few war stories around to be shared on this topic. I'll share what I know and remember, but your mileage may vary.

There's a huge class of errors around real-time trading aspects. Is the network active? Is the feed active? Is the order routing channel active? Did you get trade confirmation? Was the order rejected? Did you properly handle partial fills? Does the system order and position state match the reported orders and positions? And so on ... If you're doing something like FIX, seek out and pay for a good simulation trial, or establish a simulation account with a broker who supports an automation API. It's cheaper than losing money to find bugs.

Even without the critical real-time aspects, there is a class of errors around how the trade engine tracks to actual market performance. I suppose many of these errors are no worse than using TradeStation, since TS assumes you can be filled on limit moves and extreme prices. One of my embarrassing bugs was "mid air fills" ... essentially getting filled at non-existant prices.

Because home-brew or custom software doesn't have the limitations inherent in commercial packages, it may also lack the safeguards. One very subtle bug is having historical results change as today becomes yesterday's data. Here's an example: the ZigZag function perfectly demonstrates major upward and downward price segments ... but the turn is only known several bars after it occurs. Depending on the order of evaluation inside the trading software, it could generate signals that you couldn't expect to get on the current bar.

There are plenty of places an off-by-one error bit me in the butt. It helped to build auditing frameworks, and audit the audits.

When doing Good-til-cancel, I had places where active orders were accidently dropped, and was surprised to get filled on positions that I didn't expect. It was easier to catch if active positions were dropped, but frustrating since it messed-up taking exit signals. Similar can be said for missed entries (if for some reason the trade engine got "stuck").

I've had problems where scaled entries or exits would go off out-of-order, or the position became unbalanced (order to execution).

In short, imagine anything that can go wrong ... it probably will. Bugs in trading software cost real money. My solution is to test exhaustively and systematically as much as possible, and watch the system like a hawk. And by watching, I mean audit and compare actual orders, balances, fills, positions, margin, portfolio heat, etc ... against anything generated by your software. Assume nothing, verify everthing!

Good Luck!

Kevin

ps. I assume $5K means that's your error budget, not total equity, right?

KBochez
Contributing Member
Contributing Member
Posts: 5
Joined: Tue May 25, 2004 10:21 pm
Location: JAPAN

Post by KBochez » Tue Jun 15, 2004 12:24 am

Hi Kevin,
Thank you very much for taking time to answer my post in so much details. It was in fact very instructive. To answer to your last questions, those $5K are, as you pointed yourself, my error budget; not my total equity.
Regards
Karl

Post Reply