TechnicalIndicatorCharts
Documentation for TechnicalIndicatorCharts.
TechnicalIndicatorCharts.Chart
TechnicalIndicatorCharts.abbrev
TechnicalIndicatorCharts.config
TechnicalIndicatorCharts.df_fields
TechnicalIndicatorCharts.extract_value
TechnicalIndicatorCharts.indicator_fields
TechnicalIndicatorCharts.indicator_fields_values
TechnicalIndicatorCharts.ismultiinput
TechnicalIndicatorCharts.ismultioutput
TechnicalIndicatorCharts.make_panel
TechnicalIndicatorCharts.make_panel
TechnicalIndicatorCharts.merge_candle!
TechnicalIndicatorCharts.push_new_candle!
TechnicalIndicatorCharts.update!
TechnicalIndicatorCharts.update_last_candle!
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.visualize
TechnicalIndicatorCharts.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
OnlineTechnicalIndicator
s 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::AbstractString
tf::Dates.Period
indicators::AbstractVector{OnlineTechnicalIndicators.TechnicalIndicator}
visuals::AbstractVector
df::DataFrames.DataFrame
ts::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) -> String
Return 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.