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

Partial stop fills even with SIM account?

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

    Partial stop fills even with SIM account?

    Hey guys,

    I have a question regarding partial fills in SIM accounts - that's right! Enclosed a screenshot of some basic logging code that plots activity in my onOrderUpdate() method.



    Now what I'm seeing in my logs is this one being called multiple times during an attempt to fill the short stop with increasing position sizes (see the relevant sections copied below). I am not if I'm reading it right but it seems to accumulate until it reaches the entry quantity of 1,193,078 units, otherwise it wouldn't make sense to me

    How is it that I am apparently getting partial fills even with a SIM account? This actually messes up my email messaging as it is connected to onBarUpdate method. In order to fix that I need to know exactly why/how it is being called so often. Your help would be much appreciated... thanks!

    Log output:

    Code:
    ###### FOREX POSITION SIZING: 6/3/2014 2:00:18 AM #########
    EURGBP.60.Minute
    New York: 6/3/2014 2:00:18 AM Eastern Daylight Time
    New York session is inactive.
    London: 6/3/2014 7:00:18 AM GMT Daylight Time
    London session is inactive.
    Tokyo: 6/3/2014 3:00:18 PM Tokyo Standard Time
    Tokyo session is active.
    Account Size: 99896.41465
    RiskRatio in percent: 1
    Affected Pair: GBPUSD
    Affected Pair Ask: 1.67485
    Affected Pair Bid: 1.6746
    Quote type: BID
    Unit cost: 0.00016746
    R in full ticks: 5
    R in money: $998.96
    Position size in units: 1193078
    Position size in full lots: 11.93
    Per pip risk: $199.79
    EURGBP.60.Minute
    Initial R% target in full ticks = 5
    6/3/2014 2:00:17 AM Entered internal PlaceOrder() method at 6/3/2014 2:00:17 AM: BarsInProgress=1 Action=SellShort OrderType=Limit Quantity=1,193,078 LimitPrice=0.8120'5 StopPrice=0 SignalName='Short Position' FromEntrySignal=''
    
    
    Short entry order has been submitted: Order='e673b2615e6c46caa1b6bd6e3a8aceef/HeisenbergFX' Name='Short Position' State=PendingSubmit Instrument='$EURGBP' Action=SellShort Limit price=0.81205 Stop price=0 Quantity=1,193,078 Strategy='Heisenberg' Type=Limit Tif=Gtc Oco='' Filled=0 Fill price=0 Token='e673b2615e6c46caa1b6bd6e3a8aceef' Gtd='12/1/2099 12:00:00 AM'
    
    
    EURGBP.60.Minute
    Order has been filled - adding stop.
    6/3/2014 2:00:18 AM Entered internal PlaceOrder() method at 6/3/2014 2:00:18 AM: BarsInProgress=1 Action=BuyToCover OrderType=Stop Quantity=0.1M LimitPrice=0 StopPrice=0.8125'5 SignalName='Stop loss' FromEntrySignal='Short Position'
    
    
    ###### Short Stop: 0.81255 #########
    New York: 6/3/2014 2:00:18 AM Eastern Daylight Time
    New York session is inactive.
    London: 6/3/2014 7:00:18 AM GMT Daylight Time
    London session is inactive.
    Tokyo: 6/3/2014 3:00:18 PM Tokyo Standard Time
    Tokyo session is active.
    Instrument: EURGBP.60.Minute
    Close: 0.8121
    Average Fill Price: 0.8121
    Theoretical Entry Price: 0.81205
    ISL in full ticks: 5
    Real stop loss in handles: 0.0005
    Setting short stop to 0.81255
    Execution: Execution='73cfc6e7abbb42069c80ecae92bd4b82' Instrument='$EURGBP' Account='HeisenbergFX' Name='Short Position' Exchange=Default Price=0.8121 Quantity=0.1M Market position=Short Commission=0 Order='e673b2615e6c46caa1b6bd6e3a8aceef' Time='6/3/2014 2:00:18 AM' Multiplier=1E-05 Rate=1.6746
    Short stop: 0.81255
    Stop order: Order='f37fac5409a745f9b4c4b9af18f9198f/HeisenbergFX' Name='Stop loss' State=PendingSubmit Instrument='$EURGBP' Action=BuyToCover Limit price=0 Stop price=0.81255 Quantity=0.1M Strategy='Heisenberg' Type=Stop Tif=Gtc Oco='' Filled=0 Fill price=0 Token='f37fac5409a745f9b4c4b9af18f9198f' Gtd='12/1/2099 12:00:00 AM'
    Stop order Action: BuyToCover
    Stop order Price: 0.81255
    Current Bid: 0.8121
    *Current Ask*: 0.8121
    B/A Spread: 0 ticks.
    ##################################
    
    EURGBP.60.Minute
    Order has been filled - adding stop.
    6/3/2014 2:00:18 AM Entered internal PlaceOrder() method at 6/3/2014 2:00:18 AM: BarsInProgress=1 Action=BuyToCover OrderType=Stop Quantity=0.2M LimitPrice=0 StopPrice=0.8125'5 SignalName='Stop loss' FromEntrySignal='Short Position'
    6/3/2014 2:00:18 AM Amended matching order: Action=BuyToCover OrderType=Stop Quantity=200000 LimitPrice=0 StopPrice=0.8125'5 SignalName=Stop loss' FromEntrySignal='Short Position'
    
    EURGBP.60.Minute
    Order has been filled - adding stop.
    6/3/2014 2:00:19 AM Entered internal PlaceOrder() method at 6/3/2014 2:00:19 AM: BarsInProgress=1 Action=BuyToCover OrderType=Stop Quantity=0.3M LimitPrice=0 StopPrice=0.8125'5 SignalName='Stop loss' FromEntrySignal='Short Position'
    6/3/2014 2:00:19 AM Amended matching order: Action=BuyToCover OrderType=Stop Quantity=300000 LimitPrice=0 StopPrice=0.8125'5 SignalName=Stop loss' FromEntrySignal='Short Position'
    
    EURGBP.60.Minute
    Order has been filled - adding stop.
    6/3/2014 2:00:19 AM Entered internal PlaceOrder() method at 6/3/2014 2:00:19 AM: BarsInProgress=1 Action=BuyToCover OrderType=Stop Quantity=0.4M LimitPrice=0 StopPrice=0.8125'5 SignalName='Stop loss' FromEntrySignal='Short Position'
    6/3/2014 2:00:19 AM Amended matching order: Action=BuyToCover OrderType=Stop Quantity=400000 LimitPrice=0 StopPrice=0.8125'5 SignalName=Stop loss' FromEntrySignal='Short Position'
    
    EURGBP.60.Minute
    Order has been filled - adding stop.
    6/3/2014 2:00:20 AM Entered internal PlaceOrder() method at 6/3/2014 2:00:20 AM: BarsInProgress=1 Action=BuyToCover OrderType=Stop Quantity=0.5M LimitPrice=0 StopPrice=0.8125'5 SignalName='Stop loss' FromEntrySignal='Short Position'
    6/3/2014 2:00:20 AM Amended matching order: Action=BuyToCover OrderType=Stop Quantity=500000 LimitPrice=0 StopPrice=0.8125'5 SignalName=Stop loss' FromEntrySignal='Short Position'
    
    EURGBP.60.Minute
    Order has been filled - adding stop.
    6/3/2014 2:00:20 AM Entered internal PlaceOrder() method at 6/3/2014 2:00:20 AM: BarsInProgress=1 Action=BuyToCover OrderType=Stop Quantity=0.6M LimitPrice=0 StopPrice=0.8125'5 SignalName='Stop loss' FromEntrySignal='Short Position'
    6/3/2014 2:00:20 AM Amended matching order: Action=BuyToCover OrderType=Stop Quantity=600000 LimitPrice=0 StopPrice=0.8125'5 SignalName=Stop loss' FromEntrySignal='Short Position'
    
    EURGBP.60.Minute
    Order has been filled - adding stop.
    6/3/2014 2:00:24 AM Entered internal PlaceOrder() method at 6/3/2014 2:00:24 AM: BarsInProgress=1 Action=BuyToCover OrderType=Stop Quantity=0.7M LimitPrice=0 StopPrice=0.8125'5 SignalName='Stop loss' FromEntrySignal='Short Position'
    6/3/2014 2:00:24 AM Amended matching order: Action=BuyToCover OrderType=Stop Quantity=700000 LimitPrice=0 StopPrice=0.8125'5 SignalName=Stop loss' FromEntrySignal='Short Position'
    
    EURGBP.60.Minute
    Order has been filled - adding stop.
    6/3/2014 2:00:24 AM Entered internal PlaceOrder() method at 6/3/2014 2:00:24 AM: BarsInProgress=1 Action=BuyToCover OrderType=Stop Quantity=700,001 LimitPrice=0 StopPrice=0.8125'5 SignalName='Stop loss' FromEntrySignal='Short Position'
    6/3/2014 2:00:24 AM Amended matching order: Action=BuyToCover OrderType=Stop Quantity=700001 LimitPrice=0 StopPrice=0.8125'5 SignalName=Stop loss' FromEntrySignal='Short Position'
    
    EURGBP.60.Minute
    Order has been filled - adding stop.
    6/3/2014 2:00:28 AM Entered internal PlaceOrder() method at 6/3/2014 2:00:28 AM: BarsInProgress=1 Action=BuyToCover OrderType=Stop Quantity=800,001 LimitPrice=0 StopPrice=0.8125'5 SignalName='Stop loss' FromEntrySignal='Short Position'
    6/3/2014 2:00:28 AM Amended matching order: Action=BuyToCover OrderType=Stop Quantity=800001 LimitPrice=0 StopPrice=0.8125'5 SignalName=Stop loss' FromEntrySignal='Short Position'
    
    ... etc..
    
    (full log enclosed as text file)
    Attached Files

    #2
    Hello molecool,

    Thanks for your post.

    You can adjust simulation partial fill settings under Tools> Options> Simulator

    Enforce partial fills
    Enables or disables the forcing of partial fills on each order. If enabled, orders will always get filled with partial fills. When disabled orders are filled completely or partially depending on trade volume.

    After adjusting the settings your will need to reset the simulation account however partial fills is still possible depending on the volume.
    BrandonNinjaTrader Customer Service

    Comment


      #3
      Originally posted by NinjaTrader_Brandon View Post
      Hello molecool,

      Thanks for your post.

      You can adjust simulation partial fill settings under Tools> Options> Simulator

      Enforce partial fills
      Enables or disables the forcing of partial fills on each order. If enabled, orders will always get filled with partial fills. When disabled orders are filled completely or partially depending on trade volume.

      After adjusting the settings your will need to reset the simulation account however partial fills is still possible depending on the volume.
      Five years and counting and I still discover new hidden features in NinjaTrader - very cool!



      However, I checked and the flag was not set on that system. So what do you think happened?

      Now obviously this will affect me with a 'real' account - so I take it this is normal behavior and I need to find a workaround for my messaging code that accounts for this, correct?

      Thanks for the quick response.
      Last edited by molecool; 06-03-2014, 03:58 PM.

      Comment


        #4
        Hello molecool,

        Thanks for your reply.

        That is correct, with your code this would be expected to happen in the live market when partial fills occur.
        BrandonNinjaTrader Customer Service

        Comment


          #5
          Originally posted by NinjaTrader_Brandon View Post
          Hello molecool,

          Thanks for your reply.

          That is correct, with your code this would be expected to happen in the live market when partial fills occur.
          You're too fast!!! :-)

          I just added to my response - it seems it was turned off actually! So how come I got partial fills? And how come it only happened on the way out - I didn't see anything in the logging that suggested that the entry was partially filled as well. Thanks in advance.

          UPDATE: Just saw this in the email you sent me:

          "When disabled orders are filled completely or partially depending on trade volume."

          That explains it. Thanks.
          Last edited by molecool; 06-03-2014, 04:01 PM.

          Comment


            #6
            Hello molecool,

            Thanks for your reply.

            You could still expect partial fills in sim when this is unchecked depending on the market volume.
            BrandonNinjaTrader Customer Service

            Comment

            Latest Posts

            Collapse

            Topics Statistics Last Post
            Started by Kaledus, Today, 01:29 PM
            0 responses
            1 view
            0 likes
            Last Post Kaledus
            by Kaledus
             
            Started by PaulMohn, Today, 12:36 PM
            1 response
            14 views
            0 likes
            Last Post NinjaTrader_Gaby  
            Started by yertle, Yesterday, 08:38 AM
            8 responses
            36 views
            0 likes
            Last Post ryjoga
            by ryjoga
             
            Started by rdtdale, Today, 01:02 PM
            1 response
            6 views
            0 likes
            Last Post NinjaTrader_LuisH  
            Started by alifarahani, Today, 09:40 AM
            3 responses
            17 views
            0 likes
            Last Post NinjaTrader_Jesse  
            Working...
            X