Skip to main content

reactive-platform: Reactive Platform Python API

Project description

Reactive Markets Platform SDK Python

The Reactive Platform SDK for Python.

Getting Started

Install

The package only support python3.7 and python3.8, not for lower versions.

Install the package in a python environment:

$ pip install reactive-platform

Uninstall the package:

$ pip uninstall reactive-platform

Using REST API

The REST API has endpoints for various kinds of data from platform, e.g. orders, analytics and references. This package now only supports querying reference data. To access the platform, a API token must be granted from platform UI.

Create a REST client

Create a client first:

from reactive.platform.rest.client import Client

api_key = 'xxx'
url = "https://api.platform.reactivemarkets.com"
rc = Client(url=url, api_key=api_key)

Reference Data

Reference data includes asset, instrument, venue and markets. Get those data:

asset_ref = rc.fetch_asset_ref()
# json format assets reference data
assets = asset_ref.to_json()
print("asset reference:\n", assets)
# dict format assets
assets_dict = asset_ref.to_dict()
print("assets dict:\n", assets)

# instr reference
instr_ref = rc.fetch_instr_ref()
instrs = instr_ref.to_json()
print("instrument reference:\n", instrs)

# venue reference
venue_ref = rc.fetch_venue_ref()
venues = venue_ref.to_json()
print("venue reference:\n", venues)

# market reference
market_ref = rc.fetch_market_ref()
markets = market_ref.to_json()
print("market reference:\n", venues)

If client uses pandas, the reference data can be viewed in a Dataframe table in jupyter-notebook:

import pandas as pd

df = pd.read_json(market_ref.to_json())
df

Platform WebSocket API

The websocket feed provides real-time level 2 market data snapshots, public trades and liquidation via

wss://api.platform.reactivemarkets.com/feed

WebSocket Client

To access the platform via web socket, create a Client which manages the web socket connection and provides methods to access the platform. See the example in example/wsclient.py.

The message protocol is Flatbuffers, which provides an efficient serialization/deserializaton mechanism in terms of both processing and space requirements. The flatbuffer message python API for the platform is in the reactive-papi package.

Client decodes receiving messages into reactive.papi.Message.Message and allow user to apply user defined data_handler call back to handle the flatbuffer message.

Create a FeedClient

The platform-py also provides another option, FeedClient.

from reactive.platform.feed.client import FeedClient

api_key = 'xxx'
addr = "wss://api.platform.reactivemarkets.com/feed"
feed_client = FeedClient(addr=addr, api_key=api_key)

FeedClient provides methods subscribe and unsubscribe to control sending request to platform, and implement python classes in reactive.platform.feed subpackage for corresponding flatbuffer message types. see a full example in example/marketdata.py or example/trade. The client can specify book view parameters in the request. Currently, the feed gateway supports, book depths (1, 5, 10, 20), tick grouping (1, 50), and frequency integer (1 or a larger number).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reactive-platform-0.3.0.tar.gz (24.3 kB view hashes)

Uploaded Source

Built Distribution

reactive_platform-0.3.0-py3-none-any.whl (36.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page