High Frequency Accounting

Question: Are you still alive?

Answer: Yes, although it’s been tough.  I really could use some help, and one day I will write a multi-page rant about the utter incompetency of financial recruiters …

It’s been months.  I apologize.  I didn’t intend to abandon the blog, if that’s of any consolation :)

Something short for today: accounting for HFT.

 

Question: What are the per-trade costs and commissions in equities trading?

Answer: The per-trade costs break down as follows:

  1. “Brokerage Commissions” — for a standard sponsored access relationship, this refers to a commission.  For self-clearing, this refers to the amortized costs.
  2. “Taxes” — monies that flow to government or regulatory agencies
  3. “Exchange Costs” — monies that flow to or from the exchanges.

Generally, the brokerage commissions are less that $.0001 per share (1 cent per 100 shares), and these are assessed on a per-share basis for each order (buying or selling)

For a very long time, the tax was called an “SEC Fee”.  For PR reasons, SEC has been pushing the community to call the tax a “Trading Activity Fee”.  In any case, there is a rate which is updated each quarter.  Currently its around $.000019 per dollar sold ($19 for every million dollars sold).  Note that it’s only assessed on the seller, so you only pay this once.

As far as the exchange costs are concerned, they depend on whether or not you were the active party (your order caused the trade) or the passive party (your order was sitting at the exchange’s order book until another order trades against you).  If you are providing liquidity (e.g. market maker), you RECEIVE a small amount (at least $.002/sh).  If you are taking liquidity, you PAY a small amount ($.003/sh).

 

Question: Why is BAC considered an HFT “playground”?

Answer: Let’s look at the cost of buying and selling 100 shares of BAC at the same price, adding liquidity on both sides (suppose the price is $ 6).  Note that, in this example, there is no return before fees since the buy price is the same as the sell price.

Commissions = $ – .02 (200 shares x .0001 $/sh)

TAF = $ – .01235 (6.5 $-sold/sh * 100 sh * .000019 $/$-sold)

Exchange rebate = $ .40 (200 * .002 $/sh)

Total return: $.368 per 100-share lot.  It’s positive!

Note that there is a positive return if you can manage to buy and sell at the same price, so you could theoretically churn millions of shares a day trying to buy and sell at the same price (collecting the positive returns)

 

Question: What about AAPL?

Answer: Let’s re-do the calculation for AAPL (price $400/sh)

Commissions = $ – .02

TAF = $ – .76

Exchange rebate = $ .40

Total return: $-.38 per 100-share lot.  It’s negative!

Given that, the market maker must depend on price appreciation (the rebates just dont cut it).

 

Question: So how can you ensure that you are always passive on your trades?

Answer: All of the equities exchanges support an order property referred to as “Add Liquidity Only” or “Post-Only”.  This fundamental order property was created to resolve a strange problem: supposing you wanted to buy at the offer price, you end up paying more than the stated price.  The post-only flag tells the exchange not to trade against the other side unless the final price (adjusting for the exchange fee) is better than the sent price.

As a numerical example, suppose that the bid/offer for a stock were 10,10.01 .  Then, sending a buy order at 10.01 would result in an effective price of 10.0130 .  Sending that order as post-only would cause the exchange to reprice your order at 10.00 (ensuring you don’t trade worse than the 10.01 price).  However, if the offer price were 10.00, then you would buy actively at 10.00 since the effective price is 10.0030 < 10.01 (a slight price improvement).  So in reality, you need a platform that can quickly respond to price changes.

 

Question: So how do you make money?

Answer: The “Veyron” strategy (appropriately named, given the performance) essentially seeks to buy and sell passively on both sides, collecting rebates.  You need to have a low-latency infrastructure in order to ensure that, when one order is filled, you can quickly respond with the opposing order (i.e. if your buy fills, you need to quickly shoot off a sell order to catch slower traders before the price moves further).

And given the costs of doing business, 1M shares per day (which can be spread amongst many tickers) should be enough to cover everything and give a small salary.  That’s less than 1% of the volume of BAC :)

 

Question: So when will you be posting again?

Answer: Hopefully soon :)

Advertisement

11 Responses to High Frequency Accounting

  1. You forgot FINRA TAF. Also, STC is rounded up to the next penny.

    • You are correct.

      However, within most brokerage relationships, the FINRA TAF is covered by the broker itself (or at least, in my experience, that has been the case).

  2. Whoops, can’t edit my comment. TAF is .000075, STC is .0000192. Gotta round to the next penny. Sorry for the comment spam.

  3. thanks for the information veryronb. i thought you guys were paying the TAF, too. good luck…

  4. btw, TAF is .00009 now! http://www.finra.org/Industry/Regulation/Notices/2011/P123767

  5. Couple of questions:

    1) Your brokerage fee quotes—does this include hardware/colo access (guessing not)? I’ve heard quotes that included all colo/exchange fees but they were somewhat more expensive.

    2) If the FINRA TAF is 0.00009, then it seems impossible for the broker fees (0.0001) to include it, unless the broker doesn’t actually have to pay it. My guess is that they don’t have to pay as long as they’re registered market makers in the stock (which they ought to have the volume to be). See the FAQ:
    http://www.finra.org/Industry/Regulation/Guidance/P122279
    Am I missing something here?

    3) Hasn’t the SEC’s prohibition on naked access gone into effect? Has that affected you? Any estimate on the latency impact of the BD’s pretrade risk controls?

    • Infrastructure costs are treated separately because they are not assessed on a per-trade basis. You could theoretically amortize the costs, but that’s a bit of a pain.

      The key thing is volume. If you can push as little as 3M shares per day, then you and every other brokerage client are eligible for better exchange rebate tiers. That excess return is worth more than the cost of me leaving to go elsewhere. To put real numbers to it, DirectEdge EDGX baseline rebate is .0023 but their ultratier is .0031 and megatier is .0034. Now, suppose that my volume itself is sufficient to reach the ultra tier. All of the broker’s clients enjoy the better rates, but the broker is not required to pay that higher rebate to everyone. In fact, oftentimes they will pay the minimum rate to customers, which means they keep the difference (and that means, if their other customers trade 1M shares per day total, they will make back the cost of the TAF).

      As for 15c3-5, that’s probably a good topic for another post …

  6. kapitalkid (reader)

    Great info veroyb — glad to see you’re back in action. I check in every once in a while to see if you’re up and running!

    However, I must chime in and say that $.0001 per share is pretty misleading. Even with the “low-service/entry” brokers/clearers like lightspeed, pension, and the mid-tier lime/wedbush you’re looking at 4-6mills at 100MM shares/month.

    Depending on your broker, you can also get stuck with a per-message cost (they don’t like a high volume of order entries which are subsequently canceled). However, if you’re trading decent volume and generating revenue for your broker, you’re not going to be stuck with any messaging costs.

    Liquidity costs can either be a rebate or a charge. on a few exchanges, and pretty much every dark pool, even if you add liquidity you’re charged. So, it takes more than just being able to always beat the best bid or best offer and bet on churn, it also requires the bbos you’re beating to be on exchanges that give liquidity rebates.

    One other thing is the cross-routing fees. you either need a great routing model and a low-latency system to route correctly, or take the hit for cross routing or auto-routing if your broker has a decent auto routing algo.

    I’d still like to hear about your actual latency profile! What % of your quotes come in at under 5ms latency (from the time they leave the exchange until the time your user-space software stack sees them)?

    • It’s misleading inasfar as NSCC clearing charges and other expenses are pass-through (not included in the .0001 commission) and I didn’t include them in the calculation. However, those costs are much smaller and don’t really change the conclusions too much.

      If you trade a large volume, brokers will bend over backwards to keep you as a client :)

      “it also requires the bbos you’re beating to be on exchanges that give liquidity rebates” <– that's why you don't do this on DirectEdge or some other third-world exchange :P Seriously though, to run on an NMS exchange (one for which 99% of the volume comes from sweep orders), you do need routing, and those incur other costs. However, NASDAQ is pretty solid.

      Cross-routing fees exist and are heavy, but you can circumvent them if you have your own access to each exchange. For example, if you stick a server in Carteret and in Weehawken, you can trade BATS by using an external network to send requests back and forth (trading BATS using the direct connection in weehawken, trading NASDAQ using carteret)

      I'll talk about latency profile in the next post

  7. What do you mean by “send requests back and forth?” Are you referring to sending your position back and forth so you can mark your orders correctly?

    • Let’s say you wanted to send an order from a machine at one exchange to another venue (ie from Carteret to NYSE). There are two ways to do this:

      1) You send an order to NASDAQ, instructing them to send the order to NYSE. You pay the routing fee on a per-share basis but it’s very easy to do (both their FIX and RASH Engines support routing instructions )

      2) You set up another machine in Mahwah, secure your own connection between the servers, and send orders from Carteret to your Mahwah machine, which then enters orders to NYSE directly.

      The second option has a fixed monthly cost but saves you the routing fees (which, at a large scale, can really add up)

      I would expect that most large firms would have servers set up at the various data centers …

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s