The thinking behind this theory was that a simulator would keep adding liquidity to a fake market for testing a market making algo.
If you're testing a market making algo (i.e. to participate in NYSE's RLP program), you're simulator needs to remove liquidity, not add it. The idea is that the simulator (the tester) accidentally got deployed, and then went around crossing the spread (removing liquidity) and building up large positions in various instruments.
TL/DR Knight crossed themselves many many times in a few minutes.
A self trade doesn't affect your profit. Any self-trades would have been problematic because it's illegal to paint the tape, but that's not what caused the losses.
NYSE's RLP program is for consumers; market makers my be providing liquidity for it, but certainly aren't taking (except if they handle customer orders as well). Market Makers by definition tend to provide liquidity; most are obligated to keep a bid and offer on each stock they make a market in available at all times, and they get a few benefits like not having to locate shorts.
My point was that if you are developing a program to do electronic market making (adding liquidity), then the program you write to test that program must by definition be taking liquidity (it shoots test orders at the quotes provided by your market making algo).
The thinking behind this theory was that a simulator would keep adding liquidity to a fake market for testing a market making algo.
If you're testing a market making algo (i.e. to participate in NYSE's RLP program), you're simulator needs to remove liquidity, not add it. The idea is that the simulator (the tester) accidentally got deployed, and then went around crossing the spread (removing liquidity) and building up large positions in various instruments.
TL/DR Knight crossed themselves many many times in a few minutes.
A self trade doesn't affect your profit. Any self-trades would have been problematic because it's illegal to paint the tape, but that's not what caused the losses.