(accumulation-distribution-line tl {:keys [close high low volume] :as sources})
Returns tuple of [adl money-flow-multiplier money-flow-volume] indicators.
Reference:
Sources:
close
high
low
volume
Returns tuple of [adl money-flow-multiplier money-flow-volume] indicators. Reference: - https://www.tradingview.com/support/solutions/43000501770-accumulation-distribution-adl/ Sources: - `close` - `high` - `low` - `volume`
(aroon-oscillator tl {:keys [high low]} {:keys [period] :as opts})
Returns tuple of nodes [aroon-oscillator aroon-up aroon-down], vals between 0 and 1
Reference:
Sources:
high
low
Opts:
period
Returns tuple of nodes [aroon-oscillator aroon-up aroon-down], vals between 0 and 1 Reference: - https://www.investopedia.com/terms/a/aroonoscillator.asp Sources: - `high` - `low` Opts: - `period`
(average-base-range tl
{:keys [high low] :as sources}
{:keys [avg-indicator period]
:or {avg-indicator relative-moving-average}})
moving average of base-range
.
Sources:
high
low
Opts:
avg-indicator
defaults to relative-moving-average
, must accept source as :src
period
passed to avg-indicator
as :periodmoving average of [[base-range]]. Sources: - `high` - `low` Opts: - `avg-indicator` defaults to [[relative-moving-average]], must accept source as `:src` - `period` passed to `avg-indicator` as :period
(average-directional-index tl
{:keys [close high low] :as sources}
{:keys [adx-avg-indicator adx-avg-opts
range-indicator range-opts line-avg-indicator
line-avg-opts]
:or {adx-avg-indicator exponential-moving-average
range-indicator average-true-range
line-avg-indicator exponential-moving-average}
:as opts})
Returns tuple of [adx di+ di-] nodes, where adx is between 0 and 1.
Reference:
Sources:
close
high
low
Opts:
range-indicator
range indicator to use, will be called with top level sources
. Defaults to average-true-range
range-opts
if specified, overrides top level opts
passed to range indicator.line-avg-indicator
defaults to exponential-moving-average
line-avg-opts
if specified, overrides top level opts passed to line-avg-indicator
adx-avg-indicator
defaults to exponential-moving-average
adx-avg-opts
if specified, overrides top level opts
on adx-avg-indicator
Returns tuple of [adx di+ di-] nodes, where adx is between 0 and 1. Reference: - https://www.investopedia.com/ask/answers/112814/how-average-directional-index-adx-calculated-and-what-formula.asp Sources: - `close` - `high` - `low` Opts: - `range-indicator` range indicator to use, will be called with top level `sources`. Defaults to [[average-true-range]] - `range-opts` if specified, overrides top level `opts` passed to range indicator. - `line-avg-indicator` defaults to [[exponential-moving-average]] - `line-avg-opts` if specified, overrides top level opts passed to `line-avg-indicator` - `adx-avg-indicator` defaults to [[exponential-moving-average]] - `adx-avg-opts` if specified, overrides top level `opts` on `adx-avg-indicator`
(average-true-range tl
{:keys [close high low] :as sources}
{:keys [avg-indicator period]
:or {avg-indicator relative-moving-average}})
moving average of true-range
.
Reference:
Sources:
close
high
low
Opts:
avg-indicator
defaults to relative-moving-average
, must accept source as :src
period
passed to avg-indicator
as :periodmoving average of [[true-range]]. Reference: - https://www.investopedia.com/terms/a/atr.asp (ATR) Sources: - `close` - `high` - `low` Opts: - `avg-indicator` defaults to [[relative-moving-average]], must accept source as `:src` - `period` passed to `avg-indicator` as :period
(base-range tl {:keys [high low]})
high - low
Sources:
high
low
high - low Sources: - `high` - `low`
(bollinger-bands tl
{:keys [src] :as sources}
{:keys [avg-indicator period avg-opts stdev-opts multiplier]
:or {avg-indicator simple-moving-average}
:as opts})
Returns tuple of nodes [upper middle lower] for bollinger bands.
Reference:
Sources:
src
Opts:
avg-indicator
for middle band. Defaults to simple-moving-average
, must accept source as :src
avg-opts
if specified, overrides top level opts
for avg-indicator
stdev-opts
if specified, overrides top level opts
for standard-deviation
Returns tuple of nodes [upper middle lower] for bollinger bands. Reference: - https://www.investopedia.com/terms/b/bollingerbands.asp Sources: - `src` Opts: - `avg-indicator` for middle band. Defaults to [[simple-moving-average]], must accept source as `:src` - `avg-opts` if specified, overrides top level `opts` for `avg-indicator` - `stdev-opts` if specified, overrides top level `opts` for [[standard-deviation]]
(chandelier-exits tl
{:keys [close high low] :as sources}
{:keys [range-indicator range-opts highest-opts lowest-opts
multiplier]
:or {range-indicator average-true-range}
:as opts})
Returns tuple of chandelier exits nodes [long short]
Reference:
Sources:
close
high
low
Opts:
range-indicator
Defaults to average-true-range
, will be passed top level sources
.range-opts
if specified, overrides top level opts
passed to range-indicator
highest-opts
if specified, overrides top level opts
passed to highest-val
lowest-opts
if specified, overrides top level opts
passed to lowest-val
multiplier
Returns tuple of chandelier exits nodes [long short] Reference: - https://school.stockcharts.com/doku.php?id=technical_indicators:chandelier_exit Sources: - `close` - `high` - `low` Opts: - `range-indicator` Defaults to [[average-true-range]], will be passed top level `sources`. - `range-opts` if specified, overrides top level `opts` passed to `range-indicator` - `highest-opts` if specified, overrides top level `opts` passed to [[highest-val]] - `lowest-opts` if specified, overrides top level `opts` passed to [[lowest-val]] - `multiplier`
(commodity-channel-index
tl
{:keys [src] :as sources}
{:keys [avg-indicator avg-opts mean-dev-opts period constant-factor]
:or {avg-indicator simple-moving-average constant-factor 0.015}
:as opts})
Reference:
Sources:
src
can be any number series, although the original formula specifies typical price to be hlc3
.Opts:
avg-indicator
defaults to simple-moving-average
, must accept src as :src
avg-opts
if specified, overrides top level opts
on avg-indicator
mean-dev-opts
if specified, overrides top level opts
on internal mean-deviation
constant-factor
double. defaults to 0.015Reference: - https://www.tradingtechnologies.com/xtrader-help/x-study/technical-indicator-definitions/commodity-channel-index-cci/ Sources: - `src` can be any number series, although the original formula specifies typical price to be [[hlc3]]. Opts: - `avg-indicator` defaults to [[simple-moving-average]], must accept src as `:src` - `avg-opts` if specified, overrides top level `opts` on `avg-indicator` - `mean-dev-opts` if specified, overrides top level `opts` on internal [[mean-deviation]] - `constant-factor` double. defaults to 0.015
(delta-source {:keys [input] :as sources} {:keys [max-size] :as opts})
Sources:
input
input node that contain partial timeseries of new items to introduce into the graph.Opts:
max-size
the maximum size used for tacos.timeseries/delta-timeline
.Returns tuple of nodes [delta-tl src] that can be used to introduce new values into a graph of derived timeseries:
delta-tl
is a node that emits tacos.timeseries/delta-timeline
using max-size
and the timestamps of timeseries
in input
.src
is a timeseries node that accumulates new values from input
, up to a maximum of max-size
, presumably to
be used as the source for other derived timeseries.Sources: - `input` input node that contain partial timeseries of new items to introduce into the graph. Opts: - `max-size` the maximum size used for [[tacos.timeseries/delta-timeline]]. Returns tuple of nodes [delta-tl src] that can be used to introduce new values into a graph of derived timeseries: - `delta-tl` is a node that emits [[tacos.timeseries/delta-timeline]] using `max-size` and the timestamps of timeseries in `input`. - `src` is a timeseries node that accumulates new values from `input`, up to a maximum of `max-size`, presumably to be used as the source for other derived timeseries.
(derived tl sources compute-ts)
Creates a new derived timeseries node (a.k.a indicator) given the following args:
tl
A graphcom node whose emitted value implements [[tacos.timeseires/Timeline]].sources
Map of dependency nodes. Timeline node will be merged into sources under ::timeline
keyword automatically.compute-ts
3-arity fn that will be called with args [current-value sources-values timestamp], and must return the
value of this timeseries at timestamp
. Note that timestamp can be any type that can be compared with compare
.
You could use integers (e.g epoch milliseconds), java.time instants, ISO strings, etcReturns node that will emit a derived timeseries as value.
Creates a new derived timeseries node (a.k.a indicator) given the following args: - `tl` A graphcom node whose emitted value implements [[tacos.timeseires/Timeline]]. - `sources` Map of dependency nodes. Timeline node will be merged into sources under `::timeline` keyword automatically. - `compute-ts` 3-arity fn that will be called with args [current-value sources-values timestamp], and must return the value of this timeseries at `timestamp`. Note that timestamp can be any type that can be compared with `compare`. You could use integers (e.g epoch milliseconds), java.time instants, ISO strings, etc Returns node that will emit a derived timeseries as value.
(donchian-channels tl
{:keys [high low]}
{:keys [highest-opts lowest-opts] :as opts})
Returns tuple of [mid high low] nodes
Sources:
high
low
Opts:
highest-opts
if specified, overrides top level opts
on highest-val
lowest-opts
if specified, overrides top level opts
on lowest-val
Reference:
Returns tuple of [mid high low] nodes Sources: - `high` - `low` Opts: - `highest-opts` if specified, overrides top level `opts` on [[highest-val]] - `lowest-opts` if specified, overrides top level `opts` on [[lowest-val]] Reference: - https://www.investopedia.com/terms/d/donchianchannels.asp
(double-exponential-moving-average tl
{:keys [src] :as sources}
{:keys [ema1-opts ema2-opts period]
:as opts})
Reference:
Sources:
src
Opts:
period
sent to internal exponential moving averagesmultiplier
sent to internal exponential moving averagesema1-opts
if specified, will be used instead of top level opts
for ema1ema2-opts
if specified, will be used instead of top level opts
for ema2Reference: - https://www.tradingview.com/support/solutions/43000589132-double-exponential-moving-average-ema/ Sources: - `src` Opts: - `period` sent to internal exponential moving averages - `multiplier` sent to internal exponential moving averages - `ema1-opts` if specified, will be used instead of top level `opts` for ema1 - `ema2-opts` if specified, will be used instead of top level `opts` for ema2
(envelope tl {:keys [src]} {:keys [multiplier]})
Returns tuple of nodes [upper lower], where: pos = src + (src * multiplier) neg = src - (src * multiplier)
Sources:
Opts:
multiplier
percentage number. e.g. 0.01 will create a 1% envelope around src
.Returns tuple of nodes [upper lower], where: pos = src + (src * multiplier) neg = src - (src * multiplier) Sources: - `src Opts: - `multiplier` percentage number. e.g. 0.01 will create a 1% envelope around `src`.
(exponential-moving-average tl
{:keys [src] :as sources}
{:keys [multiplier period]})
Reference:
Sources:
src
Opts:
period
multiplier
defaults to (/ 2 (inc period)).Reference: - https://www.tradingview.com/support/solutions/43000592270-exponential-moving-average/ Sources: - `src` Opts: - `period` - `multiplier` defaults to (/ 2 (inc period)).
(heikin-ashi tl {:keys [open close high low] :as sources})
Returns node that calculates Heikin ashi candles whose values are maps of keys #{:open :close :high :low}
Sources:
open
close
high
low
Reference:
Returns node that calculates Heikin ashi candles whose values are maps of keys #{:open :close :high :low} Sources: - `open` - `close` - `high` - `low` Reference: - https://www.investopedia.com/trading/heikin-ashi-better-candlestick/
(highest-val tl {:keys [src] :as sources} {:keys [period] :as opts})
Returns highest value of latest period items
Sources:
src
Opts:
period
Returns highest value of latest period items Sources: - `src` Opts: - `period`
(hl2 tl {:keys [high low]})
(high + low)/2
Sources:
high
low
(high + low)/2 Sources: - `high` - `low`
(hlc3 tl {:keys [high low close]})
(high+low+close)/3
Sources:
high
low
close
(high+low+close)/3 Sources: - `high` - `low` - `close`
(hull-moving-average tl {:keys [src] :as sources} {:keys [period] :as opts})
Reference:
Sources:
src
Opts:
period
Reference: - https://www.tradingview.com/support/solutions/43000589149-hull-moving-average/ Sources: - `src` Opts: - `period`
(kaufman-adaptive-moving-average tl
{:keys [src] :as sources}
{:keys [er-period slow-period fast-period]})
Reference:
Sources:
src
Opts:
er-period
period to use on kaufman-efficiency-ratio
slow-period
fast-period
Reference: - https://school.stockcharts.com/doku.php?id=technical_indicators:kaufman_s_adaptive_moving_average (KAMA) Sources: - `src` Opts: - `er-period` period to use on [[kaufman-efficiency-ratio]] - `slow-period` - `fast-period`
(kaufman-efficiency-ratio tl
{:keys [src] :as sources}
{:keys [period] :as opts})
Reference:
Sources:
src
Opts:
period
Reference: - https://school.stockcharts.com/doku.php?id=technical_indicators:kaufman_s_adaptive_moving_average (ER) Sources: - `src` Opts: - `period`
(keltner-channels tl
{:keys [close high low src] :as sources}
{:keys [avg-indicator avg-opts range-indicator range-opts
multiplier]
:or {avg-indicator exponential-moving-average
range-indicator average-true-range}
:as opts})
Returns tuple of nodes [upper middle lower]
Reference:
Sources:
close
(atr)high
(atr)low
(atr)src
(middle band)Opts:
avg-indicator
for middle band. Defaults to exponential-moving-average
, will be passed top level sources.avg-opts
if specified, overrides top level opts
for avg-indicator
range-indicator
for use as range indicator. Defaults to average-true-range
. Will be passed top level
sources
unchanged.range-opts
if specified, overrides top level opts
for range indicator.multiplier
Returns tuple of nodes [upper middle lower] Reference: - https://www.tradingview.com/support/solutions/43000502266-keltner-channels-kc/ Sources: - `close` (atr) - `high` (atr) - `low` (atr) - `src` (middle band) Opts: - `avg-indicator` for middle band. Defaults to [[exponential-moving-average]], will be passed top level sources. - `avg-opts` if specified, overrides top level `opts` for `avg-indicator` - `range-indicator` for use as range indicator. Defaults to [[average-true-range]]. Will be passed top level `sources` unchanged. - `range-opts` if specified, overrides top level `opts` for range indicator. - `multiplier`
(lowest-val tl {:keys [src] :as sources} {:keys [period] :as opts})
Returns lowest value of latest period items
Sources:
src
Opts:
period
Returns lowest value of latest period items Sources: - `src` Opts: - `period`
(map-some tl f n1)
(map-some tl f n1 n2)
(map-some tl f n1 n2 n3)
(map-some tl f n1 n2 n3 n4)
(map-some tl f n1 n2 n3 n4 & nodes)
Returns node that applies f to each timestamp value of each node, when current timestamp values for all nodes are non-nil.
e.g:
(map-some tl + x y z)
(map-some tl (fn [& xs] (/ (reduce + 0 xs) (count xs))) x y z)
Returns node that applies f to each timestamp value of each node, when current timestamp values for all nodes are non-nil. e.g: - sum each timestamp's val of different timeseries `(map-some tl + x y z)` - mean of x,y,z nodes `(map-some tl (fn [& xs] (/ (reduce + 0 xs) (count xs))) x y z)`
(mean tl & srcv)
Returns node that computes the mean of all nodes specified.
e.g ohlc4 = (mean tl open close high low) where open,close,high,low are indicators of each candle value.
Returns node that computes the mean of all nodes specified. e.g ohlc4 = (mean tl open close high low) where open,close,high,low are indicators of each candle value.
(mean-deviation tl
{:keys [src] :as sources}
{:keys [period avg-indicator avg-opts]
:or {avg-indicator simple-moving-average}
:as opts})
deviation of prices from a moving average.
Sources:
src
Opts:
avg-indicator
defaults to simple-moving-average
, must accept a source under :src
keyperiod
avg-opts
overrides top level opts
for avg-indicator
if specifieddeviation of prices from a moving average. Sources: - `src` Opts: - `avg-indicator` defaults to [[simple-moving-average]], must accept a source under `:src` key - `period` - `avg-opts` overrides top level `opts` for `avg-indicator` if specified
(momentum tl sources)
(momentum tl {:keys [src] :as sources} {:keys [period] :or {period 1}})
src(i) - src(i-period)
Sources:
src
Opts:
period
Defaults to 1.src(i) - src(i-period) Sources: - `src` Opts: - `period` Defaults to 1.
(moving-average-convergence-divergence tl
{:keys [src] :as sources}
{:keys [signal-avg-indicator signal-opts]
:or {signal-avg-indicator
exponential-moving-average}
:as opts})
Returns tuple of indicators [macd-line signal histogram]. macd-line = macd-line(src, opts) See [[macd-line]] signal = signal-avg-indicator(macd, signal-opts) hist = macd - signal
Reference:
Sources will be passed to moving-average-convergence-divergence-line
, if using defaults:
src
Opts are those accepted by moving-average-convergence-divergence-line
, plus:
signal-avg-indicator
defaults to exponential-moving-average
, must accept source as :src
keysignal-opts
Returns tuple of indicators [macd-line signal histogram]. macd-line = macd-line(src, opts) See [[macd-line]] signal = signal-avg-indicator(macd, signal-opts) hist = macd - signal Reference: - https://www.tradingview.com/support/solutions/43000502344-macd-moving-average-convergence-divergence/ Sources will be passed to [[moving-average-convergence-divergence-line]], if using defaults: - `src` Opts are those accepted by [[moving-average-convergence-divergence-line]], plus: - `signal-avg-indicator` defaults to [[exponential-moving-average]], must accept source as `:src` key - `signal-opts`
(moving-average-convergence-divergence-line
tl
{:keys [src] :as sources}
{:keys [fast-avg-indicator fast-sources fast-opts slow-avg-indicator
slow-sources slow-opts]
:or {fast-avg-indicator simple-moving-average
slow-avg-indicator simple-moving-average}})
MACD base line. ma(src, fast-opts) - ma(src, slow-opts).
Sources:
src
Opts:
fast-avg-indicator
defaults to exponential-moving-average
fast-sources
if specified, overrides top level sources
passed to fast-avg-indicator
fast-opts
passed to fast-avg-indicator
slow-avg-indicator
defaults to exponential-moving-average
slow-sources
if specified, overrides top level sources
passed to slow-avg-indicator
slow-opts
passed to slow-avg-indicator
MACD base line. ma(src, fast-opts) - ma(src, slow-opts). Sources: - `src` Opts: - `fast-avg-indicator` defaults to [[exponential-moving-average]] - `fast-sources` if specified, overrides top level `sources` passed to `fast-avg-indicator` - `fast-opts` passed to `fast-avg-indicator` - `slow-avg-indicator` defaults to [[exponential-moving-average]] - `slow-sources` if specified, overrides top level `sources` passed to `slow-avg-indicator` - `slow-opts` passed to `slow-avg-indicator`
(ohlc4 tl {:keys [open high low close]})
(open+high+low+close)/4
Sources:
open
high
low
close
(open+high+low+close)/4 Sources: - `open` - `high` - `low` - `close`
(on-balance-volume tl {:keys [src volume] :as sources})
Reference: - https://www.investopedia.com/terms/o/onbalancevolume.asp Sources: - `src` - `volume`
(parabolic-stop-and-reverse tl
{:keys [close high low] :as sources}
{:keys [start increment max-value]})
Reference:
Reference impl:
Sources:
close
high
low
Opts:
start
increment
max-value
Values are maps of:
ct
current-trend (true if uptrend, false if downtrend)sar
sar valaf
acceleration factorep
extreme pointReference: - https://www.investopedia.com/trading/introduction-to-parabolic-sar/ Reference impl: - https://github.com/ta4j/ta4j/blob/master/ta4j-core/src/main/java/org/ta4j/core/indicators/ParabolicSarIndicator.java Sources: - `close` - `high` - `low` Opts: - `start` - `increment` - `max-value` Values are maps of: - `ct` current-trend (true if uptrend, false if downtrend) - `sar` sar val - `af` acceleration factor - `ep` extreme point
(percentage-price-oscillator tl
{:keys [src] :as sources}
{:keys [signal-avg-indicator signal-opts]
:or {signal-avg-indicator
exponential-moving-average}
:as opts})
returns tuple of indicators [ppo-line signal histogram], ppo-line vals between -100 and 100.
Similar to moving-average-convergence-divergence
, but returns percentage instead of absolute price changes.
Reference:
Sources:
src
Opts are those accepted by [[ppo-line]], plus:
signal-avg-indicator
defaults to exponential-moving-average
, must accept a source on :src
keysignal-opts
passed to signal-avg-indicator
returns tuple of indicators [ppo-line signal histogram], ppo-line vals between -100 and 100. Similar to [[moving-average-convergence-divergence]], but returns percentage instead of absolute price changes. Reference: - https://www.investopedia.com/terms/p/ppo.asp Sources: - `src` Opts are those accepted by [[ppo-line]], plus: - `signal-avg-indicator` defaults to [[exponential-moving-average]], must accept a source on `:src` key - `signal-opts` passed to `signal-avg-indicator`
(percentage-price-oscillator-line
tl
{:keys [src] :as sources}
{:keys [fast-avg-indicator fast-sources fast-opts slow-avg-indicator
slow-sources slow-opts]
:or {fast-avg-indicator exponential-moving-average
slow-avg-indicator exponential-moving-average}})
percentage-price-oscillator base line, values between -1 and 1.
Sources:
src
Opts:
fast-avg-indicator
defaults to exponential-moving-average
fast-sources
if specified, overrides top level sources
passed to fast-avg-indicatorº
fast-opts
passed to fast-avg-indicator
slow-avg-indicator
defaults to exponential-moving-average
slow-opts
passed to slow-avg-indicator
percentage-price-oscillator base line, values between -1 and 1. Sources: - `src` Opts: - `fast-avg-indicator` defaults to [[exponential-moving-average]] - `fast-sources` if specified, overrides top level `sources` passed to `fast-avg-indicatorº` - `fast-opts` passed to `fast-avg-indicator` - `slow-avg-indicator` defaults to [[exponential-moving-average]] - `slow-opts` passed to `slow-avg-indicator`
(rate-of-change tl sources)
(rate-of-change tl
{:keys [src] :as sources}
{:keys [period nan-val] :or {period 1 nan-val Double/NaN}})
(src - src(i-period)) / src(i-period), vals between -1 and 1, except the case when src(i-period) is zero,
then returns opt nan-val
Sources:
src
Opts:
period
Defaults to 1.nan-val
defaults to Double/NaN(src - src(i-period)) / src(i-period), vals between -1 and 1, except the case when src(i-period) is zero, then returns opt `nan-val` Sources: - `src` Opts: - `period` Defaults to 1. - `nan-val` defaults to Double/NaN
(refined-relative-volatility-index
tl
{:keys [high low] :as sources}
{:keys [avg-indicator avg-opts stdev-opts period] :as opts})
(rvi(high) + rvi(low) / 2), with values between 0 and 1.
Reference:
Sources:
high
low
Opts are those accepted by relative-volatility-index
(rvi(high) + rvi(low) / 2), with values between 0 and 1. Reference: - https://www.fmlabs.com/reference/default.htm?url=RVI.htm (RVI) Sources: - `high` - `low` Opts are those accepted by [[relative-volatility-index]]
(relative-moving-average tl {:keys [src] :as sources} {:keys [period]})
Relative (WildeR's) moving average, is an Exponential moving average using 1/period as multiplier.
Sources:
src
Opts:
period
Relative (WildeR's) moving average, is an Exponential moving average using 1/period as multiplier. Sources: - `src` Opts: - `period`
(relative-strength-g-l tl {:keys [src] :as sources})
returns tuple of nodes [gains losses], part of relative-strength-index
.
gains: if (pos? x - (x-1)) then x else 0
losses: if (neg? x - (x-1)) then -x else 0
Sources:
src
returns tuple of nodes [gains losses], part of [[relative-strength-index]]. gains: if (pos? x - (x-1)) then x else 0 losses: if (neg? x - (x-1)) then -x else 0 Sources: - `src`
(relative-strength-index tl
{:keys [src] :as sources}
{:keys [avg-indicator avg-opts]
:or {avg-indicator relative-moving-average}
:as opts})
Values between 0 and 1.
Reference:
Sources
src
Opts:
avg-indicator
used to average both relative-strength-g-l
. Defaults to relative-moving-average
,
must accept source as :src
avg-opts
if specified, overrides top level opts passed to avg-indicator
Values between 0 and 1. Reference: - https://www.tradingview.com/support/solutions/43000502338-relative-strength-index-rsi/ Sources - `src` Opts: - `avg-indicator` used to average both [[relative-strength-g-l]]. Defaults to [[relative-moving-average]], must accept source as `:src` - `avg-opts` if specified, overrides top level opts passed to `avg-indicator`
(relative-volatility-index tl
{:keys [src] :as sources}
{:keys [avg-indicator avg-opts stdev-opts period]
:or {avg-indicator exponential-moving-average}
:as opts})
Values from 0 to 1.
Reference:
Sources:
src
Opts:
avg-indicator
defaults to exponential-moving-average
, must accept source as :src
stdev-opts
if specified, overrides top level opts
passed to relative-volatility-u-s
avg-opts
if specified, overrides top level opts
passed to avg-indicator
Values from 0 to 1. Reference: - https://www.fmlabs.com/reference/default.htm?url=RVI.htm (RVIOrig) Sources: - `src` Opts: - `avg-indicator` defaults to [[exponential-moving-average]], must accept source as `:src` - `stdev-opts` if specified, overrides top level `opts` passed to [[relative-volatility-u-s]] - `avg-opts` if specified, overrides top level `opts` passed to `avg-indicator`
(relative-volatility-u-s tl {:keys [src] :as sources} {:keys [period] :as opts})
Returns nodes tuple [u s] of relative-volatility-index
u and s components. Similar to relative-strength-g-l
,
but use standard-deviation of price-change instead of absolute price change.
Sources:
src
Opts are those of standard-deviation
Reference:
Returns nodes tuple [u s] of [[relative-volatility-index]] u and s components. Similar to [[relative-strength-g-l]], but use standard-deviation of price-change instead of absolute price change. Sources: - `src` Opts are those of [[standard-deviation]] Reference: - https://www.fmlabs.com/reference/default.htm?url=RVI.htm (RVIOrig)
(simple-moving-average tl {:keys [src] :as sources} {:keys [period]})
Reference:
Sources:
src
Opts:
period
Notes:
Assumes that only latest time points are added (either new later timestamp, or replacement of current latest). This should be the case most of the time. For earlier than latest arriving time points, you need to recompute all from earlier time point to latest for correct results, by specifying them on the timeline.
Keeps an internal summatory to work on log-n (n=size of timeseries) instead of reducing tail all the time.
Reference: - https://www.tradingview.com/support/solutions/43000502589-moving-average/ Sources: - `src` Opts: - `period` Notes: - Assumes that only latest time points are added (either new later timestamp, or replacement of current latest). This should be the case most of the time. For earlier than latest arriving time points, you need to recompute all from earlier time point to latest for correct results, by specifying them on the timeline. - Keeps an internal summatory to work on log-n (n=size of timeseries) instead of reducing tail all the time.
(since-highest-val tl {:keys [src] :as sources} {:keys [period] :as opts})
Returns number of items since highest value on latest period
items
Sources:
src
Opts:
period
Returns number of items since highest value on latest `period` items Sources: - `src` Opts: - `period`
(since-lowest-val tl {:keys [src] :as sources} {:keys [period] :as opts})
Returns number of items since lowest value on latest period
items
Sources:
src
Opts:
period
Returns number of items since lowest value on latest `period` items Sources: - `src` Opts: - `period`
(smoothed-moving-average tl {:keys [src] :as sources} {:keys [period]})
Reference:
Sources:
src
Opts:
period
Reference: - https://download.esignal.com/products/workstation/help/charts/studies/rmi.htm Sources: - `src` Opts: - `period`
(sources-map tl sources)
Returns timeseries node whose values combine current timestamp for all sources in a hash map, under same keyword as
specified in sources
, when all have a value.
E.g candles (sources-map tl {:high high :low low :close close :open open}) will have values as map of
{:open ,,, :close ,,, :high ,,, :low ,,,}
.
Useful to combine multiple indicators that share the same timeline into one to use it as a single timeseries.
Returns timeseries node whose values combine current timestamp for all sources in a hash map, under same keyword as specified in `sources`, when all have a value. E.g candles (sources-map tl {:high high :low low :close close :open open}) will have values as map of `{:open ,,, :close ,,, :high ,,, :low ,,,}`. Useful to combine multiple indicators that share the same timeline into one to use it as a single timeseries.
(spread-map tl map-source {:keys [ks transform] :or {transform identity}})
Given a timeseries node map-source
that has maps as values and map of opts, returns a map of new nodes with
keys ks
where values are new nodes that each one contains the values of key in map-src, possibly transformed.
Sources:
map-source
Opts:
ks
set of keys to extract as indicatorstransform
function to transform each of the values, if needed. Defaults to identity.E.g (spread-map tl candles-node [:open :close :high :low]) returns a map of nodes #{:open :close :high :low} each one with the corresponding candle value.
Given a timeseries node `map-source` that has maps as values and map of opts, returns a map of new nodes with keys `ks` where values are new nodes that each one contains the values of key in map-src, possibly transformed. Sources: - `map-source` Opts: - `ks` set of keys to extract as indicators - `transform` function to transform each of the values, if needed. Defaults to identity. E.g (spread-map tl candles-node [:open :close :high :low]) returns a map of nodes #{:open :close :high :low} each one with the corresponding candle value.
(standard-deviation tl {:keys [src] :as sources} {:keys [period]})
standard deviation of prices during period
Sources:
src
Opts:
period
standard deviation of prices during period Sources: - `src` Opts: - `period`
(stochastic-kline tl {:keys [close high low] :as sources} {:keys [period]})
non-smoothed k-line component of stochastic-oscillator
, between 0 and 1.
Sources:
close
high
low
Opts:
period
non-smoothed k-line component of [[stochastic-oscillator]], between 0 and 1. Sources: - `close` - `high` - `low` Opts: - `period`
(stochastic-oscillator tl
{:keys [close high low] :as sources}
{:keys [k-line-opts avg-k-indicator avg-k-opts
avg-d-indicator avg-d-opts]
:or {avg-k-indicator simple-moving-average
avg-d-indicator simple-moving-average}})
returns tuple of nodes [k-line d-line] of stochastic oscillator, with vals between 0 and 1.
Reference:
Sources:
close
high
low
Opts:
k-line-opts
opts passed to stochastic-kline
avg-k-indicator
defaults to simple-moving-average
, must accept source as :src
avg-k-opts
passed to avg-k-indicator
avg-d-indicator
defaults to simple-moving-average
, must accept source as :src
avg-d-opts
passed to avg-d-indicator
returns tuple of nodes [k-line d-line] of stochastic oscillator, with vals between 0 and 1. Reference: - https://www.tradingview.com/support/solutions/43000502332-stochastic-stoch/ Sources: - `close` - `high` - `low` Opts: - `k-line-opts` opts passed to [[stochastic-kline]] - `avg-k-indicator` defaults to [[simple-moving-average]], must accept source as `:src` - `avg-k-opts` passed to `avg-k-indicator` - `avg-d-indicator` defaults to [[simple-moving-average]], must accept source as `:src` - `avg-d-opts` passed to `avg-d-indicator`
(supertrend tl
{:keys [close high low] :as sources}
{:keys [multiplier range-indicator range-opts]
:or {range-indicator average-true-range}
:as opts})
Reference impl:
Sources:
close
high
low
Opts:
range-indicator
defaults to average-true-range
, will be passed top level sources
range-opts
if specified, overrides top level opts
for range-indicator
multiplier
Values are map of:
trend
e/o #{:long :short}value
number_upper
_lower
Reference impl: - https://github.com/twopirllc/pandas-ta/blob/main/pandas_ta/overlap/supertrend.py Sources: - `close` - `high` - `low` Opts: - `range-indicator` defaults to [[average-true-range]], will be passed top level `sources` - `range-opts` if specified, overrides top level `opts` for `range-indicator` - `multiplier` Values are map of: - `trend` e/o #{:long :short} - `value` number - `_upper` - `_lower`
(triple-exponential-moving-average tl
{:keys [src] :as sources}
{:keys [period ema1-opts ema2-opts ema3-opts]
:as opts})
Reference:
Sources:
src
Opts:
period
sent to internal exponential moving averagesmultiplier
sent to internal exponential moving averagesema1-opts
if specified, will be used instead of top level opts
for ema1ema2-opts
if specified, will be used instead of top level opts
for ema2ema3-opts
if specified, will be used instead of top level opts
for ema3Reference: - https://www.tradingview.com/support/solutions/43000591346-triple-ema/ Sources: - `src` Opts: - `period` sent to internal exponential moving averages - `multiplier` sent to internal exponential moving averages - `ema1-opts` if specified, will be used instead of top level `opts` for ema1 - `ema2-opts` if specified, will be used instead of top level `opts` for ema2 - `ema3-opts` if specified, will be used instead of top level `opts` for ema3
(true-range tl {:keys [close high low] :as sources})
Reference: - https://www.investopedia.com/terms/a/atr.asp (TR) Sources: - `close` - `high` - `low`
(volume-weighted-moving-average tl
{:keys [src volume] :as sources}
{:keys [period]})
Calculates volume-weighted-moving-average where given price and volume are timeseries nodes.
Reference:
Sources:
price
volume
Opts:
period
Calculates volume-weighted-moving-average where given price and volume are timeseries nodes. Reference: - https://www.tradingsetupsreview.com/volume-weighted-moving-average-vwma/ Sources: - `price` - `volume` Opts: - `period`
(weighted-moving-average tl {:keys [src] :as sources} {:keys [period]})
Reference:
Sources:
src
Opts:
period
Reference: - https://www.tradingview.com/support/solutions/43000594680-weighted-moving-average/ Sources: - `src` Opts: - `period`
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close