I am creating SMA with formulated data series. I encounter error compiling below for [INPUT].with error assembly reference missing.
My version is 8.0.26 I cant find Ninja.Trader.Gui.Tools.dll and assuming this is the reason for the error.
I had my NT installed newly. How can fix?
using System;
using NinjaTrader.Cbi;
using NinjaTrader.Gui.Tools;
using NinjaTrader.NinjaScript;
using NinjaTrader.Data;
using NinjaTrader.NinjaScript.Strategies;
namespace NinjaTrader.NinjaScript.Indicators
{
public class CustomSMAIndicator : Indicator
{
[Input]
public double GoldPriceMultiplier = 2.0; // Multiplier for gold price
[Input]
public string GoldInstrument = "GC 12-23"; // Gold instrument
[Input]
public string SilverInstrument = "SI 12-23"; // Silver instrument
[Input]
public double SmaPeriod = 14; // SMA period
private SMA goldSMA;
private SMA silverSMA;
protected override void OnStateChange()
{
if (State == State.SetDefaults)
{
Description = "Custom SMA Indicator";
Calculate = Calculate.OnEachTick;
IsOverlay = true;
DisplayInDataBox = true;
DrawOnPricePanel = true;
DrawHorizontalGridLines = true;
DrawVerticalGridLines = true;
PaintPriceMarkers = true;
ScaleJustification = NinjaTrader.Gui.Tools.ScaleJustification.Right;
IsSuspendedWhileInactive = true;
BarsRequiredToPlot = 2;
}
else if (State == State.Configure)
{
AddDataSeries(GoldInstrument, BarsPeriodType.Day, 1);
AddDataSeries(SilverInstrument, BarsPeriodType.Day, 1);
goldSMA = SMA(GoldInstrument, (int)SmaPeriod);
silverSMA = SMA(SilverInstrument, (int)SmaPeriod);
}
}
protected override void OnBarUpdate()
{
if (BarsInProgress == 0)
{
double goldPrice = goldSMA[0];
double silverPrice = silverSMA[0];
double priceDifference = (goldPrice * GoldPriceMultiplier) - silverPrice;
Value[0] = priceDifference;
}
}
}
}
[HASHTAG="t3322"]region[/HASHTAG] NinjaScript generated code. Neither change nor remove.
namespace NinjaTrader.NinjaScript.Indicators
{
public partial https://forum.ninjatrader.com/search?searchJSON=%7B%22tag%22%3A%22region%22%7Dclass Indicator : NinjaTrader.Gui.NinjaScript.IndicatorRenderBase
{
private CustomSMAIndicator[] cacheCustomSMAIndicator;
public Custhttps://forum.ninjatrader.com/search?searchJSON=%7B%22tag%22%3A%22region%22%7DomSMAIndicator CustomSMAIndicator()
{
return CustomSMAIndicator(Input);
}
public CustomSMAIndicator CustomSMAIndicator(ISeries<double> input)
{
if (cacheCustomSMAIndicator != null)
for (int idx = 0; idx < cacheCustomSMAIndicator.Length; idx++)
if (cacheCustomSMAIndicator[idx] != null && cacheCustomSMAIndicator[idx].EqualsInput(input))
return cacheCustomSMAIndicator[idx];
return CacheIndicator<CustomSMAIndicator>(new CustomSMAIndicator(), input, ref cacheCustomSMAIndicator);
}
}
}
namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns
{
public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase
{
public Indicators.CustomSMAIndicator CustomSMAIndicator()
{
return indicator.CustomSMAIndicator(Input);
}
public Indicators.CustomSMAIndicator CustomSMAIndicator(ISeries<double> input )
{
return indicator.CustomSMAIndicator(input);
}
}
}
namespace NinjaTrader.NinjaScript.Strategies
{
public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase
{
public Indicators.CustomSMAIndicator CustomSMAIndicator()
{
return indicator.CustomSMAIndicator(Input);
}
public Indicators.CustomSMAIndicator CustomSMAIndicator(ISeries<double> input )
{
return indicator.CustomSMAIndicator(input);
}
}
}
#endregion

Comment