📍Python Library
Functions
They are the functions available in both analytic/python mode, and terminal.
1. Get the Time-series Data
get_raw_data(table_name: str, symbol: str, start_time: str, end_time: str) -> list
get_raw_data
is a function to get the data you can find in the data preview. It returns the data as a list of dictionaries.
Arguments
table_name
: (string) The name of the table you want to get. It can be seen right next to the data alias at data preview. Check the data list to see the list of availabletable_name
.

symbol
: (string) A category in the table_name. For instance, if thetable_name = binance_candlestick_1h
and thesymbol = BTCUSDT
, then it would return 1 hour interval candlestick data of BTCUSDT in the Binance spot market.start_time
: (string)end_time
: (string) Thestart_time
andend_time
are the time range of the data to get. They are strings of time inyyyy-MM-dd HH:mm:ss
format. You can set them bystrftime('%Y-%m-%d %H:%M:%S')
method ofdatetime.datetime
.
Returns
It returns the data in a list of the dictionaries. In the dictionary, every numeric value is decimal.Decimal
type, and time value is datetime.datetime
.
# Basic ways to get the data
btc_price = get_raw_data("binance_candlestick_1d",
"BTCUSDT",
"2022-01-01 00:00:00",
"2022-01-08 00:00:00")
# Using datetime.strftime. 2hours ago ~ now.
# Format %F %T can do the same as %Y-%m-%d %H:%M:%S
xrp_price = get_raw_data("binance_um_futures_candlestick_5min",
"XPRBUSDT",
(datetime.datetime.now() - datetime.timedelta(hours=2)).strftime('%F %T'),
datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
# The example of the result
'''
[
{
"time" : `object of datetime.datetime type`,
"close" : `object of decimal.Decimal type`,
"high" : `object of decimal.Decimal type`,
"low" : `object of decimal.Decimal type`,
"close" : `object of decimal.Decimal type`,
...
},
...
]
'''
2. Get the Time-series Data in DataFrame
get_raw_data_in_df(table_name: str, symbol: str, start_time: str, end_time: str) -> pandas.DataFrame
get_raw_data_in_df
is a function that works same as get_raw_data
, but it refines the result into pandas.DataFrame
type, and converts decimal.Decimal
type values in it into float
.
It is useful to apply methods from pandas such as ewm
to the data.
Arguments
table_name
: (string)symbol
: (string)start_time
: (string)end_time
: (string)
Returns
It returns the data in pandas.DataFrame
object. In each entry, every numeric value is float
, and the time value is datetime.datetime
.
# The list of the arguments is same as of get_raw_data.
btc_price = get_raw_data_in_df("binance_candlestick_1d",
"BTCUSDT",
"2022-01-01 00:00:00",
"2022-01-08 00:00:00")
Terminal-only Functions
Terminal-only function can be used only in the terminal, which means that they are not available in the analytics.
1. Stop Bot
shutdown(message: str|None = None) -> None
It stops the bot that the code is being run. You can call this function when you want to stop your bot in a certain condition.
Do not wrap this function by try ... except
, as it is implemented by raising ShutdownException
.
Arguments
message
: (string) The message to record to the log when the function is called
Returns
None
# abstract on how the shutdown() is defined.
def shutdown(message:str=None):
print(f"Bot shutdown. {message}")
raise ShutdownException
# Example of using `shutdown()` function
# 1. stop the bot when USDT in the balance is more than 50 or less then 30.
balance = privateAPI.get_balance('binance')
usdt_val = balance['USDT']['amount'] if 'USDT' in balance else 0
if usdt_val > 50 or usdt_val < 30:
shutdown()
...
# 2. You shouldn't wrap it by try ... except.
try:
shutdown() # shutdown() doesn't work in this way!
except:
...
Last updated