Skip to content

Latest commit

 

History

History
135 lines (115 loc) · 4.67 KB

README.md

File metadata and controls

135 lines (115 loc) · 4.67 KB

TechnicalIndicatorCharts

Dev Build Status Coverage

Visualize OnlineTechnicalIndicators.jl using LightweightCharts.jl.

Creating a Chart

using OnlineTechnicalIndicators
using TechnicalIndicatorCharts

golden_cross_chart = Chart(
    "AAPL", Week(1);
    indicators = [
        SMA{Float64}(;period=50),         # Setup indicators
        SMA{Float64}(;period=200)
    ],
    visuals = [
        Dict(
            :label_name => "SMA 50",      # Describe how to draw indicators
            :line_color => "#E072A4",
            :line_width => 2
        ),
        Dict(
            :label_name => "SMA 200",
            :line_color => "#3D3B8E",
            :line_width => 5
        )
    ]
)

Feeding Your Chart Data

Adding new data to the chart is done with the update!(chart, candle) function.

using MarketData

for row in eachrow(AAPL)
    c = Candle(
        ts=DateTime(row.timestamp),
        o=row.Open,
        h=row.High,
        l=row.Low,
        c=row.Close,
        v=row.Volume
    )
    update!(golden_cross_chart, c)
end

Notice that update! took daily candles from AAPL and aggregated them into weekly candles.

The update! function was designed to consume low timeframe candles to incrementally build higher timeframe charts. Imagine unfinished 1m candles from a websocket being consumed to generate multiple higher-timeframe charts for the same market. The hope was that this would facilitate realtime, multi-timeframe analysis.

Visualization

The visualize function will take a chart and generate something that lwc_show from LightweightCharts.jl can display.

using LightweightCharts

lwc_show(visualize(golden_cross_chart))
# Or
golden_cross_chart |> visualize |> lwc_show

aapl

Supported Indicators

See Also: Indicators support - OnlineTechnicalIndicators.jl

Help Wanted: Visualization Function Writers