internal IndicatorBase getIndicators(IndicatorBase myBase)
{
IndicatorBase indbase;
System.Type indType = myBase.GetType ();
IEnumerable<PropertyInfo> indicatorProperties = this.GetIndicatorProperties (indType);
indbase = (IndicatorBase)Activator.CreateInstance(indType);
indbase.BarsRequired = MobjBase.BarsRequired;
indbase.CalculateOnBarClose = MobjBase.CalculateOnBarClose;
indbase.ForceMaximumBarsLookBack256 = MobjBase.ForceMaximumBarsLookBack256;
indbase.MaximumBarsLookBack = MobjBase.MaximumBarsLookBack;
indbase.Input = MobjBase.Input;
foreach (PropertyInfo info in indicatorProperties)
{
object obj2 = info.GetValue(myBase, null);
info.SetValue(indbase, obj2, null);
}
base.Indicators.Add(indbase);
indbase.SetUp();
return indbase;
}
The above code is working in Ninja Trader 7. I converted these codes to Ninja Trader 8 as below
internal NinjaTrader.NinjaScript.IndicatorBase getIndicators(NinjaTrader.NinjaScript.IndicatorBas e myBase)
{
NinjaTrader.NinjaScript.IndicatorBase indbase;
System.Type indType = myBase.GetType();
IEnumerable<PropertyInfo> indicatorProperties = this.GetIndicatorProperties(indType);
indbase = (NinjaTrader.NinjaScript.IndicatorBase)Activator.C reateInstance(indType);
indbase.BarsRequiredToPlot = MobjBase.BarsRequiredToPlot;
indbase.Calculate = MobjBase.Calculate;
indbase.ForcePlotsMaximumBarsLookBackInfinite =
MobjBase.ForcePlotsMaximumBarsLookBackInfinite;
indbase.MaximumBarsLookBack = MobjBase.MaximumBarsLookBack;
indbase.Input = MobjBase.Input;
foreach (PropertyInfo info in indicatorProperties)
{
object obj2 = info.GetValue(myBase, null);
info.SetValue(indbase, obj2, null);
}
base.Indicators.Add(indbase);
indbase.SetUp();
return indbase;
}
But the following errors are shows.
1.Property or indexer NinjaTrader.NinjaScript.NinjaScriptBase.Input cannot be assigned to – it is read only.
2. NinjaTrader.NinjaScript.Strategies.Strategy does not contain definition for Indicators
3. NinjaTrader.NinjaScript.IndicatorBase does not contain definition for ‘Setup’ and no extension method ‘Setup’ accepting a first argument of type ‘NinjaTrader.NinjaScript.IndicatorBase’ could be found(are you missing a using directive or an assembly reference?)
Comment