Placing Trades - Process, Mechanics, Strategy, Implementation, Rules of Thumb

Hi all, I was wanting to post a thread requesting discussion around the process of placing trades. I searched and found this thread from 2010 with good discussion for reference, but was hoping to generate tips and gather general ways of thinking users have around placing trades.

https://www.portfolio123.com/mvnforum/viewthread_thread,4452_offset,30

My situation:

  • I’m wanting to build a process where I can place trades before the market open and generally not have to monitor or manage much throughout the day. As I get better I might become more active in monitoring, but for now I’m just trying to get a good general purpose process.
  • If I’m buying large caps w/ tight spreads I currently don’t worry about the trade mechanics much, just taking the prevailing market price on the day of the trade - usually at the open or close - or using some type of undemanding limit order.
  • What I’m primarily interested in presently is establishing a better trading process is in the small cap portfolios. I’m presently not trading the really thin stuff. I have a minimum median liquidity constraint of $200k in my ports currently. I expect to work with more illiquid stocks in the future, but for now recognizing my issues with executing orders I’ve limited to $200k so I don’t get stuck in situations I’m unprepared for.
  • Depending on share count rounding, current small cap position sizes are from 6-8k per position. Ultimately I’ll scale this up to larger sizes as I move more of my port into the quant strategy, but for now $6-8k. In practice I realize these position sizes are a bit lower than I’d like, so I’ll move position sizes up gradually over time as I sell other things.

What I’m doing presently:

  • I’m gathering the previous day’s close price, looking at the average daily price excursion from the previous days close (usually 1% + or - range) and place a limit order prior to open at the lower end of that range, maybe 75% of that range. I’m still messing around with where to place the limit order below previous close, but that’s the general approach.

  • I have concerns about getting fills on only the decliners and missing the risers doing this, but from the limited tested I’ve done it seems short term mean reversion tendencies are my friend, at least of the stocks the model is selecting.

  • Some days when the market is down I’ll often get almost everything I have an order in for. Other days when the market is up I get nothing.

  • This week I had 2-3 days in a row where I had difficulty getting fills, leading me to think more about this, and start this thread. Should I just listen to the market on those days and raise my bids? What do most of you do in that scenario?

  • I generally am not adjusting orders throughout the day, but sometimes I will scan my portfolio list and if I can’t get stocks #10-12 which are all up for the day, but I see stock #13 is down for the day by a good amount, I’ll put an order in for stock #13. I don’t know if this is a good idea, but the ranking system is fairly liquid over time with ranks shuffling slightly from day to day when I run update screens, so I don’t make much distinction between #10 and #13. Maybe I should.

  • I’m targeting holding periods of at least 4 wks and avg days held in range of 80-100 days (depending on my sell rules), but daily precision isn’t paramount to me presently because I’m intentionally spreading out my purchases over time (w/ intent of spreading out buys/sales over time in dollar cost avg way). I’m also constantly working on the model, so whatever it is today will be different next month, so I find it hard to lock in the system at this point. I don’t want to have a high % of cash that should be invested to just be sitting on sidelines for too many days while I’m waiting for share prices to zig or zag to meet my limit.

  • With wider spreads in some stocks in my smaller cap portfolio I do want to use limit orders I think, but if I should favor just hitting the bid I’d love to hear thoughts.

  • Sell rules are still to be determined, but probably based on the same principle w/ effort to take some advantage of the normal daily price volatility when selling.

  • Would prefer to pair buy/sell on same day.

So, I guess that’s about it. Appreciate any thoughts or suggestions on how you think about the execution of your buy/sell process.

  • Am I overthinking it, or being to strict? Should I be more relaxed in my buy/sell rules and favor just getting the transaction done? Should I regularly monitor throughout the day and adjust? Or just wait until tomorrow and try again? Other considerations? Thoughts appreciated.

I think you need to decide if controlling slippage (or snagging bargains) is worth the cost of missing out on runaway winners.

I’ve backtested this and watched it live for some time now and in a low turnover system I think it’s more important to just get in. I guess the same is true for a short term mean reversion, but I don’t trade those personally.

In a high turnover system though, especially with small caps, there is a much greater chance that stricter limit prices will save you more money than you “lose” by letting the winners get away. I think you just have to figure out which of the two effects is larger for your port.

Darcy, Point taken. Thanks. If you don’t mind me asking, do you tend to place your orders before open, or wait a bit? How do you utilize limit orders in this scenario? Like limit at previous day’s close? Or try for an initial price below prior close, and if you don’t get it input market order later in day? Or limit higher than prior day’s close? In trying to get in quickly are there some scenarios where you still might pause (like gap up)? Do you use market on open/market on close orders if liquidity is enough (that seems scarier to me in small caps than large caps)? etc

As you can tell, I don’t have a good feel for this at all and am trying to think about nuts and bolts practical approach to trades. I realize different systems might have different answers, but I don’t even understand what good basic baseline behavior might be.

I don’t know if this is the best way to trade, but this is how I do it.

I place a limit order before market open below the previous close if I’m buying and above it if I’m selling.

If it doesn’t get filled by 11:30 EST, I’ll modify the order somewhat.

If it doesn’t get filled by 1:30 EST, I’ll modify the order again. If the bid-ask spread is only a penny, I’ll place a limit order at the ask price if I’m buying and at the bid price if I’m selling, thereby guaranteeing at least a partial fill. If it’s a lot wider, I’ll place a limit order at the bid if I’m buying and at the ask if I’m selling in the hopes that the price will change.

If it doesn’t get filled by 3:00 or 3:30 EST, I’ll usually just give in and place my limit order at the bid or ask to get a fill.

If I’m buying and the stock goes up by a percentage that’s higher than most of the other stocks in my portfolio, I’ll let my order go unfilled. If I’m selling and the stock price drops by a percentage that’s higher than most of the other stocks in my portfolio, I’ll let my order go unfilled. I’ll check my ranking screen late at night and decide whether to try again.

If there’s a partial fill I just leave it alone. Maybe I’ll buy/sell more the next day. I pay $4.95 per trade, so modifying partial orders isn’t usually in my interest.

  • Yuval

here is a good thread on this subject. https://www.portfolio123.com/mvnforum/viewthread_thread,6534
Any comment by DennyHalwes is worth reading

Thanks all. This is really good stuff.

I just use market on open orders for highly liquid stocks and limit of previous day’s close for less liquid ones (relative to my position size and the spread). Like Yuval I’ll tweak limit prices through the day. I am not sure how to do any better than that.

Take a look at your backtested buys and see how many stocks never touch your limit price in the subsequent 5 days. Then take a look at the 5 day return you would have missed out on. That’ll tell you a lot.

We use next day close in our testing to be as conservative as possible on slippage.

Next day close is pretty easy to replicate in live trading, either through market on close orders or algos like VWAP.

This is a problem I keep thinking about: without a clear answer yet.

Imagine that I normally buy stocks at a 2PM window at Folio Investing. But I want to put some limit orders on in the morning to get some stocks at a bargain price. So I put on some limit orders and if the stocks are not purchased by 1:55 pm I cancel the limit order and put on a window trade for the stocks that were not filled before the 2 PM window. This is for just buy orders. And to be consistent with the Folio Investing thing let me assume I actually get going on this just before 11 AM after the market has settled and I could make market purchases at the 11 AM window as an alternative.

Assuming the prices change randomly on average (eg random walk) over short time-periods. Have I gained?

Some of the stocks will hit my limit order and be purchased. If I had not purchased them they would have acted randomly going forward. Those that have not been purchased fluctuated above the limit order and are purchased in the 2 PM window.

From the stocks that hit their limit there is no gain going forward—the random fluctuations before the 2 PM window would have been random with no net gain or loss. If you believe in trends then the argument could be made that they could have continued trend lower (on average) and you would have gotten them at an even lower price in the 2 PM window. This possibility of trends also causes problems with the stocks that have risen and therefore have not hit your limit order too. But lets set the consideration of trends aside.

The stocks that do not hit their limit have a skewed distribution. They have a lower limit but could have increased in price without limit (in theory) before the 2 PM window. While the upper limit is not infinite let’s not forget that this is a distribution with fat tails.

The net result is a skewed distribution (for all of your purchases) with the lower limit being the price of my limit order but with no such limit on the upper price.

The other consideration is that while you put on a limit order in the morning and go to work at your real job there could be some news about your stock. The full-time traders and professionals can use your limit order to their advantage—or not—as they chose base on information that they get while you work in the real world. And to be clear, my limit buy order is not going to suddenly be hit by a limit sell order put on before 11 AM. My limit order will only be hit because of a new order put on after 11 AM when newer information (even price information) may have become available. So I have to hope that the person who takes advantage of my limit order is making a mistake: is either not so bright to begin with or does not have new information.

MY LIMIT ORDER BECOMES AN OPTION FOR THE FULL TIME TRADER. He does not even have to pay a single cent for the option I have given him! Who says I am not a nice guy being altruistic toward others. This is another argument for why prices of my trades after the 11 AM window might be skewed but amounts to the same thing.

If P123 and I are right about the direction of the stocks in the future then the price will drift during the day (will not be a random walk) and my situation could be much worse.

So my present belief is that I might have improved the price I would get in the 2 PM window through reduction of BID/ASK spreads but I might have lost compared to what would have happened if I just put all of my purchases in the 11 AM window regarding overall price movement: because the forward price distribution on my purchases is skewed.

But the gain on the BID/ASK spread may not be trivial for many models! And there can be an advantage with regard to commissions for not “taking liquidity” at IB.

So I guess in the final analysis: “it depends.”

None of this is finished thinking. I would love to be proven wrong on the Forum so I can start behaving smarter in my trading.

Thanks for any thoughts!

EDIT: thank you for allowing me to think out loud. Without going on for ever again, I think in the short term one can the benefit of improving the price over the BID/ASK spread and nothing more (or less). Longer-term there is the risk of new information that will allow professional full-time traders to take advantage of your limit order while the information that you are trading on becomes old news that is already factored into the market by the time of the trade.

-Jim

Jim,

I understand what you’re saying about the free option. On more liquid stuff I often cancel a limit order in a short period of time if it hasn’t executed due to this. I sometimes will put a limit order in right in the middle of a spread at the price of the last trade, and sometimes it won’t execute. In that case I cancel pretty quickly if it doesn’t happen because I know I’m downside protection for somebody and that everyone can see it. I’m a small nobody in terms of volume so it’s not like i know they’re out there waiting to pick off my order, but with the liquid stuff w/ tight spreads I can usually just wait, make decision, and place a market order in last hour when volume picks up.

For smaller caps, I’m not so sure. I wonder if there’s a lot of price discovery going on all the time, and some trade so infrequently that maybe it’s beneficial to throw a lower offer out there and let it sit just to see what happens. Somebody has to make a first move in these. Part of my thinking is that I tend to think mean reversion is a real effect in isolation. I’ve tried to take this thought and put a mean reversion factor in the final models and sometimes it works, sometimes not - usually w/ increased volatility - but think maybe it works often enough that there might be something to it, but its not as clear as I’d expect, and probably dependent on execution and maybe a willingness to grab an intraday wiggle in price. (edit: let me clarify, I’m confident mean reversion is an independent thing, but when mixed with all the other factors sometimes it’s hard to tell if it’s beneficial in that context. That’s what’s maybe a bit counter-intuitive to me.)

In the end I guess it’s empirical and I need to run some more tests when I get closer to a more final model. I keep changing my models right now though, and often those changes are trying to incorporate more short term or technical signals, and I think that might change the answer to how I need to handle the trades. It’s difficult to for me to escape the idea that more illiquid small caps should have more short term supply/demand imbalances than the large cap stuff - so I’ll probably keep trying.

But no matter where the model lands, proper execution is something I have to work on. I’m a cheap guy, and like to bargain hunt by nature, so I’d like the trade execution to favor that tendency - but I’m aware that it might not. I might need to step up and just pay rather than being stingy. :wink:

Michael,

Thank you for your feed back (and again to everyone for letting me go on so long with my post).

This is something I have though a lot about. But after all of that thinking the only thing I am doing in the near term is moving some money to Fidelity to look at the price improvement there (compared to Folio Investing). I do not think I will be moving to IB and using their Algos in the near term. Long term I will try this too.

I may begin to place some limit orders and be able to give some more informed feedback regarding improvement over the BID/ASK spread in the future—probably not something that people don’t already know, however.

Again, much appreciated.

-Jim

Darcy, I’ve been looking at this some and am thinking you’re right. It’s difficult to control appropriately for the moving pieces in a sim, but it seems just getting in at prevailing price is better than trying to catch a dip in the scenarios I’m testing. It’s curious to me that short term mean reversion is an easily observable effect, but when I attempt to apply that to a buying process (at least on this model) it doesn’t help - it seems to get overwhelmed by other factors highlighted by the model. I’m going to keep testing, but for now that’s where the data is leading me.

Thanks so much for all the discussion on the topic. :wink: