MultiCharts’ DOM – tell us how you want it

Dear traders,

As many of you may know, we are developing our manual trading, and the Depth Of Market (DOM) is a big part of it. Our goal is to give you what you want, so we would like to conduct a poll among traders who will end up using the DOM every day.

We have a choice to make right now:

Option 1 – Make a completely ‘dynamic’ DOM, which will automatically re-center on the current price with each new quote. This means the price levels will be constantly shifting, with the current price always in the middle. Holding the mouse pointer over the DOM will ‘freeze’ it, and prevent from shifting until the mouse is moved away.

Option 2 – Make a ‘semi-dynamic’ DOM, which will automatically re-center ONLY when the price hits the upper or lower boundary of the visible space. This means the current trade price will NOT always be in the center, but will travel up and down the DOM. The price levels and the price axes will remain static. You can also force re-centering by double-clicking.

Please leave your comments and let us know what you want! Tell us which option you want, and, most importantly, the reasons why you choose it. We will gauge the response and make it the way our traders want it to be.

Stan Bokov,

MultiCharts, LLC.

51 thoughts on “MultiCharts’ DOM – tell us how you want it

  1. Big Mike

    Assuming static is not an option due to TT royalties.

    I hate dynamic DOM’s, so as non-dynamic as possible would be my vote. The idea of re-centering only when price scrolls off the ladder would be fine for me. But I definitely do NOT want a DOM where price is constantly centered.


  2. Pingback: [MultiCharts] MultiCharts, MultiCharts, MultiCharts... - Page 32

  3. Big Mike

    Sorry, I just realized you said “most importantly, the reasons why…” so I guess I should elaborate 🙂

    My main reasons why are because I am very price action oriented, I set stops and targets at specific price levels, I get used to seeing those levels on my DOM and don’t want them constantly changing up and down.

    The other main reason is I am lazy and don’t want to freeze a moving DOM before placing new orders, modifying stops or targets, etc. And you would have to freeze it every time or risk an unpleasant surprise.

    Thanks for asking for input.

    Looking forward to seeing the beta!


    1. Stan_MultiCharts Post author

      Dear Mike,

      Thanks for your input. The DOM will freeze when the mouse hovers over it in both instances, you don’t have to freeze it manually. We will put your vote in with the “as non-dynamic as possible” option 🙂

  4. vegasfoster

    I think it should be fully customizable. You should be able to select the number of rows displayed, the number of rows the price has to move before it centers, and the resolution of each row, e.g. 1 tick, 2 ticks, 5 ticks, etc. That way it can be fully static, fully dynamic, or anywhere in between. It would also be nice to be able to adjust the row resolution using control scroll wheel or other selected key combination so you can quickly zoom in and out.

    1. Stan_MultiCharts Post author

      Dear vegasfoster,

      We appreciate your dedication to a fully customizable interface. We share the same view, although sometimes it’s harder to achieve than it appears. What would be the purpose of specifying the number of rows before the price centers? It would make sense to either have fully dynamic (always centered), or auto-recenter when the price hits an edge. Please explain.

      1. Pablo Sanchez

        Hi Stan,

        As a multicharts user I’m pretty keen for this new addition as I’m a rules based discretionary trader myself.

        I agree with vegas in that full customisation would be a great feature, and allow me to create a different DOM dependant on the instrument and the average volatility of said instrument. The idea of being able to zoom in and out, say from viewing 40 rows of price levels, to 60,70,80,100, etc rows of price levels could be very beneficial in extremely volatile or fast moving markets.

        A quick example would be the flash crash this year. I was trading through a DOM, and it was near impossible for me to enter order as usual due to the extreme volatility. In the end i widened stops and got orders filled, but then tracking them on the DOM was difficult. A fully customisable DOM with zoom ability would have made this a walk in the park.

        For me, I find the auto-recentre annoying when I’m moving stops, targets, etc at my discretion, and would prefer the auto re-centre when price hits the edge of DOM, with the ability to specify how far that edge is away from the centre and how many price levels it has…


        1. Stan_MultiCharts Post author


          Thing is, data feeds provide only a certain amount of depth through their APIs. It is very rare to see a provider who will provide 40 rows of price data.


  5. Sam

    Option 2 !
    It’s just impossible to trade with Option 1, in volatile/fast markets, you’re very quickly lost.
    The idea of a resolution in tick, from the previous comment, is very good.

  6. snoop

    My preference is static.
    Static DOM allows for precise price selection without the risk of error that dynamic DOM is prone to in a fast moving market.
    If it is a fast moving market, I’m assuming I’ll have an option for “market order”.
    I never want the DOM auto centering for me.

  7. Stan_MultiCharts Post author

    There are some interesting nuances here, especially in terms of word definitions. In the trading software world companies have argued a lot about the terms “static” and “dynamic”. Trading Technologies currently has a patent for a ‘static’ DOM and filed a lawsuit against eSpeed, Inc and ECCO LLC, alleging a violation of their patent rights.

    In the courts they hammered out a definition of what ‘static’ means, for all of us to know. In decision by United States Court of Appeals for the Federal Circuit (TT vs eSpeed, 2008-1392, -1393, -1422), it was found by the judges that ‘static’ means a DOM that NEVER moves, unless acted upon by the user (by a click, a button, etc). Anything that does any sort of automatic re-centering does not fall under that category. TT’s trading platform, X-Trader, has a static DOM, but other trading software cannot implement it without paying royalty fees (which increase the end cost for the consumer).

  8. J Sever

    You absolutely MUST, I repeat ** MUST ** include an option for a DOM that has the price always centered, where the bid/ask are always in the same spot. It never ceases to amaze me how many traders don’t understand the power of this setup. There is a program called AutoHotKey which I use extensively in conjunction with NinjaTrader, which allows me to set up key combinations for doing things like placing orders at the bid or ask, not to mention multiple combinations of clicks on the DOM for more complex order setups. I can place double bracket stop orders, limit orders right between the bid and ask for instruments that have space in between those levels, and many other useful things.

    This type of order placement is only possible if the bid/ask is centered on the DOM and does not move. No scalper in their right mind would use your platform (including me) if you do not include this feature, as it would make placing rapid and precise orders next to impossible. I am not about to chase the market around on the DOM with my mouse like some kind of stupid newbie trader, as this setup along with tool like AutoHotKey gives me a HUGE advantage over other traders in fast-moving markets. I absolutely will not trade without the ability to specify precise hotkey combinations like this, so if you don’t include this option, you will definitely lose my business, and the business of every other short-term scalper who trades instruments like CL/DAX or any other fast-moving contract. Even if you include your own hotkeys setup, you will still need to have a DOM like this to allow us to quickly enter orders around the market price in ways you may not have thought of or coded up explicitly as a hotkey combination.

    While we are at it, it would be really nice to be able to specify some hotkeys for limit orders at the bid and/or ask, plus or minus a certain amount. The DOM with a fixed bid/ask position takes care of most things along with AutoHotKey, but since the bid will tend to rise and fall even if the ask is fixed, it still makes it slightly imprecise when trying to place an order at the bid plus one tick, for example. So if you could have hotkeys for different orders like like bid + 1 tick, bid + 2 ticks, ask minus 1 tick, ask minus 2 ticks, that would be great!)

    In summary, having a DOM with a fixed bid/ask is not just an option, you absolutely MUST include it unless you want to alienate a whole group of short-term traders. That’s my advice!

    P.S. Thanks for setting up this page and asking our opinion, it shows that you are dedicated to putting in what your customers want. I am waiting to see how you guys implement your DOM and chart trader before I buy your platform, but if you do it well I will be switching from NT.

    1. Stan_MultiCharts Post author

      Dear J Sever,

      We really appreciate your input and the time you took to share your opinion. You present a very good case for a fully dynamic DOM, as well as some interesting suggestions.

      Could you provide a specific use case for us to study? The more specific you are about your setup and what you want, higher the likeliness that you will get what you want. If you could outline step by step what you do, which keys you use and what orders you place that would be a great help. An example situation: “I place at the same time 2 limit orders at ask -1 tick, bid +tick, and I use Alt+H to do so. Then when one gets filled, the other is automatically cancelled”.

      Something like this would save us a lot of time in trying different things. Your input is appreciated.

      1. J Sever

        Thanks for the response Stan – I will definitely get back to you guys on this, as I am a little busy at the moment and just noticed your message. I will write something up describing my hotkeys and post it here for you, or email it to you if you prefer…

  9. J Sever

    Just a follow up: I think you guys are really going to have to implement both types of DOMs, like NinjaTrader does. If you just copied what they have I think everyone would be happy. You are going to end up losing traders if you only make one type of DOM, no matter which type you choose.

    1. 4evermaat

      I agree with J Sever. Implement both types of DOMs, fully customizable. if you use a static DOM, ensure that the new price flashes somehow (either the entire row background color change) for the new bid and ask. Or the same logic for the dynamic dom . Make it fully customizable like vegasfoster said. Include many checkboxes at the top/bottom of the dom to switch things on and off.

  10. gtradz

    My preference is as Non-Dynamic as possible. Big Mike summarized well the reasons. I wouldn’t like the target/stop prices constantly moving around. Dynamic just doesn’t feel natural in my experience, likely setting the stage for order entry errors (especially in a fast market).

  11. Gary

    I agree with J Sever’s second post. You will need to include everything Ninja has, and preferably ‘and some’ to boot. This will ensure none will complain about losing the features your competitor already has, and ensure your product will be competitive, and quite possibly a nice replacement for the competition. Can you share more information on how much programming is involved with the DOM? Is this a 3 month project or 1 year or ?

  12. J Sever

    Also, another idea: you could create a DOM that showed the volume at each level as a horizontal bar, in addition to displaying it as a number (i.e. longer bar = more contracts bid/offered). That way you could easily tell at a glance which levels had more/larger orders without having to interpret the numbers as digits, which is not easy to do in real-time. I have seen this before on other platforms, but Ninja doesn’t have it, so if you could implement it that would give you an advantage.

      1. snoop

        Yes, I like the concept though I don’t have a particular problem with interpreting numbers. On a related note, it would be worth investigating some of the simpler concepts in buttontrader. There is value in lining up the price ladder with a chart. Documentation is freely available at

  13. johnl

    I currently feed IB depth into excel, perform various calculations on the levels and save the result to a contract in QM. I would like sum form of ability to save dom data to a psuedo contract in QM

  14. Gil Men

    OK 100% with J Server, don’t forget hotkey ! in fast moving market hotkey is better than mouse ….

    1. Stan_MultiCharts Post author

      Mike definitely looks like a consensus on Option 3 🙂
      We will investigate what can be done – there only may be room for one option. We are currently researching all possible uses, and suggestions from users.

  15. Stan_MultiCharts Post author

    Hi all,

    Could all users requesting HotKey support please provide a list of all features that need hot keys…. possible combinations would be Ctrl and/or Alt and/or Shift AND any other button.
    -market order
    -limit order bid +1 point
    -limit order ask -1 point
    , etc.

    That would help a lot with the design of this feature.

    1. snoop

      Hotkeys for order entry, at a minimum should include:
      Buying at Ask, Bid, Mkt and Selling at Ask, Bid, Mkt, using a default qty
      Cancel last order, Cancel All
      Adjusting price up or down (by default ticks) and mkt on last order is a must too.

      I haven’t seen this mentioned but I’m assuming bracketing strategies are part of the manual order entry offering. Hotkey functions should extend to the bracket strategies.

      Most trading apps that utilize hotkeys allow the user to specify what key sequence executes a specific command (ctrl, shift, alt combo + any key), thereby putting the user in control of the association that works best for them.

    2. J Sever

      Hi there Stan…

      Thanks again for being so responsive to your customers, it is a breath of fresh air after dealing with stubborn NinjaTrader management for so long.

      Here are the hotkey combinations that I would use:

      (I am assuming here that you guys are going to have strategies in place so that multiple orders can be submitted at once… for example, I can select a strategy that always places a stop order a certain distance away from the market when I enter a trade in NinjaTrader. I am assuming that you will have the same thing available, as I don’t want to have manually place my stop order every time.)

      Market Orders
      Buy at Market
      Sell at Market

      Limit Orders
      Buy at bid plus or minus a certain offet (bid + 1 tick, bid + 2 ticks, bid – 1 tick, bid -2 ticks, etc.). You should have at least 4 user-definable hotkeys for this feature alone.

      I would end up doing something like the following with my levels:

      Buy at Bid + 0 ticks (i.e. buy exactly at bid)
      Buy at Bid + 1 tick
      Buy at Bid + 2 ticks
      Buy at Bid – 1 tick (i.e. one tick lower than bid)

      The same should be at the ask:

      Sell at Ask – 0 ticks (i.e. sell exactly at ask)
      Sell at Ask – 1 tick
      Sell at Ask – 2 ticks
      Sell at Ask + 1 tick (i.e. one tick higher than ask)

      In addition to these keys, you should have another 4 hotkey slots specified for buying at the ask, and 4 more for selling at the bid. These are also user configurable. It’s not likely that a user would have all of these defined, but there is no harm in allowing them to do so:

      Buy at Ask + 0 ticks
      Buy at Ask – 1 tick
      Buy at Ask + 5 ticks
      Buy at Ask + 10 ticks

      Sell at Bid – 0 ticks
      Sell at Bid + 1 tick
      Sell at Bid – 5 ticks
      Sell at Bid – 10 ticks

      Remember that these values should be user-settable, the offsets shown here are just my examples.

      Stop Orders
      At least 2 configurable buy stop and sell stop orders, triggered from the level of the bid and ask:

      Sell stop at Bid + 6 ticks
      Sell stop at Bid + 11 ticks
      Buy stop at Ask + 6 ticks
      Buy stop at Ask + 11 ticks

      Bracket Stop OCO Orders
      Place Buy stop above the market AND sell stop below the market, at a configurable distance away (6 ticks and 11 ticks), with OCO implemented

      (By the way, Zen-Fire now supports or will soon support server-side OCO… can you please make sure that your code will support this too? That would be a huge advantage over NT at the moment.)

      Toggle Orders
      Toggle stop order to reverse (so for example if you have a sell stop order in the market for 10 contracts, it changes it to 20 contracts, and toggling the key again changes it back to 10 contracts). This is done to implement “stop-and-reverse” functionality. (i.e. you are long 10 contracts, you toggle your 10 contract stop to reverse, so that order changes to “sell 20”, which will gets you short 10 contracts when it is hit)

      Toggle take profit order to reverse (this is for bracket orders, which have a profit target as part of the OCO strategy: works the same as Toggle Stop above, but reverses the profit target order instead)

      Reverse Orders
      – Reverse current position (long to short, or vice-versa)
      – Reverse current position and then toggle stop order of that new position to Reverse as well

      Exit/Cancel Orders
      Exit all positions and cancel all open orders
      Cancel all open orders (buy and sell)
      Cancel all open buy orders
      Cancel all open sell orders
      Exit all positions and place buy stop above the market
      Exit all positions and place sell stop below the market

      Strategy Orders
      Change selected strategy (this means that if my selected strategy is to always place a stop order 7 ticks away after I enter a trade for example, I can select a new strategy with a hotkey which will now have all stop orders placed 10 ticks away after I enter the market.)

      You should really check out NinjaTrader’s DOM with its strategy selection drop-down, and see that works as a model.

      Anyways, that’s about it… You can see that a couple of these orders are fairly unique, which is exactly why having a DOM with a centered bid/ask that doesn’t move is so important – it allows me to create my own hotkey combinations without you guys explicitly programming it into the system.

      Thanks for listening!

      1. Stan_MultiCharts Post author

        Hi J Sever,

        Thank you very much for the detailed description. It will help us when we get started with this feature. Actually, you have helped us decide that we will probably implement a fully customizable environment for hot keys in MultiCharts. This will happen likely some time early next year.

  16. MC_Prog

    I fail to see why “Option 3: all of the above, and then some” is anything but obvious, natural, and straightforward to implement.

    The DOM re-centers when told to (i.e. on a software signal), yes? IOW, the DOM knows how to recenter itself, and does so on a software signal.

    Well, that software signal can come from:

    1. each new quote
    2. price hitting an upper/lower boundary
    3. user clicking a button
    4. a timer
    5. etc.

    Simply implement as many sources for the “recenter signal” as can be reasonably thought of, and let the user enable/disable each source.

    If it takes too long to implement them all for the first release, fine – just start somewhere and finish up later.

    If your DOM is not being built to recenter on an arbitrary signal, regardless of source, then it probably needs to be re-designed immediately before going even further down the wrong road.

    BTW, you achieve compliance with the court’s patent decision by requiring at least one recenter signal to be enabled (i.e. the user can’t leave the DOM to be pure static).

  17. marmun

    I vote for Option 2 (a static DOM) but having this feature configurable by the user would be better if time/resources permit.

    Other nice-to-haves:

    1. Mouse/Keyboard buttons are configurable to submit (and cancel) orders with one click or with confirmation, if preferred.
    2. Also configurable is which button (e.g. Left or Right Mouse) submits Limit/Stop/Stop wLimit/OCO/Bracket orders etc.
    3. The ability to place just an OCO order without needing to place an opening order (as is needed for a Bracket).
    4. Most platforms automatically cancel both legs of a Bracket order when either leg is canceled. A few (like OpeneCry) allows just one leg to be canceled. Having this configurable would also be helpful.
    5. The ability to ‘temporarily’ override the automatic Bracket/Trailing Stop order (to become a Limit or Stop order) by submitting with a mouse click while holding down Ctrl (or Shift or Alt) Key (again, this should be configurable). Automated Bracket/Trailing Stop setting is resumed after the Ctrl (or Shift or Alt) Key is no longer held down. This option is possible on IB’s TWS.

  18. Tresor

    I think we are forgeting something. There are traders like myself who like to trade manually but dislike to have a DOM and its features: I dislike to look at constantly changing digits (eyes are hurting).

    For us it is fine not to have a DOM, but just a few buttons like:
    (i) buy
    (ii) sell
    (iii) exit
    (iv) etc.

    I think that MC should have an option on non-DOM manual execution.

  19. Tresor

    Problem: In decision by United States Court of Appeals for the Federal Circuit (TT vs eSpeed, 2008-1392, -1393, -1422), it was found by the judges that ‘static’ means a DOM that NEVER moves, unless acted upon by the user (by a click, a button, etc).

    Solution: Allow the DOM to move for the first 3 seconds after opening MC. Then make it non-movable. This way you will not violate ‘NEVER moves’ stipulation.

    1. Stan_MultiCharts Post author

      The key argument was that a moving DOM created a danger of of misplacing a trade, and poses a risk of losing money by accident. That’s why there is a patent on the static DOM. If we go as per your suggestion, then we are much closer to violating the patent, then to not violating it. A DOM that moved only for 3 seconds would essentially be the same thing as a static when you look at its actual performance, which is grounds for a lawsuit.

  20. Anish

    I may be totally off center here and if i am then please ignore. Would it not be possible to have the DOM built right into the chart window running down the side with price, instead of having it as a separate window. Whenever i used the DOM in NT i always though it would be nice to see it directly in correlation to my chart price action in the same scale and then you could turn it on or off whenever you want to. Also would be nice to be able to put levels in ie. Pivot points. Murray math, S/R lines maybe as colored cells or rectangles within the DOM.

    1. Stan_MultiCharts Post author

      Hi Anish,

      If you have the DOM side by side with the appropriate chart, you will see direct correlation. However, we need to allow the ability to visually trade one instrument, and trade another through the DOM, that’s why they are separate.

      As far as I know, indicators will not be implemented in the DOM, but automated entry and exit strategies will available for use in MultiCharts 7.0 beta 1.

  21. Gil Men

    just a few ideas on managing the keyboard:
    all keys must be programmable, you can choose size,color of key, police type and color

    all trader cam make their own virtual keyboard (every customer will be happy with his keyboard)

    all keys have position,size,function,hotkey,macro,and default offset.

    cherys on the cake powerlangage vars can be used as default value on key label(you can preset a value for buy order and use offset key to send you order without changing you powerlangage code, just change offset key on live trading.

    Make a keymap editor tools, and trader make his screen keyboard as he want 😀

    look at button trader software for key macro idea 😉

    multiple orders by one key ….

  22. Glenn

    I would like to be able to have strategys on the dom like ninja trade has
    For example if If I am placing a order and set up using 2 contracts my strategy make be as follows 8 tick stop with 1st contract target is 5 ticks and second contract set to 10 ticks. When my first contract hits its target of 5 ticks my stop automatically moves up to break even(without having to manually move the stop) or can have b/e plus 1 and also trail if want to. I guess would say what ninja has the ability to do can MC do the same
    The atm strategies in ninja are a must for me, but not sure about others

  23. Stan_MultiCharts Post author

    Thank you all for taking the time to share your thoughts and opinions with us!

    Thanks to the input received in this thread, we have decided that we will incorporate TWO modes of the DOM in MultiCharts 7, and let the users pick which one they like.

    There will be a semi-static DOM, which will recenter one the price hits the upper or lower boundary of the DOM. This mode is already available in the Pre-Alpha release of MultiCharts 7. There will also be a dynamic mode, which will recenter the price after each received tick.

    We have come to the conclusion that more choices is always better than fewer.Freedom of choice has always been the founding idea behind our trading software, and we’ll keep it that way.

  24. FogChaser

    My vote: Static DOM with a button for manual centering and a clickable option to turn auto-centering on/off. Dynamic DOM constantly jerking around is a terrible thing. Look at Infinity AT DOM for an example of a very usable DOM implementation.

    Also and VERY importantly, PLEASE implement Time and Sales. This is an essential funtionality for manual trading. The T&S has to allow multiple windows, slectable fields, and filtering for trade size.

  25. Keele

    As a scalper, i would definitely like a DOM as static as possible…so the semi-dynamic gets my vote. May i also suggest some ways to make it “more static” hopefully w/o infringing the TT patent:
    1) Make the DOM recenter only when the last price of the depth hit the boundaries of the DOM (rather than the 1st price as it is now).
    2) Force a recenter, say, every X second (where u can change the default to say, a max of 10000 sec but can never set it to zero)

    Other things i like:
    1 key to recenter all DOMs
    Hotkeys to delete best bid/offer

  26. Clef

    I do not see how to configure DOM. I want to change the default order type from market to limit orders.

Comments are closed.