Announcement

Collapse

Looking for a User App or Add-On built by the NinjaTrader community?

Visit NinjaTrader EcoSystem and our free User App Share!

Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
See more
See less

Partner 728x90

Collapse

How to replicate the same functionality of Exit On Session Close?

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

    How to replicate the same functionality of Exit On Session Close?

    Hello,

    I'm trying to replicate the same functionality of Exit On Session Close with ExitOnSessionCloseSeconds=30

    But the following code exiting time is not matching the internal Exit On Session Close​ times.

    Code:
            if(BarsInProgress == 2) // Referring to the Additional Ticks DataSeries
            {
                #region ExitOnSession Close
    
                    sessionIterator.GetNextSession(Times[2][0], true);
    
                    // store the desired session information
                    DateTime tradingDay   = sessionIterator.ActualTradingDayExchange;
                    DateTime beginTime    = sessionIterator.ActualSessionBegin;
                    DateTime endTime      = sessionIterator.ActualSessionEnd;
    
                    if(BarsArray[2].IsFirstBarOfSession)
                    {
                        CheckEOS = true;
                    }
    
                    if(Times[2][0].AddSeconds(30).TimeOfDay >= endTime.TimeOfDay && CheckEOS)
                    {
    
                        if(
                                 Position.MarketPosition == MarketPosition.Long
                             && BUY_entryOrder!=null
                        )
                        {
                           ExitLong(2,Convert.ToInt32(DefaultQuantity), @"EOSBUY", @"BUY");
                        }
    
                        CheckEOS = false;
                    }
    
                #endregion                
            }​

    #2
    Solved by the following:

    - Removing TimeOfDay.
    - (CheckEOS = true) will be at OnExecution Section when the Long order is executed. and False when the market position is Flat.


    Code:
            if(BarsInProgress == 2) // Referring to the Additional Ticks DataSeries
            {
                #region ExitOnSession Close
    
                    sessionIterator.GetNextSession(Times[2][0], true);
    
                    // store the desired session information
                    DateTime tradingDay   = sessionIterator.ActualTradingDayExchange;
                    DateTime beginTime    = sessionIterator.ActualSessionBegin;
                    DateTime endTime      = sessionIterator.ActualSessionEnd;
    
                    if(Times[2][0].AddSeconds(30) >= endTime)
                    {
    
                        if(
                                 Position.MarketPosition == MarketPosition.Long
                             && BUY_entryOrder!=null
                             && CheckEOS
                        )
                        {
                           ExitLong(2,Convert.ToInt32(DefaultQuantity), @"EOSBUY", @"BUY");
                           CheckEOS = false;
                        }
                    }
    
                #endregion                
            }​

    Comment

    Latest Posts

    Collapse

    Topics Statistics Last Post
    Started by rocketman7, Today, 02:12 AM
    7 responses
    29 views
    0 likes
    Last Post NinjaTrader_ChelseaB  
    Started by guillembm, Yesterday, 11:25 AM
    3 responses
    16 views
    0 likes
    Last Post NinjaTrader_Jesse  
    Started by junkone, 04-21-2024, 07:17 AM
    10 responses
    148 views
    0 likes
    Last Post NinjaTrader_BrandonH  
    Started by tsantospinto, 04-12-2024, 07:04 PM
    6 responses
    101 views
    0 likes
    Last Post tsantospinto  
    Started by trilliantrader, 04-18-2024, 08:16 AM
    7 responses
    28 views
    0 likes
    Last Post NinjaTrader_BrandonH  
    Working...
    X