namespace NinjaTrader.NinjaScript.Indicators
{
public class TPTEST : Indicator
{
private Stochastics stochasticsK;
private SMA sma;
private Brush upBrush;
private Brush downBrush;
private Brush neutralBrush;
protected override void OnStateChange()
{
if (State == State.SetDefaults)
{
Description = @"TPTEST";
Name = "TPTEST";
Calculate = Calculate.OnEachTick;
IsOverlay = true;
}
else if (State == State.Configure)
{
stochasticsK = Stochastics(14, 5, 2);
sma = SMA(50);
}
else if (State == State.DataLoaded)
{
upBrush = Brushes.Green;
downBrush = Brushes.Red;
neutralBrush = Brushes.Purple;
}
}
protected override void OnBarUpdate()
{
if (CurrentBar < 1)
return;
double stochasticK = stochasticsK.K[0];
double prevStochasticK = stochasticsK.K[1];
double smaValue = sma[0];
double prevSmaValue = sma[1];
// SL_CYCLE_K Logic
if (stochasticK > prevStochasticK)
{
Draw.TextFixed(this, "stochDirectionK", "%K UP", TextPosition.TopLeft, upBrush, new SimpleFont("Arial", 15), Brushes.Transparent, Brushes.Transparent, 100);
}
else if (stochasticK < prevStochasticK)
{
Draw.TextFixed(this, "stochDirectionK", "%K DOWN", TextPosition.TopLeft, downBrush, new SimpleFont("Arial", 15), Brushes.Transparent, Brushes.Transparent, 100);
}
// SL_TREND Logic
if (smaValue > prevSmaValue)
{
Draw.TextFixed(this, "smaDirection", "TREND UP", TextPosition.TopLeft, upBrush, new SimpleFont("Arial", 15), Brushes.Transparent, Brushes.Transparent, 100);
}
else if (smaValue < prevSmaValue)
{
Draw.TextFixed(this, "smaDirection", "TREND DOWN", TextPosition.TopLeft, downBrush, new SimpleFont("Arial", 15), Brushes.Transparent, Brushes.Transparent, 100);
}
}
}
}

Comment