I have the same problem and have yet to find a perfect solution.

There are two other options, each with their own problems...

1. Monitor the prices such that you wait until they go near your limit price 
and then submit the Limit order.
The issue of having too many Limit orders filled can still occur as orders may 
be filled quicker than your program can react, but at least you'll have a fewer 
number of Limit orders placed as it is less likely that all prices will 
approach your target price and if they do you can constrict the number of Limit 
orders issued.
The disadvantage is that you are less likely to get your order filled if the 
market moves quickly and if there isn't sufficient volume.

2. Use OCA (Once Cancels All) orders. Where you create a group of orders and if 
one of them fills the others cancel. Works great if you only want 1 order 
filled, but I suspect that like me you want to hold several open positions.
I've yet to test this particular approach, but what you could do is create a 
number of OCA groups by splitting your watchlist of stocks into sub groups that 
matches the number of concurrent open poitions you wish to have.
This of course brings up new problems where all the action for the day may only 
happen in one group, so instead of filling 3 orders (1 from each group) you 
only filled 1 and the remaing opportunities were missed as they occured in the 
group that was already filled. You can attempt to mitigate this by doing some 
statistical analysis of the watchlist and trying to evenly distribute the 
stocks that have previously shown a higher probability of reaching your Limit 
price from their current price. But even with this approach I'm still dubious 
about its likelihood of success.

Reply via email to