I know that the FIX protocol specifies user defined fields that cover the range 5000 to 9999. The same specification says, that you can use the tags 20000 to 39999 bilaterally between parties.

In December 2009 the Global Technical Committee Governance Board approved the use of tag numbers in the 20000 to 39999 range for use as user defined tags to be used bilaterally between parties.

But tags between 10000 and 19999 are also used – for example Trading Technologies uses tag 18214 as IncludeNumberOfOrders in MarketDataRequest (V).

Can somebody explain the usage of tags 10000 to 19999 and give an overview to the current tag ranges of the FIX protocol specification?

Tag numbers from 10000 to 19999 are also user defined but should only be used internally, i.e. actually you should not talk to counterparties using these tag numbers. But if for example you have intra-firm FIX connections you could use these tag numbers to convey information.

The tag numbers greater than or equal to 10000 have been reserved for
internal use (within a single firm) and do not need to be
registered/reserved via the FIX website.

Source: FIX Protocol website: user-defined fields

Edit: so if TradingTechnologies uses a tag between 10000 and 19999 for external communication it is actually discouraged.