I am wondering if it is possible to apply an indicator that is calculating based on a 3 minute time frame, and apply it to a tick chart. I can't quite get it to work out. Any help is appreciated. thanks:
#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 StochCross : Indicator { private Stochastics Stochastics1; protected override void OnStateChange() { if (State == State.SetDefaults) { Description = "StochCross"; Name = "StochCross"; Calculate = Calculate.OnEachTick; IsOverlay = true; ScaleJustification = NinjaTrader.Gui.Chart.ScaleJustification.Right; //Disable this property if your indicator requires custom values that cumulate with each new market data event. //See Help Guide for additional information. IsSuspendedWhileInactive = true; } else if (State == State.Configure) { Stochastics1 = Stochastics(9, 12, 1); AddDataSeries(BarsPeriodType.Minute, 3); } } protected override void OnBarUpdate() { if (CurrentBars[0] < 1) return; // Set if ((CrossAbove(Stochastics1.K, Stochastics1.D, 1)) && (Stochastics1.K[0] < 50) && (Close[0] > EMA(50)[0])) { Draw.ArrowUp(this, CurrentBar.ToString(), true, 0, Low[0]-3, Brushes.Lime); } } } } #region NinjaScript generated code. Neither change nor remove. namespace NinjaTrader.NinjaScript.Indicators { public partial class Indicator : NinjaTrader.Gui.NinjaScript.IndicatorRenderBase { private StochCross[] cacheStochCross; public StochCross StochCross() { return StochCross(Input); } public StochCross StochCross(ISeries<double> input) { if (cacheStochCross != null) for (int idx = 0; idx < cacheStochCross.Length; idx++) if (cacheStochCross[idx] != null && cacheStochCross[idx].EqualsInput(input)) return cacheStochCross[idx]; return CacheIndicator<StochCross>(new StochCross(), input, ref cacheStochCross); } } } namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns { public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase { public Indicators.StochCross StochCross() { return indicator.StochCross(Input); } public Indicators.StochCross StochCross(ISeries<double> input ) { return indicator.StochCross(input); } } } namespace NinjaTrader.NinjaScript.Strategies { public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase { public Indicators.StochCross StochCross() { return indicator.StochCross(Input); } public Indicators.StochCross StochCross(ISeries<double> input ) { return indicator.StochCross(input); } } } #endregion
Comment