- OpenBacktesting
- Indicator catalog
- Squeeze (ta.squeeze)
Squeeze (ta.squeeze)¶
Compare Bollinger Bands with Keltner Channels and combine momentum with compression and release states.
Indicator catalog · How to use indicators
Run this example¶
This complete script uses bundled data. It observes the selected output without placing trades.
import numpy as np
from openbacktesting import Backtest, Strategy
from openbacktesting.test import GOOG
data = GOOG.copy()
class Example(Strategy):
def init(self):
self.value = self.ta.squeeze()
self.latest_value = None
def next(self):
channel = self.value.squeeze
if channel.valid[-1]:
self.latest_value = float(channel[-1])
result = Backtest(data, Example).run()
print(result["_strategy"].latest_value)
Call and parameters¶
self.ta.squeeze(
*,
bb_length=20,
bb_std=2.0,
kc_length=20,
kc_scalar=1.5,
mom_length=12,
mom_smooth=6,
use_tr=True,
mamode='sma',
inputs=None,
backend=None,
required_outputs=None,
)
Register in init(). Read the returned channel in next() after checking valid[-1].
| Parameter | Meaning | Type | Default | Allowed values |
|---|---|---|---|---|
bb_length |
Bollinger-band lookback in bars. | int |
20 |
Minimum: 1 |
bb_std |
Standard-deviation multiplier for Bollinger bands. | float |
2.0 |
Minimum: 1e-08 |
kc_length |
Keltner-channel lookback in bars. | int |
20 |
Minimum: 1 |
kc_scalar |
Keltner-channel width multiplier. | float |
1.5 |
Minimum: 1e-08 |
mom_length |
Momentum lookback in bars. | int |
12 |
Minimum: 1 |
mom_smooth |
Momentum smoothing period in bars. | int |
6 |
Minimum: 1 |
use_tr |
Use true range instead of High - Low for Keltner width. | bool |
True |
No additional constraints |
mamode |
Moving-average algorithm; choose one of the listed values. | str |
sma |
Allowed values: ['sma', 'ema', 'rma', 'wma'] |
source/named source arguments accept a column name or same-run single-channel handle. Alternatively, inputs maps each input below to a column or handle. backend selects a supported implementation; required_outputs selects channels for readiness diagnostics. See shared arguments and handles.
Inputs and outputs¶
Required inputs: high, low, close.
| Channel | Meaning |
|---|---|
squeeze |
Squeeze output |
on |
Squeeze-on flag |
off |
Squeeze-off flag |
none |
Neither squeeze-on nor squeeze-off flag |
Reading values safely¶
Insufficient history or missing inputs can make a channel invalid. Check that channel's valid mask; ready is diagnostic and never suppresses next(). Multi-output results may have different valid channels on the same bar.