Skip to main content

Bookmap API

API modules

Bookmap supports two API types: the Addons API (also called the L1 or Layer 1 API) and the Connect API (also called the L0 or the Layer 0 API).
See the below table for differences.

L1 / Addons APIL0 / Connect API
UsageCreate custom add-ons (indicators, trading strategies)Create custom market data and trading connections
DetailsDevelop add-ons such as indicators, alerts, trading strategies, etc. Such add-ons can be used in real time and in replay, and in general don’t depend on data source type (unless it uses a know-how specific for some data source)Develop adapters that connect Bookmap to additional market data and/or trading services such as digital/crypto exchanges, market data vendors, brokers, order management systems (OMS), etc.
Extensions“Intercept / Inject” mode - override upstream and downstream market data and trading messages. See below some of the use cases. Another extension of this API is a “Simplified” development framework which makes addon development easier. In alpha stage is also our new Python API.Quant solution - Allows to connect Bookmap to proprietary market data and trading sessions for debriefing, development, real-time monitoring of trading systems. It also includes a collection of useful tools for the quantitative finance industry, especially HFT.

Addons API (L1)

Depending on code complexity and features, there are two types of L1 API:

Simplified API

  • Ideal for beginners with many examples.
  • Lacks "inject" and "data editor" mode support.
  • Available in both Java and Python.

Getting Started:

Core API:

  • More intricate with fewer examples.
  • Supports "inject" and "data editor" mode to modify data sent to Bookmap.
  • Prior experience with the Simplified API is advised.

Getting Started:

  • Read the DemoStrategies project readme.
  • View examples in the DemoStrategies simple-demo sub-package.

Connect API (L0)

To develop adapters using the L0 API, you must qualify under the Quant solution or Connect solution category. After approval, you can implement your custom L0 API adapters in Bookmap.

Getting Started with L0 API:

Resources:

FAQ

1. How can I create an add-on or adapter in languages other than Java?

  • Using the Python API, you can develop L1 add-ons in Python. Other OS interprocess communication methods, including web sockets and JNI, are also supported. However, you can load a minimal Java module as a proxy agent.

2. How does Bookmap handle order routing and market data?

  • Bookmap doesn't route orders or real-time market data through its servers*, it acts as a front-end connecting directly to the destination using user-configured credentials.
  • *The exception is Bookmap Data connections, our custom solution.

3. What trading strategies can be designed using the Bookmap API?

  • There are no restrictions. Implement any business logic or complex orders management. However, always be aware of risks, especially those associated with latency. Traders must always consider the worst case scenarios in regards to their orders.

4. What are semi-automatic trading strategies in Bookmap?

  • Bookmap API allows trading strategies to “intercept” and manage / modify orders, sent by the user from the chart. This mode may also appear as “inject” mode. It can be useful, for instance, for randomizing the take-profit & stop-loss distances. Another example is a risk module, Note, however, that Bookmap expects valid feedback about the status of all orders sent from the chart. It’s the responsibility of such a strategy to provide this feedback.

5. Can I use real-time data for API development?

  • For Crypto, real-time data is available. However, for stock and future API developments you should use delayed data due to vendor and exchange limitations.

6. Can I use the developed products for non-display purposes?

  • Stock and future developments are solely for display. For non-display use of stock or future data, acquire the necessary license from the relevant data vendor.

For additional queries, please email support@bookmap.com.