Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

Issues with limit orders...

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

    Issues with limit orders...

    I'm having some issues with Limit Orders where they keep changing as the market keeps moving... I have it set that its liveUntilCancelled, but still seem to be having issues...

    SHORTS....
    Code:
    if (some condition is met)
    {
    EnterShortLimit(0, true, DefaultQuantity, GetCurrentAsk() + 2 * TickSize, "ShortA");
    EnterShortLimit(0, true, DefaultQuantity, GetCurrentAsk() + 3 * TickSize, "ShortB");
    EnterShortLimit(0, true, DefaultQuantity, GetCurrentAsk() + 4 * TickSize, "ShortC");
    }
    LONGS....
    Code:
    if (some condition is met
    {
    EnterLongLimit(0, true, DefaultQuantity, GetCurrentBid() - 2 * TickSize, "LongA");
    EnterLongLimit(0, true, DefaultQuantity, GetCurrentBid() - 3 * TickSize, "LongB");
    EnterLongLimit(0, true, DefaultQuantity, GetCurrentBid() - 4 * TickSize, "LongC");
    }

    #2
    If you keep submitting the orders over and over they will keep amending and moving. Don't resubmit if you don't wish to amend the order.
    Josh P.NinjaTrader Customer Service

    Comment


      #3
      Originally posted by NinjaTrader_Josh View Post
      If you keep submitting the orders over and over they will keep amending and moving. Don't resubmit if you don't wish to amend the order.
      so how would I ammend this if I don't keep order submission in OnBarUpdate()?
      Last edited by BigDog008; 06-04-2009, 11:44 AM.

      Comment


        #4
        Not sure I follow. Your original post eluded to you not wanting the orders to move. If you don't want them to move, do not resubmit your orders. If you want to amend them then simply call the EnterShortLimit() again.
        Josh P.NinjaTrader Customer Service

        Comment


          #5
          Originally posted by NinjaTrader_Josh View Post
          Not sure I follow. Your original post eluded to you not wanting the orders to move. If you don't want them to move, do not resubmit your orders. If you want to amend them then simply call the EnterShortLimit() again.
          Meaning how do I keep it from not resubmitting orders?

          I currently have the EnterShortLimit and EnterLongLimit in the OnBarUpdate() section because I want to be able enter them based on current market prices...

          Comment


            #6
            You can use flag variables.

            Code:
            if (flag == false)
            {
                 EnterLongLimit(...);
                 flag = true;
            }
            Josh P.NinjaTrader Customer Service

            Comment


              #7
              Originally posted by NinjaTrader_Josh View Post
              You can use flag variables.

              Code:
              if (flag == false)
              {
                   EnterLongLimit(...);
                   flag = true;
              }

              but then how would I handle the issue of switching to flag = false when I hit a profit target or a stop?

              could I add flag = false to the protected override void Initialize() section?

              Comment


                #8
                private bool flag = false;

                in the Variables region of your code.

                You just need to decide when you want to reset it to false yourself. Whether that means when you are flat, when your entry gets filled, whatever your criteria is when you set it back to false.
                Josh P.NinjaTrader Customer Service

                Comment


                  #9
                  so I did that... and now I'm not able to submit orders at all... finding it rather frustrating that I'm missing something here... not sure what though....


                  Code:
                  #region Variables
                   private int stoplossticks = 8;
                  private bool flag = false;
                  #endregion
                  and....
                  Code:
                  if (some conditions....
                     && flag == false)
                  and....
                  Code:
                  {
                   EnterShortLimit(0, true, DefaultQuantity, GetCurrentAsk() + 2 * TickSize, "Short A");
                  EnterShortLimit(0, true, DefaultQuantity, GetCurrentAsk() + 3 * TickSize, "Short B");
                  EnterShortLimit(0, true, DefaultQuantity, GetCurrentAsk() + 4 * TickSize, "Short C");
                  flag = true;
                  }
                  but no dice

                  Comment


                    #10
                    I suggest you print the value of your flag variable. You have no code there that resets the flag to false.
                    Josh P.NinjaTrader Customer Service

                    Comment


                      #11
                      Here's what I've done... but still seem to be resubmitting orders...

                      Code:
                      #region Variables
                      // Wizard generated variables
                      private bool flag = false;
                      // User defined variables (add any user defined variables below)
                      #endregion
                      and then for logic...

                      Code:
                      protected override void Initialize()
                      {
                      SetProfitTarget("Long A", CalculationMode.Ticks, 4);
                      SetProfitTarget("Long B", CalculationMode.Ticks, 6);
                      SetProfitTarget("Long C", CalculationMode.Ticks, 8);
                      SetProfitTarget("Short A", CalculationMode.Ticks, 4);
                      SetProfitTarget("Short B", CalculationMode.Ticks, 6);
                      SetProfitTarget("Short C", CalculationMode.Ticks, 8);
                                  
                      SetStopLoss("Long A", CalculationMode.Ticks, 8, false);
                      SetStopLoss("Long B", CalculationMode.Ticks, 8, false);
                      SetStopLoss("Long C", CalculationMode.Ticks, 8, false);
                      SetStopLoss("Short A", CalculationMode.Ticks, 8, false);
                      SetStopLoss("Short B", CalculationMode.Ticks, 8, false);
                      SetStopLoss("Short C", CalculationMode.Ticks, 8, false);
                      
                      CalculateOnBarClose = false;
                      }
                      
                      protected override void OnBarUpdate()
                      {
                      // Condition set 1
                      if (some condition met...
                         && flag == false)
                      {
                            EnterShortLimit(0, true, DefaultQuantity, GetCurrentAsk() + 2 * TickSize, "Short A");
                            EnterShortLimit(0, true, DefaultQuantity, GetCurrentAsk() + 3 * TickSize, "Short B");
                            EnterShortLimit(0, true, DefaultQuantity, GetCurrentAsk() + 4 * TickSize, "Short C");
                            flag = true;
                       }
                      
                      // Condition set 2
                      if (some condition met...
                          && flag == false)
                      {
                            EnterLongLimit(0, true, DefaultQuantity, GetCurrentBid() - 2 * TickSize, "Long A");
                            EnterLongLimit(0, true, DefaultQuantity, GetCurrentBid() - 3 * TickSize, "Long B");
                            EnterLongLimit(0, true, DefaultQuantity, GetCurrentBid() - 4 * TickSize, "Long C");
                            flag = true;
                      }
                                  
                      if (Position.MarketPosition == MarketPosition.Flat)
                      {
                          flag = false;
                      }

                      i'm confused... what am i missing?
                      Last edited by BigDog008; 06-04-2009, 06:19 PM.

                      Comment


                        #12
                        It may be your orders expire unfilled and the condition becomes true intrabar again since you run it on CalculateOnBarClose = false, have you tried working with TraceOrders to check into the order behavior of your strategy? http://www.ninjatrader-support2.com/...ead.php?t=3627

                        Comment


                          #13
                          Bertrand, but does it make sense that it will expire when I have liveUntilCancelled set to true?

                          for what its worth, even though i initially have the flag set to false, have logic to change the flag back to false, the moment i click on start in the strategy tab, it seems to send out two orders, regardless of what the time is.... i want to run the strategy from 8:30am to 3pm central standard time, yet it'll still send out order prior to that.... i am testing using market replay
                          Last edited by BigDog008; 06-05-2009, 06:52 AM.

                          Comment


                            #14
                            No, sorry missed that in my earlier post BigDog008 - I thought you had it to false and that's why you needed to work with flags for resubmitting until filled.

                            Comment


                              #15
                              any suggestion as to where this is failing? the logic seems rather simple and sound and shouldn't be misbehaving to this level

                              Comment

                              Latest Posts

                              Collapse

                              Topics Statistics Last Post
                              Started by argusthome, Yesterday, 10:06 AM
                              0 responses
                              22 views
                              0 likes
                              Last Post argusthome  
                              Started by NabilKhattabi, 03-06-2026, 11:18 AM
                              0 responses
                              19 views
                              0 likes
                              Last Post NabilKhattabi  
                              Started by Deep42, 03-06-2026, 12:28 AM
                              0 responses
                              14 views
                              0 likes
                              Last Post Deep42
                              by Deep42
                               
                              Started by TheRealMorford, 03-05-2026, 06:15 PM
                              0 responses
                              10 views
                              0 likes
                              Last Post TheRealMorford  
                              Started by Mindset, 02-28-2026, 06:16 AM
                              0 responses
                              41 views
                              0 likes
                              Last Post Mindset
                              by Mindset
                               
                              Working...
                              X