I have an idea. How can I implement it?

One of the problem that these kind of strategies have is buying power. You can't exceed buying power when placing orders, so you can't just throw 10000 orders in the market and see which ones fill. So I guess you need Option #1. And you need fine grained real-time market data coupled with relatively fast execution. So you got some challenges. Are you sure this strategy has enough edge? In strong bull markets, buying the dips works in any time frame, with market orders, on majority of the stocks. Then things get ugly quick. I suggest you implement this strategy on 10 stocks and see how it goes.
 
Agreed. I am leaning towards Option 1 as well. I am truly curious how quickly the scan (ALL stocks) and order (maybe 2000 stocks) process could actually be done. 1 minute? Less? More?

In reality, the more deeply I think about it, the only thing that I know must happen is the market sells at close. There is no way to know what the close will be, so selling all as near EOD as possible is the only choice using market sells. They must close out.

The buys are a different story. Again I have 2 choices. And please remember that the strategy's picks are supposed to gap up during the trading day from open price to close price:

1 - Place market orders at open and roll the dice on where they execute. Some will favor me and some will not, maybe washing out in the end with so many stocks.
2 - Place a limit order to buy only at or below the open price. This can happen anytime during the trading day, as long as it is before the sell off at EOD. Since my method only guessed that the trading day's close price will be higher than the open price, it doesn't really care if I bought in at 9:30AM @ open price or at 3:30PM @ open price.

Both choices have issues, but which one is wiser? The issue with the second one is that there will be quite a few stocks that don't trigger, so I never get involved with them. My strategy relied on them, so not sure the implications towards the overall effect in the long run by missing those ones. Could be good or bad, but no way for me to test it?
 
Last edited:
Brain fart. Just thought about this. Using EOD Historical data like I have been doing WILL allow me to test option #2 in my last post. This is how. If I place a limit order for buying at or below open price, going back and looking at historical data, if the 'low' for that same trading day is lower than the open price for that trading day, then the limit order will/should have executed at some point. Using this idea, I plan to back test this method to see how it fairs historically using my other existing techniques. I will report back. I also plan to try and break down the 50+years of data down to years and/or months to see how that plays a roll in the outcomes. Fun stuff :-)
 
1 - Place market orders at open and roll the dice on where they execute. Some will favor me and some will not, maybe washing out in the end with so many stocks.
2 - Place a limit order to buy only at or below the open price. This can happen anytime during the trading day, as long as it is before the sell off at EOD. Since my method only guessed that the trading day's close price will be higher than the open price, it doesn't really care if I bought in at 9:30AM @ open price or at 3:30PM @ open price.
When you buy, you have to have an idea of the goal sell price, right? You're not buying just because "it will go up" even if just $0.01? So do a LOO order one third of the way toward your goal sell price...
 
When you buy, you have to have an idea of the goal sell price, right? You're not buying just because "it will go up" even if just $0.01? So do a LOO order one third of the way toward your goal sell price...

Well to be honest, as of right now, it is as simple as "it will go up", but in your scenario, if the .01 gain happens to be a $1 stock, that's a 1% gain and I would love to have it :) . Once again though, this is assuming not having a per trade fee or else everything changes completely.

And on that note, I can easily add more variables to tweak it, including that it needs to go up by xx% to qualify, which would also help me determine a close price as you mentioned, but I also always read that the more variables you have when back testing, the less real the results get. Kind of KISS train of thought on this.

My idea does the following IMO:
- Relies on minimal data to succeed (on paper anyways lol)....KISS
- Buys lots of stocks (if picks are wrong, decreases chance of devastation vs 1 single stock)
- Only need 1 share per stock since there are so many stocks. This maximizes the chance of being filled and hopefully also filled faster
- On accounts that allow free stock trades, such as TradeStation for example, this bypasses any rules that make you pay fees once the order's share amount is over 10k shares etc...not having fees is mandatory for this idea to work

Seems legit on paper :-)
 
FWIW, right now on my spreadsheet during back testing (about 28 million data points), for each transaction that I would have have executed, it is calculating the % gained or lost on that specific trade. Then once every single trade has been tabulated for the 50 years of data, it sums up that column's total to see if there was a net gain or loss across all the trades. That number is extremely green...a absurdly huge number to say the least. Yes, it is paper back testing, but it gives me hope because of how huge the number is. And again, that includes even microscopic gainers like maybe a .01c gain on a $300 stock. It includes them all.

But like I said, I am going to try this weekend to break it down better by year/month, to see how it fairs during different bull and bear markets. I am also going to get the numeric totals of winners vs losers (for example 65% winners vs 35% losers etc) instead of the % profit amounts that I have now. Will be fun...wish me luck :)
 
Last edited:
You also have to be aware that if you average more than 390 trades a day for a month, your status becomes "professional" and you don't get no-commission trading.
Hmmm...I did not know that one. Thank you for that not so exciting baseball bat to my idea lol....dang it. Time to research professional trading costs :-( . Or else find a way to hone down my picks to less than that number....this sucks
 
I was poking around on Reddit and someone said this
"390 orders rule applies to options orders only. Stock orders, futures orders, forex, etc. don't apply."

Is this false?

EDIT: Found this document from 2016 which seems to back up that statement, but not sure if it has changed again since then:
https://www.sec.gov/rules/sro/phlx/2016/34-77054.pdf
If that is true, then it might not be a problem after all.

Also, what do you think about this statement I found elsewhere:
"If you’re entering using limit orders you could find a broker that pays you for providing liquidity. I’ve heard some high frequency traders say that they came out ahead by moving to a paid broker since they make more in rebates than they would’ve saved by using a commission-free broker."
 
Last edited:
I wrote an algo to do something similar. I was playing the (dead cat) bounce. I scanned the SnP, looking for equities that had triggered the uptick rule, and timing a buy to catch a 1% bounce.

To answer your questions:
1. I did it with the Interactive Brokers API. It worked well.
2. I used Python because IB is not a ULL or LL platform... you don't need the speed of C, and you'll pay BIG bucks for anything even close to LL.
3. Buying at the open is a bad idea. There's a lot of price discovery going on, and the spreads can be enormously wide.. you can really get slaughtered by transaction costs and irrational movement.
4. You can't just buy any instrument. You must check volume before you take a position. If an instrument has light volume, you may get stuck with a huge bid/ask spread, and may not be able to get out without taking a hit. I HATE sluggish instruments with big spreads!!
5. In your scheme, you'll get killed by transaction costs. IB charges $1 for each trade up to 200 shares; to the best of my knowledge, this is the cheapest retail broker for what you're trying to do. if you're only buying 1-2 shares of thousands of stocks, you'll rack up thousands in fees. Perhaps better to focus on a narrower group of targets to minimize transaction costs.
6. Finally, as a retail trader, you're always bottom of the totem pole. You'll get the worst fills... you're last in line.

So, I didn't make any money... not because the algo was bad; because sometimes the damn stocks didn't bounce after a big drop. It was still a 50/50.

Hope this helps. IB API link follows.
https://interactivebrokers.github.io/tws-api/introduction.html
Additionally, you are limited in your scanning ability... 50 instruments per second, if memory serves? So it takes about 11 seconds to scan all 505 symbols in the SnP, and an additional minute to scan the Russell 3k. Most annoying is when you miss the alpha you're looking for because it occurred between scan loops.

Also, know that with a strat like this, you are in competition with some big players: Citadel, Renaissance, SAC... they're driving a Ferrari, and you're driving a tricycle.

Finally, all this will be considered "Non-Display" activity, so there's real risk that you may get slapped with heavy ND fees. I had a nice chat with a guy from the Nasdaq in 2016 basically telling me to cool it or pay up.

Unless you're starting a hedge fund, center your strats around small baskets of instruments to minimize transaction cost. If you start blazing through thousands of instruments in odd-lots you'll set off all kinds of red lights with your broker's risk management team.

Keep it small, keep your head down, and keep it manageable. Even with just ONE ticker... if you can consistently win on 4 out of 7 trades, normalize their cost, and you'll grab some nice alpha.

Happy Trading!
 
Last edited:
Additionally, you are limited in your scanning ability... 50 instruments per second, if memory serves? So it takes about 11 seconds to scan all 505 symbols in the SnP, and an additional minute to scan the Russell 3k. Most annoying is when you miss the alpha you're looking for because it occurred between scan loops.

Also, know that with a strat like this, you are in competition with some big players: Citadel, Renaissance, SAC... they're driving a Ferrari, and you're driving a tricycle.

Finally, all this will be considered "Non-Display" activity, so there's real risk that you may get slapped with heavy ND fees. I had a nice chat with a guy from the Nasdaq in 2016 basically telling me to cool it or pay up.

Unless you're starting a hedge fund, center your strats around small baskets of instruments to minimize transaction cost. If you start blazing through thousands of instruments in odd-lots you'll set off all kinds of red lights with your broker's risk management team.

Keep it small, keep your head down, and keep it manageable. Even with just ONE ticker... if you can consistently win on 4 out of 7 trades, normalize their cost, and you'll grab some nice alpha.

Happy Trading!

Thank you for the follow up and the insights. I truly appreciate it!
 
Back
Top