#region Using declarations
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Xml.Serialization;
using NinjaTrader.Cbi;
using NinjaTrader.Data;
using NinjaTrader.Gui.Chart;
#endregion
// This namespace holds all indicators and is required. Do not change it.
namespace NinjaTrader.Indicator
{
/// <summary>
/// STSn T3 (GENESIS MATRIX T3)
/// </summary>
[Description("STSn T3 (GENESIS MATRIX T3)")]
public class STSnT3 : Indicator
{
#region Variables
// Wizard generated variables
private int period_T3 = 8; // Default setting for Period_T3
// User defined variables (add any user defined variables below)
#endregion
/// <summary>
/// This method is used to configure the indicator and is called once before any bar data is loaded.
/// </summary>
protected override void Initialize()
{
Add(new Plot(new Pen(Color.FromKnownColor(KnownColor.Black),5), PlotStyle.Bar, "Plot0"));
Add(new Line(Color.FromKnownColor(KnownColor.Black), 0, "Center0"));
CalculateOnBarClose = false;
Overlay = false;
}
/// <summary>
/// Called on each bar update event (incoming tick)
/// </summary>
protected override void OnBarUpdate()
{
if( CurrentBar < 1 ) return; //Не понял зачем эта строка, но индикатор без неё ничего не рисует
Plot0.Set(1); //Значение индикатора
if( T3(period_T3,3,0.7)[0] > T3(period_T3,3,0.7)[1]) PlotColors[0][0] = Color.Green; //Если Т3 восходящая, рисуем зеленым
else PlotColors[0][0] = Color.Red; //Иначе, рисуем красным
}
#region Properties
[Browsable(false)] // this line prevents the data series from being displayed in the indicator properties dialog, do not remove
[XmlIgnore()] // this line ensures that the indicator can be saved/recovered as part of a chart template, do not remove
public DataSeries Plot0
{
get { return Values[0]; }
}
[Description("")]
[GridCategory("Parameters")]
public int Period_T3
{
get { return period_T3; }
set { period_T3 = Math.Max(1, value); }
}
#endregion
}
}