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 burtoninlondon, Today, 12:38 AM
    0 responses
    2 views
    0 likes
    Last Post burtoninlondon  
    Started by AaronKoRn, Yesterday, 09:49 PM
    0 responses
    11 views
    0 likes
    Last Post AaronKoRn  
    Started by carnitron, Yesterday, 08:42 PM
    0 responses
    11 views
    0 likes
    Last Post carnitron  
    Started by strategist007, Yesterday, 07:51 PM
    0 responses
    12 views
    0 likes
    Last Post strategist007  
    Started by StockTrader88, 03-06-2021, 08:58 AM
    44 responses
    3,982 views
    3 likes
    Last Post jhudas88  
    Working...
    X