Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

Order Delayed by a Bar

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

    Order Delayed by a Bar

    Hi,
    Sorry to bother you (again), but I have a condition in an autostrategy that calls an ATM that I just can't figure out. I'm using 10 Minute bars.

    If a position enters and exits in the SAME bar, another full bar prints, and then another bar prints before the strategy places another order.

    BUT, if a position enters on one bar, then exits one or more bars later, the following bar initiates the next order (does not wait as in the first situation) like it should.

    I suspect it's an orderId issue. Shouldn't the orderId be reset to Empty once the bar closes, even though both entry and exit were in the same bar?

    I'm sure you will want to see the code so here it is (a version):

    if (ToTime(Time[0]) >= ToTime(7, 50, 0)
    && ToTime(Time[0]) <= ToTime(14, 0, 0)
    && orderId.Length == 0
    && atmStrategyId.Length == 0
    && Close[0] < Open[0])

    {
    atmStrategyId = GetAtmStrategyUniqueId();
    orderId = GetAtmStrategyUniqueId();
    AtmStrategyCreate(Action.Sell, OrderType.Limit, Close[0], 0,
    TimeInForce.Day,orderId , "ATM Name",
    atmStrategyId);
    }

    // Check for a pending entry order
    if (orderId.Length > 0)
    {
    string[] status = GetAtmStrategyEntryOrderStatus(orderId);

    // If the status call can't find the order specified, the return
    array length will be zero otherwise it will hold elements

    if (status.GetLength(0) > 0)
    {

    // If the order state is terminal, reset the order id value
    if (status[2] == "Filled" || status[2] == "Cancelled" ||
    status[2] == "Rejected")
    orderId = string.Empty;
    }
    } // If the strategy has terminated reset the strategy id
    else if (atmStrategyId.Length > 0 && GetAtmStrategyMarketPosition(atmStrategyId) == Cbi.MarketPosition.Flat)
    {
    atmStrategyId = string.Empty;
    }


    Thanks,
    Joe

    #2
    Hello,

    I am not sure. I would have to play with it and debug it. I recommend Print()'ing out your order ID's just inside and outside the if conditions.

    You also may want to use TraceOrders to track your orders:


    Just in case you don't have this link already:
    DenNinjaTrader Customer Service

    Comment


      #3
      Thanks much Ben,
      I'll give it a go.
      Joe

      Comment

      Latest Posts

      Collapse

      Topics Statistics Last Post
      Started by Waxavi, Today, 02:10 AM
      0 responses
      3 views
      0 likes
      Last Post Waxavi
      by Waxavi
       
      Started by TradeForge, Today, 02:09 AM
      0 responses
      9 views
      0 likes
      Last Post TradeForge  
      Started by Waxavi, Today, 02:00 AM
      0 responses
      2 views
      0 likes
      Last Post Waxavi
      by Waxavi
       
      Started by elirion, Today, 01:36 AM
      0 responses
      4 views
      0 likes
      Last Post elirion
      by elirion
       
      Started by gentlebenthebear, Today, 01:30 AM
      0 responses
      4 views
      0 likes
      Last Post gentlebenthebear  
      Working...
      X