c.addLineIndicator2(es_chart, lod, '0xFF6600', 'LOD')

# Initial Balance High and Low
ib_high = [NoValue for x in xrange(60)] + [max(es_high[:60]) for x in xrange(390-60)]
ib_low = [NoValue for x in xrange(60)] + [min(es_low[:60]) for x in xrange(390-60)]
ll_ib_high = c.addLineIndicator2(es_chart, ib_high, '0xCC9900', 'IBH')
ll_ib_high.addCustomDataLabel(0,389,"IBH", "Arial", 8, 0x3D5AA3, 0)
ll_ib_low = c.addLineIndicator2(es_chart, ib_low, '0xCC9900', 'IBL')
#ll_ib_low = es_chart.addLineLayer2()
#ll_ib_low.addDataSet(ib_low, 0xFFFF00)
ll_ib_low.addCustomDataLabel(0,389,"IBL", "Arial", 8, 0x3D5AA3, 0)


ll_lb = es_chart.addLineLayer2()
ll_lb.addDataSet(lb_data, 0xff0000)
ll_lb.setUseYAxis2(True)
es_chart.yAxis2().setLinearScale(0, 40, 5)
ll_hb = es_chart.addLineLayer2()
ll_hb.addDataSet(hb_data, 0x3333cc)
ll_hb.setUseYAxis2(True)


# Add the volume break down layer if data is present
if len(vb_open) == 390:
    vb_chart = c.addBarIndicator(175, [], 0x000000, "Volume Breakdown")
    ll_vb = vb_chart.addCandleStickLayer(vb_high, vb_low, vb_open, vb_close, 0x008000, 0xcc0000)

# Output the chart
print("Content-type: image/png\n")
binaryPrint(c.makeChart2(PNG))