Announcement
Collapse
Looking for a User App or Add-On built by the NinjaTrader community?
Visit NinjaTrader EcoSystem and our free User App Share!
Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
See more
See less
Partner 728x90
Collapse
NinjaTrader
Fundamentals data access
Collapse
X
-
Fundamentals data access
I see that you have an OnFundamentalsData() method that fires when there is a change in fundamentals data. At the same time, the market analyzer allows me to show fundamentals data on the UI regardless of whether the data changed or not. Is there a way to access this data in NinjaScript when it did not change?Tags: None
-
Hello arnonmoscona,
Yes, you could access these values within OnFundamentalData() and they will be current. It doesn't require a change in order to get the most up to date values.
Declare a variable in variables region so that's available within the whole script.
Then assign this variable within OnFundametalData to the value you want.
You can then access it anywhere, like OnBarUpdate()
Code:#region Variables private double myEPS; #endregion protected override void OnFundamentalData(FundamentalDataEventArgs e) { if (e.FundamentalDataType == FundamentalDataType.CurrentYearsEarningsPerShare) myEPS = e.DoubleValue; } protected override void OnBarUpdate() { if (!Historical) Print(myEPS); }
Last edited by NinjaTrader_RyanM1; 01-05-2012, 11:39 AM.Ryan M.NinjaTrader Customer Service
-
Yes. But this would trigger a value only when the value changes. My question is - how do I get this value if it did not change? Or in other words, in your example, how would I initialize myEPS?
Comment
-
I'll try it. I use IQFeed. If this trigger comes every time they send a fundamentals message, then yes, it would come pretty quickly...
Thanks
Comment
-
Code:#region Variables private int myShares; #endregion protected override void OnFundamentalData(FundamentalDataEventArgs e) { if (e.FundamentalDataType == FundamentalDataType.SharesOutstanding) myShares = (int) e.DoubleValue; } protected override void OnBarUpdate() { if (!Historical) Print(myShares); }
I tried the above block of code to extract SharesOutstanding using Yahoo as my data provider. However, I'm getting a constant value of -2147483648, on each bar update, for all stocks I apply the indicator to.
The SharesOutstanding value, when displayed through a Market Analyzer, using Yahoo is correct.
Any idea why this is happening?
Thanks.
Regards,
Nick
Comment
Latest Posts
Collapse
Topics | Statistics | Last Post | ||
---|---|---|---|---|
Started by funk10101, Today, 12:02 AM
|
1 response
10 views
0 likes
|
Last Post Today, 06:38 AM | ||
Started by GLFX005, Today, 03:23 AM
|
1 response
6 views
0 likes
|
Last Post Today, 06:36 AM | ||
Started by nandhumca, Yesterday, 03:41 PM
|
1 response
12 views
0 likes
|
Last Post Today, 06:27 AM | ||
Started by The_Sec, Yesterday, 03:37 PM
|
1 response
11 views
0 likes
|
Last Post Today, 06:17 AM | ||
Started by vecnopus, Today, 06:15 AM
|
0 responses
1 view
0 likes
|
Last Post
by vecnopus
Today, 06:15 AM
|
Comment