Version: Python

# rolling_std_tick

`rolling_std_tick` creates a rolling sample standard deviation in an `update_by` table operation using table ticks as the windowing unit. Ticks are row counts. The rolling sample standard deviation can be calculated using forward and/or backward windows.

Sample standard deviation is calculated as the square root of the Bessel-corrected sample variance, which can be shown to be an unbiased estimator of population variance under some conditions. However, sample standard deviation is a biased estimator of population standard deviation.

## Syntax​

``rolling_std_tick(cols: list[str], rev_ticks: int, fwd_ticks: int) -> UpdateByOperation``

## Parameters​

ParameterTypeDescription
colslist[str]

The column(s) to be operated on. These can include expressions to rename the output (e.g., `NewCol = Col`). When left empty, the rolling count is calculated for all applicable columns.

rev_ticksint

The look-behind window size in rows. If positive, it defines the maximum number of rows before the current row that will be used. If negative, it defines the minimum number of rows after the current row that will be used. Includes the current row.

fwd_ticksint

The look-forward window size in rows. If positive, it defines the maximum number of rows after the current row that will be used. If negative, it defines the minimum number of rows before the current row that will be used.

## Returns​

An `UpdateByOperation` to be used in an `update_by` table operation.

## Examples​

The following example performs an update_by on the `source` table using two `rolling_std_tick` operations.

``from deephaven.updateby import rolling_std_tickfrom deephaven import empty_tablesource = empty_table(10).update(    ["Letter = (i % 2 == 0) ? `A` : `B`", "X = randomInt(0, 100)"])op_before = rolling_std_tick(cols=["OpBefore = X"], rev_ticks=3, fwd_ticks=-1)op_after = rolling_std_tick(cols=["OpAfter = X"], rev_ticks=-1, fwd_ticks=3)op_middle = rolling_std_tick(cols=["OpMiddle = X"], rev_ticks=1, fwd_ticks=1)result = source.update_by(ops=[op_before, op_after, op_middle], by="Letter")``