First, I would start very basic, visit the exchanges websites, skim through the rulebooks and search order type information. Here's a guide from bats.com http://www.brainshark.com/DCS/vu?pi=zFkzM44nYz3QRKz0 After that you need to learn how your SMART router works. There are a lot of them out there and each has a different purpose. Some of them target only darkpools, some are used to get midpoint fills, some route to the venues with the most rebates others are used to minimize impact of agressive limit orders. So if you use a router that is designed to hit passive midpoint orders in darkpools only to get a passive fill in the lit market, you wont get filled...like using a toothbrush as a hammer. As I said learn the basics first. Look up rule 606 "payment for orderflow" and ask yourself why someone would pay to fill your order. Google ISO order and ask yourself why you cannot use it. It is a mess out there so don't expect quick results. To question 1: Imagine you see a 200.000 share order at the 55ct offer, 3000 trade into it and it doesnt get pulled. What yould you do? I personally would offer 1000 shares at 54cts to trade first. If the trade is good, I make a profit and the guy with the 200k order did not get 1000 shares cause I got them. If the trade sucks, I can dump it for a loss of 1ct, cause I know behind me are 200k. So I'm "leaning" on his order. The bots do the same, just a lot quicker and with far less shares...and due to fragmentation, they don't have to improve the price. They just see a real offer at ECN A at 55cts, post their own order at 55cts via venue B and if they get filled and the trade sucks, they dump it on the real offer at ECN A for a scratch.
If you're talking about US equities, the situation is very complex. For liquidity-adding orders such as the one you listed, things are a little less complex if you specify the route for your order rather than using a "smart" router; this makes the situation a little more definite (for example, if you send your order to Nasdaq). Smart order types are often there to benefit the "affiliates" or "wholesaler partners" of the brokerage rather than the customer, which is frequently to the detriment of the customer. See, for example: https://www.elitetrader.com/et/thre...sleading-clients-about-pricing-trades.305895/ See also: http://www.nanex.net/aqck2/3519.html
Thanks for your reply. Can I ask you to clarify this hypothetical you gave above, since I don't think I quite followed it entirely, nor do I quite understand the sequence of events you're describing or where the opportunity lies for the algo to reap a profit. So: - I see the spread on XYZ is 5,000 x $0.45 / 200,000 x $0.55 - I put in a buy order for 3,000 @ $0.55, it fills instantly, but I notice the rest of the 200K doesn't get pulled, so spread is now 5,000 x $0.45 / 197,000 x $0.55 - So you're suggesting that here you'd Offer 1,000 @ $0.54 (undercutting the 197K sitting at $0.55 by a penny) That's where you lost me...you're saying "if the trade sucks", then you can dump it to the huge 197K Offer you know is sitting at $0.55...but just how are you measuring whether "the trade sucks"...presumably you mean that it "sucks" if the price continues to rise, but how can you (or an algo) evaluate that so quickly...or to put it another way, how can you determine whether the trade is "good" or whether it "sucks" in a short enough time frame to be sure that the 197K Offer will still be sitting there by the time you make that determination? Also, why did you suggest pinging the 200K Offer with a Bid of 3,000 shares...if your only objective is to see if it gets immediately pulled when it gets partially hit, why not ping it with a Bid of only 1,000 or even 100 shares? Thanks in advance; your replies are helpful, I just want to make sure I'm understanding them.
@dorian, probably because if there's an offer of 200k... that 100 lots that is used to ping doesn't scare anyone. The reason for a ping is to see if the order stays in, a 200k offer wouldn't be pulled when hit with 100 lots. But maybe it will with 3k. The leaning in this case was probably done by algo's putting in the same offer as yours at a higher volume ECN. So they get to sell and then put in a bid to scalp. If the scalp doesn't work they can get out through lifting your offer...
@d0rian: alright...I'm not as old as the following phrase suggests but ..."back in the day" when trading was still mouse clicking, the trade went like this: You see size in the book, you wait for it to trade in order to see if it's real or not. If it's real, you undercut it by one tick. If you got filled, you immediately exit 80% of your position on the opposite side of the spread and keep the rest as a lotto. The trade went wrong when nobody traded into your direction i.e. when you undercut the offer and noone traded at the bid, you know you were in trouble. But when algo's where absent, the 200k bid would not immediately flip over. Instead there where trades at it and you could watch it getting decimated from 200k to 150k to 100k and so on so you had a second or two to make the decision to bail. Algo's do the same just in microseconds.
Moral of the story is dont use smart orders as you can never really be sure what they are doing. Altho in this case I dont think they screwed you I just think you saw orders get filled at another exchange and IB aggregares all the time and sales of all the exchanges into 1 feed. You may have been at the front of the queue at the nyse exchange where you order got sent to but not at exchange B where trades happened after your odd lot got filled.
Seems like a pretty thin issued stock with a nickle bid/ask. I am sure this is contributing to your problem.
%% I like big trends; but not that big between the bid/ask. Odorian, that is 1+/% loss from the get go. Put another way,many will not touch a stock under $5.00, its simply not liquid.Just to be sure you may want to ''search SMART....... ??''
d'Orian, To summarize what has been said already, you are trading in fragmented markets and so prices trade at different levels across exchanges. IB sells your order flow to a high frequency firm that can bucket your order or let it flow on the exchange. They may like your trade and do the same on other exchanges and get filled before you(or not). IB has a smart algo that will review the markets every 30 seconds and will move the order if there is a better market which in this case, probably didn't happen. The algo's will monitor across the exchanges so when an arb presents itself, they will take your order. TD does not use an algo and the order just sits in what may be the worse exchange. I doubt there was an algo testing your order, as there are many orders split up into 100 shares both retail and larger. It's just random and some days your lucky or not. What you need to know is that fragmented markets are bad for retail traders. You are better off trading products with a single electronic exchange like Futures or stock markets in Asia or Europe where you will be first in line and thus fair execution. Limit your trading volume and brokerage fees by investing long term and avoid order execution as much as possible! Your broker, financial advisor, tax advisor and uncle Sam will hate you for it as they don't get paid anything as a result but YOUR (not theirs) retirement will come much sooner.
Can you provide more detail about this? There was another post here that mentioned pinging the order. I only know what pinging means in reference to testing how many milliseconds it takes to reach a server somewhere in the world. I would love to know about this pinging in reference to testing orders. My experience is only with futures, and thankfully, as you describe, the central exchange eliminates lots of problems. Thanks.