Getting Started#

The guides in this section take you through the typical uses of onetick-py and are structured in the order that facilitates learning onetick-py from scratch.

onetick-py requires some configuration to be set up before running the queries. Note that for readability reasons the code for configurating onetick-py was omitted in the examples.

Basic configuration#

This code can be used to set some basic configuration on Linux:

export OTP_DEFAULT_DB="DEMO_L1"
export OTP_DEFAULT_SYMBOL="AAPL"
export OTP_DEFAULT_START_TIME="2003/12/01 00:00:00"
export OTP_DEFAULT_END_TIME="2003/12/04 00:00:00"
export OTP_DEFAULT_TZ="EST5EDT"

On Windows:

set OTP_DEFAULT_DB=DEMO_L1
set OTP_DEFAULT_SYMBOL=AAPL
set OTP_DEFAULT_START_TIME=2003/12/01 00:00:00
set OTP_DEFAULT_END_TIME=2003/12/04 00:00:00
set OTP_DEFAULT_TZ=EST5EDT

In the python code on any system (before importing onetick-py):

import os
os.environ['OTP_DEFAULT_DB'] = 'DEMO_L1'
os.environ['OTP_DEFAULT_SYMBOL'] = 'AAPL'
os.environ['OTP_DEFAULT_START_TIME'] = '2003/12/01 00:00:00'
os.environ['OTP_DEFAULT_END_TIME'] = '2003/12/04 00:00:00'
os.environ['OTP_DEFAULT_TZ'] = 'EST5EDT'

See details about onetick-py configuration in Configuration.

Authentication with OneTick Cloud#

If you are using onetick-py to connect to OneTick cloud, you will need to authenticate.

There are different ways to authenticate with OneTick cloud.

The easiest way is to create or log-in to account on https://www.onetick.com/cloud-services/ and get CLIENT_ID and CLIENT_SECRET there.

Run this code to set up authentication for onetick-py:

import os
os.environ['OTP_WEBAPI'] = '1'
os.environ['OTP_HTTP_ADDRESS'] = 'https://rest.cloud.onetick.com'
os.environ['OTP_ACCESS_TOKEN_URL'] = 'https://cloud-auth.parent.onetick.com/realms/OMD/protocol/openid-connect/token'
os.environ['OTP_CLIENT_ID'] = '__FILL_IN__'
os.environ['OTP_CLIENT_SECRET'] = '__FILL_IN__'

The other way is getting direct access to OneTick cloud with username and password. You can ask your OneMarketData rep for them. Replace the placeholders __FILL_IN__ with the provided credentials.

import os
os.environ['OTP_WEBAPI'] = '1'
os.environ['OTP_HTTP_ADDRESS'] = 'https://data.onetick.com:443'
os.environ['OTP_HTTP_USERNAME'] = '__FILL_IN__'
os.environ['OTP_HTTP_PASSWORD'] = '__FILL_IN__'

Quick examples#

Runnable code for US equities#

import onetick.py as otp

sym = 'AAPL'
start = otp.dt(2024, 2, 1, 10)
еnd = start + otp.Minute(1)

# Get trades
trades = otp.DataSource('US_COMP_SAMPLE', tick_type='TRD')
print(otp.run(trades, start=start, end=еnd, symbols=sym))

# Join trades with quotes
quotes = otp.DataSource(db='US_COMP_SAMPLE', tick_type='NBBO')

joined = otp.join_by_time([trades, quotes])

res = otp.run(joined,
              symbols=[sym],
              start=start,
              end=еnd)

print(res)

Runnable code for futures#

import onetick.py as otp

sym = r'NG\N24'
start = otp.dt(2024, 2, 1, 10)
еnd = start + otp.Minute(100)

# Get trades
trades = otp.DataSource('CME_SAMPLE', tick_type='TRD')
print(otp.run(trades, start=start, end=еnd, symbols=sym))

# Join trades with quotes
quotes = otp.DataSource(db='CME_SAMPLE', tick_type='QTE')

joined = otp.join_by_time([trades, quotes])

res = otp.run(joined,
              symbols=[sym],
              start=start,
              end=еnd)

print(res)