Welcome to NexusFi: the best trading community on the planet, with over 150,000 members Sign Up Now for Free
Genuine reviews from real traders, not fake reviews from stealth vendors
Quality education from leading professional traders
We are a friendly, helpful, and positive community
We do not tolerate rude behavior, trolling, or vendors advertising in posts
We are here to help, just let us know what you need
You'll need to register in order to view the content of the threads and start contributing to our community. It's free for basic access, or support us by becoming an Elite Member -- see if you qualify for a discount below.
-- Big Mike, Site Administrator
(If you already have an account, login at the top of the page)
I have a weird situation using Ninja Trader 7 in which I created my custom indicator which works perfeclty fine from
a chart.
Seeing that my indicator was working as expected I went on to create my strategy, consuming my custom indicator(s).
How happy was I to see that after some very basic coding, the strategy analyzer was indeed putting out results.
The following day I resumed to elaborate my trading logic in my strategy
And went to test the results on the strategy analyzer, only to see that "Object reference not set to an instance of an object"
Some debugging using visual studio an I see that the OnStartUp() of my custom indicators are not being hit anymore,
That is where I instantiate the Indicators public members (intended for use in my strategy)
resulting in an "object reference not set to an instance of an object" exception.
I've also noticed that when i write in the immediate window of visual studio var x = new CustomIndicator();
I'm getting - "CustomIndicator exists both in x.dll and y.dll"
I'm getting back an instance of the class, but all of it's members which are not primitives types are
Not instantiated,
I'm very frustrated by that as I assume the problem is an internal NinjaTrader issue
I would love if you guys could help me out and re-assure me that I'm indeed working as intended in NinjaScript.
Basically what im doing is the following.
and the strategies code:
Can you help answer these questions from other members on NexusFi?
Its telling you it doesn't know which one to instantiate as it is found in two dlls. Change the class name and then SaveAs this new class name, to keep it consistent. Then instantiate that new one.
namespace NinjaTrader.Indicator
{
/// <summary>
/// Calculates the range of a bar.
/// </summary>
[Description("Calculates the range of a bar.")]
public class MyStochasticIndicator: : Indicator
Note: You could also find the duplicate indicator and give it a different class name, or delete it. You would just need to make sure you have the right version. At some point you did save as, but didn't change the class name. NT compiles all indicators and strategies together. hence two with the same class name will cause issues. But I think giving it a real name is the best solution and then when you are sure delete the old ones with the generic name.
Cheers,
Mary
I'm actually also from israel, but I'll respect the other members of the forum who might look into this thread,
And keep the discussion in english.
rleplae, creating an instance of the indicator from the strategy's Initialize didn't change the fact
that.
After going through ninja's source code I realized that I shouldn't instantiate an indicator withing a strategy with the
new keyword as if it was vanilla c#, but to use the auto generated method that bares the name of the class (indicator) that Returns the same type, sort of like their idea of a constructor, which still doesn't call OnBarUpdate btw,
But I've solved that with an explicit call to indicator.OnBarUpdate().
Mary, thanks for replying, if I understand you correctly, you mean that I've created two source file for the
Same indicator? I find it hard to believe, it doesn't show as a duplicate indicator anywhere on my custom indicator folder's files, I'm thinking maybe building the project from visual studio and then compiling an empty indicator (to make sure ninjatrader compiles on itself, I've read somewhere that this is a must, since ninja will not be aware of any changes
made to it's indicators or strategy's outside its ninjascript editor).
But I'll give it a go, If I change the name of the indicator and this error will not repeat itself then
You are right, otherwise - I'll have to find out where is the duplicate indicator hiding..
Thats because it doesn't determine duplicates by filename. Just by the class name in the indicator file. Thats where the duplicate is. Always name the class, the same as the file and there won't be an issue.