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 do I make sure there are no open positions?

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

    How do I make sure there are no open positions?

    I'm testing out my script and start behavior is set to flat
    Code:
    StartBehavior = StartBehavior.WaitUntilFlat;
    but as it is trading, I notice that it is submitting orders based on the logic of my code, which is reversing my positions very quickly. Ideally I want to set an if statement to check for open positions, is there anything like this?

    #2
    Hello jertrade,

    Thanks for your post.

    If you do not want the strategy to calculate a historical position and you always want the strategy to start from a flat position, you can add a check for State.Historical and skip processing in OnBarUpdate. You could also add a User Defined Input to control this check as well. For example:

    Code:
        public class CalculateHistorical : Indicator
        {
            protected override void OnStateChange()
            {
                if (State == State.SetDefaults)
                {
                    Name                                        = "CalculateHistorical";
                    Calculate                                    = Calculate.OnBarClose;
                    CalcHistorical                                = true;
                }
            }
    
            protected override void OnBarUpdate()
            {
                if (State == State.Historical && !CalcHistorical)
                    return;
                Print(String.Format("State: {0} CurrentBar: {1}", State, CurrentBar));
            }
    
            #region Properties
            [NinjaScriptProperty]
            [Display(Name="CalcHistorical", Order=1, GroupName="Parameters")]
            public bool CalcHistorical
            { get; set; }
            #endregion
    
        }
    Please let us know if we can be of further assistance.
    Last edited by NinjaTrader_Jim; 07-22-2019, 09:02 AM.
    JimNinjaTrader Customer Service

    Comment

    Latest Posts

    Collapse

    Topics Statistics Last Post
    Started by chbruno, Today, 04:10 PM
    0 responses
    1 view
    0 likes
    Last Post chbruno
    by chbruno
     
    Started by josh18955, 03-25-2023, 11:16 AM
    6 responses
    436 views
    0 likes
    Last Post Delerium  
    Started by FAQtrader, Today, 03:35 PM
    0 responses
    5 views
    0 likes
    Last Post FAQtrader  
    Started by rocketman7, Today, 09:41 AM
    5 responses
    18 views
    0 likes
    Last Post NinjaTrader_Jesse  
    Started by frslvr, 04-11-2024, 07:26 AM
    9 responses
    127 views
    1 like
    Last Post caryc123  
    Working...
    X