Jump to content

wahabdeen

Members
  • Posts

    146
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by wahabdeen

  1. enjoy! FULL NT8 COMPATIBLE

     

    [ATTACH=JSON]{"data-align":"none","data-size":"full","title":"BAROVERLPA.jpg","data-attachmentid":810954}[/ATTACH]

     

    #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;
    using NinjaTrader.NinjaScript.Indicators;
    using System.Windows.Shapes;
    using NinjaTrader.Gui.Chart;
    using NinjaTrader.NinjaScript.DrawingTools;
    #endregion
    
    // This namespace holds all indicators and is required. Do not change it.
    namespace NinjaTrader.NinjaScript.Indicators
    {
    /// <summary>
    /// The bar overlap indicator counts the number of bars that overlap with the current bar's range.
    /// </summary>
    public class BarOverlap : Indicator
    {
    #region Variables
    private int period = 100;
    private double numStdDev = 2.0;
    private Brush baseColor = Brushes.SlateBlue;
    private Brush signalColor = Brushes.Red;
    private int plot0Width = 4;
    private PlotStyle plot0Style = PlotStyle.Bar;
    private DashStyleHelper dash0Style = DashStyleHelper.Solid;
    #endregion
    
    protected override void OnStateChange()
    {
    if (State == State.SetDefaults)
    {
    Description = "The bar overlap indicator counts the number of bars that overlap with the current bar's range.";
    Name = "BarOverlap";
    
    AddPlot(new Stroke(baseColor, plot0Width), plot0Style, "Overlap");
    
    
    IsOverlay = false;
    }
    else if (State == State.DataLoaded)
    {
    // SetPlotAppearance(Plots[0], baseColor, plot0Width, dash0Style);
    }
    }
    
    protected override void OnBarUpdate()
    {
    int n = 0;
    while (n < CurrentBar)
    {
    if (Low[0] >= High[n] || High[0] <= Low[n])
    break;
    n = n + 1;
    }
    Value[0] = n;
    
    if (Value[0] > SMA(Value, period)[0] + numStdDev * StdDev(Value, period)[0])
    PlotBrushes[0][0] = signalColor;
    else
    PlotBrushes[0][0] = baseColor;
    }
    
    private void SetPlotAppearance(Plot plot, Brush brush, int width, DashStyleHelper dashStyle)
    {
    plot.Pen = new Pen(brush, width) { DashStyle = DashStyleHelperToDashStyle(dashStyle) };
    }
    
    private DashStyle DashStyleHelperToDashStyle(DashStyleHelper dashStyleHelper)
    {
    switch (dashStyleHelper)
    {
    case DashStyleHelper.Dash:
    return DashStyles.Dash;
    case DashStyleHelper.DashDot:
    return DashStyles.DashDot;
    case DashStyleHelper.DashDotDot:
    return DashStyles.DashDotDot;
    case DashStyleHelper.Dot:
    return DashStyles.Dot;
    case DashStyleHelper.Solid:
    return DashStyles.Solid;
    default:
    return DashStyles.Solid;
    }
    }
    
    
    protected override void OnRender(ChartControl chartControl, ChartScale chartScale)
    {
    base.OnRender(chartControl, chartScale);
    Plots[0].Pen = new Pen(baseColor, plot0Width) { DashStyle = DashStyleHelperToDashStyle(dash0Style) };
    }
    
    #region Properties
    [browsable(false)]
    [XmlIgnore()]
    public Series<double> Overlap
    {
    get { return Values[0]; }
    }
    
    [NinjaScriptProperty]
    [Display(Name = "NumStdDev", GroupName = "NinjaScriptParameters", Order = 1)]
    public double NumStdDev
    {
    get { return numStdDev; }
    set { numStdDev = Math.Max(0, value); }
    }
    
    [NinjaScriptProperty]
    [Display(Name = "BaseColor", GroupName = "NinjaScriptParameters", Order = 2)]
    public Brush BaseColor
    {
    get { return baseColor; }
    set { baseColor = value; }
    }
    
    [NinjaScriptProperty]
    [Display(Name = "SignalColor", GroupName = "NinjaScriptParameters", Order = 3)]
    public Brush SignalColor
    {
    get { return signalColor; }
    set { signalColor = value; }
    }
    
    [NinjaScriptProperty]
    [Display(Name = "Plot0Width", GroupName = "NinjaScriptParameters", Order = 4)]
    public int Plot0Width
    {
    get { return plot0Width; }
    set { plot0Width = Math.Max(1, value); }
    }
    
    [NinjaScriptProperty]
    [Display(Name = "Plot0Style", GroupName = "NinjaScriptParameters", Order = 5)]
    public PlotStyle Plot0Style
    {
    get { return plot0Style; }
    set { plot0Style = value; }
    }
    
    [NinjaScriptProperty]
    [Display(Name = "Dash0Style", GroupName = "NinjaScriptParameters", Order = 6)]
    public DashStyleHelper Dash0Style
    {
    get { return dash0Style; }
    set { dash0Style = value; }
    }
    #endregion
    }
    }

     

    Please share Barometer NT8 Thanks

×
×
  • Create New...