Example shows Python Candlestick Chart combined with Line Chart. Line & Column Charts are generally used as technical indicators when they are used in financial charts. Chart demo also includes Django source-code that you can try running locally.
<!-- index.html -->
{% load static %}
<html>
<head>
<title>CanvasJS Python Charts</title>
<script>
  window.onload = function () {
    var data = {{ btc_usd_data|safe }};
    var btcUSDDps = [];
    for(var i=0; i<data.length; i++) {
      var dataDate = data[i].date;
      btcUSDDps.push({ 
        x: new Date(parseInt(dataDate.split("-")[0]),parseInt(dataDate.split("-")[1]),parseInt(dataDate.split("-")[2])), 
        y: [ data[i].open, data[i].high, data[i].low, data[i].close ]
      });
    }
    
    var chart = new CanvasJS.Chart("chartContainer", {
      zoomEnabled: true,
      title: {
        text: "Technical Indicators",
        fontFamily: "Trebuchet MS, Helvetica, sans-serif"
      },
      subtitles: [{
        text: "Exponential Moving Average",
        fontFamily: "Trebuchet MS, Helvetica, sans-serif"
      }],
      axisX: {
        crosshair: {
          enabled: true,
          snapToDataPoint: true,
          valueFormatString: "MMM DD, YYYY"
        }
      },
      axisY: {
        prefix: "$",
        title: "Price",
        crosshair: {
          enabled: true,
          snapToDataPoint: true,
          valueFormatString: "$#,##0.00",
        }
      },
      toolTip: {
        shared: true
      },
      legend: {
        cursor: "pointer",
        itemclick: toggleDataSeries,
        dockInsidePlotArea: true
      },
      data: [{
        type: "candlestick",
        name: "Bitcoin Price",
        showInLegend: true,
        yValueFormatString: "$#,##0.00",
        xValueFormatString: "MMM DD, YYYY",
        dataPoints: btcUSDDps
      }]
    });
    chart.render();
    var ema = calculateEMA(btcUSDDps, 7);
    chart.addTo("data", {type: "line", name: "EMA", showInLegend: true, yValueFormatString: "$#,###.##", dataPoints: ema});
    function calculateEMA(dps,count) {
      var k = 2/(count + 1);
      var emaDps = [{x: dps[0].x, y: dps[0].y.length ? dps[0].y[3] : dps[0].y}];
      for (var i = 1; i < dps.length; i++) {
        emaDps.push({x: dps[i].x, y: (dps[i].y.length ? dps[i].y[3] : dps[i].y) * k + emaDps[i - 1].y * (1 - k)});
      }
      return emaDps;
    }
    function toggleDataSeries(e) {
      if (typeof (e.dataSeries.visible) === "undefined" || e.dataSeries.visible) {
        e.dataSeries.visible = false;
      }
      else {
        e.dataSeries.visible = true;
      }
      e.chart.render();
    }
  }
</script>
</head>
<body>
  <div id="chartContainer" style="height: 360px; width: 100%;"></div>
  <script src="{% static 'canvasjs.min.js' %}"></script>
</body>
</html>                              
                                
from django.shortcuts import render
import json
import os 
def index(request):
    dir_path = os.path.dirname(os.path.realpath(__file__))
    data = open(dir_path + "/static/btc-usd-weekly-2021.json").read()
    btc_usd_data = json.loads(data)
    return render(request, "index.html", { "btc_usd_data": btc_usd_data})                        
                            You can use Line or Column Chart to show technical indicators in financial charts. You can hide / unhide dataseries on legend click by changing visible property.