MBT Desktop Remote API Release 1.0.0.0 Beta, December 5, 2011

Overview The MBT Desktop Remote API is a third alternative to development with the MB Trading technology, alongside our COM-based SDK and our OS- and language-independent FIX protocol and Quote API. It provides methods to access the accounting, position and order management interfaces provided by the MB Trading Desktop SDK through a standard, non-OS specific API and is based on TCP communications. Quote services are not available through this API.

Once activated, it sets up a TCP listener on a specific port on the Windows machine that is hosting the MBT Desktop application. Clients can interact with the API via TCP requests made to this listener. While the API itself is language- and O/S-independent, the MBT Desktop application requires a Windows environment on which to run, and the API merely connects to this already-running instance of the hosting MBT Desktop application.

Interaction with the API is accomplished by sending or receiving information in the form of classes that contain the information. These classes are serialized or deserialized by the JSON format. The classes are accessed via TCP by using HTTP methods. Operations are performed using RESTful actions. For example, when reading classes, use RESTful HTTP GET requests. When performing functions that change the state of an account, place orders, etc. use RESTful HTTP POST requests.

SDK events that occur in real-time are communicated through a special, raw TCP channel using a keep-alive mechanism. The set-up and tear-down of this connection is requested via a RESTful HTTP GET request from the client. Once the channel is operating, the client will receive notifications of events through this TCP channel. The information is received via the channel in one direction only. If the client requires more information than provided, the client makes a RESTful GET request to the host.

http://sdk.mbtrading.com/api.asp via GET are Positions, Alerts, Accounts, Routes, Order History. Examples of POST related functions are the submission, replacement and canceling of orders. Preferences are retrievable/settable using both GET and POST. Finally, the developer will use the GET method to establish a channel to receive and handle real-time events.

Installation On the hosting side, the API adds four DLLs to the standard, retail trading platform installer. One of them is registered to the machine via the regasm.exe command line tool that is part of the Microsoft .NET 4.0 framework. This registration is not performed as part of the Desktop installation procedure but instructions are provided.

Requirements
  • The MBT Desktop hosting application must be running in a Windows environment under the .NET 4.0 framework within TCP reach either on the same physical machine or on any remote computer. Physical requirements are the same as depicted on our Platforms \ Downloads page:
    System Requirements

  • No .NET framework is required on the client machine to use the API to communicate with the hosting application.

  • The developer understands that this API is a beta release, has appropriate coding experience and familiarity with involvement with beta software testing, and is willing to provide feedback to MB Trading to assist in its development, in trade for adequate and timely support for any and all questions that arise from its use.

    "I am interested. Where can I sign up?" Please send an email to phil@mbtrading.com, and CC kenny@mbtrading.com. Provide details about your current brokerage accounts and level of trading volume (existing or planned), and your programming environment (VB, C#, Java, etc.) and level of programming experience.

    References SDK - MB Trading's Software Development Kit (SDK)
    FIX - MB Trading's Industry standard FIX protocol implementation with custom, proprietary extensions
    Quote API - MB Trading's Non-COM, non-FIX message-based quote protocol
    JSON - JavaScript Object Notation, a lightweight text-based open standard designed for human-readable data interchange.
    REST - Representational State Transfer defines a set of architectural principles by which you can design Web services that focus on a system's resources, including how resource states are addressed and transferred over HTTP by a wide range of clients written in different languages.