GetFundamentalNames returns partial list
Author: cfurer
Creation Date: 3/1/2015 3:58 PM
profile picture

cfurer

#1
Hi WLP Guru's,

The component, GetFundamentalNames, seems to return a partial list of the fundamental items available. The code below generates a list of all of the items returned, and the output is shown below that. The first 69 items are from Morningstar, prefixed with: [ms] and the next 14 are from the Fidelity Fundamental provider. The problem is that the Fidelity provider consists of 36 items not 14. So 22 items are missing. The list ends at 'employee'. Based on the Fundamental Data Guide the next item should be 'estimated earnings’.

Thanks for the help

CODE:
Please log in to see this code.


GetFundamentalNames returned the following number of names: 83
QUOTE:
[ms] Accounts Payable
-edited-
[ms] Working Capital
accounts payable
adjustment factor
all analyst ratings
analyst downgrade
analyst upgrade
assets
cash
cash dividends
common shares outstanding
common shares used to calculate eps diluted
dividend
earnings per share
ebit
employee
profile picture

Eugene

#2
1. Try refreshing the fundamental data.
2. Try on a different symbol. Any difference?
profile picture

cfurer

#3
Wow, Eugene, I feel bad now. Had I known you'd reply on a Sunday I would have postponed my question until Monday.

I ran the full fundamental update on Fri night, and re-ran the update for the Fidelity provider just now.

I ran the test on each of the DJ-30 symbols and it's always the same. Below is the output for BA which is the same as the output in my original message which was for AA.

I have another program in which 22 of the Fidelity fundamental items are hardcoded into a list, and they are each successfully exported in tabular format to a file. The data for all 22 items are non-blank and up to date, so I don't think this is an issue with the currency of the provider's data.

Symbol: BA
GetFundamentalNames returned the following number of names: 85
QUOTE:
[ms] Accounts Payable
-edited-
[ms] Working Capital
accounts payable
adjustment factor
all analyst ratings
analyst downgrade
analyst upgrade
assets
cash
cash dividends
common shares outstanding
common shares used to calculate eps diluted
current assets
current liabilities
dividend
earnings per share
ebit
employee
profile picture

Eugene

#4
Craig,

Thanks for the followup. The new list has 2 more entries:

current assets
current liabilities

We'll investigate what's going on with this (what looks like a new) "extension method". BTW, since it's undocumented in the QuickRef how did you find it out?
profile picture

LenMoz

#5
FYI,
Craig's script works for me for all symbols I've tried. The back end of the list is below. I did a Fidelity fundamental data update. It worked before and after that.

QUOTE:
since it's undocumented in the QuickRef

It is documented, in the QuickRef, the top item in category, "Fundamental Data." Its genesis can be found here: https://www.wealth-lab.com/Forum/Posts/Insider-Transactions-provider-GetDetail-question-34219/Page/1 Post #5.


Abridged output from Craig's script...
CODE:
Please log in to see this code.

profile picture

Eugene

#6
Len,

QUOTE:
Its genesis can be found here:

Could you believe that I completely forgot having added this extension method to C.Components myself? Thanks for the reminder, Len.

QUOTE:
It is documented, in the QuickRef, the top item in category, "Fundamental Data."

Only if you forgot having edited your copy of the QuickRef yourself. :) It simply can not be there as C.Components methods are not covered by the QuickRef.

Craig,

According to LenMoz, the next item is not "estimated earnings" (like it probably was before version 6.7) but "equity summary category". I do not have access to WLP which limits my troubleshooting ability. But this is in fact pretty strange to see a category name there among the chartable items. I would've expected "equity summary score" there. OTOH, if "equity summary category" is an item there's nothing to worry about.

Since there's nothing wrong with the code (at least what I can see), I can imagine that your data for equity summary score is corrupt. GetFundamentalNames stops, throwing a handled exception. Please reload your data again, making sure that ESS is being updated. Can you chart the item(s) normally?
profile picture

cfurer

#7
Hello Eugene and LenMoz,

Thanks for all the feedback. I have reloaded my Fidelity fundamental data a few times, and re-executed the test, and the list of Fidelity items returned still gets cut off at 'employee'. Below is the latest output for CAT and AA. I'm guessing the next thing to try is deleting the data files and re-loading, but being that I have an easy workaround to this (i.e. hardcoding the list of fundamental items) it's not worth the effort. All of the documented Fidelity fundamental items do appear on my charts and are also accessible via my strategy code, so I can live without using GetFundamentalNames. So please do not spend anymore time on this on my behalf.

Thanks again.

Symbol: CAT
GetFundamentalNames returned the following number of names: 85
.
.

accounts payable
adjustment factor
all analyst ratings
analyst downgrade
analyst upgrade
assets
cash
cash dividends
common shares outstanding
common shares used to calculate eps diluted
current assets
current liabilities
dividend
earnings per share
ebit
employee
profile picture

Eugene

#8
LenMoz wrote:

Though present and usable, these three Fidelity fundamentals are not returned...
days to cover
shares short
short interest as a % of shares outstanding

Verifying script:
CODE:
Please log in to see this code.


Of course, Bars.GetFundamentalNames does return these items that are not on my "Fundamentals" dropdown...

all analyst ratings
analyst downgrade
analyst rating
analyst upgrade

so I guess it all evens out.

I can't guarantee that either list is exhaustive. Seriously, an effort to coordinate these is needed.
profile picture

Eugene

#9
QUOTE:
Though present and usable, these three Fidelity fundamentals are not returned...

Probably because there's nothing to return (empty data)? See GetFundamentalNames code in C.Components.

QUOTE:
Of course, Bars.GetFundamentalNames does return these items that are not on my "Fundamentals" dropdown...

According to the manual, these all should be listed under the "Analyst Ratings" group. Not being a WLP user I can't verify this. Is this group present?
profile picture

Eugene

#10
@LenMoz

1.
With regard to your recent thread which asks the same question as here. Essentially, GetFundamentalNames() is a sort of hackish method from C.Components which depends on Reflection.

If the list gets cut off at 'employee' this must be that 'equity summary score', being a separate fundamental item provider, somehow breaks the extension method. Most likely, due to some obfuscation attribute. This is not an issue but motivated users can try to "fix" the open source code.

2.
Based on the data capture from your support ticket, I've determined that the data is flowing in without a problem. However, "short interest..." is missing as I've just found:

https://www.wealth-lab.com/Forum/Posts/Fidelity-fundamental-data-returning-fewer-items-June-2018-39368

Please check if you can access the other items normally through a WealthScript method like FundamentalDataItems or FundamentalDataSeries. I've absolutely no reason to think otherwise. Thanks.
profile picture

LenMoz

#11
CODE:
Please log in to see this code.

The uncommented line causes "Object reference not set..." when referenced later in the script
The commented line, referencing "employee", succeeds.

GetFundamentalNames() seems to be correct.
profile picture

Eugene

#12
QUOTE:
The uncommented line causes "Object reference not set..." when referenced later in the script

That's right - because "short interest..." is missing and an exception is caught by GetFundamentalNames FundamentalDataSeries.
profile picture

LenMoz

#13
I understood the error. My point was that FundamentalDataSeries doesn't find the item either. There appears to be no problem with Bars.GetFundamentalNames().

I don't know that "... an exception is caught ...". It seems more like the fundamental item is missing.
profile picture

Eugene

#14
QUOTE:
I don't know that "... an exception is caught ...". It seems more like the fundamental item is missing.

You're right. Intentionally or unintentionally, the "short interest..." item is no longer found in the Fidelity fundamental data. It's removed but all other items are present. If you wish to discuss it please do so here > Fidelity fundamental data not returning "short interest as a % of shares outstanding" (June 2018)
profile picture

LenMoz

#15
So the bottom line remains, as the title of this thread says, "GetFundamentalNames [still] returns partial list ."
profile picture

Eugene

#16
Please see my explanation re: why it may happen in post #10 above. To add, for me the routine [still] works. As you have access to the Fidelity fundamental data, you can prove or disprove my idea in post #10 under debugger. It's likely that debugging GetFundamentalNames breaks at 'equity summary score'. Here's the source code: Download Community Components source code (2018.07).
profile picture

LenMoz

#17
The referenced source code for Community Components targets WealthLab Developer. I've tried updating the references but am unable to get clean compile.

I would add a fairly safe inner Try block in GetFundamentalNames like this...
CODE:
Please log in to see this code.

profile picture

Eugene

#18
QUOTE:
I would add a fairly safe inner Try block in GetFundamentalNames like this...

An inner try/catch should safely skip the fundamental item gone wrong. I'll add this in next release of the library (no ETA yet). Thanks Len.

QUOTE:
I've tried updating the references but am unable to get clean compile.

1. You should update the references to point at the WLP main folder for Fidelity.Components.dll, HtmlAgilityPack.dll, WealthLab.dll and WealthLab.Indicators.dll.
2. Then in Project Properties > Build, change the output path to target the WLP main folder as well.
3. The target framework should be like 4.5-4.6.2. (Haven't tested it with 4.7 yet).
This website uses cookies to improve your experience. We'll assume you're ok with that, but you can opt-out if you wish (Read more).