Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

Signals getting crossed on Stops and Targets

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

    Signals getting crossed on Stops and Targets

    I seem to be having an issue where when working multiple orders (Long A, B, C and Short A, B, C) with stops and targets associated with each order, I am getting stopped out on the wrong Exit... for example

    I will enter with Entry of LongA, but Exit with LongStopC... I've gone through the code making sure I'm resetting null state when appropriate, etc but am still very puzzled... I tried combing through the TraceOrders, but can't seem to interpret it in a way that would help me figure out what is going on...

    Executions
    Trade-#, Market pos., Quantity, Entry price,Exit price,Entry time,Exit time,Entry name,Exit name,Profit,Cum. profit

    1,Short,1,936,935.75,7/17/2009 8:30,7/17/2009 8:31,ShortA,ShortStopA,12.5,12.5
    2,Long,1,934.75,934.5,7/17/2009 8:31,7/17/2009 8:32,LongA,LongStopC,-12.5,0
    3,Long,1,934.5,934,7/17/2009 8:31,7/17/2009 8:33,LongB,LongStopA,-25,-25
    4,Long,1,934.25,933.75,7/17/2009 8:32,7/17/2009 8:37,LongC,LongStopB,-25,-50
    5,Long,1,932.25,933.75,7/17/2009 8:39,7/17/2009 8:42,LongA,LongTargetA,75,25
    6,Short,1,934.5,934.25,7/17/2009 8:43,7/17/2009 8:43,ShortA,ShortStopA,12.5,37.5








    Trace Orders
    PHP Code:
    7/17/2009 8:30:00 AM Entered internal PlaceOrder() method at 7/17/2009 8:30:00 AM: Action=SellShort OrderType=Limit Quantity=1 LimitPrice=936.50 StopPrice=0 SignalName='ShortA' FromEntrySignal=''
    7/17/2009 8:30:00 AM Entered internal PlaceOrder() method at 7/17/2009 8:30:00 AM: Action=SellShort OrderType=Limit Quantity=1 LimitPrice=936.75 StopPrice=0 SignalName='ShortB' FromEntrySignal=''
    7/17/2009 8:30:00 AM Entered internal PlaceOrder() method at 7/17/2009 8:30:00 AM: Action=SellShort OrderType=Limit Quantity=1 LimitPrice=937.00 StopPrice=0 SignalName='ShortC' FromEntrySignal=''
    7/17/2009 8:30:00 AM Entered internal PlaceOrder() method at 7/17/2009 8:30:00 AM: Action=Buy OrderType=Limit Quantity=1 LimitPrice=935.75 StopPrice=0 SignalName='LongA' FromEntrySignal=''
    7/17/2009 8:30:00 AM Ignored PlaceOrder() method at 7/17/2009 8:30:00 AM: Action=Buy OrderType=Limit Quantity=1 LimitPrice=935.75 StopPrice=0 SignalName=LongA' FromEntrySignal='' Reason='An Enter() method to submit an entry order has been ignore. Please search on the term 'Internal Order Handling Rules' in the Help Guide for detailed explanation.'
    7/17/2009 8:30:00 AM Entered internal PlaceOrder() method at 7/17/2009 8:30:00 AM: Action=Buy OrderType=Limit Quantity=1 LimitPrice=935.50 StopPrice=0 SignalName='LongB' FromEntrySignal=''
    7/17/2009 8:30:00 AM Entered internal PlaceOrder() method at 7/17/2009 8:30:00 AM: Action=Buy OrderType=Limit Quantity=1 LimitPrice=935.25 StopPrice=0 SignalName='LongC' FromEntrySignal=''
    Cancelled custom managed order at 7/17/2009 8:30:02 AM: Order='7029e704ddbd453e828d2e09f0bfd672/Replay101' Name='ShortA' State=Working Instrument='ES 09-09' Action=SellShort Limit price=936.5 Stop price=0 Quantity=1 Strategy='LimitOrderSkeleton' Type=Limit Tif=Gtc Oco='' Filled=0 Fill price=0 Token='7029e704ddbd453e828d2e09f0bfd672' Gtd='12/1/2099 12:00:00 AM'
    Cancelled custom managed order at 7/17/2009 8:30:02 AM: Order='64f457bb6bad48b5b37704168b6bd6d4/Replay101' Name='ShortB' State=Working Instrument='ES 09-09' Action=SellShort Limit price=936.75 Stop price=0 Quantity=1 Strategy='LimitOrderSkeleton' Type=Limit Tif=Gtc Oco='' Filled=0 Fill price=0 Token='64f457bb6bad48b5b37704168b6bd6d4' Gtd='12/1/2099 12:00:00 AM'
    Cancelled custom managed order at 7/17/2009 8:30:02 AM: Order='d082dc62fe9d43dcaa953d90b815d45c/Replay101' Name='ShortC' State=Working Instrument='ES 09-09' Action=SellShort Limit price=937 Stop price=0 Quantity=1 Strategy='LimitOrderSkeleton' Type=Limit Tif=Gtc Oco='' Filled=0 Fill price=0 Token='d082dc62fe9d43dcaa953d90b815d45c' Gtd='12/1/2099 12:00:00 AM'
    7/17/2009 8:30:06 AM Entered internal PlaceOrder() method at 7/17/2009 8:30:06 AM: Action=SellShort OrderType=Limit Quantity=1 LimitPrice=936.00 StopPrice=0 SignalName='ShortA' FromEntrySignal=''
    7/17/2009 8:30:06 AM Entered internal PlaceOrder() method at 7/17/2009 8:30:06 AM: Action=SellShort OrderType=Limit Quantity=1 LimitPrice=936.25 StopPrice=0 SignalName='ShortB' FromEntrySignal=''
    7/17/2009 8:30:06 AM Entered internal PlaceOrder() method at 7/17/2009 8:30:06 AM: Action=SellShort OrderType=Limit Quantity=1 LimitPrice=936.50 StopPrice=0 SignalName='ShortC' FromEntrySignal=''
    7/17/2009 8:30:06 AM Entered internal PlaceOrder() method at 7/17/2009 8:30:06 AM: Action=BuyToCover OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=937.00 SignalName='ShortStopA' FromEntrySignal='ShortA'
    7/17/2009 8:30:06 AM Entered internal PlaceOrder() method at 7/17/2009 8:30:06 AM: Action=BuyToCover OrderType=Limit Quantity=1 LimitPrice=934.50 StopPrice=0 SignalName='ShortTargetA' FromEntrySignal='ShortA'
    Cancelled custom managed order at 7/17/2009 8:31:06 AM: Order='2b9be38bc22f4d3b9234c95910ea7ddd/Replay101' Name='ShortB' State=Working Instrument='ES 09-09' Action=SellShort Limit price=936.25 Stop price=0 Quantity=1 Strategy='LimitOrderSkeleton' Type=Limit Tif=Gtc Oco='' Filled=0 Fill price=0 Token='2b9be38bc22f4d3b9234c95910ea7ddd' Gtd='12/1/2099 12:00:00 AM'
    Cancelled custom managed order at 7/17/2009 8:31:06 AM: Order='0d596073d3b24036b3819ff600c4db22/Replay101' Name='ShortC' State=Working Instrument='ES 09-09' Action=SellShort Limit price=936.5 Stop price=0 Quantity=1 Strategy='LimitOrderSkeleton' Type=Limit Tif=Gtc Oco='' Filled=0 Fill price=0 Token='0d596073d3b24036b3819ff600c4db22' Gtd='12/1/2099 12:00:00 AM'
    7/17/2009 8:31:06 AM Entered internal PlaceOrder() method at 7/17/2009 8:31:06 AM: Action=BuyToCover OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=935.75 SignalName='ShortStopA' FromEntrySignal='ShortA'
    7/17/2009 8:31:06 AM Amended matching order: Action=BuyToCover OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=935.75 SignalName=ShortStopA' FromEntrySignal='ShortA'
    7/17/2009 8:31:09 AM Cancelled pending exit order, since associated position is closed: Order='e6689887dc944dc4b68b66f7b8486afd/Replay101' Name='ShortTargetA' State=Working Instrument='ES 09-09' Action=BuyToCover Limit price=934.5 Stop price=0 Quantity=1 Strategy='LimitOrderSkeleton' Type=Limit Tif=Gtc Oco='' Filled=0 Fill price=0 Token='e6689887dc944dc4b68b66f7b8486afd' Gtd='12/1/2099 12:00:00 AM'
    7/17/2009 8:31:25 AM Entered internal PlaceOrder() method at 7/17/2009 8:31:25 AM: Action=Buy OrderType=Limit Quantity=1 LimitPrice=934.75 StopPrice=0 SignalName='LongA' FromEntrySignal=''
    7/17/2009 8:31:25 AM Entered internal PlaceOrder() method at 7/17/2009 8:31:25 AM: Action=Buy OrderType=Limit Quantity=1 LimitPrice=934.50 StopPrice=0 SignalName='LongB' FromEntrySignal=''
    7/17/2009 8:31:25 AM Entered internal PlaceOrder() method at 7/17/2009 8:31:25 AM: Action=Buy OrderType=Limit Quantity=1 LimitPrice=934.25 StopPrice=0 SignalName='LongC' FromEntrySignal=''
    7/17/2009 8:31:47 AM Entered internal PlaceOrder() method at 7/17/2009 8:31:47 AM: Action=Sell OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=933.75 SignalName='LongStopA' FromEntrySignal='LongA'
    7/17/2009 8:31:47 AM Entered internal PlaceOrder() method at 7/17/2009 8:31:47 AM: Action=Sell OrderType=Limit Quantity=1 LimitPrice=936.25 StopPrice=0 SignalName='LongTargetA' FromEntrySignal='LongA'
    7/17/2009 8:31:51 AM Entered internal PlaceOrder() method at 7/17/2009 8:31:51 AM: Action=Sell OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=933.50 SignalName='LongStopB' FromEntrySignal='LongB'
    7/17/2009 8:31:51 AM Entered internal PlaceOrder() method at 7/17/2009 8:31:51 AM: Action=Sell OrderType=Limit Quantity=1 LimitPrice=935.75 StopPrice=0 SignalName='LongTargetB' FromEntrySignal='LongB'
    7/17/2009 8:32:09 AM Entered internal PlaceOrder() method at 7/17/2009 8:32:09 AM: Action=Sell OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=933.25 SignalName='LongStopC' FromEntrySignal='LongC'
    7/17/2009 8:32:09 AM Entered internal PlaceOrder() method at 7/17/2009 8:32:09 AM: Action=Sell OrderType=Limit Quantity=1 LimitPrice=935.25 StopPrice=0 SignalName='LongTargetC' FromEntrySignal='LongC'
    7/17/2009 8:32:25 AM Entered internal PlaceOrder() method at 7/17/2009 8:32:25 AM: Action=Sell OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=934.25 SignalName='LongStopC' FromEntrySignal='LongC'
    7/17/2009 8:32:25 AM Amended matching order: Action=Sell OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=934.25 SignalName=LongStopC' FromEntrySignal='LongC'
    7/17/2009 8:32:26 AM Cancelled pending exit order, since associated position is closed: Order='323d21b89aa04e0780d3b56452420ae8/Replay101' Name='LongTargetC' State=Working Instrument='ES 09-09' Action=Sell Limit price=935.25 Stop price=0 Quantity=1 Strategy='LimitOrderSkeleton' Type=Limit Tif=Gtc Oco='' Filled=0 Fill price=0 Token='323d21b89aa04e0780d3b56452420ae8' Gtd='12/1/2099 12:00:00 AM'
    7/17/2009 8:33:16 AM Cancelled pending exit order, since associated position is closed: Order='40ea30297ca04e398b4f2044da261335/Replay101' Name='LongTargetA' State=Working Instrument='ES 09-09' Action=Sell Limit price=936.25 Stop price=0 Quantity=1 Strategy='LimitOrderSkeleton' Type=Limit Tif=Gtc Oco='' Filled=0 Fill price=0 Token='40ea30297ca04e398b4f2044da261335' Gtd='12/1/2099 12:00:00 AM'
    7/17/2009 8:37:47 AM Cancelled pending exit order, since associated position is closed: Order='83dc16eb037544f28f0bd973589b5b58/Replay101' Name='LongTargetB' State=Working Instrument='ES 09-09' Action=Sell Limit price=935.75 Stop price=0 Quantity=1 Strategy='LimitOrderSkeleton' Type=Limit Tif=Gtc Oco='' Filled=0 Fill price=0 Token='83dc16eb037544f28f0bd973589b5b58' Gtd='12/1/2099 12:00:00 AM' 
    

    #2
    This is the Code I'm using
    Code:
    ///////////////////////////////////////////
    // HANDLE ORDER UPDATES FOR SHORT ORDER //
    /////////////////////////////////////////
    
    // SHORT ORDER A
    // ENTRY
    if (shortentryOrderA != null && shortentryOrderA.Token == order.Token)
    {    
        if (order.OrderState == OrderState.Cancelled)
        {
            shortentryOrderA = null;
        }
    }
    
    // TARGET
    if (shorttargetOrderA != null && shorttargetOrderA.Token == order.Token)
    {    
        if (order.OrderState == OrderState.Cancelled)
        {
            shorttargetOrderA = null;
        }
    }
    
    // STOP
    if (shortstopOrderA != null && shortstopOrderA.Token == order.Token)
    {    
        if (order.OrderState == OrderState.Cancelled)
        {
            shortstopOrderA = null;
        }
    }
    
    // SHORT ORDER B
    // ENTRY
    if (shortentryOrderB != null && shortentryOrderB.Token == order.Token)
    {    
        if (order.OrderState == OrderState.Cancelled)
        {
            shortentryOrderB = null;
        }
    }
    
    // TARGET
    if (shorttargetOrderB != null && shorttargetOrderB.Token == order.Token)
    {    
        if (order.OrderState == OrderState.Cancelled)
        {
            shorttargetOrderB = null;
        }
    }
    
    // STOP
    if (shortstopOrderB != null && shortstopOrderB.Token == order.Token)
    {    
        if (order.OrderState == OrderState.Cancelled)
        {
            shortstopOrderB = null;
        }
    }
    
    // SHORT ORDER C
    // ENTRY
    if (shortentryOrderC != null && shortentryOrderC.Token == order.Token)
    {    
        if (order.OrderState == OrderState.Cancelled)
        {
            shortentryOrderC = null;
        }
    }
    
    // TARGET
    if (shorttargetOrderC != null && shorttargetOrderC.Token == order.Token)
    {    
        if (order.OrderState == OrderState.Cancelled)
        {
            shorttargetOrderC = null;
        }
    }
    
    // STOP
    if (shortstopOrderC != null && shortstopOrderC.Token == order.Token)
    {    
        if (order.OrderState == OrderState.Cancelled)
        {
            shortstopOrderC = null;
        }
    }
    }
    
    protected override void OnExecution(IExecution execution)
    {
    ///////////////////////////////
    // LONG ORDER STOP AND TARGET//
    ///////////////////////////////
    
    // LONG ORDER A
    if (longentryOrderA != null && longentryOrderA.Token == execution.Order.Token)
    {
        if (execution.Order.OrderState == OrderState.Filled || execution.Order.OrderState == OrderState.PartFilled || (execution.Order.OrderState == OrderState.Cancelled && execution.Order.Filled > 0))
        {
            longstopOrderA = ExitLongStop(0, true, execution.Order.Filled, execution.Order.AvgFillPrice - 4 * TickSize, "LongStopA", "LongA");
            longtargetOrderA = ExitLongLimit(0, true, execution.Order.Filled, execution.Order.AvgFillPrice + 6 * TickSize, "LongTargetA", "LongA");
        }
    }
    
    // LONG ORDER B
    if (longentryOrderB != null && longentryOrderB.Token == execution.Order.Token)
    {
        if (execution.Order.OrderState == OrderState.Filled || execution.Order.OrderState == OrderState.PartFilled || (execution.Order.OrderState == OrderState.Cancelled && execution.Order.Filled > 0))
        {
            longstopOrderB = ExitLongStop(0, true, execution.Order.Filled, execution.Order.AvgFillPrice - 4 * TickSize, "LongStopB", "LongB");
            longtargetOrderB = ExitLongLimit(0, true, execution.Order.Filled, execution.Order.AvgFillPrice + 5 * TickSize, "LongTargetB", "LongB");
        }
    }
    
    // LONG ORDER C
    if (longentryOrderC != null && longentryOrderC.Token == execution.Order.Token)
    {
        if (execution.Order.OrderState == OrderState.Filled || execution.Order.OrderState == OrderState.PartFilled || (execution.Order.OrderState == OrderState.Cancelled && execution.Order.Filled > 0))
        {
            longstopOrderC = ExitLongStop(0, true, execution.Order.Filled, execution.Order.AvgFillPrice - 4 * TickSize, "LongStopC", "LongC");
            longtargetOrderC = ExitLongLimit(0, true, execution.Order.Filled, execution.Order.AvgFillPrice + 4 * TickSize, "LongTargetC", "LongC");
        }
    }
    
    ////////////////////////////////
    // SHORT ORDER STOP AND TARGET//
    ///////////////////////////////
    
    // SHORT ORDER A
    if (shortentryOrderA != null && shortentryOrderA.Token == execution.Order.Token)
    {
        if (execution.Order.OrderState == OrderState.Filled || execution.Order.OrderState == OrderState.PartFilled || (execution.Order.OrderState == OrderState.Cancelled && execution.Order.Filled > 0))
        {
            shortstopOrderA = ExitShortStop(0, true, execution.Order.Filled, execution.Order.AvgFillPrice + 4 * TickSize, "ShortStopA", "ShortA");
            shorttargetOrderA = ExitShortLimit(0, true, execution.Order.Filled, execution.Order.AvgFillPrice - 6 * TickSize, "ShortTargetA", "ShortA");
        }
    }
    
    // SHORT ORDER B
    if (shortentryOrderB != null && shortentryOrderB.Token == execution.Order.Token)
    {
        if (execution.Order.OrderState == OrderState.Filled || execution.Order.OrderState == OrderState.PartFilled || (execution.Order.OrderState == OrderState.Cancelled && execution.Order.Filled > 0))
        {
            shortstopOrderB = ExitShortStop(0, true, execution.Order.Filled, execution.Order.AvgFillPrice + 4 * TickSize, "ShortStopB", "ShortB");
            shorttargetOrderB = ExitShortLimit(0, true, execution.Order.Filled, execution.Order.AvgFillPrice - 5 * TickSize, "ShortTargetB", "ShortB");
        }
    }
    
    // SHORT ORDER C
    if (shortentryOrderC != null && shortentryOrderC.Token == execution.Order.Token)
    {
        if (execution.Order.OrderState == OrderState.Filled || execution.Order.OrderState == OrderState.PartFilled || (execution.Order.OrderState == OrderState.Cancelled && execution.Order.Filled > 0))
        {
            shortstopOrderC = ExitShortStop(0, true, execution.Order.Filled, execution.Order.AvgFillPrice + 4 * TickSize, "ShortStopC", "ShortC");
            shorttargetOrderC = ExitShortLimit(0, true, execution.Order.Filled, execution.Order.AvgFillPrice - 4 * TickSize, "ShortTargetC", "ShortC");
        }
    }
    
    //////////////////////////////////
    // LONG ORDER NULL STATE RESET //
    ////////////////////////////////
    // LONG ORDER A
    if ((longstopOrderA != null && longstopOrderA.Token == execution.Order.Token) || (longtargetOrderA != null && longtargetOrderA.Token == execution.Order.Token))
    {
        if (execution.Order.OrderState == OrderState.Filled || execution.Order.OrderState == OrderState.PartFilled)
        {
            longstopOrderA = null;
            longtargetOrderA = null;
            longentryOrderA = null;
        }
    }
    
    // LONG ORDER B
    if ((longstopOrderB != null && longstopOrderB.Token == execution.Order.Token) || (longtargetOrderB != null && longtargetOrderB.Token == execution.Order.Token))
    {
        if (execution.Order.OrderState == OrderState.Filled || execution.Order.OrderState == OrderState.PartFilled)
        {
            longstopOrderB = null;
            longtargetOrderB = null;
            longentryOrderB = null;
        }
    }
    
    // LONG ORDER C
    if ((longstopOrderC != null && longstopOrderC.Token == execution.Order.Token) || (longtargetOrderC != null && longtargetOrderC.Token == execution.Order.Token))
    {
        if (execution.Order.OrderState == OrderState.Filled || execution.Order.OrderState == OrderState.PartFilled)
        {
            longstopOrderC = null;
            longtargetOrderC = null;
            longentryOrderC = null;
        }
    }
    
    ///////////////////////////////////
    // SHORT ORDER NULL STATE RESET //
    /////////////////////////////////
    // SHORT ORDER A
    if ((shortstopOrderA != null && shortstopOrderA.Token == execution.Order.Token) || (shorttargetOrderA != null && shorttargetOrderA.Token == execution.Order.Token))
    {
        if (execution.Order.OrderState == OrderState.Filled || execution.Order.OrderState == OrderState.PartFilled)
        {
            shortstopOrderA = null;
            shorttargetOrderA = null;
            shortentryOrderA = null;
        }
    }
    
    // SHORT ORDER B
    if ((shortstopOrderB != null && shortstopOrderB.Token == execution.Order.Token) || (shorttargetOrderB != null && shorttargetOrderB.Token == execution.Order.Token))
    {
        if (execution.Order.OrderState == OrderState.Filled || execution.Order.OrderState == OrderState.PartFilled)
        {
            shortstopOrderB = null;
            shorttargetOrderB = null;
            shortentryOrderB = null;
        }
    }
    
    // SHORT ORDER C
    if ((shortstopOrderC != null && shortstopOrderC.Token == execution.Order.Token) || (shorttargetOrderC != null && shorttargetOrderC.Token == execution.Order.Token))
    {
        if (execution.Order.OrderState == OrderState.Filled || execution.Order.OrderState == OrderState.PartFilled)
        {
            shortstopOrderC = null;
            shorttargetOrderC = null;
            shortentryOrderC = null;
        }
    }

    Comment


      #3
      BigDog008,

      Are you using PerEntryExecution or ByStrategyPosition for your Stop & Target Handling?

      Please try to simplify your code to just Long A and B to isolate behavior. It will be a lot easier to diagnose and track down what you are seeing and what would be expected.
      Josh P.NinjaTrader Customer Service

      Comment


        #4
        I am using PerEntryExecution for Stop & Target Handeling...

        Here is the TraceLogs using only two orders...

        PHP Code:
        7/17/2009 8:33:17 AM Entered internal PlaceOrder() method at 7/17/2009 8:33:17 AM: Action=BuyToCover OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=934.25 SignalName='ShortStopA' FromEntrySignal='ShortA'
        7/17/2009 8:33:17 AM Amended matching order: Action=BuyToCover OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=934.25 SignalName=ShortStopA' FromEntrySignal='ShortA'
        7/17/2009 8:33:17 AM Cancelled pending exit order, since associated position is closed: Order='0d3dc1ea635441b4872c3b0e1e327e80/Replay101' Name='ShortTargetA' State=Working Instrument='ES 09-09' Action=BuyToCover Limit price=933 Stop price=0 Quantity=1 Strategy='LimitOrderSkeleton' Type=Limit Tif=Gtc Oco='' Filled=0 Fill price=0 Token='0d3dc1ea635441b4872c3b0e1e327e80' Gtd='12/1/2099 12:00:00 AM'
        7/17/2009 8:33:17 AM Entered internal PlaceOrder() method at 7/17/2009 8:33:17 AM: Action=SellShort OrderType=Limit Quantity=1 LimitPrice=934.50 StopPrice=0 SignalName='ShortA' FromEntrySignal=''
        7/17/2009 8:33:17 AM Entered internal PlaceOrder() method at 7/17/2009 8:33:17 AM: Action=SellShort OrderType=Limit Quantity=1 LimitPrice=934.75 StopPrice=0 SignalName='ShortB' FromEntrySignal=''
        Cancelled custom managed order at 7/17/2009 8:33:18 AM: Order='1c28ea3ef28c46b6b9fb7720496d8054/Replay101' Name='ShortA' State=Working Instrument='ES 09-09' Action=SellShort Limit price=934.5 Stop price=0 Quantity=1 Strategy='LimitOrderSkeleton' Type=Limit Tif=Gtc Oco='' Filled=0 Fill price=0 Token='1c28ea3ef28c46b6b9fb7720496d8054' Gtd='12/1/2099 12:00:00 AM'
        Cancelled custom managed order at 7/17/2009 8:33:18 AM: Order='0974719106e84ca3b814b296f3a55496/Replay101' Name='ShortB' State=Working Instrument='ES 09-09' Action=SellShort Limit price=934.75 Stop price=0 Quantity=1 Strategy='LimitOrderSkeleton' Type=Limit Tif=Gtc Oco='' Filled=0 Fill price=0 Token='0974719106e84ca3b814b296f3a55496' Gtd='12/1/2099 12:00:00 AM'
        7/17/2009 8:33:19 AM Entered internal PlaceOrder() method at 7/17/2009 8:33:19 AM: Action=SellShort OrderType=Limit Quantity=1 LimitPrice=934.25 StopPrice=0 SignalName='ShortA' FromEntrySignal=''
        7/17/2009 8:33:19 AM Entered internal PlaceOrder() method at 7/17/2009 8:33:19 AM: Action=SellShort OrderType=Limit Quantity=1 LimitPrice=934.50 StopPrice=0 SignalName='ShortB' FromEntrySignal=''
        7/17/2009 8:33:26 AM Entered internal PlaceOrder() method at 7/17/2009 8:33:26 AM: Action=BuyToCover OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=935.25 SignalName='ShortStopA' FromEntrySignal='ShortA'
        7/17/2009 8:33:26 AM Entered internal PlaceOrder() method at 7/17/2009 8:33:26 AM: Action=BuyToCover OrderType=Limit Quantity=1 LimitPrice=932.75 StopPrice=0 SignalName='ShortTargetA' FromEntrySignal='ShortA'
        7/17/2009 8:33:36 AM Entered internal PlaceOrder() method at 7/17/2009 8:33:36 AM: Action=BuyToCover OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=935.50 SignalName='ShortStopB' FromEntrySignal='ShortB'
        7/17/2009 8:33:36 AM Entered internal PlaceOrder() method at 7/17/2009 8:33:36 AM: Action=BuyToCover OrderType=Limit Quantity=1 LimitPrice=933.25 StopPrice=0 SignalName='ShortTargetB' FromEntrySignal='ShortB'
        7/17/2009 8:34:20 AM Entered internal PlaceOrder() method at 7/17/2009 8:34:20 AM: Action=BuyToCover OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=934.25 SignalName='ShortStopB' FromEntrySignal='ShortB'
        7/17/2009 8:34:20 AM Amended matching order: Action=BuyToCover OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=934.25 SignalName=ShortStopB' FromEntrySignal='ShortB'
        7/17/2009 8:34:21 AM Cancelled pending exit order, since associated position is closed: Order='4ac3618af41e415a8dd300137dfe54c4/Replay101' Name='ShortTargetB' State=Working Instrument='ES 09-09' Action=BuyToCover Limit price=933.25 Stop price=0 Quantity=1 Strategy='LimitOrderSkeleton' Type=Limit Tif=Gtc Oco='' Filled=0 Fill price=0 Token='4ac3618af41e415a8dd300137dfe54c4' Gtd='12/1/2099 12:00:00 AM'
        7/17/2009 8:35:53 AM Cancelled pending exit order, since associated position is closed: Order='22f8fc5b6c1f4a1d87c1bf170211bc8c/Replay101' Name='ShortTargetA' State=Working Instrument='ES 09-09' Action=BuyToCover Limit price=932.75 Stop price=0 Quantity=1 Strategy='LimitOrderSkeleton' Type=Limit Tif=Gtc Oco='' Filled=0 Fill price=0 Token='22f8fc5b6c1f4a1d87c1bf170211bc8c' Gtd='12/1/2099 12:00:00 AM' 
        
        as you can see from the Execution Log the crossed signals happened again at 8:33AM to 8:35AM

        Execution Log
        PHP Code:
        Trade-#,Market pos.,Quantity,Entry price,Exit price,Entry time,Exit time,Entry name,Exit name,Profit,Cum. profit
        1,Short,1,936,935.75,7/17/2009 8:30,7/17/2009 8:30,ShortA,ShortStopA,12.5,12.5
        2,Long,1,935.5,934.75,7/17/2009 8:30,7/17/2009 8:31,LongA,LongStopA,-37.5,-25
        3,Long,1,935.25,934.25,7/17/2009 8:31,7/17/2009 8:32,LongB,LongStopB,-50,-75
        4,Short,1,934.5,934.25,7/17/2009 8:32,7/17/2009 8:33,ShortA,ShortStopA,12.5,-62.5
        5,Short,1,934.25,934.25,7/17/2009 8:33,7/17/2009 8:34,ShortA,ShortStopB,0,-62.5
        6,Short,1,934.5,935,7/17/2009 8:33,7/17/2009 8:35,ShortB,ShortStopA,-25,-87.5
        7,Long,1,934.75,933.75,7/17/2009 8:36,7/17/2009 8:37,LongA,LongStopA,-50,-137.5
        8,Long,1,934.5,933.75,7/17/2009 8:36,7/17/2009 8:37,LongB,LongStopB,-37.5,-175
        9,Short,1,933.5,933.25,7/17/2009 8:38,7/17/2009 8:39,ShortA,ShortStopA,12.5,-162.5 
        
        Last edited by BigDog008; 07-20-2009, 08:57 AM.

        Comment


          #5
          BigDog008,

          Your execution log is not showing the relevant information. Please add some print lines into OnOrderUpdate() so we can use that along with the TraceOrders to track order state of orders and to see which ones are getting filled/cancelled/etc.
          Josh P.NinjaTrader Customer Service

          Comment


            #6
            I've edited my code as such with the following Print() statements...

            Code:
            protected override void OnOrderUpdate(IOrder order)
            {
            //////////////////////////////////////////
            // HANDLE ORDER UPDATES FOR LONG ORDER //
            ////////////////////////////////////////
            
            // LONG ORDER A
            // ENTRY
            if (longentryOrderA != null && longentryOrderA.Token == order.Token)
            {    
                if (order.OrderState == OrderState.Filled)
                {
                    Print ("LongEntryA Filled");
                }
                
                if (order.OrderState == OrderState.Cancelled)
                {
                    longentryOrderA = null;
                    Print ("LongEntryA Cancelled");
                }
            }
            
            // TARGET
            if (longtargetOrderA != null && longtargetOrderA.Token == order.Token)
            {    
                if (order.OrderState == OrderState.Filled)
                {
                    Print ("LongTargetA Filled");
                }
                
                if (order.OrderState == OrderState.Cancelled)
                {
                    longtargetOrderA = null;
                    Print ("LongTargetA Cancelled");
                }
            }
            
            // STOP
            if (longstopOrderA != null && longstopOrderA.Token == order.Token)
            {    
                if (order.OrderState == OrderState.Filled)
                {
                    Print ("LongStopA Filled");
                }
                
                if (order.OrderState == OrderState.Cancelled)
                {
                    longstopOrderA = null;
                    Print ("LongStopA Cancelled");
                }
            }
            
            // LONG ORDER B
            // ENTRY
            if (longentryOrderB != null && longentryOrderB.Token == order.Token)
            {    
                if (order.OrderState == OrderState.Filled)
                {
                    Print ("LongEntryB Filled");
                }
                
                if (order.OrderState == OrderState.Cancelled)
                {
                    longentryOrderB = null;
                    Print ("LongEntryB Cancelled");
                }
            }
            
            // TARGET
            if (longtargetOrderB != null && longtargetOrderB.Token == order.Token)
            {    
                if (order.OrderState == OrderState.Filled)
                {
                    Print ("LongTargetB Filled");
                }
                
                if (order.OrderState == OrderState.Cancelled)
                {
                    longtargetOrderB = null;
                    Print ("LongTargetB Cancelled");
                }
            }
            
            // STOP
            if (longstopOrderB != null && longstopOrderB.Token == order.Token)
            {    
                if (order.OrderState == OrderState.Filled)
                {
                    Print ("LongStopA Filled");
                }
                
                if (order.OrderState == OrderState.Cancelled)
                {
                    longstopOrderB = null;
                    Print ("LongStopB Cancelled");
                }
            }
            ///////////////////////////////////////////
            // HANDLE ORDER UPDATES FOR SHORT ORDER //
            /////////////////////////////////////////
            
            // SHORT ORDER A
            // ENTRY
            if (shortentryOrderA != null && shortentryOrderA.Token == order.Token)
            {    
                if (order.OrderState == OrderState.Filled)
                {
                    Print ("ShortEntryA Filled");
                }
                
                if (order.OrderState == OrderState.Cancelled)
                {
                    shortentryOrderA = null;
                    Print ("ShortEntryA Cancelled");
                }
            }
            
            // TARGET
            if (shorttargetOrderA != null && shorttargetOrderA.Token == order.Token)
            {    
                if (order.OrderState == OrderState.Filled)
                {
                    Print ("ShortTargetA Filled");
                }
                
                if (order.OrderState == OrderState.Cancelled)
                {
                    shorttargetOrderA = null;
                    Print ("ShortTargetA Cancelled");
                }
            }
            
            // STOP
            if (shortstopOrderA != null && shortstopOrderA.Token == order.Token)
            {    
                if (order.OrderState == OrderState.Filled)
                {
                    Print ("ShortStopA Filled");
                }
                
                if (order.OrderState == OrderState.Cancelled)
                {
                    shortstopOrderA = null;
                    Print ("ShortStopA Cancelled");
                }
            }
            
            // SHORT ORDER B
            // ENTRY
            if (shortentryOrderB != null && shortentryOrderB.Token == order.Token)
            {    
                if (order.OrderState == OrderState.Filled)
                {
                    Print ("ShortEntryB Filled");
                }
                
                if (order.OrderState == OrderState.Cancelled)
                {
                    shortentryOrderB = null;
                    Print ("ShortEntryB Cancelled");
                }
            }
            
            // TARGET
            if (shorttargetOrderB != null && shorttargetOrderB.Token == order.Token)
            {    
                if (order.OrderState == OrderState.Filled)
                {
                    Print ("ShortTargetB Filled");
                }
                
                if (order.OrderState == OrderState.Cancelled)
                {
                    shorttargetOrderB = null;
                    Print ("ShortTargetB Cancelled");
                }
            }
            
            // STOP
            if (shortstopOrderB != null && shortstopOrderB.Token == order.Token)
            {    
                if (order.OrderState == OrderState.Filled)
                {
                    Print ("ShortStopB Filled");
                }
                
                if (order.OrderState == OrderState.Cancelled)
                {
                    shortstopOrderB = null;
                    Print ("ShortStopB Cancelled");
                }
            }
            TraceOrder Output is now...
            PHP Code:
            7/17/2009 8:33:17 AM Entered internal PlaceOrder() method at 7/17/2009 8:33:17 AM: Action=SellShort OrderType=Limit Quantity=1 LimitPrice=934.50 StopPrice=0 SignalName='ShortA' FromEntrySignal=''
            7/17/2009 8:33:17 AM Entered internal PlaceOrder() method at 7/17/2009 8:33:17 AM: Action=SellShort OrderType=Limit Quantity=1 LimitPrice=934.75 StopPrice=0 SignalName='ShortB' FromEntrySignal=''
            Cancelled custom managed order at 7/17/2009 8:33:18 AM: Order='82a939de7b894456943fb156f820316d/Replay101' Name='ShortA' State=Working Instrument='ES 09-09' Action=SellShort Limit price=934.5 Stop price=0 Quantity=1 Strategy='LimitOrderSkeleton' Type=Limit Tif=Gtc Oco='' Filled=0 Fill price=0 Token='82a939de7b894456943fb156f820316d' Gtd='12/1/2099 12:00:00 AM'
            Cancelled custom managed order at 7/17/2009 8:33:18 AM: Order='c3cb02551c6d4bc19553d2fc15780321/Replay101' Name='ShortB' State=Working Instrument='ES 09-09' Action=SellShort Limit price=934.75 Stop price=0 Quantity=1 Strategy='LimitOrderSkeleton' Type=Limit Tif=Gtc Oco='' Filled=0 Fill price=0 Token='c3cb02551c6d4bc19553d2fc15780321' Gtd='12/1/2099 12:00:00 AM'
            7/17/2009 8:33:19 AM Entered internal PlaceOrder() method at 7/17/2009 8:33:19 AM: Action=SellShort OrderType=Limit Quantity=1 LimitPrice=934.25 StopPrice=0 SignalName='ShortA' FromEntrySignal=''
            7/17/2009 8:33:19 AM Entered internal PlaceOrder() method at 7/17/2009 8:33:19 AM: Action=SellShort OrderType=Limit Quantity=1 LimitPrice=934.50 StopPrice=0 SignalName='ShortB' FromEntrySignal=''
            ShortEntryA Filled
            7/17/2009 8:33:26 AM Entered internal PlaceOrder() method at 7/17/2009 8:33:26 AM: Action=BuyToCover OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=935.25 SignalName='ShortStopA' FromEntrySignal='ShortA'
            7/17/2009 8:33:26 AM Entered internal PlaceOrder() method at 7/17/2009 8:33:26 AM: Action=BuyToCover OrderType=Limit Quantity=1 LimitPrice=932.75 StopPrice=0 SignalName='ShortTargetA' FromEntrySignal='ShortA'
            ShortEntryB Filled
            7/17/2009 8:33:36 AM Entered internal PlaceOrder() method at 7/17/2009 8:33:36 AM: Action=BuyToCover OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=935.50 SignalName='ShortStopB' FromEntrySignal='ShortB'
            7/17/2009 8:33:36 AM Entered internal PlaceOrder() method at 7/17/2009 8:33:36 AM: Action=BuyToCover OrderType=Limit Quantity=1 LimitPrice=933.25 StopPrice=0 SignalName='ShortTargetB' FromEntrySignal='ShortB'
            7/17/2009 8:34:20 AM Entered internal PlaceOrder() method at 7/17/2009 8:34:20 AM: Action=BuyToCover OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=934.25 SignalName='ShortStopB' FromEntrySignal='ShortB'
            7/17/2009 8:34:20 AM Amended matching order: Action=BuyToCover OrderType=Stop Quantity=1 LimitPrice=0 StopPrice=934.25 SignalName=ShortStopB' FromEntrySignal='ShortB'
            7/17/2009 8:34:21 AM Cancelled pending exit order, since associated position is closed: Order='335b5ef7b323476ebf245a97a0d519f9/Replay101' Name='ShortTargetB' State=Working Instrument='ES 09-09' Action=BuyToCover Limit price=933.25 Stop price=0 Quantity=1 Strategy='LimitOrderSkeleton' Type=Limit Tif=Gtc Oco='' Filled=0 Fill price=0 Token='335b5ef7b323476ebf245a97a0d519f9' Gtd='12/1/2099 12:00:00 AM'
            ShortTargetB Cancelled
            ShortStopB Filled
            7/17/2009 8:35:53 AM Cancelled pending exit order, since associated position is closed: Order='0035b91faa094055be1255889eedb707/Replay101' Name='ShortTargetA' State=Working Instrument='ES 09-09' Action=BuyToCover Limit price=932.75 Stop price=0 Quantity=1 Strategy='LimitOrderSkeleton' Type=Limit Tif=Gtc Oco='' Filled=0 Fill price=0 Token='0035b91faa094055be1255889eedb707' Gtd='12/1/2099 12:00:00 AM'
            ShortTargetA Cancelled
            ShortStopA Filled
            7/17/2009 8:35:53 AM Entered internal PlaceOrder() method at 7/17/2009 8:35:53 AM: Action=Buy OrderType=Limit Quantity=1 LimitPrice=934.75 StopPrice=0 SignalName='LongA' FromEntrySignal=''
            7/17/2009 8:35:53 AM Entered internal PlaceOrder() method at 7/17/2009 8:35:53 AM: Action=Buy OrderType=Limit Quantity=1 LimitPrice=934.50 StopPrice=0 SignalName='LongB' FromEntrySignal='' 
            

            Comment


              #7
              BigDog008,

              It looks accurate to me. Targets are cancelled when the stops get filled. What is the unexpected behavior?
              Josh P.NinjaTrader Customer Service

              Comment


                #8
                Originally posted by NinjaTrader_Josh View Post
                BigDog008,

                It looks accurate to me. Targets are cancelled when the stops get filled. What is the unexpected behavior?

                When I look at my TradeLog...
                I see an Entry Name as ShortA, but the Exit name as ShortStopB as shown in the attached file (unfortunatly I can't upload .csv files so I saved it as a .txt)
                Attached Files

                Comment


                  #9
                  Please provide the execution events instead of the trade log as seen in the Log tab.
                  Josh P.NinjaTrader Customer Service

                  Comment


                    #10
                    Executions is attached
                    Attached Files

                    Comment


                      #11
                      BigDog008,

                      Please disconnect from your market replay and then reset your DB. Go to Tools->Options->Misc tab->Reset DB. Then go and reset your Replay101 account too in the Simulator tab
                      Josh P.NinjaTrader Customer Service

                      Comment


                        #12
                        Same issue still even with the database reset and account reset

                        Comment


                          #13
                          Please provide a reference sample with only ShortA/B and their respective stop/targets (no long order stuff) and the replay file you are using to reproduce. Thank you.

                          Please provide me with exact setting information for me to try and reproduce on my end.
                          Josh P.NinjaTrader Customer Service

                          Comment


                            #14
                            Josh, sent you an email....

                            I've commented out the C orders so that way it's only working two orders... A and B...

                            also I've attached a screenshot with the relevant settings...

                            Please ignore the first email, didn't include the screenshot in that

                            Comment


                              #15
                              Will need replay files too. Thanks.
                              Josh P.NinjaTrader Customer Service

                              Comment

                              Latest Posts

                              Collapse

                              Topics Statistics Last Post
                              Started by Geovanny Suaza, 02-11-2026, 06:32 PM
                              0 responses
                              648 views
                              0 likes
                              Last Post Geovanny Suaza  
                              Started by Geovanny Suaza, 02-11-2026, 05:51 PM
                              0 responses
                              369 views
                              1 like
                              Last Post Geovanny Suaza  
                              Started by Mindset, 02-09-2026, 11:44 AM
                              0 responses
                              108 views
                              0 likes
                              Last Post Mindset
                              by Mindset
                               
                              Started by Geovanny Suaza, 02-02-2026, 12:30 PM
                              0 responses
                              572 views
                              1 like
                              Last Post Geovanny Suaza  
                              Started by RFrosty, 01-28-2026, 06:49 PM
                              0 responses
                              573 views
                              1 like
                              Last Post RFrosty
                              by RFrosty
                               
                              Working...
                              X