Is Alpaca really free?

Is Alpaca really free? How accurate are the Alpaca quotations?

I put market buy for KSPN on my paper account.
it is executed at
“created at 04/30/2021 09:35 AM
filled ($22.74 each) @ 04/30/2021 09:35 AM

so how is it possible to buy this ticker at $22.74, even though both google finance and yahoo finance day’s range as:
Day’s Range 20.08 - 22.52

or, is it all wrong with google&yahoo, but not with alpaca?

where does my $0.16/share goes? (22.74 - 22.52)

this is not the only example,
and how come I cannot see any example other way around, working to my advantage!

Your KSPN Activity

Stop Sell @ $22.51
created at 04/30/2021 09:36 AM
filled ($21.35 each) @ 04/30/2021 09:50 AM

Limit Sell @ $23.87
created at 04/30/2021 09:36 AM
replaced at 04/30/2021 09:50 AM

Market Buy
created at 04/30/2021 09:35 AM
filled ($22.74 each) @ 04/30/2021 09:35 AM

hyperbolic movement, you need to account better for time. if you really want ill give you a more detailed explanation of how to trade better in a algo tomorrow morning

I’d really appreciate your response on how to trade better in algo tradings and especially about this “hyperbolic movement”

@TEKNECI There seems to really be three separate questions

  1. Is Alpaca really free?
  2. How accurate are the Alpaca quotations?
  3. How is it possible to buy … at $22.74, even though the day’s range [was] $20.08 - $22.52

So, I’ll try to answer them one at a time.

  1. Yes, Alpaca is free and doesn’t charge commissions. There are regulatory fees, margin interest, and short borrowing fees which however, do get assessed. See the docs for a bit more explanation on how Alpaca makes money.

  2. Alpaca get’s trade and quote data from the same Security Information Processors (SIPs) as other brokers and data providers. There are some nuances about which trades and quotes to include in the data, but Alpaca only post NBBO quotes which should match other broker and data provider NBBO quotes. Polygon has a nice explanation of SIP data here.

  3. Alpaca simulates trades in paper trading by making a few assumptions. Trades aren’t really submitted to the market. Instead, trades are assumed to fill at the National Best Bid Offer (NBBO) quoted prices. A buy will fill at the ask and a sell will fill at the bid. Typically, in live trading, orders fill a bit better than that. That is why one’s paper trading order may not match actual trades during the day.

Paper trading represents a ‘pessimistic’ fill of an order with no price improvement. In live trading, one may get price improvement but it’s not guaranteed. Best to use this as a baseline.

A ‘best practice’ for trading is to always look at the last/current quote when placing orders. A lot of folks just watch ‘price’ or ‘last trade’ when submitting orders. The implicit assumption is an order will fill close to that price. Wrong. First, the last trade occurred in the past and really has no bearing on what a current trade will fill at. Second, and more importantly, the price an order fills at is determined by current quotes (ie what others are currently willing to trade at). In setting expectations for a fill one should start with an assumption it will fill at, or a bit better, than the current quote. What the last order filled at isn’t always a good guide.

This becomes especially important when there is a large spread between the bid and ask prices. Why? When submitting market or marketable limit orders, a buy order will typically fill at or a bit below the ask price. When submitting a sell order, it will typically fill at or a bit above the bid price. If the spread is small the differences in fills will be small. However, many low volume stocks have (shockingly) large spreads. If you want to assure that an order will fill better than that, submit a limit order and NOT a market order. Also note that an order isn’t guaranteed to fill immediately (or at all), and therefore may not even fill at the quoted prices when the order is submitted.