TechnicalIndicatorCharts
Documentation for TechnicalIndicatorCharts.
TechnicalIndicatorCharts.ChartTechnicalIndicatorCharts.abbrevTechnicalIndicatorCharts.configTechnicalIndicatorCharts.df_fieldsTechnicalIndicatorCharts.extract_valueTechnicalIndicatorCharts.indicator_fieldsTechnicalIndicatorCharts.indicator_fields_valuesTechnicalIndicatorCharts.ismultiinputTechnicalIndicatorCharts.ismultioutputTechnicalIndicatorCharts.make_panelTechnicalIndicatorCharts.make_panelTechnicalIndicatorCharts.merge_candle!TechnicalIndicatorCharts.push_new_candle!TechnicalIndicatorCharts.update!TechnicalIndicatorCharts.update_last_candle!TechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualizeTechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.Chart — TypeSummary
A Chart is a mutable struct that has:
- a name (typically of the asset like "BTCUSD" or "AAPL")
- a timeframe (which controls how much time each candle on the chart represents)
- a DataFrame to hold OHLCV values and indicator values
- a Vector of
OnlineTechnicalIndicators to display on the chart. - another Vector of display configuration for each indicator.
If you were to go to TradingView and look at a chart, imagine what kind of data structure would be required to represent it in memory. That's what the Chart struct aims to be.
Fields
name::AbstractStringtf::Dates.Periodindicators::AbstractVector{OnlineTechnicalIndicators.TechnicalIndicator}visuals::AbstractVectordf::DataFrames.DataFramets::Union{Missing, Dates.DateTime}candle::Union{Missing, Candle}
Constructors
Chart(name, tf; indicators=[], visuals=[])Examples
julia> just_candles = Chart("ETHUSD", Minute(1))
julia> golden_cross = Chart(
"BTCUSD", Hour(4);
indicators = [
SMA{Float64}(;period=50),
SMA{Float64}(;period=200)
],
visuals = [
Dict(
:label_name => "SMA 50",
:line_color => "#E072A4",
:line_width => 2
),
Dict(
:label_name => "SMA 200",
:line_color => "#3D3B8E",
:line_width => 5
)
]
)
julia> default_visuals = Chart(
"BNBUSDT", Hour(4);
indicators = [BB{Float64}(), StochRSI{Float64}()],
visuals = [nothing, nothing] # To use defaults, pass in `nothing`.
)TechnicalIndicatorCharts.abbrev — Methodabbrev(p::Period) -> StringReturn an abbreviated string representation of the given period.
Example
abbrev(Hour(4)) # "4h"
abbrev(Day(1)) # "1d"TechnicalIndicatorCharts.config — Methodconfig(sma::OnlineTechnicalIndicators.SMA) -> Vector{Any}
Return the default visualization config for SMA.
TechnicalIndicatorCharts.df_fields — Methoddf_fields(indicators) -> Any
Return a list of fields to be used in a DataFrame for chart values.
TechnicalIndicatorCharts.extract_value — Methodextract_value(value) -> Vector{Any}
Extract values out of an indicators value struct. This is only intended to be used for indicators that emit multiple values per tick.
TechnicalIndicatorCharts.indicator_fields — MethodReturn a tuple of symbol names to be used for the output of ind.
TechnicalIndicatorCharts.indicator_fields_values — Methodindicator_fields_values(
ind::OnlineTechnicalIndicators.TechnicalIndicatorMultiOutput
) -> Any
Extract values from an indicator instance.
TechnicalIndicatorCharts.ismultiinput — Methodismultiinput(
i::OnlineTechnicalIndicators.TechnicalIndicator
) -> Any
This is a wrapper around OnlineTechnicalIndicators.ismultiinput that takes any instance of a TechnicalIndicator and digs out its unparametrized type before running the original ismultiinput method.
TechnicalIndicatorCharts.ismultioutput — Methodismultioutput(
i::OnlineTechnicalIndicators.TechnicalIndicator
) -> Bool
This is a wrapper around OnlineTechnicalIndicators.ismultioutput that takes any instance of a TechnicalIndicator and digs out its unparametrized type before running the original ismultioutput method.
TechnicalIndicatorCharts.make_panel — Methodmake_panel(plots::AbstractVector; h)
Wrap a Vector of LWCCharts in a panel.
TechnicalIndicatorCharts.make_panel — Methodmake_panel(chart::LightweightCharts.LWCChart; h)
Wrap a single LWCChart in a panel.
TechnicalIndicatorCharts.merge_candle! — Methodmerge_candle!(
last_candle::Union{Missing, Candle},
c::Union{Candle, DataFrames.DataFrameRow}
) -> Candle
If last candle is not provided, construct a new candle with the given OHLCV data. If last candle is provided, mutate last_candle such that it's HLCV are updated. When tw candles are passed in, it's assumed they have the same timestamp.
TechnicalIndicatorCharts.push_new_candle! — Methodpush_new_candle!(
chart::Chart,
c::Candle
) -> DataFrames.DataFrame
This is meant to be called on timeframe boundaries to onto the chart's dataframe. It also does indicator calculation at this time.
TechnicalIndicatorCharts.update! — Methodupdate!(chart::Chart, c::Candle) -> Union{Nothing, Candle}
Update a chart with a candle. When a candle is completed, return it. Otherwise, return nothing on update.
TechnicalIndicatorCharts.update_last_candle! — Methodupdate_last_candle!(chart::Chart, c::Candle) -> Float64
This updates the HLCV values of the last row of the chart's DataFrame when we're not at a chart.tf boundary.
TechnicalIndicatorCharts.visualize — Methodvisualize(
unimplemented,
opts,
df::DataFrames.DataFrame
) -> Vector{LightweightCharts.LWCChart}
This is a visualize method that's a catch-all for indicators that haven't had a visualize method made for them yet. For now, it returns missing.
TechnicalIndicatorCharts.visualize — Methodvisualize(
chart::Chart;
min_height,
mode,
up_color,
down_color
) -> LightweightCharts.LWCLayout
Return an LWCLayout that visualizes all the components in chart appropriately.
TechnicalIndicatorCharts.visualize — Methodvisualize(
df::DataFrames.DataFrame,
opts
) -> LightweightCharts.LWCChart
Visualize a DataFrame using lwc_candlestick.
TechnicalIndicatorCharts.visualize — Methodvisualize(
adx::OnlineTechnicalIndicators.ADX,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> Vector{LightweightCharts.LWCChart}
Visualize ADX using 3 lwc_lines.
TechnicalIndicatorCharts.visualize — Methodvisualize(
alma::OnlineTechnicalIndicators.ALMA,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize ALMA using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
ao::OnlineTechnicalIndicators.AO,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize AO (Awesome Oscillator) using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
atr::OnlineTechnicalIndicators.ATR,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize ATR using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
ad::OnlineTechnicalIndicators.AccuDist,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize AccuDist (Accumulation/Distribution) using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
aroon::OnlineTechnicalIndicators.Aroon,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> Vector{LightweightCharts.LWCChart}
Visualize Aroon using 2 lwc_lines.
TechnicalIndicatorCharts.visualize — Methodvisualize(
bb::OnlineTechnicalIndicators.BB,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> Vector{LightweightCharts.LWCChart}
Visualize Bollinger Bands using 3 lwc_lines.
TechnicalIndicatorCharts.visualize — Methodvisualize(
bop::OnlineTechnicalIndicators.BOP,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize BOP (Balance of Power) using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
cci::OnlineTechnicalIndicators.CCI,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize CCI (Commodity Channel Index) using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
chop::OnlineTechnicalIndicators.CHOP,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize CHOP (Choppiness Index) using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
co::OnlineTechnicalIndicators.ChaikinOsc,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize ChaikinOsc (Chaikin Oscillator) using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
cks::OnlineTechnicalIndicators.ChandeKrollStop,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> Vector{LightweightCharts.LWCChart}
Visualize ChandeKrollStop using 2 lwc_lines.
TechnicalIndicatorCharts.visualize — Methodvisualize(
cc::OnlineTechnicalIndicators.CoppockCurve,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize CoppockCurve using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
dema::OnlineTechnicalIndicators.DEMA,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize DEMA using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
dpo::OnlineTechnicalIndicators.DPO,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize DPO using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
dc::OnlineTechnicalIndicators.DonchianChannels,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> Vector{LightweightCharts.LWCChart}
Visualize Donchian Channels using 3 lwc_lines.
TechnicalIndicatorCharts.visualize — Methodvisualize(
ema::OnlineTechnicalIndicators.EMA,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize EMA using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
emv::OnlineTechnicalIndicators.EMV,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize EMV (Ease of Movement) using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
fi::OnlineTechnicalIndicators.ForceIndex,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize ForceIndex using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
hma::OnlineTechnicalIndicators.HMA,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize HMA using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
kama::OnlineTechnicalIndicators.KAMA,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize KAMA using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
kst::OnlineTechnicalIndicators.KST,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> Vector{LightweightCharts.LWCChart}
Visualize KST using 2 lwc_lines.
TechnicalIndicatorCharts.visualize — Methodvisualize(
kvo::OnlineTechnicalIndicators.KVO,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize KVO (Klinger Volume Oscillator) using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
keltnerchannels::OnlineTechnicalIndicators.KeltnerChannels,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> Vector{LightweightCharts.LWCChart}
Visualize Keltner Channels (KC) using 3 lwc_lines.
TechnicalIndicatorCharts.visualize — Methodvisualize(
macd::OnlineTechnicalIndicators.MACD,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> Any
Visualize MACD using 2 lwc_lines and 1 histogram.
TechnicalIndicatorCharts.visualize — Methodvisualize(
mi::OnlineTechnicalIndicators.MassIndex,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize MassIndex using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
mcginleydynamic::OnlineTechnicalIndicators.McGinleyDynamic,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize McGinleyDynamic using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
md::OnlineTechnicalIndicators.MeanDev,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize MeanDev using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
obv::OnlineTechnicalIndicators.OBV,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize On Balance Volume (OBV) using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
psar::OnlineTechnicalIndicators.ParabolicSAR,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize Parabolic SAR using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
phl::OnlineTechnicalIndicators.PivotsHL,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> Vector{LightweightCharts.LWCChart}
Visualize PivotsHL using 2 lwc_lines.
TechnicalIndicatorCharts.visualize — Methodvisualize(
roc::OnlineTechnicalIndicators.ROC,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize ROC using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
rsi::OnlineTechnicalIndicators.RSI,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize RSI using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
sma::OnlineTechnicalIndicators.SMA,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Return an lwc_line for visualizing an SMA indicator.
TechnicalIndicatorCharts.visualize — Methodvisualize(
SMMA::OnlineTechnicalIndicators.SMMA,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Return an lwc_line for visualizing an SMMA indicator.
TechnicalIndicatorCharts.visualize — Methodvisualize(
sobv::OnlineTechnicalIndicators.SOBV,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize SOBV (Smoothed On Balance Volume) using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
stc::OnlineTechnicalIndicators.STC,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize STC using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
sd::OnlineTechnicalIndicators.StdDev,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize StdDev using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
stoch::OnlineTechnicalIndicators.Stoch,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> Vector{LightweightCharts.LWCChart}
Visualize Stochastic Oscillator using 2 lwc_lines.
TechnicalIndicatorCharts.visualize — Methodvisualize(
srsi::OnlineTechnicalIndicators.StochRSI,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> Vector{LightweightCharts.LWCChart}
Visualize StochRSI using 2 lwc_lines.
TechnicalIndicatorCharts.visualize — Methodvisualize(
st::OnlineTechnicalIndicators.SuperTrend,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize SuperTrend using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
t3::OnlineTechnicalIndicators.T3,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize T3 using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
tema::OnlineTechnicalIndicators.TEMA,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize TEMA using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
trix::OnlineTechnicalIndicators.TRIX,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize TRIX using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
tsi::OnlineTechnicalIndicators.TSI,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize True Strength Index (TSI) using 1 lwc_line. Note that on TradingView, TSI includes a second signal line that is not included here.
TechnicalIndicatorCharts.visualize — Methodvisualize(
ttm::OnlineTechnicalIndicators.TTM,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> Vector{LightweightCharts.LWCChart}
Visualize TTM Squeeze using 2 lwc_lines.
TechnicalIndicatorCharts.visualize — Methodvisualize(
uo::OnlineTechnicalIndicators.UO,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize UO (Ultimate Oscillator) using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
vtx::OnlineTechnicalIndicators.VTX,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> Vector{LightweightCharts.LWCChart}
Visualize VTX (Vortex Indicator) using 2 lwc_lines.
TechnicalIndicatorCharts.visualize — Methodvisualize(
vwap::OnlineTechnicalIndicators.VWAP,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize VWAP (Volume Weighted Average Price) using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
vwma::OnlineTechnicalIndicators.VWMA,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize VWMA (Volume Weighted Moving Average) using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
wma::OnlineTechnicalIndicators.WMA,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize WMA using 1 lwc_line.
TechnicalIndicatorCharts.visualize — Methodvisualize(
zlema::OnlineTechnicalIndicators.ZLEMA,
opts::Union{Nothing, AbstractDict},
df::DataFrames.DataFrame
) -> LightweightCharts.LWCChart
Visualize ZLEMA using 1 lwc_line.