XTL - TQR Template
XTL - TQR Template
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Diagnostics.CodeAnalysis;
using System.Windows;
using System.Reflection;
using System.Windows.Media;
using System.Xml.Serialization;
using NinjaTrader.Cbi;
using NinjaTrader.Data;
using NinjaTrader.Gui;
using NinjaTrader.Gui.Chart;
using NinjaTrader.Gui.Tools;
using NinjaTrader.NinjaScript.DrawingTools;
using NinjaTrader.NinjaScript.Indicators;
///basura del 7
using System.Drawing;
/// using System.Drawing.Drawing2D;
#endregion
namespace NinjaTrader.NinjaScript.Indicators
{
[Description("Expert Trend Locator. Similar to eSignal Advanced Get XTL")]
public class CharlieF_XTL : Indicator
{
private int indxx;
private bool showalerts = false; // Default setting for ShowAlerts
private bool showarrows = false; // Default setting for ShowArrows
private int CCI_period = 35; // Default setting for CCI_Period
private int TGT_value = 37; // Default setting for TGT_value
private Brush candleColorUp = Brushes.Blue;
private Brush candleColorDown = Brushes.Red;
private Brush candleColorFlat = Brushes.Black;
private int TQRActived;
private double TQREntry;
private int TQRstarted;
private double TQRStop;
private int TQRtrend;
private int trend_0;
private int trend_1;
private int trend_2;
private int trend_3;
private int trend_upd = -1;
/// <summary>
/// This method is used to configure the indicator and is called once
before any bar data is loaded.
/// </summary>
private void Initialize()
{
IsOverlay = true;
Calculate = Calculate.OnEachTick;
/* NT8 REMOVED: PriceTypeSupported = false */;
PaintPriceMarkers = false;
}
/* CandleOutlineColor = candleColorUp;
BarColor = candleColorUp;
this.trend_0 = 1; */
}
else if ( (base.CCI(this.CCI_period)[0]) < -(this.TGT_value) ) //XTL Dn
Calculation
{
base.CandleOutlineBrush = Brushes.Red;
this.trend_0 = 2;
/* CandleOutlineColor = candleColorDown;
BarColor = candleColorDown;
this.trend_0 = 2; */
}
else ///if (((base.CCI(this.CCI_Period)[0]) <= this.TGT_value) &&
((base.CCI(this.CCI_Period)[0]) >= -(this.TGT_value))) //XTL Flat calculation
{
base.CandleOutlineBrush = Brushes.Black;
///this.trend_0 = 3; Find the solution for this trend NOT show the
BOX.
/* CandleOutlineColor = candleColorFlat;
BarColor = candleColorFlat; */
}
}
else if (CrossBelow(base.CCI(this.CCI_period), -
this.TGT_value, 1))
{
// DrawArrowDown("My dn arrow" + CurrentBar, false, 0,
Low[0] - (High[0]-Low[0]), Color.Magenta);
Draw.ArrowDown(this, "My dn arrow" + CurrentBar, false, 0,
Low[0] - (High[0]-Low[0]), Brushes.Magenta);
}
}
if (base.IsFirstTickOfBar)
{
if ( (this.trend_1 != this.trend_2) || ( this.TQRActived == 0
&& (((base.CCI(this.CCI_period)[1]) > this.TGT_value ) ||
((base.CCI(this.CCI_period)[1]) < -(this.TGT_value)))) )
{
this.RemoveZone();
this.SetZone();
this.PlotZone(0); ///this.PlotZone(0);
}
else if ( this.TQRActived == 1 )
{
this.PlotZone(1);
}
}
}
}
if (BarEnd > 0)
{
Draw.Rectangle(this, "ColourZone", false, base.CurrentBar -
this.TQRstarted, this.TQREntry, BarEnd, this.TQRStop, Brushes.Transparent,
(this.TQRtrend == 1) ? Brushes.LightBlue : Brushes.LightSalmon, 3);
}
}
#region Properties
/// <summary>
/// </summary>
[Browsable(false)]
public string candleColorUpSerialize
{
get { return Serialize.BrushToString(candleColorUp); }
set { candleColorUp = Serialize.StringToBrush(value); }
}
/// <summary>
/// </summary>
[XmlIgnore()]
[NinjaScriptProperty]
/// <summary>
/// </summary>
[Browsable(false)]
public string candleColorFlatSerialize
{
get { return Serialize.BrushToString(candleColorFlat); }
set { candleColorFlat = Serialize.StringToBrush(value); }
}
/// <summary>
/// </summary>
[XmlIgnore()]
[NinjaScriptProperty]
[Display(Name = "Candle Color Down", Description = "Candle Color
Down.", GroupName = "Parameters", Order = 1)]
public Brush CandleColorDown
{
get { return candleColorDown; }
set { candleColorDown = value; }
}
/// <summary>
/// </summary>
[Browsable(false)]
public string candleColorDownSerialize
{
get { return Serialize.BrushToString(candleColorDown); }
set { candleColorDown = Serialize.StringToBrush(value); }
}
[Display(Name="CCI_Period", Description = "CCI_Period", GroupName
= "Parameters")]
//basura del 7
//[Category("Parameters"),
NinjaTrader.Gui.Design.DisplayName("TGT_Value"), Description("TGT_Value")]
namespace NinjaTrader.NinjaScript.Indicators
{
public partial class Indicator :
NinjaTrader.Gui.NinjaScript.IndicatorRenderBase
{
private CharlieF_XTL[] cacheCharlieF_XTL;
public CharlieF_XTL CharlieF_XTL(Brush candleColorUp, Brush
candleColorFlat, Brush candleColorDown)
{
return CharlieF_XTL(Input, candleColorUp, candleColorFlat,
candleColorDown);
}
namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns
{
public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase
{
public Indicators.CharlieF_XTL CharlieF_XTL(Brush candleColorUp, Brush
candleColorFlat, Brush candleColorDown)
{
return indicator.CharlieF_XTL(Input, candleColorUp,
candleColorFlat, candleColorDown);
}
namespace NinjaTrader.NinjaScript.Strategies
{
public partial class Strategy :
NinjaTrader.Gui.NinjaScript.StrategyRenderBase
{
public Indicators.CharlieF_XTL CharlieF_XTL(Brush candleColorUp, Brush
candleColorFlat, Brush candleColorDown)
{
return indicator.CharlieF_XTL(Input, candleColorUp,
candleColorFlat, candleColorDown);
}
#endregion