Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #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 jimsExpiryMethod : Indicator
- {
- private Series<double> CLSeries;
- private Series<double> ESSeries;
- protected override void OnStateChange()
- {
- if (State == State.SetDefaults)
- {
- Description = @"Enter the description for your new custom Indicator here.";
- Name = "jimsExpiryMethod";
- Calculate = Calculate.OnEachTick;
- IsOverlay = true;
- DisplayInDataBox = true;
- DrawOnPricePanel = true;
- DrawHorizontalGridLines = true;
- DrawVerticalGridLines = true;
- PaintPriceMarkers = 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)
- {
- AddDataSeries(GetCurrentFuture("CL"), BarsPeriodType.Day, 1);
- AddDataSeries(GetCurrentFuture("ES"), BarsPeriodType.Day, 1);
- }
- else if (State == State.DataLoaded)
- {
- CLSeries = new Series<double>(this, MaximumBarsLookBack.Infinite);
- ESSeries = new Series<double>(this, MaximumBarsLookBack.Infinite);
- }
- }
- private string GetCurrentFuture(string name)
- {
- foreach (Instrument inst in Instrument.All)
- {
- if (inst.MasterInstrument.Name == name && inst.MasterInstrument.InstrumentType == InstrumentType.Future)
- {
- string instFullName = String.Format("{0} {1}-{2}",
- name,
- inst.MasterInstrument.GetNextExpiry(Core.Globals.Now).Month.ToString("D2"),
- inst.MasterInstrument.GetNextExpiry(Core.Globals.Now).ToString("yy"));
- return instFullName;
- }
- }
- return name;
- }
- protected override void OnBarUpdate()
- {
- if (CurrentBars[0] < 10 || CurrentBars[1] < 4) return;
- if (BarsInProgress != 0) return;
- NinjaTrader.Gui.Tools.SimpleFont myFont = new NinjaTrader.Gui.Tools.SimpleFont("Courier New", 12) { Size = 12, Bold = true };
- Print("GetCurrentFuture(string name) " + GetCurrentFuture("CL"));
- CLSeries[0] = Highs[1][0]-Lows[1][0];
- // Print("CLSeries " + CLSeries[0]);
- Instrument Crude = Instrument.GetInstrument(GetCurrentFuture("CL"));
- Print("Crude " + Crude);
- Draw.TextFixed(
- this,
- "CLSeries",
- "CL DR: "+Crude.MasterInstrument.RoundToTickSize(CLSeries[0] / TickSize),
- TextPosition.TopRight,
- Brushes.White,
- myFont,
- Brushes.Transparent,
- Brushes.Transparent,
- 0);
- Print("GetCurrentFuture(string name) " + GetCurrentFuture("ES"));
- ESSeries[0] = Highs[2][0]-Lows[2][0];
- Instrument Emini = Instrument.GetInstrument(GetCurrentFuture("ES"));
- // Print("ESSeries " + ESSeries[0]);
- Print("Emini " + Emini);
- Draw.TextFixed(
- this,
- "ESSeries",
- new String('\n', 1)+"ES DR: "+Emini.MasterInstrument.RoundToTickSize(ESSeries[0] / TickSize),
- TextPosition.TopRight,
- Brushes.White,
- myFont,
- Brushes.Transparent,
- Brushes.Transparent,
- 0);
- }
- }
- }
- #region NinjaScript generated code. Neither change nor remove.
- namespace NinjaTrader.NinjaScript.Indicators
- {
- public partial class Indicator : NinjaTrader.Gui.NinjaScript.IndicatorRenderBase
- {
- private jimsExpiryMethod[] cachejimsExpiryMethod;
- public jimsExpiryMethod jimsExpiryMethod()
- {
- return jimsExpiryMethod(Input);
- }
- public jimsExpiryMethod jimsExpiryMethod(ISeries<double> input)
- {
- if (cachejimsExpiryMethod != null)
- for (int idx = 0; idx < cachejimsExpiryMethod.Length; idx++)
- if (cachejimsExpiryMethod[idx] != null && cachejimsExpiryMethod[idx].EqualsInput(input))
- return cachejimsExpiryMethod[idx];
- return CacheIndicator<jimsExpiryMethod>(new jimsExpiryMethod(), input, ref cachejimsExpiryMethod);
- }
- }
- }
- namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns
- {
- public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase
- {
- public Indicators.jimsExpiryMethod jimsExpiryMethod()
- {
- return indicator.jimsExpiryMethod(Input);
- }
- public Indicators.jimsExpiryMethod jimsExpiryMethod(ISeries<double> input )
- {
- return indicator.jimsExpiryMethod(input);
- }
- }
- }
- namespace NinjaTrader.NinjaScript.Strategies
- {
- public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase
- {
- public Indicators.jimsExpiryMethod jimsExpiryMethod()
- {
- return indicator.jimsExpiryMethod(Input);
- }
- public Indicators.jimsExpiryMethod jimsExpiryMethod(ISeries<double> input )
- {
- return indicator.jimsExpiryMethod(input);
- }
- }
- }
- #endregion
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement