This is why I no longer use using limit/stop orders. If you want to protect yourself, hedge and diversity. The minute you put a stop or a limit in to "protect" yourself, you invite this kind of thing in--it's like dropping your left hand after throwing a jab... you're going to catch a right hook to the chin. It's easy money for the market-makers: just spike the price with a block buy/sell and grab your money.
As for the whole "your account is too small for anyone to care about" argument, it's often not just you. If you are noticing a market trend, there's often $10M, $100M, $1B or more playing the same trend. If half of them put stop/limit orders up for protection, the bots detect his opportunity, and spike the price to make lots of commissions. It's a very simple algorithm:
Code:
const int SPIKE_TARGET = 10000;
while(1) { // endless loop; constantly check
if (longStopTotal() > SPIKE_TARGET) {
spikePriceDown();
} else if (shortStopTotal() > SPIKE_TARGET) {
spikePriceUp();
}
}
longStopTotal() and
shortStopTotal() simply return the total value of stop/limit orders in the DOM (aka order book) below and above the bid/ask prices, respectively. In this example, it's set to $10,000, but it's whatever the market maker wants. When there's enough profit there to justify a spike, then the algo fires. In practice, it's a bit more complicated than this, but this example illustrates the core concept.
When I was getting caught like this, I was cursing at my screen so hard that I degaussed my monitor. I was so aggravated by this kind of thing that I started a whole thread on it.
https://www.elitetrader.com/et/threads/use-limit-orders.302455/page-5#post-4330998