Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

TheVwap_Intraday.Util.PeriodIterator

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    TheVwap_Intraday.Util.PeriodIterator

    Why do I keep getting this "using" phrase after compiling in my strategies?

    Code:
    using static NinjaTrader.NinjaScript.Indicators.TheVwap_Intraday.Util.PeriodIterator;

    #2
    Hello designer01,

    Are you saying that information is being printed to the log or output window?

    Comment


      #3
      It comes up under the using at the top.

      Code:
      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.Indicators;
      using NinjaTrader.NinjaScript.DrawingTools;
      //using static NinjaTrader.NinjaScript.Indicators.TheVwap_Intraday.Util.PeriodIterator;
      //using static NinjaTrader.NinjaScript.Indicators.TheVwap_Intraday.Util.PeriodIterator;​

      Comment


        #4
        Hello designer01,

        It looks like that would be based on how that indicator is coded. The type PeriodIterator is being referenced. To prevent that from happening the script which has PeriodIterator in it would need to be edited so that type is exposed correctly for whatever use case that is being used for.

        Comment


          #5
          This is the full code, I am not sure where the PeriodIterator is being referenced. If I comment the using lines as shown the code compiles and works fine. This has happened with other strategies as well. Weird!

          Code:
          #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.Indicators;
          using NinjaTrader.NinjaScript.DrawingTools;
          //using static NinjaTrader.NinjaScript.Indicators.TheVwap_Intraday.Util.PeriodIterator;
          //using static NinjaTrader.NinjaScript.Indicators.TheVwap_Intraday.Util.PeriodIterator;
          #endregion
          
          //This namespace holds Strategies in this folder and is required. Do not change it.
          namespace NinjaTrader.NinjaScript.Strategies
          {
              public class FTS230711LongShortButtonATR : Strategy
              {
                  private bool longButtonClicked;
                  private bool shortButtonClicked;
                  private System.Windows.Controls.Button longButton;
                  private System.Windows.Controls.Button shortButton;
                  private System.Windows.Controls.Grid myGrid;
                  //-----------------------------------ATRTrailingSTOP---------------------------------------------------------------------------------------\\
                  private ATRTrailingStop ATRTrailingStopE;
                  private ATRTrailingStop ATRTrailingStopX1;
                  private ATRTrailingStop ATRTrailingStopX2;
                  private bool OkToTrade;
          
                  protected override void OnStateChange()
                  {
                      if (State == State.SetDefaults)
                      {
                          Description = @"based on LONGSHORTToolbarButtonsB9";
                          Name = "FTS230711LongShortButtonATR";
                          Calculate = Calculate.OnEachTick;
                          EntriesPerDirection = 1;
                          EntryHandling = EntryHandling.AllEntries;
                          IsExitOnSessionCloseStrategy = true;
                          ExitOnSessionCloseSeconds = 30;
                          IsFillLimitOnTouch = false;
                          MaximumBarsLookBack = MaximumBarsLookBack.TwoHundredFiftySix;
                          OrderFillResolution = OrderFillResolution.Standard;
                          Slippage = 0;
                          StartBehavior = StartBehavior.WaitUntilFlat;
                          TimeInForce = TimeInForce.Gtc;
                          TraceOrders = false;
                          RealtimeErrorHandling = RealtimeErrorHandling.StopCancelClose;
                          StopTargetHandling = StopTargetHandling.PerEntryExecution;
                          BarsRequiredToTrade = 20;
                          IsOverlay = true;
                          Period = 1;
                          Multi = 2;
                          PeriodX1 = 2;
                          MultiX1 = 3;
                          PeriodX2 = 3;
                          MultiX2 = 4;
                      }
                      else if (State == State.Configure)
                      {
                      }
                      else if (State == State.DataLoaded)
                      {
                          //ENTRY PLOTS
                          ATRTrailingStopE = ATRTrailingStop(Close, Convert.ToInt32(Period), Multi);
                          ATRTrailingStopE.Plots[0].Brush = Brushes.Chocolate;
                          AddChartIndicator(ATRTrailingStopE);
          
                          //EXIT PLOTS
                          ATRTrailingStopX1 = ATRTrailingStop(Close, Convert.ToInt32(PeriodX1), MultiX1);
                          ATRTrailingStopX1.Plots[0].Brush = Brushes.Magenta;
                          AddChartIndicator(ATRTrailingStopX1);
          
                          ATRTrailingStopX2 = ATRTrailingStop(Close, Convert.ToInt32(PeriodX2), MultiX2);
                          ATRTrailingStopX2.Plots[0].Brush = Brushes.Red;
                          AddChartIndicator(ATRTrailingStopX2);
                      }
                      else if (State == State.Historical)
                      {
                          if (UserControlCollection.Contains(myGrid))
                              return;
          
                          Dispatcher.InvokeAsync((() =>
                          {
                              myGrid = new System.Windows.Controls.Grid
                              {
                                  Name = "MyCustomGrid",
                                  HorizontalAlignment = HorizontalAlignment.Right,
                                  VerticalAlignment = VerticalAlignment.Top
                              };
          
                              System.Windows.Controls.ColumnDefinition column1 = new System.Windows.Controls.ColumnDefinition();
                              System.Windows.Controls.ColumnDefinition column2 = new System.Windows.Controls.ColumnDefinition();
          
                              myGrid.ColumnDefinitions.Add(column1);
                              myGrid.ColumnDefinitions.Add(column2);
          
                              longButton = new System.Windows.Controls.Button
                              {
                                  Name = "LongButton",
                                  Content = "LONG",
                                  Foreground = Brushes.White,
                                  Background = Brushes.Green
                              };
          
                              shortButton = new System.Windows.Controls.Button
                              {
                                  Name = "ShortButton",
                                  Content = "SHORT",
                                  Foreground = Brushes.Black,
                                  Background = Brushes.Red
                              };
          
                              longButton.Click += OnButtonClick;
                              shortButton.Click += OnButtonClick;
          
                              System.Windows.Controls.Grid.SetColumn(longButton, 0);
                              System.Windows.Controls.Grid.SetColumn(shortButton, 1);
          
                              myGrid.Children.Add(longButton);
                              myGrid.Children.Add(shortButton);
          
                              UserControlCollection.Add(myGrid);
                          }));
                      }
                      else if (State == State.Terminated)
                      {
                          Dispatcher.InvokeAsync((() =>
                          {
                              if (myGrid != null)
                              {
                                  if (longButton != null)
                                  {
                                      myGrid.Children.Remove(longButton);
                                      longButton.Click -= OnButtonClick;
                                      longButton = null;
                                  }
                                  if (shortButton != null)
                                  {
                                      myGrid.Children.Remove(shortButton);
                                      shortButton.Click -= OnButtonClick;
                                      shortButton = null;
                                  }
                              }
                          }));
                      }
                  }
          
                  protected override void OnBarUpdate()
                  {
                      if (longButtonClicked
                          && CrossAbove(Close, ATRTrailingStopE, 1))
                          EnterLong("ATRLE");
          
                      if (shortButtonClicked
                          && CrossBelow(Close, ATRTrailingStopE, 1))
                          EnterShort("ATRSE");
          
                      if (!longButtonClicked
                          && Position.MarketPosition == MarketPosition.Long)
                          ExitLong();
          
                      if (!shortButtonClicked
                          && Position.MarketPosition == MarketPosition.Short)
                          ExitShort();
          
                      //------------------------ATR EXITS LOGIC-------------------------------------------------------------------------------------\\
                      if (IsFirstTickOfBar)
                          OkToTrade = true;
                      if ((CrossBelow(Close, ATRTrailingStopX1, 1))
                       && (MarketPosition.Long == MarketPosition.Long) && OkToTrade)
                      {
                          ExitLong(Convert.ToInt32(Position.Quantity / 2), @"LX1", @"ATRLE");
                          OkToTrade = false;
                      }
          
                      if ((CrossBelow(Close, ATRTrailingStopX2, 1))
                           && (MarketPosition.Long == MarketPosition.Long))
                      {
                          ExitLong(Convert.ToInt32(Position.Quantity), @"LX2", @"ATRLE");
                      }
          
                      if (IsFirstTickOfBar)
                          OkToTrade = true;
                      if ((CrossAbove(Close, ATRTrailingStopX1, 1))
                       && (MarketPosition.Short == MarketPosition.Short) && OkToTrade)
                      {
                          ExitShort(Convert.ToInt32(Position.Quantity / 2), @"SX1", @"ATRSE");
                          OkToTrade = false;
                      }
          
                      if ((CrossAbove(Close, ATRTrailingStopX2, 1))
                           && (MarketPosition.Short == MarketPosition.Short))
                      {
                          ExitShort(Convert.ToInt32(Position.Quantity), @"SX2", @"ATRSE");
                      }
                  }
          
                  private void OnButtonClick(object sender, RoutedEventArgs rea)
                  {
                      System.Windows.Controls.Button button = sender as System.Windows.Controls.Button;
                      if (button == longButton && button.Name == "LongButton" && button.Content == "LONG")
                      {
                          button.Content = "Exit L";
                          button.Name = "ExitLongButton";
                          longButtonClicked = true;
                          return;
                      }
          
                      if (button == shortButton && button.Name == "ShortButton" && button.Content == "SHORT")
                      {
                          button.Content = "Exit S";
                          button.Name = "ExitShortButton";
                          shortButtonClicked = true;
                          return;
                      }
          
                      if (button == longButton && button.Name == "ExitLongButton" && button.Content == "Exit L")
                      {
                          button.Content = "LONG";
                          button.Name = "LongButton";
                          longButtonClicked = false;
                          return;
                      }
          
                      if (button == shortButton && button.Name == "ExitShortButton" && button.Content == "Exit S")
                      {
                          button.Content = "SHORT";
                          button.Name = "ShortButton";
                          shortButtonClicked = false;
                          return;
                      }
                  }
          
                  #region Properties
                  [NinjaScriptProperty]
                  [Display(Name = "Period", Order = 1, GroupName = "Parameters")]
                  public double Period
                  { get; set; }
          
                  [NinjaScriptProperty]
                  [Display(Name = "Multi", Order = 2, GroupName = "Parameters")]
                  public double Multi
                  { get; set; }
          
                  [NinjaScriptProperty]
                  [Display(Name = "PeriodX1", Order = 3, GroupName = "Parameters")]
                  public double PeriodX1
                  { get; set; }
          
                  [NinjaScriptProperty]
                  [Display(Name = "MultiX1", Order = 4, GroupName = "Parameters")]
                  public double MultiX1
                  { get; set; }
          
                  [NinjaScriptProperty]
                  [Display(Name = "PeriodX2", Order = 5, GroupName = "Parameters")]
                  public double PeriodX2
                  { get; set; }
          
                  [NinjaScriptProperty]
                  [Display(Name = "MultiX2", Order = 6, GroupName = "Parameters")]
                  public double MultiX2
                  { get; set; }
                  #endregion
              }
          }​

          Comment


            #6
            Hello designer01,

            The code being referenced in the using statement is part of the TheVwap_Intraday indicator, you would need to review how that indicator is coded in this situation. If extra using statements are being added to the strategy and they are coming from that indiciator you would have to review that indicators code to better understand why that's happening.

            Comment


              #7
              But I am not referencing TheVwap_Intraday indicator. That's why it's so weird.

              Comment


                #8
                Hello designer01,

                I understand that however the same answer applies here, the code being placed in the strategy comes from that indicator so you need to look at that indicator and how its coded. Alternatively you can delete that indicator to prevent that.

                Comment

                Latest Posts

                Collapse

                Topics Statistics Last Post
                Started by NullPointStrategies, Yesterday, 05:17 AM
                0 responses
                58 views
                0 likes
                Last Post NullPointStrategies  
                Started by argusthome, 03-08-2026, 10:06 AM
                0 responses
                133 views
                0 likes
                Last Post argusthome  
                Started by NabilKhattabi, 03-06-2026, 11:18 AM
                0 responses
                73 views
                0 likes
                Last Post NabilKhattabi  
                Started by Deep42, 03-06-2026, 12:28 AM
                0 responses
                45 views
                0 likes
                Last Post Deep42
                by Deep42
                 
                Started by TheRealMorford, 03-05-2026, 06:15 PM
                0 responses
                50 views
                0 likes
                Last Post TheRealMorford  
                Working...
                X