diff --git a/docs/GemFile.lock b/docs/GemFile.lock
index 20688976..4620d2ac 100644
--- a/docs/GemFile.lock
+++ b/docs/GemFile.lock
@@ -290,7 +290,6 @@ GEM
unf_ext (0.0.8.1)
unf_ext (0.0.8.1-x64-mingw32)
unicode-display_width (1.8.0)
- wdm (0.1.1)
yell (2.2.2)
zeitwerk (2.5.4)
@@ -306,7 +305,6 @@ DEPENDENCIES
jekyll-remote-theme
jekyll-sitemap
jemoji
- wdm (>= 0.1.1)
BUNDLED WITH
2.2.31
diff --git a/docs/_data/aliases.yml b/docs/_data/aliases.yml
index fc5c6ea3..ff48d6d4 100644
--- a/docs/_data/aliases.yml
+++ b/docs/_data/aliases.yml
@@ -6,6 +6,10 @@
permalink: /indicators/StdDev/
type: price-characteristic
+- title: Hurst Exponent
+ permalink: /indicators/Hurst/
+ type: price-trend
+
- title: KDJ Index
permalink: /indicators/Stoch/
type: oscillator
@@ -14,10 +18,34 @@
permalink: /indicators/Epma/
type: moving-average
+- title: Linear Regression (best-fit line)
+ permalink: /indicators/Slope/
+ type: numerical-analysis
+
+- title: Mean absolute deviation
+ permalink: /indicators/Sma/
+ type: numerical-analysis
+
+- title: Mean square error
+ permalink: /indicators/Sma/
+ type: numerical-analysis
+
+- title: Mean absolute percentage error
+ permalink: /indicators/Sma/
+ type: numerical-analysis
+
+- title: Modified Moving Average (MMA)
+ permalink: /indicators/Smma/
+ type: moving-average
+
- title: Momentum Oscillator
permalink: /indicators/Roc/
type: price-characteristic
+- title: Normalized Average True Range
+ permalink: /indicators/Atr/
+ type: price-characteristic
+
- title: Price Channels
permalink: /indicators/Donchian/
type: price-channel
@@ -34,10 +62,14 @@
permalink: /indicators/Roc/
type: oscillator
+- title: Running Moving Average (RMA)
+ permalink: /indicators/Smma/
+ type: moving-average
+
- title: SuperTrend
permalink: /indicators/SuperTrend/
type: stop-and-reverse
-# - title: Volume Simple Moving Average
-# permalink: /indicators/VolSma/
-# type: volume-based
+- title: Z-Score
+ permalink: /indicators/StdDev/
+ type: numerical-analysis
diff --git a/docs/_includes/candlepart-options.md b/docs/_includes/candlepart-options.md
new file mode 100644
index 00000000..db98ccad
--- /dev/null
+++ b/docs/_includes/candlepart-options.md
@@ -0,0 +1,14 @@
+### CandlePart options
+
+| type | description
+|-- |--
+| `CandlePart.OPEN` | `open` price
+| `CandlePart.HIGH` | `high` price
+| `CandlePart.LOW` | `low` price
+| `CandlePart.CLOSE` | `close` price
+| `CandlePart.VOLUME` | `volume`
+| `CandlePart.HL2` | `(high+low)/2`
+| `CandlePart.HLC3` | `(high+low+close)/3`
+| `CandlePart.OC2` | `(open+close)/2`
+| `CandlePart.OHL3` | `(open+high+low)/3`
+| `CandlePart.OHLC4` | `(open+high+low+close)/4`
diff --git a/docs/_includes/footer.html b/docs/_includes/footer.html
new file mode 100644
index 00000000..fcf1d09c
--- /dev/null
+++ b/docs/_includes/footer.html
@@ -0,0 +1,21 @@
+
\ No newline at end of file
diff --git a/docs/_indicators/Adl.md b/docs/_indicators/Adl.md
index 719925a4..89778365 100644
--- a/docs/_indicators/Adl.md
+++ b/docs/_indicators/Adl.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `sma_periods` | int, Optional | Number of periods (`N`) in the moving average of ADL. Must be greater than 0, if specified.
### Historical quotes requirements
@@ -47,7 +47,7 @@ ADLResults[ADLResult]
### Utilities
-- [.to_quotes()]({{site.baseurl}}/utilities#convert-to-quotes)
+- ~~[.to_quotes()]({{site.baseurl}}/utilities#convert-to-quotes)~~ [deprecated]
- [.find(lookup_date)]({{site.baseurl}}/utilities#find-indicator-result-by-date)
- [.remove_warmup_periods(qty)]({{site.baseurl}}/utilities#remove-warmup-periods)
diff --git a/docs/_indicators/Adx.md b/docs/_indicators/Adx.md
index e7b7b244..c119f650 100644
--- a/docs/_indicators/Adx.md
+++ b/docs/_indicators/Adx.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int, *default 14* | Number of periods (`N`) for the lookback evaluation. Must be greater than 0.
### Historical quotes requirements
diff --git a/docs/_indicators/Alligator.md b/docs/_indicators/Alligator.md
index 0f0e29a5..97bd46cf 100644
--- a/docs/_indicators/Alligator.md
+++ b/docs/_indicators/Alligator.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- | -- | --
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `jaw_periods` | int, *default 13* | Number of periods (`JP`) for the Jaw moving average. Must be greater than `teeth_periods`.
| `jaw_offset` | int, *default 8* | Number of periods (`JO`) for the Jaw offset. Must be greater than 0.
| `teeth_periods` | int, *default 8* | Number of periods (`TP`) for the Teeth moving average. Must be greater than `lips_periods`.
diff --git a/docs/_indicators/Alma.md b/docs/_indicators/Alma.md
index 48b0c2bc..ded38c79 100644
--- a/docs/_indicators/Alma.md
+++ b/docs/_indicators/Alma.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int, *default 9* | Number of periods (`N`) in the moving average. Must be greater than 1, but is typically in the 5-20 range.
| `offset` | float, *default 0.85* | Adjusts smoothness versus responsiveness on a scale from 0 to 1; where 1 is max responsiveness.
| `sigma` | float, *default 6* | Defines the width of the Gaussian [normal distribution](https://en.wikipedia.org/wiki/Normal_distribution). Must be greater than 0.
diff --git a/docs/_indicators/Aroon.md b/docs/_indicators/Aroon.md
index 11f564db..20da1301 100644
--- a/docs/_indicators/Aroon.md
+++ b/docs/_indicators/Aroon.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- | -- | --
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int, *default 25* | Number of periods (`N`) for the lookback evaluation. Must be greater than 0.
+| `candle_part` | CandlePart, *default CandlePart.CLOSE* | Specify candle part to evaluate. See [CandlePart options](#candlepart-options) below.
### Historical quotes requirements
@@ -25,16 +24,7 @@ You must have at least `2×N` or `N+100` periods of `quotes`, whichever is more,
`quotes` is an `Iterable[Quote]` collection of historical price quotes. It should have a consistent frequency (day, hour, minute, etc). See [the Guide]({{site.baseurl}}/guide/#historical-quotes) for more information.
-
+{% include candlepart-options.md %}
## Returns
@@ -43,6 +33,7 @@ EMAResults[EMAResult]
```
- This method returns a time series of all available indicator values for the `quotes` provided.
+- `EMAResults` is just a list of `EMAResult`.
- It always returns the same number of elements as there are in the historical quotes.
- It does not return a single incremental indicator value.
- The first `N-1` periods will have `None` values since there's not enough data to calculate.
@@ -83,7 +74,7 @@ results = indicators.get_ema(quotes, 20)
![image]({{site.charturl}}/Ema.png)
-EMA is shown as the solid line above. Double EMA (dashed line) and Triple EMA (dotted line) are also shown here for comparison.
+See also related [Double EMA](../Dema#content) and [Triple EMA](../Tema#content).
#### Sources
diff --git a/docs/_indicators/Epma.md b/docs/_indicators/Epma.md
index b4754a0d..3b8b7283 100644
--- a/docs/_indicators/Epma.md
+++ b/docs/_indicators/Epma.md
@@ -15,7 +15,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int | Number of periods (`N`) in the moving average. Must be greater than 0.
### Historical quotes requirements
diff --git a/docs/_indicators/Fcb.md b/docs/_indicators/Fcb.md
index 61b1b10c..2318a6d8 100644
--- a/docs/_indicators/Fcb.md
+++ b/docs/_indicators/Fcb.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `window_span` | int | Fractal evaluation window span width (`S`). Must be at least 2. Default is 2.
The total evaluation window size is `2×S+1`, representing `±S` from the evalution date. See [Williams Fractal](../Fractal#content) for more information about Fractals and `window_span`.
diff --git a/docs/_indicators/FisherTransform.md b/docs/_indicators/FisherTransform.md
index 4fc8f240..db90ad44 100644
--- a/docs/_indicators/FisherTransform.md
+++ b/docs/_indicators/FisherTransform.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int, *default 10* | Number of periods (`N`) in the lookback window. Must be greater than 0.
### Historical quotes requirements
diff --git a/docs/_indicators/ForceIndex.md b/docs/_indicators/ForceIndex.md
index 47f0a09e..c57b7a93 100644
--- a/docs/_indicators/ForceIndex.md
+++ b/docs/_indicators/ForceIndex.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int | Lookback window (`N`) for the EMA of Force Index. Must be greater than 0 and is commonly 2 or 13 (shorter/longer view).
### Historical quotes requirements
diff --git a/docs/_indicators/Fractal.md b/docs/_indicators/Fractal.md
index 683bf7b5..a2b2bf7d 100644
--- a/docs/_indicators/Fractal.md
+++ b/docs/_indicators/Fractal.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `window_span` | int, *default 2* | Evaluation window span width (`S`). Must be at least 2.
diff --git a/docs/_indicators/HeikinAshi.md b/docs/_indicators/HeikinAshi.md
index f029a435..ce7d11c0 100644
--- a/docs/_indicators/HeikinAshi.md
+++ b/docs/_indicators/HeikinAshi.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
### Historical quotes requirements
@@ -46,7 +46,7 @@ HeikinAshiResults[HeikinAshiResult]
### Utilities
-- [.to_quotes()]({{site.baseurl}}/utilities#convert-to-quotes)
+- ~~[.to_quotes()]({{site.baseurl}}/utilities#convert-to-quotes)~~ [deprecated]
- [.find(lookup_date)]({{site.baseurl}}/utilities#find-indicator-result-by-date)
- [.remove_warmup_periods(qty)]({{site.baseurl}}/utilities#remove-warmup-periods)
diff --git a/docs/_indicators/Hma.md b/docs/_indicators/Hma.md
index 40c232a0..5b9ac345 100644
--- a/docs/_indicators/Hma.md
+++ b/docs/_indicators/Hma.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int | Number of periods (`N`) in the moving average. Must be greater than 1.
### Historical quotes requirements
diff --git a/docs/_indicators/HtTrendline.md b/docs/_indicators/HtTrendline.md
index 6c06c71c..fc66e979 100644
--- a/docs/_indicators/HtTrendline.md
+++ b/docs/_indicators/HtTrendline.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
## Historical quotes requirements
diff --git a/docs/_indicators/Hurst.md b/docs/_indicators/Hurst.md
index f5b34f4f..389f5516 100644
--- a/docs/_indicators/Hurst.md
+++ b/docs/_indicators/Hurst.md
@@ -15,7 +15,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int, *default 100* | Number of periods (`N`) in the Hurst Analysis. Must be greater than 100.
### Historical quotes requirements
@@ -45,7 +45,7 @@ HurstResults[HurstResult]
### Utilities
-- [.to_quotes()]({{site.baseurl}}/utilities#convert-to-quotes)
+- ~~[.to_quotes()]({{site.baseurl}}/utilities#convert-to-quotes)~~ [deprecated]
- [.find(lookup_date)]({{site.baseurl}}/utilities#find-indicator-result-by-date)
- [.remove_warmup_periods()]({{site.baseurl}}/utilities#remove-warmup-periods)
- [.remove_warmup_periods(qty)]({{site.baseurl}}/utilities#remove-warmup-periods)
diff --git a/docs/_indicators/Ichimoku.md b/docs/_indicators/Ichimoku.md
index b6102085..6841bc10 100644
--- a/docs/_indicators/Ichimoku.md
+++ b/docs/_indicators/Ichimoku.md
@@ -15,7 +15,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `tenkan_periods` | int, *default 9* | Number of periods (`T`) in the Tenkan-sen midpoint evaluation. Must be greater than 0.
| `kijun_periods` | int, *default 26* | Number of periods (`K`) in the shorter Kijun-sen midpoint evaluation. Must be greater than 0.
| `senkou_b_periods` | int, *default 52* | Number of periods (`S`) in the longer Senkou leading span B midpoint evaluation. Must be greater than `K`.
diff --git a/docs/_indicators/Kama.md b/docs/_indicators/Kama.md
index 3e757d27..a3e97dee 100644
--- a/docs/_indicators/Kama.md
+++ b/docs/_indicators/Kama.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `er_periods` | int, *default 10* | Number of Efficiency Ratio (volatility) periods (`E`). Must be greater than 0.
| `fast_periods` | int, *default 2* | Number of Fast EMA periods. Must be greater than 0.
| `slow_periods` | int, *default 30* | Number of Slow EMA periods. Must be greater than `fast_periods`.
diff --git a/docs/_indicators/Keltner.md b/docs/_indicators/Keltner.md
index ba4edea9..d9f2e56f 100644
--- a/docs/_indicators/Keltner.md
+++ b/docs/_indicators/Keltner.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `ema_periods` | int, *default 20* | Number of lookback periods (`E`) for the center line moving average. Must be greater than 1 to calculate.
| `multiplier` | float, *default 2.0* | ATR Multiplier. Must be greater than 0.
| `atr_periods` | int, *default 10* | Number of lookback periods (`A`) for the Average True Range. Must be greater than 1 to calculate.
diff --git a/docs/_indicators/Kvo.md b/docs/_indicators/Kvo.md
index 15477947..8aae07b3 100644
--- a/docs/_indicators/Kvo.md
+++ b/docs/_indicators/Kvo.md
@@ -8,13 +8,13 @@ layout: indicator
# {{ page.title }}
-## **get_keltner**(*quotes, fast_periods=34, slow_periods=55, signal_periods=13*)
-
+## **get_kvo**(*quotes, fast_periods=34, slow_periods=55, signal_periods=13*)
+
## Parameters
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `fast_periods` | int, *default 34* | Number of lookback periods (`F`) for the short-term EMA. Must be greater than 2.
| `slow_periods` | int, *default 55* | Number of lookback periods (`L`) for the long-term EMA. Must be greater than `F`.
| `signal_periods` | int, *default 13* | Number of lookback periods for the signal line. Must be greater than 0.
@@ -64,7 +64,7 @@ from stock_indicators import indicators
quotes = get_history_from_feed("SPY")
# Calculate Klinger(34,55,13)
-results = indicators.get_keltner(quotes, 34,55,13)
+results = indicators.get_kvo(quotes, 34, 55, 13)
```
## About: {{ page.title }}
diff --git a/docs/_indicators/MaEnvelopes.md b/docs/_indicators/MaEnvelopes.md
index 3ee5ab31..6878c484 100644
--- a/docs/_indicators/MaEnvelopes.md
+++ b/docs/_indicators/MaEnvelopes.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int | Number of periods (`N`) in the moving average. Must be greater than 1.
| `percent_offset` | float, *default 2.5* | Percent offset for envelope width. Example: 3.5% would be entered as 3.5 (not 0.035). Must be greater than 0. Typical values range from 2 to 10.
| `ma_type` | MAType, *default MAType.SMA* | Type of moving average (e.g. SMA, EMA, HMA). See [MAType options](#matype-options) below.
diff --git a/docs/_indicators/Macd.md b/docs/_indicators/Macd.md
index 187e1d01..77805b20 100644
--- a/docs/_indicators/Macd.md
+++ b/docs/_indicators/Macd.md
@@ -14,10 +14,11 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `fast_periods` | int, *default 12* | Number of periods (`F`) for the faster moving average. Must be greater than 0.
| `slow_periods` | int, *default 26* | Number of periods (`S`) for the slower moving average. Must be greater than `fast_periods`.
| `signal_periods` | int, *default 9* | Number of periods (`P`) for the moving average of MACD. Must be greater than or equal to 0.
+| `candle_part` | CandlePart, *default CandlePart.CLOSE* | Specify candle part to evaluate. See [CandlePart options](#candlepart-options) below.
### Historical quotes requirements
@@ -25,6 +26,8 @@ You must have at least `2×(S+P)` or `S+P+100` worth of `quotes`, whichever is m
`quotes` is an `Iterable[Quote]` collection of historical price quotes. It should have a consistent frequency (day, hour, minute, etc). See [the Guide]({{site.baseurl}}/guide/#historical-quotes) for more information.
+{% include candlepart-options.md %}
+
## Returns
```python
@@ -43,9 +46,9 @@ MACDResults[MACDResult]
| name | type | notes
| -- |-- |--
| `date` | datetime | Date
-| `macd` | Decimal, Optional | The MACD line is the difference between slow and fast moving averages (`macd = fast_ema - slow_ema`)
-| `signal` | Decimal, Optional | Moving average of the `macd` line
-| `histogram` | Decimal, Optional | Gap between of the `macd` and `signal` line
+| `macd` | float, Optional | The MACD line is the difference between slow and fast moving averages (`macd = fast_ema - slow_ema`)
+| `signal` | float, Optional | Moving average of the `macd` line
+| `histogram` | float, Optional | Gap between of the `macd` and `signal` line
| `fast_ema` | Decimal, Optional | Fast Exponential Moving Average
| `slow_ema` | Decimal, Optional | Slow Exponential Moving Average
diff --git a/docs/_indicators/Mama.md b/docs/_indicators/Mama.md
index a456ad65..c1aed203 100644
--- a/docs/_indicators/Mama.md
+++ b/docs/_indicators/Mama.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `fast_limit` | float, *default 0.5* | Fast limit threshold. Must be greater than `slowLimit` and less than 1.
| `slow_limit` | float, *default 0.05* | Slow limit threshold. Must be greater than 0.
diff --git a/docs/_indicators/Marubozu.md b/docs/_indicators/Marubozu.md
index 84714116..731563ca 100644
--- a/docs/_indicators/Marubozu.md
+++ b/docs/_indicators/Marubozu.md
@@ -14,7 +14,7 @@ type: candlestick-pattern
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `min_body_percent` | float, *default 95* | Optional. Minimum body size as a percent of total candle size. Example: 85% would be entered as 85 (not 0.85). Must be between 80 and 100, if specified.
### Historical quotes requirements
diff --git a/docs/_indicators/Mfi.md b/docs/_indicators/Mfi.md
index 3e3a96c7..cbe6e3aa 100644
--- a/docs/_indicators/Mfi.md
+++ b/docs/_indicators/Mfi.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int, *default 14* | Number of periods (`N`) in the lookback period. Must be greater than 1.
### Historical quotes requirements
diff --git a/docs/_indicators/Obv.md b/docs/_indicators/Obv.md
index bb7fcba0..d4346362 100644
--- a/docs/_indicators/Obv.md
+++ b/docs/_indicators/Obv.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `sma_periods` | int, Optional | Number of periods (`N`) in the moving average of OBV. Must be greater than 0, if specified.
### Historical quotes requirements
@@ -47,7 +47,7 @@ OBVResults[OBVResult]
### Utilities
-- [.to_quotes()]({{site.baseurl}}/utilities#convert-to-quotes)
+- ~~[.to_quotes()]({{site.baseurl}}/utilities#convert-to-quotes)~~ [deprecated]
- [.find(lookup_date)]({{site.baseurl}}/utilities#find-indicator-result-by-date)
- [.remove_warmup_periods(qty)]({{site.baseurl}}/utilities#remove-warmup-periods)
diff --git a/docs/_indicators/ParabolicSar.md b/docs/_indicators/ParabolicSar.md
index ad47d3be..88f10f52 100644
--- a/docs/_indicators/ParabolicSar.md
+++ b/docs/_indicators/ParabolicSar.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `acceleration_step` | float, *default 0.02* | Incremental step size for the Acceleration Factor. Must be greater than 0.
| `max_acceleration_factor` | float, *default 0.2* | Maximimum factor limit. Must be greater than `acceleration_step`.
diff --git a/docs/_indicators/PivotPoints.md b/docs/_indicators/PivotPoints.md
index 17fc215a..e8ac5c16 100644
--- a/docs/_indicators/PivotPoints.md
+++ b/docs/_indicators/PivotPoints.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `window_size` | PeriodSize | Size of the lookback window. See [PeriodSize options](#periodsize-options-for-window_size) below.
| `point_type` | PivotPointType, *default PivotPointType.STANDARD* | Type of Pivot Point. See [PivotPointType options](#pivotpointtype-options) below.
diff --git a/docs/_indicators/Pivots.md b/docs/_indicators/Pivots.md
index 0e2fb8c4..50a4ef36 100644
--- a/docs/_indicators/Pivots.md
+++ b/docs/_indicators/Pivots.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `left_span` | int, *default 2* | Left evaluation window span width (`L`). Must be at least 2.
| `right_span` | int, *default 2* | Right evaluation window span width (`R`). Must be at least 2.
| `max_trend_periods` | int, *default 20* | Number of periods (`N`) in evaluation window. Must be greater than `leftSpan`.
diff --git a/docs/_indicators/Pmo.md b/docs/_indicators/Pmo.md
index db100368..da9b3f11 100644
--- a/docs/_indicators/Pmo.md
+++ b/docs/_indicators/Pmo.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `time_periods` | int, *default 35* | Number of periods (`T`) for ROC EMA smoothing. Must be greater than 1.
### Historical quotes requirements
diff --git a/docs/_indicators/Prs.md b/docs/_indicators/Prs.md
index b4cfbe28..f12591ce 100644
--- a/docs/_indicators/Prs.md
+++ b/docs/_indicators/Prs.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `base_history` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `base_history` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `eval_history` | Iterable[Quote] | Historical quotes for evaluation. You must have the same number of periods as `base_history`.
| `lookback_periods` | int, Optional | Number of periods (`N`) to lookback to compute % difference. Must be greater than 0 if specified or `None`.
| `sma_periods` | int, Optional | Number of periods (`S`) in the SMA lookback period for `prs`. Must be greater than 0.
diff --git a/docs/_indicators/Pvo.md b/docs/_indicators/Pvo.md
index 891cad37..0e315d6a 100644
--- a/docs/_indicators/Pvo.md
+++ b/docs/_indicators/Pvo.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `fast_periods` | int, *default 12* | Number of periods (`F`) for the faster moving average. Must be greater than 0.
| `slow_periods` | int, *default 26* | Number of periods (`S`) for the slower moving average. Must be greater than `fast_periods`.
| `signal_periods` | int, *default 9* | Number of periods (`P`) for the moving average of PVO. Must be greater than or equal to 0.
@@ -44,9 +44,9 @@ PVOResults[PVOResult]
| name | type | notes
| -- |-- |--
| `date` | datetime | Date
-| `pvo` | Decimal, Optional | Normalized difference between two Volume moving averages
-| `signal` | Decimal, Optional | Moving average of the `pvo` line
-| `histogram` | Decimal, Optional | Gap between of the `pvo` and `signal` line
+| `pvo` | float, Optional | Normalized difference between two Volume moving averages
+| `signal` | float, Optional | Moving average of the `pvo` line
+| `histogram` | float, Optional | Gap between of the `pvo` and `signal` line
### Utilities
diff --git a/docs/_indicators/Renko.md b/docs/_indicators/Renko.md
index dafc2c48..0ed9e8b1 100644
--- a/docs/_indicators/Renko.md
+++ b/docs/_indicators/Renko.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `brick_size` | float | Brick size. Must be greater than 0.
| `end_type` | EndType, *default EndType.CLOSE* | See [EndType options](#endtype-options) below.
@@ -68,7 +68,7 @@ Each result record represents one Renko brick.
### Utilities
-- [.to_quotes()]({{site.baseurl}}/utilities#convert-to-quotes)
+- ~~[.to_quotes()]({{site.baseurl}}/utilities#convert-to-quotes)~~ [deprecated]
- [.find(lookup_date)]({{site.baseurl}}/utilities#find-indicator-result-by-date)
- [.remove_warmup_periods(qty)]({{site.baseurl}}/utilities#remove-warmup-periods)
diff --git a/docs/_indicators/Roc.md b/docs/_indicators/Roc.md
index 597e60d1..503a2cc0 100644
--- a/docs/_indicators/Roc.md
+++ b/docs/_indicators/Roc.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int | Number of periods (`N`) to go back. Must be greater than 0.
| `sma_periods` | int, Optional | Number of periods in the moving average of ROC. Must be greater than 0, if specified.
@@ -72,7 +72,7 @@ results = indicators.get_roc(quotes, 20)
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int | Number of periods (`N`) to go back. Must be greater than 0. Typical values range from 10-20.
| `ema_periods` | int | Number of periods for the ROC EMA line. Must be greater than 0. Standard is 3.
| `std_dev_periods` | int | Number of periods the standard deviation for upper/lower band lines. Must be greater than 0 and not more than `lookback_periods`. Standard is to use same value as `lookback_periods`.
diff --git a/docs/_indicators/RollingPivots.md b/docs/_indicators/RollingPivots.md
index 0b4020af..4f1dad13 100644
--- a/docs/_indicators/RollingPivots.md
+++ b/docs/_indicators/RollingPivots.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `window_periods` | int | Number of periods (`W`) in the evaluation window. Must be greater than 0 to calculate; but is typically specified in the 5-20 range.
| `offset_periods` | int | Number of periods (`F`) to offset the window from the current period. Must be greater than or equal to 0 and is typically less than or equal to `W`.
| `point_type` | PivotPointType, *default PivotPointType.STANDARD* | Type of Pivot Point. See [PivotPointType options](#pivotpointtype-options) below.
diff --git a/docs/_indicators/Rsi.md b/docs/_indicators/Rsi.md
index b8c0c2cd..93deb8f6 100644
--- a/docs/_indicators/Rsi.md
+++ b/docs/_indicators/Rsi.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int, *default 14* | Number of periods (`N`) in the lookback period. Must be greater than 0.
### Historical quotes requirements
@@ -45,7 +45,7 @@ RSIResults[RSIResult]
### Utilities
-- [.to_quotes()]({{site.baseurl}}/utilities#convert-to-quotes)
+- ~~[.to_quotes()]({{site.baseurl}}/utilities#convert-to-quotes)~~ [deprecated]
- [.find(lookup_date)]({{site.baseurl}}/utilities#find-indicator-result-by-date)
- [.remove_warmup_periods()]({{site.baseurl}}/utilities#remove-warmup-periods)
- [.remove_warmup_periods(qty)]({{site.baseurl}}/utilities#remove-warmup-periods)
diff --git a/docs/_indicators/Slope.md b/docs/_indicators/Slope.md
index c8039c9c..af786b89 100644
--- a/docs/_indicators/Slope.md
+++ b/docs/_indicators/Slope.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int | Number of periods (`N`) for the linear regression. Must be greater than 0.
### Historical quotes requirements
diff --git a/docs/_indicators/Sma.md b/docs/_indicators/Sma.md
index c82b7337..b4ebc6bb 100644
--- a/docs/_indicators/Sma.md
+++ b/docs/_indicators/Sma.md
@@ -8,16 +8,16 @@ layout: indicator
# {{ page.title }}
-## **get_sma**(*quotes, lookback_periods*)
+## **get_sma**(*quotes, lookback_periods, candle_part=CandlePart.CLOSE*)
## Parameters
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int | Number of periods (`N`) in the lookback window. Must be greater than 0.
+| `candle_part` | CandlePart, *default CandlePart.CLOSE* | Specify candle part to evaluate. See [CandlePart options](#candlepart-options) below.
-
### Historical quotes requirements
@@ -25,16 +25,7 @@ You must have at least `N` periods of `quotes` to cover the warmup periods.
`quotes` is an `Iterable[Quote]` collection of historical price quotes. It should have a consistent frequency (day, hour, minute, etc). See [the Guide]({{site.baseurl}}/guide/#historical-quotes) for more information.
-
+{% include candlepart-options.md %}
## Returns
@@ -43,6 +34,7 @@ SMAResults[SMAResult]
```
- This method returns a time series of all available indicator values for the `quotes` provided.
+- `SMAResults` is just a list of `SMAResult`.
- It always returns the same number of elements as there are in the historical quotes.
- It does not return a single incremental indicator value.
- The first `N-1` periods will have `None` values since there's not enough data to calculate.
@@ -108,7 +100,7 @@ results = indicators.get_sma_extended(quotes, lookback_periods)
## About: {{ page.title }}
-[Simple Moving Average](https://en.wikipedia.org/wiki/Moving_average#Simple_moving_average) is the average price over a lookback window.
+[Simple Moving Average](https://en.wikipedia.org/wiki/Moving_average#Simple_moving_average) is the average price over a lookback window. An [extended analysis](#extended-analysis) option includes mean absolute deviation (MAD), mean square error (MSE), and mean absolute percentage error (MAPE).
[[Discuss] :speech_balloon:]({{site.github.base_repository_url}}/discussions/240 "Community discussion about this indicator")
![image]({{site.charturl}}/Sma.png)
diff --git a/docs/_indicators/Smi.md b/docs/_indicators/Smi.md
index a5bdb33a..6eb1eac9 100644
--- a/docs/_indicators/Smi.md
+++ b/docs/_indicators/Smi.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int | Lookback period (`N`) for the stochastic. Must be greater than 0.
| `first_smooth_periods` | int | First smoothing factor lookback. Must be greater than 0.
| `second_smooth_periods` | int | Second smoothing factor lookback. Must be greater than 0.
diff --git a/docs/_indicators/Smma.md b/docs/_indicators/Smma.md
index eb1fb0a8..279ece0f 100644
--- a/docs/_indicators/Smma.md
+++ b/docs/_indicators/Smma.md
@@ -15,7 +15,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int | Number of periods (`N`) in the moving average. Must be greater than 0.
### Historical quotes requirements
diff --git a/docs/_indicators/StarcBands.md b/docs/_indicators/StarcBands.md
index afc86b9d..a86c6e23 100644
--- a/docs/_indicators/StarcBands.md
+++ b/docs/_indicators/StarcBands.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `sma_periods` | int, *default 20* | Number of lookback periods (`S`) for the center line moving average. Must be greater than 1 to calculate and is typically between 5 and 10.
| `multiplier` | float, *default 2.0* | ATR Multiplier. Must be greater than 0. Default is 2.
| `atr_periods` | int, *default 10* | Number of lookback periods (`A`) for the Average True Range. Must be greater than 1 to calculate and is typically the same value as `sma_periods`. Default is 10.
diff --git a/docs/_indicators/Stc.md b/docs/_indicators/Stc.md
index 23a0a139..47441b50 100644
--- a/docs/_indicators/Stc.md
+++ b/docs/_indicators/Stc.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `cycle_periods` | int, *default 10* | Number of periods (`C`) for the Trend Cycle. Must be greater than or equal to 0.
| `fast_periods` | int, *default 23* | Number of periods (`F`) for the faster moving average. Must be greater than 0.
| `slow_periods` | int, *default 50* | Number of periods (`S`) for the slower moving average. Must be greater than `fast_periods`.
@@ -44,7 +44,7 @@ STCResults[STCResult]
| name | type | notes
| -- |-- |--
| `date` | datetime | Date
-| `stc` | Decimal, Optional | Schaff Trend Cycle
+| `stc` | float, Optional | Schaff Trend Cycle
### Utilities
diff --git a/docs/_indicators/StdDev.md b/docs/_indicators/StdDev.md
index a59e8d29..08f890b7 100644
--- a/docs/_indicators/StdDev.md
+++ b/docs/_indicators/StdDev.md
@@ -15,7 +15,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int | Number of periods (`N`) in the lookback period. Must be greater than 1 to calculate; however we suggest a larger period for statistically appropriate sample size.
| `sma_periods` | int, Optional | Number of periods in the moving average of `Stdev`. Must be greater than 0, if specified.
diff --git a/docs/_indicators/StdDevChannels.md b/docs/_indicators/StdDevChannels.md
index 669d541d..5f45e6d1 100644
--- a/docs/_indicators/StdDevChannels.md
+++ b/docs/_indicators/StdDevChannels.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int, Optional, *default 20* | Size (`N`) of the evaluation window. Must be `None` or greater than 1 to calculate. A `None` value will produce a full `quotes` evaluation window ([see below](#alternative-depiction-for-full-quotes-variant)).
| `standard_deviations` | int, *default 2* | Width of bands. Standard deviations (`D`) from the regression line. Must be greater than 0. Default is 2.
diff --git a/docs/_indicators/Stoch.md b/docs/_indicators/Stoch.md
index 6dd71ddd..261131e8 100644
--- a/docs/_indicators/Stoch.md
+++ b/docs/_indicators/Stoch.md
@@ -15,7 +15,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int, *default 14* | Lookback period (`N`) for the oscillator (%K). Must be greater than 0.
| `signal_periods` | int, *default 3* | Smoothing period for the signal (%D). Must be greater than 0.
| `smooth_periods` | int, *default 3* | Smoothing period (`S`) for the Oscillator (%K). "Slow" stochastic uses 3, "Fast" stochastic uses 1. Must be greater than 0.
@@ -57,9 +57,9 @@ StochResults[StochResult]
| name | type | notes
| -- |-- |--
| `date` | datetime | Date
-| `oscillator` or `k` | Decimal, Optional | %K Oscillator over prior `N` lookback periods
-| `signal` or `d` | Decimal, Optional | %D Simple moving average of Oscillator
-| `percent_j` or `j` | Decimal, Optional | %J is the weighted divergence of %K and %D: `%J=kFactor×%K-dFactor×%D`
+| `oscillator` or `k` | float, Optional | %K Oscillator over prior `N` lookback periods
+| `signal` or `d` | float, Optional | %D Simple moving average of Oscillator
+| `percent_j` or `j` | float, Optional | %J is the weighted divergence of %K and %D: `%J=kFactor×%K-dFactor×%D`
Note: aliases of `k`, `d`, and `j` are also provided. They can be used interchangably with the standard outputs.
diff --git a/docs/_indicators/StochRsi.md b/docs/_indicators/StochRsi.md
index d1d77d69..44095d42 100644
--- a/docs/_indicators/StochRsi.md
+++ b/docs/_indicators/StochRsi.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `rsi_periods` | int | Number of periods (`R`) in the lookback period. Must be greater than 0. Standard is 14.
| `stoch_periods` | int | Number of periods (`S`) in the lookback period. Must be greater than 0. Typically the same value as `rsi_periods`.
| `signal_periods` | int | Number of periods (`G`) in the signal line (SMA of the StochRSI). Must be greater than 0. Typically 3-5.
@@ -46,8 +46,8 @@ StochRSIResults[StochRSIResult]
| name | type | notes
| -- |-- |--
| `date` | datetime | Date
-| `stoch_rsi` | Decimal, Optional | %K Oscillator = Stochastic RSI = Stoch(`S`,`G`,`M`) of RSI(`R`) of Close price
-| `signal` | Decimal, Optional | %D Signal Line = Simple moving average of %K based on `G` periods
+| `stoch_rsi` | float, Optional | %K Oscillator = Stochastic RSI = Stoch(`S`,`G`,`M`) of RSI(`R`) of Close price
+| `signal` | float, Optional | %D Signal Line = Simple moving average of %K based on `G` periods
### Utilities
diff --git a/docs/_indicators/SuperTrend.md b/docs/_indicators/SuperTrend.md
index c2f130b2..c8c08f8c 100644
--- a/docs/_indicators/SuperTrend.md
+++ b/docs/_indicators/SuperTrend.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int, *default 10* | Number of periods (`N`) for the ATR evaluation. Must be greater than 1 and is usually set between 7 and 14.
| `multiplier` | float, *default 3* | Multiplier sets the ATR band width. Must be greater than 0 and is usually set around 2 to 3.
diff --git a/docs/_indicators/T3.md b/docs/_indicators/T3.md
index e61aa4e5..5f645259 100644
--- a/docs/_indicators/T3.md
+++ b/docs/_indicators/T3.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int, *default 5* | Number of periods (`N`) for the EMA smoothing. Must be greater than 0 and is usually less than 63.
| `volume_factor` | float, *default 0.7* | Size of the Volume Factor. Must be greater than 0 and is usually less than 2.
diff --git a/docs/_indicators/Tema.md b/docs/_indicators/Tema.md
index 158aa76d..764798dc 100644
--- a/docs/_indicators/Tema.md
+++ b/docs/_indicators/Tema.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int | Number of periods (`N`) in the moving average. Must be greater than 0.
### Historical quotes requirements
diff --git a/docs/_indicators/Trix.md b/docs/_indicators/Trix.md
index b9937bbc..976028c6 100644
--- a/docs/_indicators/Trix.md
+++ b/docs/_indicators/Trix.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int | Number of periods (`N`) in each of the the exponential moving averages. Must be greater than 0.
| `signal_periods` | int, Optional | Number of periods in the moving average of TRIX. Must be greater than 0, if specified.
diff --git a/docs/_indicators/Tsi.md b/docs/_indicators/Tsi.md
index d4e7d00e..31efaacc 100644
--- a/docs/_indicators/Tsi.md
+++ b/docs/_indicators/Tsi.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int, *default 25* | Number of periods (`N`) for the first EMA. Must be greater than 0.
| `smooth_periods` | int, *default 13* | Number of periods (`M`) for the second smoothing. Must be greater than 0.
| `signal_periods` | int, *default 7* | Number of periods (`S`) in the TSI moving average. Must be greater than or equal to 0.
diff --git a/docs/_indicators/UlcerIndex.md b/docs/_indicators/UlcerIndex.md
index c7ebb9ab..fb680a8f 100644
--- a/docs/_indicators/UlcerIndex.md
+++ b/docs/_indicators/UlcerIndex.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int, *default 14* | Number of periods (`N`) for review. Must be greater than 0.
### Historical quotes requirements
diff --git a/docs/_indicators/Ultimate.md b/docs/_indicators/Ultimate.md
index ee772804..26ed4dbd 100644
--- a/docs/_indicators/Ultimate.md
+++ b/docs/_indicators/Ultimate.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `short_periods` | int, *default 7* | Number of periods (`S`) in the short lookback. Must be greater than 0.
| `middle_periods` | int, *default 14* | Number of periods (`M`) in the middle lookback. Must be greater than `S`.
| `long_periods` | int, *default 28* | Number of periods (`L`) in the long lookback. Must be greater than `M`.
@@ -42,7 +42,7 @@ UltimateResults[UltimateResult]
| name | type | notes
| -- |-- |--
| `date` | datetime | Date
-| `ultimate` | Decimal, Optional | Simple moving average for `N` lookback periods
+| `ultimate` | float, Optional | Simple moving average for `N` lookback periods
### Utilities
diff --git a/docs/_indicators/VolatilityStop.md b/docs/_indicators/VolatilityStop.md
index 0336b009..7d1f6ec7 100644
--- a/docs/_indicators/VolatilityStop.md
+++ b/docs/_indicators/VolatilityStop.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int, *default 7* | Number of periods (`N`) ATR lookback window. Must be greater than 1.
| `multiplier` | float, *default 3* | ATR multiplier for the offset. Must be greater than 0.
diff --git a/docs/_indicators/Vortex.md b/docs/_indicators/Vortex.md
index c8541f6b..b205b0f1 100644
--- a/docs/_indicators/Vortex.md
+++ b/docs/_indicators/Vortex.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int | Number of periods (`N`) to consider. Must be greater than 1 and is usually between 14 and 30.
### Historical quotes requirements
diff --git a/docs/_indicators/Vwap.md b/docs/_indicators/Vwap.md
index 7a9ba466..71fa6e12 100644
--- a/docs/_indicators/Vwap.md
+++ b/docs/_indicators/Vwap.md
@@ -16,7 +16,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `start` | datetime, Optional | The anchor date used to start the VWAP accumulation. The earliest date in `quotes` is used when not provided.
| `year`, `month`, `day`, `hour`, `minute`| int, Optional | The anchor date used to start the VWAP accumulation. The earliest date in `quotes` is used when not provided.
diff --git a/docs/_indicators/Vwma.md b/docs/_indicators/Vwma.md
index 285870ce..af07cfbc 100644
--- a/docs/_indicators/Vwma.md
+++ b/docs/_indicators/Vwma.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int | Number of periods (`N`) in the moving average. Must be greater than 0.
### Historical quotes requirements
diff --git a/docs/_indicators/WilliamsR.md b/docs/_indicators/WilliamsR.md
index b1f60052..77742590 100644
--- a/docs/_indicators/WilliamsR.md
+++ b/docs/_indicators/WilliamsR.md
@@ -14,7 +14,7 @@ layout: indicator
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int, *default 14* | Number of periods (`N`) in the lookback period. Must be greater than 0. Default is 14.
### Historical quotes requirements
diff --git a/docs/_indicators/Wma.md b/docs/_indicators/Wma.md
index 628bf796..3a7b3555 100644
--- a/docs/_indicators/Wma.md
+++ b/docs/_indicators/Wma.md
@@ -8,14 +8,15 @@ layout: indicator
# {{ page.title }}
-## **get_wma**(*quotes, lookback_periods*)
+## **get_wma**(*quotes, lookback_periods, candle_part=CandlePart.CLOSE*)
## Parameters
| name | type | notes
| -- |-- |--
-| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
| `lookback_periods` | int | Number of periods (`N`) in the moving average. Must be greater than 0.
+| `candle_part` | CandlePart, *default CandlePart.CLOSE* | Specify candle part to evaluate. See [CandlePart options](#candlepart-options) below.
### Historical quotes requirements
@@ -23,6 +24,8 @@ You must have at least `N` periods of `quotes` to cover the warmup periods.
`quotes` is an `Iterable[Quote]` collection of historical price quotes. It should have a consistent frequency (day, hour, minute, etc). See [the Guide]({{site.baseurl}}/guide/#historical-quotes) for more information.
+{% include candlepart-options.md %}
+
## Return
```python
diff --git a/docs/_indicators/ZigZag.md b/docs/_indicators/ZigZag.md
new file mode 100644
index 00000000..88f41e2d
--- /dev/null
+++ b/docs/_indicators/ZigZag.md
@@ -0,0 +1,92 @@
+---
+title: Zig Zag
+permalink: /indicators/ZigZag/
+type: price-transform
+layout: indicator
+---
+
+# {{ page.title }}
+
+
+## **get_zig_zag**(*quotes, end_type=EndType.CLOSE, percent_change=5*)
+
+## Parameters
+
+| name | type | notes
+| -- |-- |--
+| `quotes` | Iterable[Quote] | Iterable(such as list or an object having `__iter__()`) of the [Quote class]({{site.baseurl}}/guide/#historical-quotes) or [its sub-class]({{site.baseurl}}/guide/#using-custom-quote-classes).
• [Got in trouble with Pandas.dataframe?]({{site.baseurl}}/guide/#using-pandasdataframe)
+| `end_type` | EndType, *default EndType.CLOSE* | Determines whether `close` or `high/low` are used to measure percent change. See [EndType options](#endtype-options) below.
+| `percent_change` | float, *default 5* | Percent change required to establish a line endpoint. Example: 3.5% would be entered as 3.5 (not 0.035). Must be greater than 0. Typical values range from 3 to 10.
+
+### Historical quotes requirements
+
+You must have at least two periods of `quotes` to cover the warmup periods, but notably more is needed to be useful.
+
+`quotes` is an `Iterable[Quote]` collection of historical price quotes. It should have a consistent frequency (day, hour, minute, etc). See [the Guide]({{site.baseurl}}/guide/#historical-quotes) for more information.
+
+### EndType options
+
+| type | description
+|-- |--
+| `EndType.CLOSE` | Percent change measured from `close` price (default)
+| `EndType.HIGH_LOW` | Percent change measured from `high` and `low` price
+
+## Returns
+
+```python
+ZigZagResults[ZigZagResult]
+```
+
+- This method returns a time series of all available indicator values for the `quotes` provided.
+- `ZigZagResults` is just a list of `ZigZagResult`.
+- It always returns the same number of elements as there are in the historical quotes.
+- It does not return a single incremental indicator value.
+- If you do not supply enough points to cover the percent change, there will be no Zig Zag points or lines.
+- The first line segment starts after the first confirmed point; ZigZag values before the first confirmed point will be `None`.
+- The last line segment is an approximation as the direction is indeterminate.
+
+:warning: **Warning**: depending on the specified `end_type`, the indicator cannot be initialized if the first `Quote` in `quotes` has a `high`,`low`, or `close` value of 0 (zero).
+
+:paintbrush: **Repaint Warning**: the last line segement will always be redrawn back to the last known pivot. Do not attempt to calculate incremental values since previous values may change based on newer quotes.
+
+### ZigZagResult
+
+| name | type | notes
+| -- |-- |--
+| `date` | datetime | Date
+| `zig_zag` | Decimal, Optional | Zig Zag line for `percent_change`
+| `point_type` | str, Optional | Zig Zag endpoint type (`H` for high point, `L` for low point)
+| `retrace_high` | Decimal, Optional | Retrace line for high points
+| `retrace_low` | Decimal, Optional | Retrace line for low points
+
+### Utilities
+
+- [.find(lookup_date)]({{site.baseurl}}/utilities#find-indicator-result-by-date)
+- [.remove_warmup_periods(qty)]({{site.baseurl}}/utilities#remove-warmup-periods)
+
+See [Utilities and Helpers]({{site.baseurl}}/utilities#utilities-for-indicator-results) for more information.
+
+## Example
+
+```python
+from stock_indicators import indicators
+
+# This method is NOT a part of the library.
+quotes = get_history_from_feed("SPY")
+
+# Calculate 3% change ZIGZAG
+results = indicators.get_zig_zag(quotes, EndType.CLOSE, 3);
+```
+
+
+### About: {{ page.title }}
+
+[Zig Zag](https://school.stockcharts.com/doku.php?id=technical_indicators:zigzag) is a price chart overlay that simplifies the up and down movements and transitions based on a percent change smoothing threshold.
+[[Discuss] :speech_balloon:]({{site.github.base_repository_url}}/discussions/226 "Community discussion about this indicator")
+
+![image]({{site.charturl}}/ZigZag.png)
+
+#### Sources
+
+- [C# core]({{site.base_sourceurl}}/s-z/ZigZag/ZigZag.cs)
+- [Python wrapper]({{site.sourceurl}}/zig_zag.py)
diff --git a/docs/_layouts/indicator.html b/docs/_layouts/indicator.html
index 335fcf52..79a2f91a 100644
--- a/docs/_layouts/indicator.html
+++ b/docs/_layouts/indicator.html
@@ -4,4 +4,4 @@
{% include cyclotron.html %}
{{ content }}
-{% include cyclotron.html %}
+{% include footer.html %}
\ No newline at end of file
diff --git a/docs/_layouts/page.html b/docs/_layouts/page.html
new file mode 100644
index 00000000..b5b88086
--- /dev/null
+++ b/docs/_layouts/page.html
@@ -0,0 +1,6 @@
+---
+layout: default
+---
+
+{{ content }}
+{% include footer.html %}
\ No newline at end of file
diff --git a/docs/assets/css/style.scss b/docs/assets/css/style.scss
index 63e43a84..d089dd69 100644
--- a/docs/assets/css/style.scss
+++ b/docs/assets/css/style.scss
@@ -273,3 +273,30 @@ h5 {
.circle {
border-radius: 50%;
}
+
+// FOOTER / EDIT PAGE
+.footer {
+ margin-top: 3rem;
+ font-size: 0.9rem;
+
+ .footer-body {
+ font-size: 0.8rem;
+
+ .btn {
+ background-color: $color-primary;
+ color: $color-primary-light;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ font-size: 0.9rem;
+
+ &:hover {
+ background-color: $color-primary-hover;
+ text-decoration: none;
+ }
+ }
+ }
+}
+
+.qna-dataframe {
+ font-size: 13px;
+}
\ No newline at end of file
diff --git a/docs/guide.md b/docs/guide.md
index 36f52c92..f0482019 100644
--- a/docs/guide.md
+++ b/docs/guide.md
@@ -1,7 +1,7 @@
---
title: Guide and Pro tips
permalink: /guide/
-layout: default
+layout: page
---
# {{ page.title }}
@@ -110,6 +110,28 @@ Each indicator will need different amounts of price `quotes` to calculate. You
For example, if you are using daily data and want one year of precise EMA(250) data, you need to provide 3 years of historical quotes (1 extra year for the lookback period and 1 extra year for convergence); thereafter, you would discard or not use the first two years of results. Occassionally, even more is required for optimal precision.
+### Using Pandas.Dataframe
+
+If you are using `Pandas.Dataframe` to hold quote data, you have to convert it into our `Quote` instance. That means you must iterate them row by row. There's [an awesome article](https://towardsdatascience.com/efficiently-iterating-over-rows-in-a-pandas-dataframe-7dd5f9992c01) that introduces the best-efficiency way to iterate `Dataframe`.
+
+Here's an example we'd like to suggest: **Use list comprehension**
+```python
+# Suppose that you have dataframe like the below.
+# date open high low close volume
+# 0 2018-12-31 244.92 245.54 242.87 245.28 147031456
+# 1 2018-12-28 244.94 246.73 241.87 243.15 155998912
+# 2 2018-12-27 238.06 243.68 234.52 243.46 189794032
+# ... ... ... ... ... ... ...
+
+quotes_list = [
+ Quote(d,o,h,l,c,v)
+ for d,o,h,l,c,v
+ in zip(df['date'], df['open'], df['high'], df['low'], df['close'], df['volume'])
+]
+```
+
+You can also use `numpy.vectorize()`, its gain is too slight and hard to apply in this case.
+
### Using custom quote classes
@@ -219,7 +241,8 @@ for r in nested_results:
If you want to compute an indicator of indicators, such as an SMA of an ADX or an [RSI of an OBV](https://medium.com/@robswc/this-is-what-happens-when-you-combine-the-obv-and-rsi-indicators-6616d991773d), all you need to do is to take the results of one, reformat into a synthetic historical quotes, and send it through to another indicator.
-Here's an example of SMA of RSI:
+
+
-See [.to_quotes()]({{site.baseurl}}/utilities/#convert-to-quotes) for more information.
+~~See [.to_quotes()]({{site.baseurl}}/utilities/#convert-to-quotes) for more information.~~
+The .to_quotes() method is now deprecated.
-When `.to_quotes()` is not available for an indicator, a workaround is to convert yourself.
+A workaround is to convert yourself.
```python
+from stock_indicators import indicators
+
+# fetch historical quotes from your feed (your method)
+quotes = get_history_from_feed("MSFT")
+
# calculate EMA
results = indicators.get_ema(quotes, 20)
diff --git a/docs/performance.md b/docs/performance.md
index 0c2696ee..e5d0d470 100644
--- a/docs/performance.md
+++ b/docs/performance.md
@@ -1,7 +1,7 @@
---
-title: Performance benchmarks for v0.1.0
+title: Performance benchmarks for v0.7.1
permalink: /performance/
-layout: default
+layout: page
---
# {{ page.title }}
@@ -17,87 +17,88 @@ Apple M1, 8 cores
## Indicators
```bash
------------------------------------------------------------------------------------------- benchmark: 78 tests -------------------------------------------------------------------------------------------
+------------------------------------------------------------------------------------------ benchmark: 79 tests -------------------------------------------------------------------------------------------
Name (time in ms) Min Max Mean StdDev Median IQR Outliers OPS Rounds Iterations
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-test_benchmark_renko 4.1260 (1.0) 4.8456 (1.0) 4.3030 (1.0) 0.1428 (2.12) 4.2610 (1.0) 0.1723 (2.48) 22;2 232.3933 (1.0) 76 1
-test_benchmark_roc 5.4747 (1.33) 92.3929 (19.07) 6.4133 (1.49) 7.4435 (110.49) 5.6433 (1.32) 0.1673 (2.40) 1;12 155.9267 (0.67) 136 1
-test_benchmark_doji 5.4799 (1.33) 8.1868 (1.69) 5.8176 (1.35) 0.3717 (5.52) 5.7953 (1.36) 0.4051 (5.82) 9;1 171.8922 (0.74) 82 1
-test_benchmark_rsi 5.4832 (1.33) 6.0048 (1.24) 5.5886 (1.30) 0.1009 (1.50) 5.5537 (1.30) 0.1254 (1.80) 20;5 178.9364 (0.77) 133 1
-test_benchmark_obv 5.4878 (1.33) 6.0922 (1.26) 5.7525 (1.34) 0.1540 (2.29) 5.7395 (1.35) 0.2135 (3.07) 37;0 173.8378 (0.75) 110 1
-test_benchmark_pmo 5.4940 (1.33) 6.4650 (1.33) 5.6420 (1.31) 0.1414 (2.10) 5.5990 (1.31) 0.1525 (2.19) 11;2 177.2428 (0.76) 77 1
-test_benchmark_ema 5.4976 (1.33) 13.3975 (2.76) 5.8547 (1.36) 0.7973 (11.83) 5.6693 (1.33) 0.2410 (3.46) 4;8 170.8022 (0.73) 131 1
-test_benchmark_kvo 5.5106 (1.34) 6.6456 (1.37) 5.6228 (1.31) 0.1548 (2.30) 5.5666 (1.31) 0.1329 (1.91) 9;5 177.8459 (0.77) 95 1
-test_benchmark_alma 5.5139 (1.34) 6.6702 (1.38) 5.8329 (1.36) 0.2208 (3.28) 5.7713 (1.35) 0.2999 (4.31) 28;2 171.4424 (0.74) 102 1
-test_benchmark_tsi 5.5296 (1.34) 6.0752 (1.25) 5.6414 (1.31) 0.1183 (1.76) 5.5899 (1.31) 0.1511 (2.17) 14;3 177.2624 (0.76) 107 1
-test_benchmark_t3 5.5334 (1.34) 10.9672 (2.26) 6.2233 (1.45) 0.7478 (11.10) 6.0493 (1.42) 0.5541 (7.96) 7;5 160.6870 (0.69) 103 1
-test_benchmark_fractal 5.5349 (1.34) 85.4075 (17.63) 6.3020 (1.46) 7.0206 (104.21) 5.6455 (1.32) 0.1813 (2.61) 1;5 158.6802 (0.68) 129 1
-test_benchmark_marubozu 5.5370 (1.34) 10.3218 (2.13) 5.8524 (1.36) 0.6397 (9.50) 5.6774 (1.33) 0.1963 (2.82) 9;15 170.8701 (0.74) 122 1
-test_benchmark_awesome 5.5400 (1.34) 6.1885 (1.28) 5.6830 (1.32) 0.1074 (1.59) 5.6642 (1.33) 0.1285 (1.85) 28;4 175.9620 (0.76) 118 1
-test_benchmark_smma 5.5509 (1.35) 6.4687 (1.33) 5.7336 (1.33) 0.1321 (1.96) 5.7047 (1.34) 0.1472 (2.12) 21;4 174.4108 (0.75) 111 1
-test_benchmark_wma 5.5551 (1.35) 6.3335 (1.31) 5.7424 (1.33) 0.1261 (1.87) 5.7271 (1.34) 0.1442 (2.07) 53;2 174.1442 (0.75) 149 1
-test_benchmark_fcb 5.5554 (1.35) 6.8455 (1.41) 5.9071 (1.37) 0.2901 (4.31) 5.8962 (1.38) 0.4286 (6.16) 32;1 169.2886 (0.73) 82 1
-test_benchmark_force_index 5.5583 (1.35) 6.1730 (1.27) 5.6371 (1.31) 0.0845 (1.25) 5.6101 (1.32) 0.0696 (1.0) 9;6 177.3948 (0.76) 113 1
-test_benchmark_kama 5.5612 (1.35) 6.3748 (1.32) 5.6756 (1.32) 0.1291 (1.92) 5.6357 (1.32) 0.1139 (1.64) 9;6 176.1921 (0.76) 97 1
-test_benchmark_chop 5.5696 (1.35) 6.2348 (1.29) 5.7837 (1.34) 0.1438 (2.13) 5.7560 (1.35) 0.1803 (2.59) 32;2 172.8986 (0.74) 95 1
-test_benchmark_mama 5.5932 (1.36) 7.8260 (1.62) 5.7984 (1.35) 0.3248 (4.82) 5.6944 (1.34) 0.1866 (2.68) 8;8 172.4601 (0.74) 85 1
-test_benchmark_double_ema 5.5965 (1.36) 6.1142 (1.26) 5.7295 (1.33) 0.0929 (1.38) 5.7093 (1.34) 0.0924 (1.33) 18;4 174.5356 (0.75) 86 1
-test_benchmark_bop 5.6032 (1.36) 7.0379 (1.45) 5.8402 (1.36) 0.2374 (3.52) 5.7671 (1.35) 0.1168 (1.68) 8;12 171.2264 (0.74) 90 1
-test_benchmark_vwap 5.6110 (1.36) 7.8903 (1.63) 5.9596 (1.38) 0.3770 (5.60) 5.8334 (1.37) 0.2525 (3.63) 11;11 167.7967 (0.72) 92 1
-test_benchmark_cci 5.6189 (1.36) 11.4863 (2.37) 6.1164 (1.42) 0.7713 (11.45) 5.8562 (1.37) 0.4545 (6.53) 12;12 163.4946 (0.70) 108 1
-test_benchmark_ultimate 5.6246 (1.36) 91.3383 (18.85) 6.7092 (1.56) 8.2221 (122.05) 5.8637 (1.38) 0.3118 (4.48) 1;2 149.0493 (0.64) 108 1
-test_benchmark_smi 5.6323 (1.37) 6.3820 (1.32) 5.8123 (1.35) 0.1264 (1.88) 5.7866 (1.36) 0.1127 (1.62) 26;5 172.0492 (0.74) 108 1
-test_benchmark_elder_ray 5.6332 (1.37) 6.0962 (1.26) 5.7053 (1.33) 0.0751 (1.11) 5.6818 (1.33) 0.0785 (1.13) 8;4 175.2755 (0.75) 95 1
-test_benchmark_fisher_transform 5.6335 (1.37) 6.1022 (1.26) 5.7436 (1.33) 0.0674 (1.0) 5.7188 (1.34) 0.0775 (1.11) 18;3 174.1079 (0.75) 106 1
-test_benchmark_ma_envelopes 5.6350 (1.37) 6.1912 (1.28) 5.8126 (1.35) 0.1078 (1.60) 5.7955 (1.36) 0.0798 (1.15) 33;15 172.0415 (0.74) 98 1
-test_benchmark_parabolic_sar 5.6357 (1.37) 11.8207 (2.44) 6.2096 (1.44) 1.1010 (16.34) 5.8645 (1.38) 0.2769 (3.98) 5;8 161.0415 (0.69) 55 1
-test_benchmark_adl 5.6366 (1.37) 8.5952 (1.77) 5.9811 (1.39) 0.5817 (8.63) 5.9031 (1.39) 0.2106 (3.03) 1;1 167.1945 (0.72) 23 1
-test_benchmark_vortex 5.6569 (1.37) 7.5631 (1.56) 5.9456 (1.38) 0.3354 (4.98) 5.8171 (1.37) 0.2436 (3.50) 15;13 168.1910 (0.72) 107 1
-test_benchmark_mfi 5.6690 (1.37) 86.2132 (17.79) 6.6533 (1.55) 8.1210 (120.55) 5.7699 (1.35) 0.1710 (2.46) 1;5 150.3007 (0.65) 98 1
-test_benchmark_chaikin_osc 5.6717 (1.37) 7.1532 (1.48) 5.9809 (1.39) 0.2412 (3.58) 5.9230 (1.39) 0.2672 (3.84) 21;3 167.1993 (0.72) 79 1
-test_benchmark_cmf 5.6742 (1.38) 6.9036 (1.42) 5.9742 (1.39) 0.2904 (4.31) 5.8362 (1.37) 0.4846 (6.96) 23;0 167.3870 (0.72) 98 1
-test_benchmark_macd 5.6834 (1.38) 28.2138 (5.82) 6.8444 (1.59) 3.3016 (49.01) 6.1449 (1.44) 0.5003 (7.19) 4;8 146.1056 (0.63) 93 1
-test_benchmark_sma 5.6867 (1.38) 20.2324 (4.18) 6.2085 (1.44) 1.2760 (18.94) 6.0152 (1.41) 0.3444 (4.95) 2;11 161.0700 (0.69) 143 1
-test_benchmark_pivot_points 5.6882 (1.38) 6.5109 (1.34) 5.9283 (1.38) 0.1572 (2.33) 5.8712 (1.38) 0.2072 (2.98) 18;1 168.6822 (0.73) 65 1
-test_benchmark_connors_rsi 5.6915 (1.38) 6.3919 (1.32) 5.8648 (1.36) 0.1314 (1.95) 5.8438 (1.37) 0.1234 (1.77) 19;3 170.5097 (0.73) 65 1
-test_benchmark_ht_trendline 5.6930 (1.38) 6.2750 (1.30) 5.7917 (1.35) 0.1030 (1.53) 5.7625 (1.35) 0.1116 (1.60) 10;5 172.6620 (0.74) 88 1
-test_benchmark_aroon 5.7019 (1.38) 7.3920 (1.53) 6.0440 (1.40) 0.2686 (3.99) 5.9870 (1.41) 0.2765 (3.97) 22;5 165.4535 (0.71) 103 1
-test_benchmark_atr 5.7056 (1.38) 6.3501 (1.31) 5.9805 (1.39) 0.2196 (3.26) 5.9616 (1.40) 0.3256 (4.68) 4;0 167.2101 (0.72) 10 1
-test_benchmark_stdev 5.7207 (1.39) 8.0753 (1.67) 6.1180 (1.42) 0.3027 (4.49) 6.0877 (1.43) 0.3127 (4.49) 9;3 163.4526 (0.70) 98 1
-test_benchmark_dpo 5.7251 (1.39) 85.5333 (17.65) 6.7039 (1.56) 8.4034 (124.74) 5.7918 (1.36) 0.0855 (1.23) 1;8 149.1663 (0.64) 90 1
-test_benchmark_williams_r 5.7266 (1.39) 6.5275 (1.35) 6.0052 (1.40) 0.1908 (2.83) 5.9610 (1.40) 0.2855 (4.10) 30;0 166.5213 (0.72) 108 1
-test_benchmark_triple_ema 5.7419 (1.39) 7.2274 (1.49) 6.0463 (1.41) 0.3369 (5.00) 5.9288 (1.39) 0.3224 (4.63) 10;6 165.3908 (0.71) 73 1
-test_benchmark_alligator 5.7540 (1.39) 6.6827 (1.38) 5.9198 (1.38) 0.1411 (2.09) 5.9037 (1.39) 0.1198 (1.72) 7;3 168.9253 (0.73) 56 1
-test_benchmark_pivots 5.7697 (1.40) 7.3382 (1.51) 5.9355 (1.38) 0.3156 (4.68) 5.8228 (1.37) 0.1463 (2.10) 4;5 168.4786 (0.72) 59 1
-test_benchmark_vwma 5.8036 (1.41) 6.6257 (1.37) 6.1242 (1.42) 0.2022 (3.00) 6.0845 (1.43) 0.3161 (4.54) 41;0 163.2868 (0.70) 113 1
-test_benchmark_stoch 5.8192 (1.41) 88.5170 (18.27) 6.6510 (1.55) 7.0735 (105.00) 6.0217 (1.41) 0.1946 (2.80) 1;2 150.3538 (0.65) 136 1
-test_benchmark_pvo 5.8594 (1.42) 6.7668 (1.40) 6.0707 (1.41) 0.1671 (2.48) 6.0180 (1.41) 0.1771 (2.54) 12;6 164.7269 (0.71) 87 1
-test_benchmark_heikin_ashi 5.8710 (1.42) 6.5527 (1.35) 5.9508 (1.38) 0.1092 (1.62) 5.9106 (1.39) 0.0841 (1.21) 4;3 168.0438 (0.72) 76 1
-test_benchmark_trix 5.8831 (1.43) 6.5233 (1.35) 6.0819 (1.41) 0.1319 (1.96) 6.0425 (1.42) 0.1802 (2.59) 19;2 164.4235 (0.71) 76 1
-test_benchmark_gator 5.8910 (1.43) 6.5510 (1.35) 6.0568 (1.41) 0.1421 (2.11) 6.0111 (1.41) 0.1688 (2.43) 18;4 165.1048 (0.71) 85 1
-test_benchmark_chandelier 5.9471 (1.44) 6.7891 (1.40) 6.1343 (1.43) 0.1394 (2.07) 6.1017 (1.43) 0.1045 (1.50) 21;7 163.0174 (0.70) 98 1
-test_benchmark_volatility_stop 5.9709 (1.45) 7.4681 (1.54) 6.3546 (1.48) 0.2845 (4.22) 6.2791 (1.47) 0.3550 (5.10) 16;2 157.3668 (0.68) 68 1
-test_benchmark_stoch_rsi 5.9761 (1.45) 6.9553 (1.44) 6.1739 (1.43) 0.1515 (2.25) 6.1483 (1.44) 0.1948 (2.80) 18;1 161.9720 (0.70) 81 1
-test_benchmark_sma_extended 5.9776 (1.45) 7.1091 (1.47) 6.1699 (1.43) 0.1653 (2.45) 6.1259 (1.44) 0.1576 (2.27) 14;4 162.0784 (0.70) 92 1
-test_benchmark_super_trend 5.9807 (1.45) 8.2186 (1.70) 6.3343 (1.47) 0.3729 (5.54) 6.1788 (1.45) 0.2772 (3.98) 14;11 157.8694 (0.68) 83 1
-test_benchmark_adx 5.9874 (1.45) 7.4274 (1.53) 6.2284 (1.45) 0.2750 (4.08) 6.1088 (1.43) 0.2867 (4.12) 4;1 160.5538 (0.69) 35 1
-test_benchmark_slope 5.9896 (1.45) 6.7443 (1.39) 6.2639 (1.46) 0.1660 (2.46) 6.2482 (1.47) 0.2543 (3.65) 39;0 159.6455 (0.69) 125 1
-test_benchmark_stdev_channels 6.0004 (1.45) 6.7342 (1.39) 6.1937 (1.44) 0.1450 (2.15) 6.1617 (1.45) 0.1819 (2.61) 29;3 161.4542 (0.69) 90 1
-test_benchmark_epma 6.0203 (1.46) 7.6421 (1.58) 6.3617 (1.48) 0.3056 (4.54) 6.2830 (1.47) 0.3557 (5.11) 14;3 157.1900 (0.68) 77 1
-test_benchmark_donchian 6.0671 (1.47) 7.1593 (1.48) 6.3068 (1.47) 0.2099 (3.12) 6.2558 (1.47) 0.3025 (4.35) 22;1 158.5601 (0.68) 88 1
-test_benchmark_hma 6.1358 (1.49) 7.2202 (1.49) 6.3506 (1.48) 0.1956 (2.90) 6.2878 (1.48) 0.2044 (2.94) 13;2 157.4662 (0.68) 55 1
-test_benchmark_bollinger_bands 6.1389 (1.49) 6.6617 (1.37) 6.2889 (1.46) 0.1052 (1.56) 6.2764 (1.47) 0.1409 (2.02) 18;1 159.0114 (0.68) 65 1
-test_benchmark_rolling_pivots 6.1415 (1.49) 7.8126 (1.61) 6.4341 (1.50) 0.2707 (4.02) 6.3499 (1.49) 0.2540 (3.65) 10;6 155.4214 (0.67) 86 1
-test_benchmark_stc 6.1425 (1.49) 7.1205 (1.47) 6.3767 (1.48) 0.1858 (2.76) 6.3433 (1.49) 0.2493 (3.58) 8;1 156.8221 (0.67) 45 1
-test_benchmark_ulcer_index 6.1572 (1.49) 7.0037 (1.45) 6.3582 (1.48) 0.1420 (2.11) 6.3366 (1.49) 0.1600 (2.30) 23;3 157.2777 (0.68) 99 1
-test_benchmark_starc_bands 6.1661 (1.49) 6.8164 (1.41) 6.3345 (1.47) 0.1182 (1.75) 6.2912 (1.48) 0.1763 (2.53) 22;2 157.8668 (0.68) 91 1
-test_benchmark_keltner 6.2360 (1.51) 7.3260 (1.51) 6.5621 (1.52) 0.2492 (3.70) 6.5131 (1.53) 0.3927 (5.64) 21;0 152.3898 (0.66) 80 1
-test_benchmark_ichimoku 7.2452 (1.76) 11.8303 (2.44) 7.7022 (1.79) 0.7934 (11.78) 7.4342 (1.74) 0.3684 (5.29) 5;6 129.8324 (0.56) 69 1
-test_benchmark_prs 8.7366 (2.12) 16.4603 (3.40) 9.3009 (2.16) 1.0606 (15.74) 9.0388 (2.12) 0.2869 (4.12) 6;7 107.5159 (0.46) 75 1
-test_benchmark_correlation 9.0493 (2.19) 9.7506 (2.01) 9.1864 (2.13) 0.1043 (1.55) 9.1576 (2.15) 0.1187 (1.71) 14;2 108.8563 (0.47) 75 1
-test_benchmark_beta 9.3255 (2.26) 10.7893 (2.23) 9.6093 (2.23) 0.2552 (3.79) 9.5682 (2.25) 0.2310 (3.32) 8;2 104.0663 (0.45) 57 1
-test_benchmark_hurst 10.0185 (2.43) 11.5504 (2.38) 10.4482 (2.43) 0.2772 (4.12) 10.4092 (2.44) 0.3176 (4.56) 18;3 95.7106 (0.41) 69 1
-test_benchmark_hurst_longlong 236.8124 (57.39) 318.9976 (65.83) 254.1136 (59.05) 36.2801 (538.54) 237.9573 (55.85) 21.5396 (309.55) 1;1 3.9352 (0.02) 5 1
+test_benchmark_renko 4.1038 (1.0) 5.0610 (1.0) 4.3016 (1.0) 0.1799 (1.12) 4.2411 (1.0) 0.2313 (1.45) 15;2 232.4712 (1.0) 76 1
+test_benchmark_dema 5.4239 (1.32) 6.3719 (1.26) 5.6859 (1.32) 0.1870 (1.17) 5.6627 (1.34) 0.2204 (1.38) 21;4 175.8744 (0.76) 97 1
+test_benchmark_force_index 5.4294 (1.32) 6.3869 (1.26) 5.7374 (1.33) 0.1970 (1.23) 5.6953 (1.34) 0.2646 (1.66) 30;3 174.2959 (0.75) 115 1
+test_benchmark_roc 5.4602 (1.33) 90.4381 (17.87) 6.3993 (1.49) 7.4896 (46.65) 5.6623 (1.34) 0.2523 (1.58) 1;7 156.2666 (0.67) 128 1
+test_benchmark_ema 5.4603 (1.33) 6.7059 (1.33) 5.7641 (1.34) 0.1999 (1.25) 5.7553 (1.36) 0.2959 (1.85) 46;1 173.4867 (0.75) 137 1
+test_benchmark_cci 5.4745 (1.33) 6.6438 (1.31) 5.7355 (1.33) 0.1916 (1.19) 5.6933 (1.34) 0.2134 (1.34) 29;4 174.3528 (0.75) 113 1
+test_benchmark_fcb 5.4895 (1.34) 6.7510 (1.33) 5.7879 (1.35) 0.2204 (1.37) 5.7350 (1.35) 0.2826 (1.77) 17;2 172.7731 (0.74) 84 1
+test_benchmark_chop 5.4968 (1.34) 6.4898 (1.28) 5.7589 (1.34) 0.1892 (1.18) 5.7095 (1.35) 0.2060 (1.29) 29;3 173.6435 (0.75) 105 1
+test_benchmark_obv 5.4985 (1.34) 6.2451 (1.23) 5.7212 (1.33) 0.1788 (1.11) 5.6830 (1.34) 0.2373 (1.49) 31;3 174.7896 (0.75) 116 1
+test_benchmark_alma 5.5033 (1.34) 6.6748 (1.32) 5.9129 (1.37) 0.2476 (1.54) 5.9085 (1.39) 0.3789 (2.37) 34;1 169.1210 (0.73) 93 1
+test_benchmark_adl 5.5052 (1.34) 9.5222 (1.88) 5.9821 (1.39) 0.7968 (4.96) 5.8070 (1.37) 0.3411 (2.14) 1;1 167.1667 (0.72) 23 1
+test_benchmark_rsi 5.5116 (1.34) 6.8230 (1.35) 5.8082 (1.35) 0.2317 (1.44) 5.7743 (1.36) 0.3057 (1.91) 40;2 172.1705 (0.74) 135 1
+test_benchmark_pivot_points 5.5125 (1.34) 6.3064 (1.25) 5.7882 (1.35) 0.1947 (1.21) 5.7534 (1.36) 0.2817 (1.76) 18;0 172.7648 (0.74) 70 1
+test_benchmark_fractal 5.5170 (1.34) 92.5843 (18.29) 6.4893 (1.51) 7.8284 (48.76) 5.7575 (1.36) 0.2422 (1.52) 1;3 154.0991 (0.66) 123 1
+test_benchmark_tsi 5.5174 (1.34) 6.3914 (1.26) 5.7722 (1.34) 0.1743 (1.09) 5.7545 (1.36) 0.2728 (1.71) 37;1 173.2438 (0.75) 102 1
+test_benchmark_fisher_transform 5.5208 (1.35) 6.4870 (1.28) 5.8155 (1.35) 0.1943 (1.21) 5.7539 (1.36) 0.2764 (1.73) 31;2 171.9543 (0.74) 106 1
+test_benchmark_awesome 5.5287 (1.35) 6.5263 (1.29) 5.8533 (1.36) 0.1971 (1.23) 5.8280 (1.37) 0.2551 (1.60) 33;1 170.8439 (0.73) 105 1
+test_benchmark_doji 5.5296 (1.35) 8.0776 (1.60) 5.7834 (1.34) 0.3151 (1.96) 5.7190 (1.35) 0.2661 (1.67) 6;3 172.9082 (0.74) 90 1
+test_benchmark_kama 5.5315 (1.35) 6.4467 (1.27) 5.9089 (1.37) 0.2020 (1.26) 5.8934 (1.39) 0.2609 (1.63) 35;1 169.2349 (0.73) 103 1
+test_benchmark_smma 5.5326 (1.35) 6.3618 (1.26) 5.7523 (1.34) 0.1760 (1.10) 5.7239 (1.35) 0.2411 (1.51) 27;3 173.8448 (0.75) 113 1
+test_benchmark_triple_ema 5.5365 (1.35) 6.2965 (1.24) 5.8006 (1.35) 0.1825 (1.14) 5.7581 (1.36) 0.2741 (1.72) 27;0 172.3968 (0.74) 104 1
+test_benchmark_kvo 5.5390 (1.35) 6.3768 (1.26) 5.7953 (1.35) 0.2046 (1.27) 5.7534 (1.36) 0.3018 (1.89) 28;0 172.5533 (0.74) 99 1
+test_benchmark_bop 5.5439 (1.35) 6.4412 (1.27) 5.8223 (1.35) 0.1954 (1.22) 5.7639 (1.36) 0.2387 (1.49) 19;2 171.7548 (0.74) 81 1
+test_benchmark_pmo 5.5530 (1.35) 6.3173 (1.25) 5.7966 (1.35) 0.1864 (1.16) 5.7475 (1.36) 0.3031 (1.90) 23;0 172.5140 (0.74) 78 1
+test_benchmark_marubozu 5.5563 (1.35) 6.6350 (1.31) 5.8469 (1.36) 0.1983 (1.24) 5.8036 (1.37) 0.2660 (1.67) 30;2 171.0322 (0.74) 110 1
+test_benchmark_vwap 5.5688 (1.36) 6.4923 (1.28) 5.8144 (1.35) 0.1997 (1.24) 5.7688 (1.36) 0.2328 (1.46) 17;5 171.9874 (0.74) 97 1
+test_benchmark_sma 5.5692 (1.36) 6.9306 (1.37) 5.8315 (1.36) 0.2183 (1.36) 5.7712 (1.36) 0.2660 (1.66) 26;4 171.4815 (0.74) 137 1
+test_benchmark_vortex 5.5693 (1.36) 6.5341 (1.29) 5.8156 (1.35) 0.1962 (1.22) 5.7719 (1.36) 0.2782 (1.74) 31;1 171.9526 (0.74) 99 1
+test_benchmark_chaikin_osc 5.5937 (1.36) 6.3997 (1.26) 5.8529 (1.36) 0.1903 (1.19) 5.8296 (1.37) 0.2539 (1.59) 24;1 170.8557 (0.73) 74 1
+test_benchmark_elder_ray 5.6081 (1.37) 90.7748 (17.94) 6.8384 (1.59) 8.9494 (55.75) 5.8302 (1.37) 0.3033 (1.90) 1;2 146.2341 (0.63) 90 1
+test_benchmark_trix 5.6156 (1.37) 6.9526 (1.37) 5.8798 (1.37) 0.2243 (1.40) 5.8203 (1.37) 0.3051 (1.91) 27;1 170.0746 (0.73) 101 1
+test_benchmark_t3 5.6229 (1.37) 8.8135 (1.74) 5.9866 (1.39) 0.4823 (3.00) 5.8639 (1.38) 0.2385 (1.49) 4;5 167.0392 (0.72) 52 1
+test_benchmark_dpo 5.6283 (1.37) 6.3938 (1.26) 5.9117 (1.37) 0.1605 (1.0) 5.8885 (1.39) 0.1597 (1.0) 22;6 169.1553 (0.73) 83 1
+test_benchmark_wma 5.6346 (1.37) 6.4741 (1.28) 5.8710 (1.36) 0.1895 (1.18) 5.8026 (1.37) 0.2619 (1.64) 41;2 170.3300 (0.73) 142 1
+test_benchmark_mama 5.6372 (1.37) 7.7791 (1.54) 5.9610 (1.39) 0.2966 (1.85) 5.8957 (1.39) 0.2453 (1.54) 10;4 167.7561 (0.72) 86 1
+test_benchmark_ultimate 5.6397 (1.37) 6.6775 (1.32) 5.8894 (1.37) 0.2144 (1.34) 5.8403 (1.38) 0.3021 (1.89) 28;2 169.7953 (0.73) 104 1
+test_benchmark_ht_trendline 5.6642 (1.38) 6.4361 (1.27) 5.9078 (1.37) 0.1828 (1.14) 5.8743 (1.39) 0.2099 (1.31) 26;4 169.2668 (0.73) 91 1
+test_benchmark_heikin_ashi 5.6671 (1.38) 6.7844 (1.34) 5.9669 (1.39) 0.2098 (1.31) 5.9321 (1.40) 0.2302 (1.44) 17;3 167.5914 (0.72) 70 1
+test_benchmark_macd 5.6743 (1.38) 6.8114 (1.35) 5.9406 (1.38) 0.2232 (1.39) 5.8778 (1.39) 0.2851 (1.78) 20;4 168.3332 (0.72) 91 1
+test_benchmark_connors_rsi 5.6795 (1.38) 6.9720 (1.38) 5.9568 (1.38) 0.2443 (1.52) 5.8735 (1.38) 0.3136 (1.96) 9;1 167.8768 (0.72) 44 1
+test_benchmark_stoch 5.6795 (1.38) 92.4396 (18.27) 6.6300 (1.54) 7.8352 (48.81) 5.8802 (1.39) 0.2762 (1.73) 1;1 150.8284 (0.65) 122 1
+test_benchmark_atr 5.6809 (1.38) 122.4068 (24.19) 10.6991 (2.49) 20.8589 (129.93) 6.2858 (1.48) 0.8504 (5.32) 1;4 93.4658 (0.40) 31 1
+test_benchmark_smi 5.6940 (1.39) 6.5649 (1.30) 5.9423 (1.38) 0.2113 (1.32) 5.8948 (1.39) 0.3031 (1.90) 29;4 168.2855 (0.72) 100 1
+test_benchmark_williams_r 5.6992 (1.39) 6.5171 (1.29) 5.9647 (1.39) 0.2012 (1.25) 5.9378 (1.40) 0.2877 (1.80) 29;1 167.6521 (0.72) 95 1
+test_benchmark_ma_envelopes 5.7091 (1.39) 6.9290 (1.37) 5.9677 (1.39) 0.2016 (1.26) 5.9315 (1.40) 0.2839 (1.78) 22;1 167.5681 (0.72) 91 1
+test_benchmark_alligator 5.7146 (1.39) 7.3670 (1.46) 6.0691 (1.41) 0.2850 (1.78) 5.9794 (1.41) 0.3043 (1.90) 7;2 164.7694 (0.71) 53 1
+test_benchmark_aroon 5.7206 (1.39) 8.3696 (1.65) 6.2614 (1.46) 0.5420 (3.38) 6.1140 (1.44) 0.4823 (3.02) 9;4 159.7084 (0.69) 91 1
+test_benchmark_stdev 5.7211 (1.39) 6.4696 (1.28) 5.9655 (1.39) 0.1812 (1.13) 5.9217 (1.40) 0.3034 (1.90) 29;0 167.6292 (0.72) 94 1
+test_benchmark_parabolic_sar 5.7330 (1.40) 8.3364 (1.65) 6.1516 (1.43) 0.4911 (3.06) 5.9941 (1.41) 0.4625 (2.90) 5;3 162.5602 (0.70) 56 1
+test_benchmark_mfi 5.7408 (1.40) 91.0193 (17.98) 6.8251 (1.59) 8.4633 (52.72) 5.9583 (1.40) 0.2981 (1.87) 1;1 146.5187 (0.63) 101 1
+test_benchmark_vwma 5.7513 (1.40) 6.7780 (1.34) 5.9935 (1.39) 0.1926 (1.20) 5.9151 (1.39) 0.2996 (1.88) 32;1 166.8487 (0.72) 106 1
+test_benchmark_pivots 5.7525 (1.40) 6.7218 (1.33) 6.0171 (1.40) 0.2107 (1.31) 5.9955 (1.41) 0.3069 (1.92) 23;1 166.1928 (0.71) 71 1
+test_benchmark_pvo 5.7631 (1.40) 6.5960 (1.30) 6.0094 (1.40) 0.1862 (1.16) 5.9706 (1.41) 0.2601 (1.63) 24;1 166.4057 (0.72) 84 1
+test_benchmark_gator 5.8407 (1.42) 6.6330 (1.31) 6.0925 (1.42) 0.1854 (1.16) 6.0583 (1.43) 0.2425 (1.52) 24;2 164.1359 (0.71) 83 1
+test_benchmark_cmf 5.8556 (1.43) 7.1265 (1.41) 6.1196 (1.42) 0.2259 (1.41) 6.0423 (1.42) 0.2874 (1.80) 14;2 163.4106 (0.70) 93 1
+test_benchmark_zig_zag 5.8586 (1.43) 7.3463 (1.45) 6.1431 (1.43) 0.2812 (1.75) 6.0656 (1.43) 0.3315 (2.08) 7;2 162.7851 (0.70) 55 1
+test_benchmark_sma_extended 5.8715 (1.43) 6.6293 (1.31) 6.1416 (1.43) 0.1844 (1.15) 6.1288 (1.45) 0.2949 (1.85) 26;0 162.8233 (0.70) 85 1
+test_benchmark_epma 5.8825 (1.43) 6.7355 (1.33) 6.1725 (1.43) 0.1963 (1.22) 6.1322 (1.45) 0.2432 (1.52) 20;3 162.0086 (0.70) 77 1
+test_benchmark_adx 5.8835 (1.43) 7.9689 (1.57) 6.3192 (1.47) 0.3470 (2.16) 6.2440 (1.47) 0.2830 (1.77) 3;1 158.2490 (0.68) 34 1
+test_benchmark_slope 5.9446 (1.45) 6.9203 (1.37) 6.2085 (1.44) 0.2238 (1.39) 6.1802 (1.46) 0.2957 (1.85) 38;5 161.0698 (0.69) 124 1
+test_benchmark_donchian 5.9508 (1.45) 8.0383 (1.59) 6.2642 (1.46) 0.2622 (1.63) 6.2121 (1.46) 0.2364 (1.48) 12;2 159.6371 (0.69) 89 1
+test_benchmark_volatility_stop 5.9816 (1.46) 92.0881 (18.20) 7.6255 (1.77) 10.8153 (67.37) 6.2538 (1.47) 0.3109 (1.95) 1;2 131.1386 (0.56) 63 1
+test_benchmark_super_trend 6.0121 (1.46) 6.9099 (1.37) 6.2775 (1.46) 0.1973 (1.23) 6.2511 (1.47) 0.3157 (1.98) 33;1 159.2989 (0.69) 97 1
+test_benchmark_chandelier 6.0145 (1.47) 6.9791 (1.38) 6.2436 (1.45) 0.1997 (1.24) 6.2025 (1.46) 0.2421 (1.52) 24;5 160.1633 (0.69) 102 1
+test_benchmark_stoch_rsi 6.0184 (1.47) 7.1004 (1.40) 6.3155 (1.47) 0.2399 (1.49) 6.2969 (1.48) 0.3460 (2.17) 21;2 158.3407 (0.68) 76 1
+test_benchmark_stdev_channels 6.0320 (1.47) 6.9376 (1.37) 6.2994 (1.46) 0.2052 (1.28) 6.2626 (1.48) 0.2616 (1.64) 23;3 158.7446 (0.68) 88 1
+test_benchmark_bollinger_bands 6.0564 (1.48) 7.0425 (1.39) 6.3367 (1.47) 0.1976 (1.23) 6.2849 (1.48) 0.2864 (1.79) 17;1 157.8105 (0.68) 64 1
+test_benchmark_stc 6.0728 (1.48) 7.3780 (1.46) 6.3894 (1.49) 0.2436 (1.52) 6.3467 (1.50) 0.2615 (1.64) 8;3 156.5085 (0.67) 49 1
+test_benchmark_ulcer_index 6.1386 (1.50) 7.3633 (1.45) 6.4665 (1.50) 0.2366 (1.47) 6.4374 (1.52) 0.2885 (1.81) 35;3 154.6443 (0.67) 106 1
+test_benchmark_hma 6.1697 (1.50) 7.6278 (1.51) 6.5298 (1.52) 0.2588 (1.61) 6.4884 (1.53) 0.3045 (1.91) 10;1 153.1440 (0.66) 54 1
+test_benchmark_starc_bands 6.1931 (1.51) 7.8430 (1.55) 6.4907 (1.51) 0.3025 (1.88) 6.4099 (1.51) 0.3422 (2.14) 11;4 154.0676 (0.66) 91 1
+test_benchmark_rolling_pivots 6.1990 (1.51) 7.4464 (1.47) 6.4969 (1.51) 0.2593 (1.62) 6.4324 (1.52) 0.3637 (2.28) 19;2 153.9189 (0.66) 83 1
+test_benchmark_keltner 6.3440 (1.55) 7.4461 (1.47) 6.6020 (1.53) 0.2300 (1.43) 6.5536 (1.55) 0.2983 (1.87) 20;3 151.4695 (0.65) 80 1
+test_benchmark_ichimoku 7.4118 (1.81) 8.3472 (1.65) 7.6937 (1.79) 0.2348 (1.46) 7.6283 (1.80) 0.3717 (2.33) 22;0 129.9762 (0.56) 64 1
+test_benchmark_prs 8.8257 (2.15) 10.6346 (2.10) 9.1365 (2.12) 0.2704 (1.68) 9.0602 (2.14) 0.2903 (1.82) 16;2 109.4515 (0.47) 77 1
+test_benchmark_correlation 9.0012 (2.19) 10.4323 (2.06) 9.4080 (2.19) 0.2729 (1.70) 9.3466 (2.20) 0.3541 (2.22) 21;1 106.2923 (0.46) 73 1
+test_benchmark_beta 9.3447 (2.28) 10.6549 (2.11) 9.8958 (2.30) 0.2845 (1.77) 9.8863 (2.33) 0.4731 (2.96) 21;0 101.0533 (0.43) 58 1
+test_benchmark_hurst 9.6420 (2.35) 10.7395 (2.12) 10.0655 (2.34) 0.2298 (1.43) 10.0803 (2.38) 0.3171 (1.99) 21;1 99.3493 (0.43) 65 1
+test_benchmark_hurst_longlong 238.9944 (58.24) 325.9463 (64.40) 256.8817 (59.72) 38.6112 (240.51) 239.6449 (56.50) 22.3646 (140.01) 1;1 3.8928 (0.02) 5 1
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Legend:
diff --git a/docs/utilities.md b/docs/utilities.md
index 89303c78..1a27864c 100644
--- a/docs/utilities.md
+++ b/docs/utilities.md
@@ -1,7 +1,7 @@
---
title: Utilities and Helpers
permalink: /utilities/
-layout: default
+layout: page
---
# {{ page.title }}
@@ -23,6 +23,8 @@ Currently, `.condense()` is only available on a select few indicators. If you f
### Convert to quotes
+The .to_quotes() method is now deprecated.
+
`results.to_quotes()` will transform indicator results back into an `list[Quote]` so it can be re-used to generate an [indicator of indicators]({{site.baseurl}}/guide/#generating-indicator-of-indicators).
```python