greetings to all,
nt support is unavailable over the weekend so i am rushing to post these situations before the cut off time.
i have a number of automated strategies and i have decided to lease 2 of them through nt's ecosystem website. i have been working towards this objective for weeks now.
first of all, i need to modify my indicators and strategies in order to protect my intellectual property.
and concealing the plots and values for my indicators outside of the use that my strategies make of them has been a gigantic source of frustration for me.
working with information i received in the threads i shared above, i created the simplest possible sample indicator in order to modify it until i felt that it would not plot but still would be usable inside a strategy.
so i have these two indicators, one will plot, the other will not. and i thought i was making progress as both will compile and the strategy builder will make them both available:
#region Using declarations
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using System.Xml.Serialization;
using NinjaTrader.Cbi;
using NinjaTrader.Gui;
using NinjaTrader.Gui.Chart;
using NinjaTrader.Gui.SuperDom;
using NinjaTrader.Gui.Tools;
using NinjaTrader.Data;
using NinjaTrader.NinjaScript;
using NinjaTrader.Core.FloatingPoint;
using NinjaTrader.NinjaScript.DrawingTools;
#endregion
//This namespace holds Indicators in this folder and is required. Do not change it.
namespace NinjaTrader.NinjaScript.Indicators
{
public class zzz00slss10 : Indicator
{
protected override void OnStateChange()
{
if (State == State.SetDefaults)
{
Description = @"zzz00slss10.";
Name = "zzz00slss10";
Calculate = Calculate.OnBarClose;
IsOverlay = false;
DisplayInDataBox = false;
DrawOnPricePanel = true;
DrawHorizontalGridLines = false;
DrawVerticalGridLines = false;
PaintPriceMarkers = false;
ShowTransparentPlotsInDataBox = true;
ArePlotsConfigurable = true;
IsVisible = true;
ScaleJustification = NinjaTrader.Gui.Chart.ScaleJustification.Right;
IsSuspendedWhileInactive = false;
AddPlot(new Stroke(Brushes.Black, 4), PlotStyle.Dot, "zzz00slss10p.");
}
else if (State == State.Configure)
{
}
}
protected override void OnBarUpdate()
{
Value[0] = Low[0];
}
#region Properties
[Browsable(false)]
[XmlIgnore]
public Series<double> Sls00indicator0001p
{
get { return Values[0]; }
}
#endregion
}
}
#region NinjaScript generated code. Neither change nor remove.
namespace NinjaTrader.NinjaScript.Indicators
{
public partial class Indicator : NinjaTrader.Gui.NinjaScript.IndicatorRenderBase
{
private zzz00slss10[] cachezzz00slss10;
public zzz00slss10 zzz00slss10()
{
return zzz00slss10(Input);
}
public zzz00slss10 zzz00slss10(ISeries<double> input)
{
if (cachezzz00slss10 != null)
for (int idx = 0; idx < cachezzz00slss10.Length; idx++)
if (cachezzz00slss10[idx] != null && cachezzz00slss10[idx].EqualsInput(input))
return cachezzz00slss10[idx];
return CacheIndicator<zzz00slss10>(new zzz00slss10(), input, ref cachezzz00slss10);
}
}
}
namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns
{
public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase
{
public Indicators.zzz00slss10 zzz00slss10()
{
return indicator.zzz00slss10(Input);
}
public Indicators.zzz00slss10 zzz00slss10(ISeries<double> input )
{
return indicator.zzz00slss10(input);
}
}
}
namespace NinjaTrader.NinjaScript.Strategies
{
public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase
{
public Indicators.zzz00slss10 zzz00slss10()
{
return indicator.zzz00slss10(Input);
}
public Indicators.zzz00slss10 zzz00slss10(ISeries<double> input )
{
return indicator.zzz00slss10(input);
}
}
}
#endregion

Comment