Limit Order Pricing Decimals
Author: doccanter
Creation Date: 5/26/2020 10:03 PM
profile picture

doccanter

#1
My strategy is using Fidelity data and trading live with Fidelity. The exit code is generating SellAtLimit bar+1 orders for a stock using the bar closing price which is often at an accuracy of more than 2 decimals (i've seen up to 4 decimals fairly often). My question - when the live orders are placed at Fidelity are the limit prices rounded to two digits automatically? It appears that they are to me. If so, is this some sort of condition which we are stuck with or is there something I can do to have the orders entered at prices with 3-4 decimals? Thanks in advance
profile picture

Eugene

#2
It's described in the Wealth-Lab User Guide > Preferences > Advanced Options > Decimal Places. Also you can disable rounding for limit/stop orders in Preferences > Backtest Settings > Turn off limit/stop order rounding entirely.
profile picture

doccanter

#3
So I double-checked my settings for the items you mentioned and they show 4 decimals for each and the option for rounding is checked to disable.

Although it is a very small sample, in today's trading I had one instance when the Fidelity order was correctly entered at 4 decimals (a buy) and two instances when the Fidelity orders were incorrectly entered as rounded off to 2 decimals (sells). Any additional thoughts? I guess this leads to my followup questions - if WLP transmits an order to 4 decimals precision does Fidelity always enter the order to that precision or does it round to two digits in some instances? Is there different Fidelity protocols between buy and sell orders?
profile picture

Cone

#4
In my testing, it appears that either WLP - and/or the response from Fidelity's back end - rounds orders to 2 decimals for buy and sells. You can watch the order appear in the Orders tool with more precision and then it is rounded to 2 decimals. I can't explain your experience with the 4-decimal order - was it filled at that precision? What symbol/exchange was it?

Trading info for the NYSE (see Routing Policy at the bottom) indicates that 4-decimal trading is certainly supported, but ultimately it's up to the "routing broker" how the order is rounded or truncated. I can't quickly locate similar information for Nasdaq.

I know for a fact that other brokers will not allow U.S. stock orders with more than 2-decimals, which is indicated to be the minimum price fluctuation. That said, Eugene's suggestion to turn off limit/stop round entirely should allow Wealth-Lab to place orders with full precision - this is even required for futures and forex. I recommend using that setting for backtesting so that hypothetical trades will execute at full precision to account for stock splits and other corporate action adjustments.

For live trading, however, it appears we're stuck at 0.01 increments for trading stocks at Fidelity. What is the advantage or requirement for more?
profile picture

doccanter

#5
Thanks for your detailed answer. To answer your first question, no it was not filled at that precision but it was listed that way as the "order" price in that one instance.

The reason it was important for me is because I am trying to stay in synch as much as possible between the strategy and live trading at Fidelity. What i was surprised to discover was how often the strategy would fill the limit order and Fidelity would not - and most of the time it was due to the rounding differences. So now that I know Fidelity is rounding everything I will fix my program to submit appropriately rounded prices and that should hopefully minimize my out of synch frequency issue. The extra precision would have helped my strategy performance, so I wanted to make sure I understood what was going on before I just gave up on the idea of keeping the 4 digits. Thanks again for your help. If you have any other ideas I would be happy to hear them.
profile picture

Cone

#6
QUOTE:
surprised to discover was how often the strategy would fill the limit order and Fidelity would not - and most of the time it was due to the rounding differences.
Perhaps, but as discussed in the Orders chapter Wealth-Lab hypothetically "fills" an order if the limit price is attained, but there's always a chance that a live order will not be filled due to market depth.

Note: you can set Limit Order slippage in Slippage preferences, but then just that opposite could happen too - your live order may be filled, but WLP may not fill hypothetically. This is one of those situations when day-trading an intraday strategy you may optionally want to perform a manual trading action.

Since we're talking about it, it could be helpful, say, to place a BuyAtLimit order with a tiny bit of extra precision to help ensure your order is filled. e.g., BuyAtLimit at 20.1225 instead of 20.12. Although you take a tiny hit, it's very likely your order will be filled if 20.12 is ticked at the low of the day.. and for dip buyers, these are often the best trades to be a part of!
profile picture

doccanter

#7
Thank you Cone, appreciate your answers and tips
This website uses cookies to improve your experience. We'll assume you're ok with that, but you can opt-out if you wish (Read more).