1
$\begingroup$

I am looking at the stock PDN (Paladin Energy) on ASX (Australia Stock Exchange), and I am trying to determine the lowest price traded on the date 2020.03.23 (YYYY.MM.DD). Should not be such a difficult task, eh?

So, lets ask Yahoo Finance, which provides a low price for the day of 0.0350. Ok.

https://finance.yahoo.com/quote/PDN.AX/history?period1=1584921600&period2=1584921600&interval=1d&filter=history&frequency=1d&includeAdjustedClose=true

Does the actual exchange itself agree? No. It says 0.034.

https://www2.asx.com.au/markets/company/pdn

Screenshot of the chart on ASX

But it gets weirder. Looking up the symbol on TradingView, it initially agrees with Yahoo: 0.035.

TradingView PDN chart

But then, try this: In TradingView, open the symbol "ASX:PDN*1000". This creates a synthetic chart where all prices are multiplied by 1000:

TradingView PDN chart, prices multiplied by 1000

The low of the day on this chart: 34.245. Divide this by 1000 and you get 0.34245

Does anyone have any idea what is going on here? My conjecture is that old prices gets backadjusted when the tick size increases, obscuring the actual traded prices in the past, by rounding them off. But can this really be true? It would be a pity to ruin the precision of historical data in that way.

Any suggestions? What was the real, actually traded low price of that fine day of 2020.03.23?

$\endgroup$

2 Answers 2

4
$\begingroup$

The actually-traded low price of the day for ASX:PDN was 0.035. PDN traded at various times from 12:04:08 through 15:05:27 for a total of 26 trades at this price. Source: ASX Reference Point Course-of-sales feed.

The raw (daily) data for PDN on 2020-03-23 is: Open: 0.04 High: 0.04 Low: 0.035 Close: 0.038 Volume: 6890911

What you are seeing is the effect of price adjustment(s), which are applied to normalise the impact of corporate actions on pricing data.

Since that date, there has been a corporate action relating to public capital raising, namely a 2:17 Non-renouncable issue of shares @ 0.37 on an accelerated basis (called JUMBO) with ex-date 2021-03-19. The ASX assessed that this corporate action had a dilution factor of 0.9785. Source: ASX Reference Point Corporate Actions and Dilution factors feed.

So, the adjusted daily data for PDN on 2020-03-23 becomes: Open: 0.03914 High: 0.03914 Low: 0.0342475 Close: 0.037183 Volume: 7042320.9

Different places round and store data in various ways, to make it visually pleasing on a chart or tabular form. For backtesting you really do want to ensure that the rounding is minimal and, if you are simulating actual tick sizes, you probably need the ability to access raw data at the same time too.

An extreme example worth noting is taken from a Nasdaq-listed stock, TOPS (Top Ships). This stock has had so many reverse splits (consolidations) that its adjusted high price is $2410208811265.394 - yes, that's over 2410 BILLION dollars. At the time, its actual trading high was 24.14 on 2004-11-29.

The highest price in our ASX database back to 1992, on an adjusted basis database, was for Brisconnections (since delisted) showing $790393.8146 on 2008-07-31 due mainly of the effect of adjustments for calls on partly paid securities, and the second highest is for ASX:SEQ (Sequoia Financial Group) with an adjusted high of 538982.8259510773 on 2000-11-20, due to the effect of multiple consolidations (reverse splits) and a few capital raisings in between.

Adjustments like these seem a little strange, but other "normal" events such as stocks splits, you'd certainly argue that they are necessary to discount the effect of capital base changes (and, optionally distributions such as dividends) to provide a meaningful set of historical prices in the context of the current price.

Full disclsoure: I am a co-owner of Norgate Data, a data vendor for Australian (and other markets) data, providing survivorship bias-free data with the ability to customise the price/volume adjustment methods. We obtain data directly from the ASX's direct price and corporate actions feeds.

$\endgroup$
5
  • $\begingroup$ Thank you for the detailed explanation. I wonder who actually thinks doing a stock split with odd ratios (like 2:17) is a good idea. Anyway, I now understand that I need the raw data as well as the stock split history, so I can perform the adjustments myself without the rounding, to get the precision I need. $\endgroup$
    – aether
    Commented Mar 15, 2022 at 8:29
  • 1
    $\begingroup$ Ok, realised that we are not talking about a split, but rather a dilution. I guess the exact dilution factor can have an infinite number of decimals. $\endgroup$
    – aether
    Commented Mar 15, 2022 at 9:08
  • $\begingroup$ I don't see how reverse stock splits could cause the historical prices to be 2410b in your example. Does it not work like this: Stock A has 100 stocks trading at 5 dollars each, a reverse stock split happens where 2 stocks are now 1 worth twice as much, i.e. 10 dollars. Now the historical price of last month, say it was 4, is now 8 instead. So unless there were 100 billion stocks in circulation at the time, and now they've been consolidated to just 1, I don't see how this adds up. Could you explain? $\endgroup$
    – Oscar
    Commented Mar 15, 2022 at 11:52
  • 1
    $\begingroup$ @Oscar TOPS had the following events: 1:25 reverse split, 1:20 reverse split, 1:20 reverse split, 2:1 reverse split, 30:1 reverse split, 15:1 reverse split, 20:1 reverse splits, 10:1 reverse split 7:1 reverse split 10:1 reverse split, 3:1 reverse split, special dividend of 2.50 (Dilution factor 0.7990), special dividend of 5.00 (Dilution factor 0.71767), ordinary dividend 0.21 (DF 0.9837), ordinary dividend 0.21 (DF 0.9855), special dividend of 0.25 (Dilution factor 0.98503). ord div 0.21 (DF 0.98672), ord div 0.21 (DF 0.98846), ord div 0.21 (DF 0.98894) Multiply them all together... $\endgroup$ Commented Mar 15, 2022 at 13:13
  • $\begingroup$ @aether Yes - this is a (complex) dilutionary event. $\endgroup$ Commented Mar 15, 2022 at 13:19
1
$\begingroup$

The problem is that charts only display about 4 decimal points by default

In general, do not use charts as a means of comparing the value of a stock when precision is important. Instead it will be best to use the raw underlying data. Different graphical software defaults to showing only a few decimal points, in order for the graph to provide clean and clear illustrations. Therefore, the precision of the underlying historical data is not ruined or obscured in any way. It is just the graphical software displaying less decimal points.

A way of seeing this is by changing the plot to display more decimal points in TradingView. This can be done by doing the following instructions:

  • Chart settings (cogwheel icon) $\rightarrow$ Symbol $\rightarrow$ Precision $\rightarrow$ choose $1/x$, to get more decimal points in your graph, eg. $1/100000$.

You will then get the following graph at 23rd of March 2020:

paladin

Where we observe a low price of $L=0.03424700$ using all available decimal points. Since TradingView obtain the data directly from the Australian Stock Exchange (as per this blog post) and Yahoo Finance is prone to error (highlighted in this post), I would put my money on the lowest price displayed on TradingView, when only having access to free data sources.

$\endgroup$
1
  • 1
    $\begingroup$ Very informative, thank you. I did not know about the precision adjustment option i TradingView, much better than my "multiply by 1000" hack. $\endgroup$
    – aether
    Commented Mar 15, 2022 at 8:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.