OneChronos
OneChronos
    • Expressive Bidding

    • Introduction
    • Getting Started
    • Expressive Bidding Guide
    • Quickstart Examples
    • Runnable Templates
    • Developer Reference
    • Expressive Bidding FAQ

Expressive Bidding FAQ

Answers to common trading, technical, and workflow questions about Expressive Bidding.

Expressive Bidding with OneChronos

The OneChronos bidding language is a simple programming language that lets you specify a wide range of preferences for how your orders are filled. Bidding languages provide the expressive power of describing what you want over the phone, with the scalability to do so over an arbitrary number of possible outcomes - all within an auction setting. As an intuition for how this works, you can think of a simple limit order as a computer program. To buy 100 shares of a security for at most $20, the program might look like: if (qty <= 100 AND price <= 20) then Buy. From here, imagine you want to buy one security but only if you can also sell another to fund the purchase: if (qty(a) = 100 AND qty(b) = 50), then Buy(a) AND Sell(b).A few examples of trades you can encode using a bidding language:
  • Atomic executions: control how you are filled in two securities at once (like the above)
  • Substitutes: fill for $1,000 of some mix of ‘a’ and ‘b’, in any combination of the two: if (price(a) * qty(a) + (price(b) * qty(b) < 1000).
  • Market Impact Control: pay slightly more to fill the entire parent order for ‘a’, or slightly less to fill a child order: if (qty(a) < 500 AND price(a) < 20) XOR (qty(a) > 10000 AND price(a) < 21)
  • All of the above is pseudocode, not the actual language used for Expressive Bidding. But it’s surprisingly close, and most bids involve just a few lines of code. Note that Expressive Bidding is currently enabled for "Pairs" only (i.e. Expressive Orders consisting of two symbols). For more information, please see our Form ATS-N.

    Some programming knowledge is required to create bidder logic or to modify one of our existing templates. Once a snippet of bidder logic has been created and registered with OneChronos, it can be activated using a FIX tag applied on Limit Orders sent over FIX.

    Bidder logic can be written in ReasonML or OCaml, or use-case-specific languages supported by OneChronos. Don’t worry if you’re not familiar with these languages. Bidder logic can be created using features of these languages that are common in most programming languages. OneChronos has also included several purpose-built helper functions described in the developer reference guide to make things easier.
  • ReasonML guide
  • OCaml guide
  • To get a feel for ReasonML and OCaml syntax, sketch.sh provides a user-friendly web runtime for both languages.

    This site has an abundance of documentation, tutorials, and pre-built examples for learning how to use Expressive Bidding. See the Start Here page for information on where to begin. And you can always reach out to us directly at info@onechronos.com for assistance.

    Not necessarily - some Expressive Bids operate entirely on Target Orders. In those cases, simply applying a FIX tag to each Limit Order to reference the relevant bidder logic will create the Expressive Bid. The FIX documentation describes this process in more detail.If you are accessing OneChronos through a broker, ask your broker about how you might take advantage of Expressive Bidding through them with little to no change in your existing workflow. Subscriber Broker Dealers can use Expressive Bidding to complement their algorithm and smart routing strategies, and may also offer OneChronos as a direct market access (DMA) destination to their customers.

    Yes, you can supply any type of data that can be encoded as a FIX tag value. This data is provided over FIX and is made available to Bidder Logic as a bidder_data function argument.

    We provide a cloud-based testing and simulation environment for this purpose at no cost. Start with the brief walkthrough of the environment, and access an on-demand instance directly at Try OneChronos.

    You can reach out directly to us at info@onechronos.com to begin the process of submitting bidder logic.

    To use or “invoke” bidder logic and create an Expressive Bid in production, send standard FIX Limit Orders with a FIX tag referencing the hash name assigned to the bidder logic submission. You can also link together Target Orders and supply bidder data using additional fix tags. The FIX documentation has a section dedicated to Expressive Bid submission and corresponding FIX tags.