otp.Tick#
- class Tick(data, offset, offset_part, time, timezone_for_time, symbol, db, start, end, date, tick_type, bucket_units, num_ticks_per_timestamp, kwargs, bucket_interval=None, bucket_time=0)#
Bases:
onetick.py.core.source.Source
Generate single tick object
- Parameters
data (dict) – dictionary of columns names with their values. If specified, then parameter
kwargs
can’t be used.offset (int, datetime offset, default=0) – tick timestamp offset from query start time in offset_part
offset_part (one of [nanosecond, millisecond, second, minute, hour, day, dayofyear, weekday, week, month, quarter, year], default=millisecond #noqa) – unit of time to calculate
offset
from. Could be omitted if datetime offset object set asoffset
.time (
otp.datetime
) – fixed time to set to all ticks. Note that this time should be inside time interval set bystart
andend
parameters or by query time range.timezone_for_time (str) – timezone of the
time
symbol (str, list of str,
Source
,query
,eval query
) – Symbol(s) from which data should be taken.db (str) – Database to use for tick generation
start (
otp.datetime
) – start time for tick generation. By default the start time of the query will be used.end (
otp.datetime
) – end time for tick generation. By default the end time of the query will be used.date (
otp.datetime
– allows to specify a whole day) – instead of passing explicitly start and end parameters. If it is set along with the start and end parameters then last two are ignored.tick_type (str) – By default, the tick type value is not significant, and a placeholder string constant will be utilized. If you prefer to use the sink node’s tick type instead of specifying your own, you can set the value to None.
bucket_units ('seconds', 'days' or 'months') – Unit for value in
bucket_interval
. Default is ‘seconds’.num_ticks_per_timestamp (int) – The number of ticks to generate for every value of timestamp.
kwargs – dictionary of columns names with their values. If specified, then parameter
data
can’t be used.bucket_interval (int or Operation or OnetickParameter or
symbol parameter
, default=0) –Determines the length of each bucket (units depends on
bucket_units
).If
Operation
of bool type is passed, acts asbucket_end_condition
.Bucket interval can also be set with integer
OnetickParameter
orsymbol parameter
.bucket_time (Literal['start', 'end'], default=end) –
Control output timestamp.
start
the timestamp assigned to the bucket is the start time of the bucket.
end
the timestamp assigned to the bucket is the end time of the bucket.
Examples
Simple usage, generate single tick:
>>> t = otp.Tick(A=1, B='string', C=3.14, D=otp.dt(2000, 1, 1, 1, 1, 1, 1)) >>> otp.run(t) Time A B C D 0 2003-12-01 1 string 3.14 2000-01-01 01:01:01.000001
Generate single tick with offset:
>>> t = otp.Tick(A=1, offset=otp.Minute(10)) >>> otp.run(t) Time A 0 2003-12-01 00:10:00 1
Generate one tick for each day in a week:
>>> t = otp.Tick(A=1, start=otp.dt(2023, 1, 1), end=otp.dt(2023, 1, 8), bucket_interval=24 * 60 * 60) >>> otp.run(t) Time A 0 2023-01-01 1 1 2023-01-02 1 2 2023-01-03 1 3 2023-01-04 1 4 2023-01-05 1 5 2023-01-06 1 6 2023-01-07 1
Generate tick every hour and add 1 minute offset to ticks’ timestamps:
>>> t = otp.Tick(A=1, offset=1, offset_part='minute', bucket_interval=60 * 60) >>> t.head(5) Time A 0 2003-12-01 00:01:00 1 1 2003-12-01 01:01:00 1 2 2003-12-01 02:01:00 1 3 2003-12-01 03:01:00 1 4 2003-12-01 04:01:00 1
Generate tick every hour and set fixed time:
>>> t = otp.Tick(A=1, time=otp.dt(2023, 1, 2, 3, 4, 5, 6), bucket_interval=60 * 60, ... start=otp.dt(2023, 1, 1), end=otp.dt(2023, 1, 8)) >>> t.head(5) Time A 0 2023-01-02 03:04:05.000006 1 1 2023-01-02 03:04:05.000006 1 2 2023-01-02 03:04:05.000006 1 3 2023-01-02 03:04:05.000006 1 4 2023-01-02 03:04:05.000006 1
See also
TICK_GENERATOR OneTick event processor