The scheduling aspect of VWAP is what makes me uneasy. I can see how a solid third-party execution algo might help with signaling and slippage, but VWAP still seems risky to me on days when volume is atypical—whether higher or lower than usual. That said, I know I have less experience with these order types than many of you, especially in these thinner, less predictable names.
I’m also interested in finding ways to favor more easily tradable stocks—when all else is roughly equal—in the ranking and selection process. As a non-designer, I’m largely relying on the systems I use to handle that part. I keep coming back to the idea that it would be ideal if a model could help dictate how much of a particular stock to buy while accounting for its tradability and the total account value. The model could scale allocations and backfill into larger names as needed to stay within a max-names cap while still deploying all available capital. As a less than ideal workaround, I’ve added a layer on top of the models I trade to make sure I’m staying in-bounds on how much of a thinner name I buy.
It's been a couple of years since I traded on IBKR, but where VWAP wasn't an option (e.g. Warsaw and Stockholm stock exchanges, though that may have changed) I used limit orders and, if the amount I wanted to trade was too high, broke up the orders and placed them over several hours/days.
Also, don't use IBKR to buy Norwegian stocks. They use a secondary exchange rather than the main Oslo exchange. This may have changed since I was on IBKR, but I doubt it.
So you were not using VWAP when on IBKR? I also suspect that you are still not intending “not to take liquidity” (you are happy to take liquidity) when you use the POV orders. And that your slippage/market impact formula ( God rule of thumb avgdaily volume vs position size? - #20 by yuvaltaylor ) was calculated assuming that you were taking liquidity.
What I am trying to do is to invest in stocks with medianDailyTot(126)>100000*(close(0,##CPI)/320) and a liquidity limit at something like a couple of millions and I am wondering how much of the weekly volume is actually investable (with reasonable certainty of execution, and without having to be on the screen all day long, not being a trader) while staying within the variable slippage parameters and with which kind of order. As some others said I have a feeling that a VWAP while taking liquidity on such thinly traded stocks is not very performing and resulted in higher slippage/market impact based on previous close (at least from the perspective of the very few data points that I checked).
I feel that half the work is to have a robust system but that the remaining 50% is how to properly execute it and that this is at least as hard.
I was using VWAP when on IBKR but I didn't have the "don't take liquidity button" on. If I did my fills would have been minuscule on the really thinly traded stocks.
Yes, that's right. I keep tabs on my transactions, and here's my latest formula for transaction costs, reflecting about 1/2 Fidelity trades, 1/3 StoneX trades, and 1/6 IBKR trades. A little more than half the trades are VWAP, and the others are either straight limit orders or limit orders placed throughout the day. This compares overall execution price to the last price of the stock immediately prior to the order being placed.
V in the above equation is daily volatility, which is measured as follows: 100*LoopStdDev("Hi(Ctr)-Low(Ctr))/Close(Ctr)",100). It's usually between 0.01 and 0.07. Sqrt is square root. Amt is the amount you're trading for the day. Mdt is the median daily dollar volume. Spread is LoopMedian("Spread(Ctr)/Close(Ctr)",35).
So, for example, let's say you want to trade $50,000 of Senstar Technologies (SNT). The median daily dollar volume is $177,685; the spread is 1.55%; the daily volatility is 0.023. So the transaction cost would be 1.78%.
When using limited orders (straight or with algorithm), how do you decide when to keep same order price, increase or decrease it or divide in sub orders throughout the day? When in a new day, do you keep old orders or do you update them with new pricing?
Simple limit orders. If I get a clean fill on the bid/ask size alone, I just take it with one limit transaction. Algo orders tend to split orders into many small transactions which isn’t a problem per se (but I try to avoid it where I can to limit the line items for my tax report and save me some hassle; meaning it’s more of a personal question).
Algos definitely help on WSE, in Germany and similar, where bid/ask size and general order book are very thin and intransparent.
I do something quite complicated, which I don't necessarily recommend. About 5 to 30 minutes after open I jot down the third best gain in my portfolio and the third worst loss. Let's say they're +3.3% and -2.7%. I multiply those by two and set those as the limits for the most and least I'll pay for a stock, relative to yesterday's close. If, halfway through the day, one of my orders hasn't had at least 20% of the shares filled, I see if those numbers (third best, third worst) have moved farther from 0, and if so, I'll change my limit price on that very unfilled order, but only for half the order; the other half I'll leave as is.
It's far from a perfect system. What it does for me is make me feel that I'm making a compromise between overpaying for a rapidly rising stock and catching a rising wave before it goes up even farther tomorrow.
For my custom microcap universes I use empirical 2% slippage fixed in sims and > 25k liquidity rule on next OHLC
Live I use last close for the recoms but adjust the transaction price to my real execution price incl. fees after completion.
So far the 2% per trade assumption is a good conservative approximation for my average trade. I don’t like Variable due to the sharp cliff at 50k liquidity…