Skip to content

Extended Parabolic SAR (ta.sarext)

View Markdown

Control acceleration parameters separately for long and short phases.

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.sarext()
        self.latest_value = None

    def next(self):
        channel = self.value
        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.sarext(
    *,
    startvalue=0.0,
    offsetonreverse=0.0,
    accelerationinitlong=0.02,
    accelerationlong=0.02,
    accelerationmaxlong=0.2,
    accelerationinitshort=0.02,
    accelerationshort=0.02,
    accelerationmaxshort=0.2,
    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
startvalue Initial SAR value; its sign selects the initial direction when nonzero. float 0.0 Minimum: 0
offsetonreverse SAR adjustment on a direction reversal. float 0.0 Minimum: 0
accelerationinitlong Initial acceleration for long SAR. float 0.02 Minimum: 1e-08
accelerationlong Acceleration increment for long SAR. float 0.02 Minimum: 1e-08
accelerationmaxlong Maximum acceleration for long SAR. float 0.2 Minimum: 1e-08
accelerationinitshort Initial acceleration for short SAR. float 0.02 Minimum: 1e-08
accelerationshort Acceleration increment for short SAR. float 0.02 Minimum: 1e-08
accelerationmaxshort Maximum acceleration for short SAR. float 0.2 Minimum: 1e-08

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.

Channel Meaning
sarext Extended Parabolic SAR value

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.

Indicator catalog · Custom calculations