Advertisement
Guest User

Untitled

a guest
Jul 21st, 2021
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.43 KB | None | 0 0
  1. #region Using declarations
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.ComponentModel.DataAnnotations;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows;
  10. using System.Windows.Input;
  11. using System.Windows.Media;
  12. using System.Xml.Serialization;
  13. using NinjaTrader.Cbi;
  14. using NinjaTrader.Gui;
  15. using NinjaTrader.Gui.Chart;
  16. using NinjaTrader.Gui.SuperDom;
  17. using NinjaTrader.Gui.Tools;
  18. using NinjaTrader.Data;
  19. using NinjaTrader.NinjaScript;
  20. using NinjaTrader.Core.FloatingPoint;
  21. using NinjaTrader.NinjaScript.DrawingTools;
  22. #endregion
  23.  
  24. //This namespace holds Indicators in this folder and is required. Do not change it.
  25. namespace NinjaTrader.NinjaScript.Indicators
  26. {
  27.     public class myDailyBarsPriorOHLC : Indicator
  28.     {
  29.         //private PriorDayOHLC PriorDayOHLC1;
  30.        
  31.         protected override void OnStateChange()
  32.         {
  33.             if (State == State.SetDefaults)
  34.             {
  35.                 Description                                 = @"Enter the description for your new custom Indicator here.";
  36.                 Name                                        = "myDailyBarsPriorOHLC";
  37.                 Calculate                                   = Calculate.OnEachTick;
  38.                 IsOverlay                                   = false;
  39.                 DisplayInDataBox                            = true;
  40.                 DrawOnPricePanel                            = true;
  41.                 DrawHorizontalGridLines                     = true;
  42.                 DrawVerticalGridLines                       = true;
  43.                 PaintPriceMarkers                           = true;
  44.                 ScaleJustification                          = NinjaTrader.Gui.Chart.ScaleJustification.Right;
  45.                 //Disable this property if your indicator requires custom values that cumulate with each new market data event.
  46.                 //See Help Guide for additional information.
  47.                 IsSuspendedWhileInactive                    = true;
  48.                 AddPlot(Brushes.White, "PriorOpen");
  49.                 AddPlot(Brushes.Lime, "PriorHigh");
  50.                 AddPlot(Brushes.Red, "PriorLow");
  51.                 AddPlot(Brushes.Pink, "PriorClose");
  52.                 AddPlot(Brushes.Cyan, "OpenMinusClose");
  53.             }
  54.             else if (State == State.Configure)
  55.             {
  56.             }
  57.             else if (State == State.DataLoaded)
  58.             {              
  59.                 //PriorDayOHLC1 = PriorDayOHLC(Close);
  60.             }
  61.         }
  62.  
  63.         protected override void OnBarUpdate()
  64.         {
  65.             if (BarsInProgress != 0)
  66.                 return;
  67.  
  68.             if (CurrentBars[0] < 1)
  69.                 return;
  70.  
  71.              // Set 1
  72. //          Print(Time[0] +
  73. //                " " + "Open Value: " + Convert.ToString(Open[1]) +
  74. //                " " + "High Value: " +  Convert.ToString(High[1]) +
  75. //                " " + "Low Value: " +  Convert.ToString(Low[1])  +
  76. //                " " + "Close Value: " +  Convert.ToString(Close[1]));
  77.             {
  78.             }
  79.  
  80.            
  81.             if (IsFirstTickOfBar && Times[0][0].DayOfWeek != DayOfWeek.Monday)
  82.             {
  83.                 Values[0][0] = Open[1];
  84.                 Values[1][0] = High[1];
  85.                 Values[2][0] = Low[1];
  86.                 Values[3][0] = Close[1];
  87.  
  88.                 //Values[4][0] = Open[1] - (Close[1]);
  89.                 Values[4][0] = Values[0][0] - (Values[3][0]);
  90.             }
  91.             else
  92.             {
  93.                 Values[0][0] = Open[1];
  94.                 Values[1][0] = High[1];
  95.                 Values[2][0] = Low[1];
  96.                 Values[3][0] = Close[1];
  97.  
  98.                 //Values[4][0] = Open[0] - (Close[0]);
  99.                 Values[4][0] = Values[0][0] - (Values[3][0]);
  100.             }
  101.            
  102.             Print(String.Format("CurrentBar index: {0} Time[0]: {1} Open[0]: {2}, High[0]: {3} Low[0]: {4}, Close[0]: {5} State: {6} Calculate: {7}",
  103.                                  CurrentBar, Time[0], Open[0], High[0], Low[0], Close[0], State, Calculate));
  104.         }
  105.         #region Properties
  106.         [Browsable(false)]
  107.         [XmlIgnore]
  108.         public Series<double> PriorOpen
  109.         {
  110.         get { return Values[0]; }
  111.         }
  112.        
  113.         [Browsable(false)]
  114.         [XmlIgnore]
  115.         public Series<double> PriorHigh
  116.         {
  117.         get { return Values[1]; }
  118.         }
  119.        
  120.         [Browsable(false)]
  121.         [XmlIgnore]
  122.         public Series<double> PriorLow
  123.         {
  124.         get { return Values[2]; }
  125.         }
  126.        
  127.         [Browsable(false)]
  128.         [XmlIgnore]
  129.         public Series<double> PriorClose
  130.         {
  131.         get { return Values[3]; }
  132.         }
  133.        
  134.         [Browsable(false)]
  135.         [XmlIgnore]
  136.         public Series<double> OpenMinusClose
  137.         {
  138.         get { return Values[4]; }
  139.         }
  140.         #endregion
  141.     }
  142. }
  143.  
  144. #region NinjaScript generated code. Neither change nor remove.
  145.  
  146. namespace NinjaTrader.NinjaScript.Indicators
  147. {
  148.     public partial class Indicator : NinjaTrader.Gui.NinjaScript.IndicatorRenderBase
  149.     {
  150.         private myDailyBarsPriorOHLC[] cachemyDailyBarsPriorOHLC;
  151.         public myDailyBarsPriorOHLC myDailyBarsPriorOHLC()
  152.         {
  153.             return myDailyBarsPriorOHLC(Input);
  154.         }
  155.  
  156.         public myDailyBarsPriorOHLC myDailyBarsPriorOHLC(ISeries<double> input)
  157.         {
  158.             if (cachemyDailyBarsPriorOHLC != null)
  159.                 for (int idx = 0; idx < cachemyDailyBarsPriorOHLC.Length; idx++)
  160.                     if (cachemyDailyBarsPriorOHLC[idx] != null &&  cachemyDailyBarsPriorOHLC[idx].EqualsInput(input))
  161.                         return cachemyDailyBarsPriorOHLC[idx];
  162.             return CacheIndicator<myDailyBarsPriorOHLC>(new myDailyBarsPriorOHLC(), input, ref cachemyDailyBarsPriorOHLC);
  163.         }
  164.     }
  165. }
  166.  
  167. namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns
  168. {
  169.     public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase
  170.     {
  171.         public Indicators.myDailyBarsPriorOHLC myDailyBarsPriorOHLC()
  172.         {
  173.             return indicator.myDailyBarsPriorOHLC(Input);
  174.         }
  175.  
  176.         public Indicators.myDailyBarsPriorOHLC myDailyBarsPriorOHLC(ISeries<double> input )
  177.         {
  178.             return indicator.myDailyBarsPriorOHLC(input);
  179.         }
  180.     }
  181. }
  182.  
  183. namespace NinjaTrader.NinjaScript.Strategies
  184. {
  185.     public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase
  186.     {
  187.         public Indicators.myDailyBarsPriorOHLC myDailyBarsPriorOHLC()
  188.         {
  189.             return indicator.myDailyBarsPriorOHLC(Input);
  190.         }
  191.  
  192.         public Indicators.myDailyBarsPriorOHLC myDailyBarsPriorOHLC(ISeries<double> input )
  193.         {
  194.             return indicator.myDailyBarsPriorOHLC(input);
  195.         }
  196.     }
  197. }
  198.  
  199. #endregion
  200.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement