OUCH is a low-level native protocol designed for high performance and minimal latency. In order to achieve optimum functional efficiency and speed, some flexibility is sacrificed. NASDAQ offers other protocols that are more developer-friendly but do not provide the
degree of performance achievable with OUCH.
The protocol works by passing logical messages of specific length between the host and the client application. All messages sent to the host can be retransmitted in the event of a temporary hardware failure or software error. By connecting a single OUCH account to more than one machine, redundancy and fault tolerance are achieved.
OUCH ensures that messages from customers are processed in the same sequence as they are received. Each new order contains a token specifying the date and the name of the account. Once a token has been used, it automatically expires so it cannot be used again. When an order has been placed, executed or canceled and the action has been accepted by the host, an acknowledgment message is sent to the client.
Inbound (client-to-host) messages can include the following types:
- Order entry
- Cross order entry
- Order cancellation entry
Outbound (host-to-client) messages can be more diverse, including:
- Start of day
- End of day
- Time stamp
- Order request
- Order acceptance
- Order rejection
- Order execution
- Cancel pending
- Cancel rejection
- Order cancellation
- Broken trade
- Price correction
According to a NASDAQ representative, the letters in "OUCH" don't stand for anything.