Announcement

Collapse
No announcement yet.

Partner 728x90

Collapse

Ghost orders -- Is this the cause?

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

    Ghost orders -- Is this the cause?

    Network latency.

    That's probably a big underlying cause of why ghost orders happen,
    and probably why some people report that trading on a VPS (with
    its extremely low latency) eliminated their ghost order problem.

    Threads discussing ghost orders (and trade copying) can be found
    here, here, here, and here.

    Ghost orders tend to happen in follower accounts using certain
    trade copiers. Sometimes, opposite positions get opened in
    follower accounts when closing the leader position -- these are
    the 'ghost' orders I refer to -- so why are the followers doing that?

    Is it the fault of the trade copier? Maybe, but probably not.
    It certainly was not coded to do that intentionally.

    Is it the fault of high network latency? Quite probably, yes.
    Remember, orders have to be submitted and acknowledged.
    Excessive network latency presents windows of opportunities
    for the unintended consequences of orders filling that were in
    progress of being cancelled, or opposing market orders submitted
    even though a stop/target filled (and actually closed the position),
    so flat at the broker is not seen fast enough, because slow network
    latency affects acknowledgement, and so the actual closing market
    order used to close the position actually opens a new position in the
    opposite direction.

    I submit evidence here that supports another reason.
    That is, it's not just network latency, the culprit may be hidden in the
    method used to close the leader's position.

    Let's assume some details:
    You are using ChartTrader to enter your orders directly onto the chart.
    You are using ChartTrader 'Close' button to close that position.

    The important detail is not ChartTrader, per se. That is, it is not
    the order entry that we're concerned about. It is the Close button.

    I submit that when you use the Close button to exit the position,
    and you do this when price is close to your target/stop order,
    the actions the Close button takes may actually be exacerbating
    the potential for ghost orders.

    In fact, IMHO, for some traders, the use of the Close button may be
    the primary cause of most ghost order creations.

    So what does the Close button do exactly?

    The NT7 behavior for the Close button is documented here.
    The NT8 behavior for the Close button is documented here.

    Look carefully and you will see that NT7 modifies the target orders
    to above/below market price so they get filled instantly -- then
    submits a market order to exit anything remaining.

    NT8 changed that behavior.

    In NT8, the Close button cancels all orders, waits for the cancel
    confirmation, then submits a market order to exit the entire position.

    In NT8, for fast moving markets, if you press Close very close to
    the target/stop price
    , it's quite possible for those orders to get filled
    anyways, even though a cancel was sent. Then, after the cancel,
    the intended market order to close is submitted (in the opposite
    direction) which is then supposed to exit the position (but the
    position is already flat at the broker, because that stop/target
    actually filled, because things are happening really fast), and
    this close market order actually opens a new opposite position,
    and this new opposite position is the 'ghost' order we sometimes
    see.

    With trade copying, ghost orders usually show up in the follower
    accounts. The trade copier adds its own delays as it loops
    through the follower accounts, sending orders to replicate the
    orders seen on the leader account.

    But, I've actually seen ghost orders happen when trading a single
    Apex/Rithmic eval account, no trade copying involved.

    What to do?
    I suggest you duplicate the NT7 behavior. That is, you manually
    drag your target order to above/below the market price so that it
    fills instantly and exits the position. If you're using OCO (which
    all Atm strategies do), the stop order is cancelled automatically
    when that dragged target order fills. (Naturally, this works best
    when you only have one profit target order to deal with.)

    A by-product of the NT7 way is reducing the chance (actually,
    IMHO, it eliminates the chance) of ghost orders causing an
    unintended and unwanted opposite position.

    The NT8 behavior where Close cancels all orders, then uses an
    extra opposite market order to exit the position introduces an extra
    delay that exacerbates the delays from network latency and trade
    copying.

    The NT7 behavior had no delay, because it doesn't need to wait
    for any cancelled orders. That is, NT7 Close would cancel the stops,
    and adjust the target orders so they fill instantly, but it does not need
    to wait for confirmation of stop order cancellations, it just cancels
    them and immediately adjusts the targets. If there is a delay, it's on
    the back, and somewhat optional, because NT7 needs to wait for all
    modified targets to fill to know whether to submit an extra market
    order to exit anything that remains. That extra waiting to submit an
    extra market order only happens if you have runners.

    In NT8, the Close behavior is inferior because submitting an opposing
    market order to close the position introduces a window of opportunity
    for the cancel and submit to cross paths, like ships passing in the night,
    and once submitted, that market order to exit the position can't be undone.
    So, if a stop/target actually filled (despite being cancelled, sometimes an
    order still gets filled) the opposing marker order opens a position in the
    opposite direction.

    See the difference in Close behavior?

    NT7 uses an extra market order on the back side, and only if necessary,
    meaning after all the modified targets were filled, an extra opposing market
    order is only needed, at the end, to close runners that had no targets.

    NT8 uses an extra market order on the front side, always closing the entire
    position with this opposing market order.

    I submit NT8 Close behavior to 'always use an opposing market order to
    close the position' is inferior because this extra order introduces extra
    delays that worsens the delays from network latency and trade copying.

    Remember, if you're using ChartTrader, I suggest you exit your positions
    by dragging your target order to a price where it instantly fills -- this mimics
    the NT7 behavior of the Close button, and gives little to no opportunity for
    an extra market order to create a ghost order situation.

    -=o=-

    I don't think the NT engineers thought about this Close button behavior change
    well enough when they changed the behavior in NT8 -- remember, trade copying
    was not a big thing yet.

    But trade copying really exposes the new NT8 Close behavior as inferior to
    the old NT7 Close behavior.

    Why was the change made? I don't know. The help guide links I gave above
    don't accurately state why the change was made in NT8. The NT8 help page
    is contradictory regarding the use of a market order, it appears to have too
    much copy-and-paste content from the older NT7 help page.

    ​IMHO, the NT8 behavior of the Close button should be reverted back to the
    older NT7 behavior. The NT7 behavior is ghost busting because it eliminates
    one entire avenue of opportunity for ghost order creation.

    What do you think?

    Just my 2˘.


    Last edited by bltdavid; 03-11-2025, 12:42 PM. Reason: fix links, embed them directly

    #2
    Sounds cohesive to me. And, I hadn’t realised, ghost orders probably coincided with NT8
    Regards,

    Comment


      #3
      Originally posted by bltdavid View Post
      Network latency.

      That's probably a big underlying cause of why ghost orders happen,
      and probably why some people report that trading on a VPS (with
      its extremely low latency) eliminated their ghost order problem.

      Threads discussing ghost orders (and trade copying) can be found
      here, here, here, and here.

      Ghost orders tend to happen in follower accounts using certain
      trade copiers. Sometimes, opposite positions get opened in
      follower accounts when closing the leader position -- these are
      the 'ghost' orders I refer to -- so why are the followers doing that?

      Is it the fault of the trade copier? Maybe, but probably not.
      It certainly was not coded to do that intentionally.

      Is it the fault of high network latency? Quite probably, yes.
      Remember, orders have to be submitted and acknowledged.
      Excessive network latency presents windows of opportunities
      for the unintended consequences of orders filling that were in
      progress of being cancelled, or opposing market orders submitted
      even though a stop/target filled (and actually closed the position),
      so flat at the broker is not seen fast enough, because slow network
      latency affects acknowledgement, and so the actual closing market
      order used to close the position actually opens a new position in the
      opposite direction.

      I submit evidence here that supports another reason.
      That is, it's not just network latency, the culprit may be hidden in the
      method used to close the leader's position.

      Let's assume some details:
      You are using ChartTrader to enter your orders directly onto the chart.
      You are using ChartTrader 'Close' button to close that position.

      The important detail is not ChartTrader, per se. That is, it is not
      the order entry that we're concerned about. It is the Close button.

      I submit that when you use the Close button to exit the position,
      and you do this when price is close to your target/stop order,
      the actions the Close button takes may actually be exacerbating
      the potential for ghost orders.

      In fact, IMHO, for some traders, the use of the Close button may be
      the primary cause of most ghost order creations.

      So what does the Close button do exactly?

      The NT7 behavior for the Close button is documented here.
      The NT8 behavior for the Close button is documented here.

      Look carefully and you will see that NT7 modifies the target orders
      to above/below market price so they get filled instantly -- then
      submits a market order to exit anything remaining.

      NT8 changed that behavior.

      In NT8, the Close button cancels all orders, waits for the cancel
      confirmation, then submits a market order to exit the entire position.

      In NT8, for fast moving markets, if you press Close very close to
      the target/stop price
      , it's quite possible for those orders to get filled
      anyways, even though a cancel was sent. Then, after the cancel,
      the intended market order to close is submitted (in the opposite
      direction) which is then supposed to exit the position (but the
      position is already flat at the broker, because that stop/target
      actually filled, because things are happening really fast), and
      this close market order actually opens a new opposite position,
      and this new opposite position is the 'ghost' order we sometimes
      see.

      With trade copying, ghost orders usually show up in the follower
      accounts. The trade copier adds its own delays as it loops
      through the follower accounts, sending orders to replicate the
      orders seen on the leader account.

      But, I've actually seen ghost orders happen when trading a single
      Apex/Rithmic eval account, no trade copying involved.

      What to do?
      I suggest you duplicate the NT7 behavior. That is, you manually
      drag your target order to above/below the market price so that it
      fills instantly and exits the position. If you're using OCO (which
      all Atm strategies do), the stop order is cancelled automatically
      when that dragged target order fills. (Naturally, this works best
      when you only have one profit target order to deal with.)

      A by-product of the NT7 way is reducing the chance (actually,
      IMHO, it eliminates the chance) of ghost orders causing an
      unintended and unwanted opposite position.

      The NT8 behavior where Close cancels all orders, then uses an
      extra opposite market order to exit the position introduces an extra
      delay that exacerbates the delays from network latency and trade
      copying.

      The NT7 behavior had no delay, because it doesn't need to wait
      for any cancelled orders. That is, NT7 Close would cancel the stops,
      and adjust the target orders so they fill instantly, but it does not need
      to wait for confirmation of stop order cancellations, it just cancels
      them and immediately adjusts the targets. If there is a delay, it's on
      the back Honda Pioneer 700 Rear Windshield, and somewhat optional, because NT7 needs to wait for all
      modified targets to fill to know whether to submit an extra market
      order to exit anything that remains. That extra waiting to submit an
      extra market order only happens if you have runners.

      In NT8, the Close behavior is inferior because submitting an opposing
      market order to close the position introduces a window of opportunity
      for the cancel and submit to cross paths, like ships passing in the night,
      and once submitted, that market order to exit the position can't be undone.
      So, if a stop/target actually filled (despite being cancelled, sometimes an
      order still gets filled) the opposing marker order opens a position in the
      opposite direction.

      See the difference in Close behavior?

      NT7 uses an extra market order on the back side, and only if necessary,
      meaning after all the modified targets were filled, an extra opposing market
      order is only needed, at the end, to close runners that had no targets.

      NT8 uses an extra market order on the front side, always closing the entire
      position with this opposing market order.

      I submit NT8 Close behavior to 'always use an opposing market order to
      close the position' is inferior because this extra order introduces extra
      delays that worsens the delays from network latency and trade copying.

      Remember, if you're using ChartTrader, I suggest you 1win colombia exit your positions
      by dragging your target order to a price where it instantly fills -- this mimics
      the NT7 behavior of the Close button, and gives little to no opportunity for
      an extra market order to create a ghost order situation.

      -=o=-

      I don't think the NT engineers thought about this Close button behavior change
      well enough when they changed the behavior in NT8 -- remember, trade copying
      was not a big thing yet.

      But trade copying really exposes the new NT8 Close behavior as inferior to
      the old NT7 Close behavior.

      Why was the change made? I don't know. The help guide of Adron Fence links I gave above
      don't accurately state why the change was made in NT8. The NT8 help page
      is contradictory regarding the use of a market order, it appears to have too
      much copy-and-paste content from the older NT7 help page.

      ​IMHO, the NT8 behavior of the Close button should be reverted back to the
      older NT7 behavior. The NT7 behavior is ghost busting because it eliminates
      one entire avenue of opportunity for ghost order creation.

      What do you think?

      Just my 2˘.

      Ahhh, quite informative btw despite too long, it's worth the read.
      Last edited by Joeteryse; 05-10-2025, 05:00 PM.

      Comment

      Latest Posts

      Collapse

      Topics Statistics Last Post
      Started by Geovanny Suaza, 02-11-2026, 06:32 PM
      0 responses
      606 views
      0 likes
      Last Post Geovanny Suaza  
      Started by Geovanny Suaza, 02-11-2026, 05:51 PM
      0 responses
      353 views
      1 like
      Last Post Geovanny Suaza  
      Started by Mindset, 02-09-2026, 11:44 AM
      0 responses
      105 views
      0 likes
      Last Post Mindset
      by Mindset
       
      Started by Geovanny Suaza, 02-02-2026, 12:30 PM
      0 responses
      560 views
      1 like
      Last Post Geovanny Suaza  
      Started by RFrosty, 01-28-2026, 06:49 PM
      0 responses
      561 views
      1 like
      Last Post RFrosty
      by RFrosty
       
      Working...
      X