Powered by AppSignal & Oban Pro

Simple Candlestick Chart

10_simple_candlestick_chart.livemd

Simple Candlestick Chart

Mix.install([
  {:plotly_ex, "~> 0.3"},
  {:kino, "~> 0.18"}
])

Section

Candlestick.new(x:, open:, high:, low:, close:) — x is a list of date strings (ISO 8601). By default a rangeslider appears below the x-axis. increasing: and decreasing: style the up and down bars respectively.

alias Plotly.{Figure, Candlestick}

Figure.new()
|> Figure.add_trace(
  Candlestick.new(
    x: ["2017-01-04","2017-01-05","2017-01-06","2017-01-09","2017-01-10",
        "2017-01-11","2017-01-12","2017-01-13","2017-01-17","2017-01-18",
        "2017-01-19","2017-01-20","2017-01-23","2017-01-24","2017-01-25",
        "2017-01-26","2017-01-27","2017-01-30","2017-01-31","2017-02-01",
        "2017-02-02","2017-02-03","2017-02-06","2017-02-07","2017-02-08",
        "2017-02-09","2017-02-10","2017-02-13","2017-02-14","2017-02-15"],
    open: [115.849998,115.919998,116.779999,117.949997,118.769997,
           118.739998,118.900002,119.110001,118.339996,120.0,
           119.400002,120.449997,120.0,119.550003,120.419998,
           121.669998,122.139999,120.93,121.150002,127.029999,
           127.980003,128.309998,129.130005,130.539993,131.350006,
           131.649994,132.460007,133.080002,133.470001,135.520004],
    high: [116.510002,116.860001,118.160004,119.43,119.379997,
           119.93,119.300003,119.620003,120.239998,120.5,
           120.089996,120.449997,120.809998,120.099998,122.099998,
           122.440002,122.349998,121.629997,121.389999,130.490005,
           129.389999,129.190002,130.5,132.089996,132.220001,
           132.449997,132.940002,133.820007,135.089996,136.270004],
    low: [115.75,115.809998,116.470001,117.940002,118.300003,
          118.599998,118.209999,118.809998,118.220001,119.709999,
          119.370003,119.730003,119.769997,119.5,120.279999,
          121.599998,121.599998,120.660004,120.620003,127.010002,
          127.779999,128.160004,128.899994,130.449997,131.220001,
          131.119995,132.050003,132.75,133.25,134.619995],
    close: [116.019997,116.610001,117.910004,118.989998,119.110001,
            119.75,119.25,119.040001,120.0,119.989998,
            119.779999,120.0,120.080002,119.970001,121.879997,
            121.940002,121.949997,121.629997,121.349998,128.75,
            128.529999,129.080002,130.289993,131.529999,132.039993,
            132.419998,132.119995,133.289993,135.020004,135.509995],
    increasing: %{line: %{color: "#17BECF"}},
    decreasing: %{line: %{color: "#7F7F7F"}}
  )
)
|> Figure.update_layout(
  title: "Apple Stock (Jan–Feb 2017)",
  showlegend: false,
  xaxis: %{
    type: "date",
    title: %{text: "Date"},
    rangeslider: %{range: ["2017-01-03 12:00", "2017-02-15 12:00"]}
  }
)
|> Plotly.show()