otp.LoadTicksFromDataFrame#
- class LoadTicksFromDataFrame(dataframe=None, timestamp_column=utils.adaptive, symbol_name_field=None, symbol=utils.adaptive, db=utils.adaptive_to_default, tick_type=utils.adaptive)#
Bases:
Load pandas.DataFrame as data source
Relies on
otp.Ticks. So unlikeonetick.py.ReadFromDataFrame()filtering by symbols via symbols parameter inotp.rundon’t affect output.Also, it can be used in older OneTick versions.
- Parameters:
dataframe (pandas.DataFrame) – Pandas DataFrame to load.
timestamp_column (str, optional) –
Column containing time info.
If parameter not set and DataFrame has one of columns
TIMEorTimestamp(case-insensitive), it will be automatically used astimestamp_column. To disable this, settimestamp_column=None.Timestamp column dtype should be either datetime related or string.
symbol_name_field (str, optional) – Column containing symbol name.
symbol (str) –
Symbol(s) from which data should be taken.
If both symbol_name_field and symbol are omitted
otp.config.default_symbolvalue will be used.db (str) – Custom database name for the node of the graph.
tick_type (str) – Tick type. Default: ANY.
Examples
All examples for
onetick.py.ReadFromDataFrame()suitable for this data source.Let’s look at differences. Here’s
onetick.py.ReadFromDataFrame()output with symbols parameter inotp.run:>>> src = otp.ReadFromDataFrame(dataframe, symbol_name_field='SYMBOL_NAME') >>> otp.run(data, date=otp.dt(2024, 1, 1), symbols=['AAA']) Time SYMBOL_NAME PRICE 0 2024-01-01 12:00:00.001 AAA 50.05 1 2024-01-01 12:00:02.000 AAA 50.05 2 2024-01-01 12:00:03.100 AAA 49.98
Same example for LoadTicksFromDataFrame. As you can see, ticks weren’t filtered by symbol name:
>>> dataframe['_SYMBOL'] = dataframe['SYMBOL_NAME'] >>> src = otp.LoadTicksFromDataFrame(dataframe) >>> otp.run(src, date=otp.date(2024, 1, 1)) Time PRICE _SYMBOL 0 2024-01-01 12:00:00.001 50.05 AAA 1 2024-01-01 12:00:02.000 50.05 AAA 2 2024-01-01 12:00:02.500 49.95 BBB 3 2024-01-01 12:00:03.100 49.98 AAA 4 2024-01-01 12:00:03.250 50.02 BBB
See also