Intraday price data

There have been past posts and feature requests on intra-day data. From what I can tell, P123 does not yet provide this level of data, but if it does, I would really like to know.

I’m working on a strategy that was originally based on the standard P123 interday data, however I’m finding many of these stocks provide some significant intraday swings, that if timed right can really enhance returns (which turns the strategy into more of a day-trading strategy).

The 3 month return graphs (when you hover over a ticker) seem to show daily intra-day price movements, but only graphically. Can we get access to this data?

If not, does anyone know of other datasources providing recent intraday price data?

Thanks!

Ryan

We do not have intra-day tic data.

The chart pop up only shows the intra-day range using IEX real time data or from exchanges if you have linked a Tradier account.

Is that kind of data expensive or are there alternative platforms to test with intraday prices similar to p123?
I ask because i outperformed my systems over the past 3-4 years by selling price spikes of >50% intraday at around the 30 minute mark. (if there was no takeover offer).
I learned there are traders out there that multiplied their wealth (10k->1 million) in really short timeframes (1-2 years) by just doing that kind of trades on the short side and i would really love to backtest/automate that.

Yeah it’s interesting, I too noticed several companies in the last couple months with 100-400% intraday gains in my system within the first hour of trading that then lost 50% or more by end of day. Selling on those swings makes a good impact to returns I’d think.

The difference of 5% in the past 3 month was just me doing this, i think it happened 4 times. The dark blue line is my live system, the red line is the real performance with money on the line. The system has ~35 stocks, so the impact in my view is very big.

This doesn't actually require intraday data, just support for a simple function that sells when the day's high price exceeds the previous day's opening price by some percentage.

I think it's a useful feature and not difficult to implement.

2 Likes

I created a screen to test this strategy:
https://www.portfolio123.com/app/screen/summary/309098?mt=1
I'm assuming that the strategy is as follows: if a stock rises by 50% from the open, you sell it short, and then you close your short position at the next open.

The first rule eliminates stocks with merger announcements and recent IPOs (you definitely don't want to short a stock whose price has gone up on its first day of trading).

The second narrows down the universe to stocks whose high is at least 50% higher than the open.

The third rule gives the average for each stock of the next day's opening price divided by 1.5 times the opening price on each day that this happens.

The fourth rule counts the number of times this has occurred per stock.

If you run the screen and then download the result, you can determine your average gain with the following formula: =-SUMPRODUCT(D:D,E:E)/SUM(E:E)

The result is negative. Why? Take a look at MNPR, for example. On October 24, it opened at $5.12. Let's say you went short when the price had gone up to $8. By the next morning's open, the price was $22.39. That's a massive hit. There are other examples here too.

Anyway, I hope this screen is useful and you can drill down a little. You can also run it on different as-of dates to see what happens. You might also want to add some universe rules since this screen includes some stocks that would be hard to short. You also might consider buying puts on these stocks since the losses are limited to 100%.

If I'm wrong about the strategy, I'd love to hear what rules you were thinking of, and what improvements you might make.

(I should also point out that the chart you shared shows a nice gain in the first or second week and then for the rest of the three months your returns with the strategy are the same as those without.)

1 Like

This seems like it might support an opposite line of thinking, where stocks that meet certain conditions are bought when they rise above a certain level during the day.

Thanks, your screen was helpful. This strategy is about gap-ups, so it should be Open(CTR)/Close(CTR+1)>1.5. Than we want to sell the Open on CTR and buy the Close on CTR since it is an intraday strategy. I think there are 2 errors in the second part of the LoopAvg in your screen, it should be LoopAvg("Eval(Open(Ctr)/Close(Ctr+1)>1.5,Open(Ctr)/Close(Ctr),NA)",250).
Also, is minus sumproduct correct?.
Roughly estimated it wins in >66% of all cases. Compounded over the last 250 days the result would have been a performance of 100000% with always going all in, at least if i didn't mess something up which i probably have (i am sure going short messes things up here). In real life trading there will be slippage and trading costs so the results will be a lot lower. Still i would like to investigate this deeper.

If you run this as a stand-alone strategy you have to work with stops at 100% loss or something in that magnitude to remove the outliers and not go all in but maybe use 10-20% of your capital and you still have the risk of blowing up, so maybe only trade it in a dedicated account.
I also think that adding half an hour of trading would change the results, because often these stocks run up some time until they collapse. Its the classic small cap pump-and-dump.

To improve a long system you don't have the problems of going short, so i still think this will massively improve the performance of my systems. Dates when i manually impacted the system:

27.12 +1.28%
30.12 +1.84%
7.1 1.65%
24.2 0.9% (1% position sold +150% up that day and it ended at +60%)

My screen: https://www.portfolio123.com/app/screen/summary/309133?st=0&mt=1
Tested some more and created a portfolio spreadsheet with the data where the short-trading error is corrected:
This is selling the Open and Buying the close after a 50% gap up, but ignoring more than one occurence of a ticker
(20% position, 66% Winrate, Portfolio up 300% after 250 days, Max DD 50%)
Sell Open, Buy @ Close - Google Sheets

If you are able to sell midpoint between the Open and High of the day, you will make money >90% of the time, losses are small (max 12%) and with a 20% position you are up 3000% after 250 days. But of course this is not realistic, since you don't know where the high will be a priori. I also didn't factor in stop losses this is work for the future.

Ah, your strategy is completely different than I'd thought. But how are you going to sell the open if it's a gap up? You'd have to sell half an hour after the open, so there's going to be a pretty big price difference. I guess we can estimate that you're selling the open, but we should acknowledge that the price could easily fall a lot after the bell.

Anyway, I've revised the screen accordingly, using your formula. But you made an error: Open(Ctr)/Close(Ctr) will not be your return. You want 1-Close(Ctr)/Open(Ctr). They're not equivalent.

(Yes, in the original screen you would want minus sumproduct because the ShowVar is the return of going long, and you're going short. But the way I've changed it, you no longer want the minus.)

Another thing: a win rate is irrelevant for stock returns. Many of the most successful stock strategies have a win rate of under 50%, but the winners are far bigger than the losers.

Anyway, the result of this screen is nice: an average return of 7% is nothing to sneeze at.

I created an aggregate series that shows the average return of the strategy over the last ten years (I simplified it from the screen a little bit for convenience, by counting multiple instances in one ticker as just one): you can see it here: https://www.portfolio123.com/app/series/summary/17921?mt=8. The result is more often positive than negative but sometimes can be terribly negative, particularly in 2023. The entire period from 2022 through 2024 was a loser here. It's definitely a risky strategy.

1 Like

The key issue is that there may not be (enough) stocks to short after (or even at) the opening of the market

Suppose you wish to take advantage of this situation by shorting rather than my proposed timely selling. In that case, you need to test the feasibility of shorting

In addition, cross-country data tests and tests over longer spans are needed to verify whether failure is the norm or the exception. This is because success may simply come from overfitting to recent experience.

In any case, I would only put my own money into such a system after such adequate testing and many pioneers have tested its safety for me because the available evidence is too unreliable and the R&D costs are too high compared to its expected benefits.

Your strategy's over-reliance on small-cap stocks exacerbates this concern. When stocks with a market capitalization of less than $100M are removed, the return drops to 229.44%. Considering that your estimated returns include information about the future, it makes me wonder if there are any robust returns based on considering the feasibility of shorting.

Edit: Of course, there are many places where people like your friend claim that they have found a “niche” in the stock market, but few methods pass the test and most of them are just lies (for themselves and others). Also, it's as if all sorts of stock events seemed to be profitable in the past, and did seem to hold up in backtesting over a decade or so, but then their profitability disappeared entirely.

This is exactly how “event-driven” strategies were born and how they became synonymous with merger “arbitrage”.