resample_candles#
API documentation for tradingstrategy.utils.groupeduniverse.resample_candles Python function.
- resample_candles(df, resample_freq, shift=None, origin=None)[source]#
Downsample or upsample OHLCV candles or liquidity samples.
E.g. upsample 1h candles to 1d candles.
See also: py:func:resample_price_series.
Example:
# Transform daily candles to monthly candles from tradingstrategy.utils.groupeduniverse import resample_candles single_pair_candles = raw_candles.loc[raw_candles["pair_id"] == pair.pair_id] single_pair_candles = single_pair_candles.set_index("timestamp", drop=False) monthly_candles = resample_candles(single_pair_candles, TimeBucket.d30) monthly_candles = resample_candles(single_pair_candles, TimeBucket.d30) assert len(monthly_candles) <= len(single_pair_candles) / 4
- Parameters:
df (DataFrame) –
DataFrame of price, liquidity or lending rate candles.
Must contain candles only for a single trading pair.
Supported columns: open, high, low, close. Optional: pair_id, volume.
Any other columns in DataFrame are destroyed in the resampling process.
resample_freq (pandas._libs.tslibs.timedeltas.Timedelta | str) –
Resample frequency.
Timedelta or Pandas alias string e.g. “D”.
E.g.`pd.Timedelta(days=1)` create daily candles from hourly candles.
shift (int | None) –
Before resampling, shift candles to left or right.
The shift is measured in number of candles, not time. Make sure the DataFrame is forward filled first, see
forward_fill()
.Set to 1 to shift candles one step right, -1 to shift candles one step left.
There might not be enough rows to shift. E.g. shift=-1 or shift=1 and len(df) == 1. In this case, an empty data frame is returned.
origin (str | None) –
For daily resample, the starting hour.
Use origin=”end” for a rolling resample.
- Returns:
Resampled candles in a new DataFrame.
Contains an added timestamp column that is also the index.
If the input DataFrame is zero-length, then return it as is.
- Return type:
DataFrame