Skip to content

Instantly share code, notes, and snippets.

@jkim444
Created August 1, 2017 17:53
Show Gist options
  • Save jkim444/177547262d2f37d0c0351b615d143daf to your computer and use it in GitHub Desktop.
Save jkim444/177547262d2f37d0c0351b615d143daf to your computer and use it in GitHub Desktop.
herbalife stock
license: mit
<!DOCTYPE html>
<meta charset="utf-8">
<style type="text/css">
svg {
font-family: "Helvetica Neue", Helvetica;
}
.line {
fill: none;
stroke: #000;
stroke-width: 2px;
}
</style>
<body>
<script src="//d3js.org/d3.v3.min.js"></script>
<script>
var m = [20, 20, 30, 20],
w = 960 - m[1] - m[3],
h = 500 - m[0] - m[2];
var x,
y,
duration = 1500,
delay = 2000;
var color = d3.scale.category10();
var svg = d3.select("body").append("svg")
.attr("width", w + m[1] + m[3])
.attr("height", h + m[0] + m[2])
.append("g")
.attr("transform", "translate(" + m[3] + "," + m[0] + ")");
var stocks,
symbols;
// A line generator, for the dark stroke.
var line = d3.svg.line()
.interpolate("basis")
.x(function(d) { return x(d.date); })
.y(function(d) { return y(d.price); });
// A line generator, for the dark stroke.
var axis = d3.svg.line()
.interpolate("basis")
.x(function(d) { return x(d.date); })
.y(h);
// A area generator, for the dark stroke.
var area = d3.svg.area()
.interpolate("basis")
.x(function(d) { return x(d.date); })
.y1(function(d) { return y(d.price); });
d3.csv("multiTimeline.csv", function(data) {
var parse = d3.time.format("%b-%Y").parse;
// Nest stock values by symbol.
symbols = d3.nest()
.key(function(d) { return d.symbol; })
.entries(stocks = data);
// Parse dates and numbers. We assume values are sorted by date.
// Also compute the maximum price per symbol, needed for the y-domain.
symbols.forEach(function(s) {
s.values.forEach(function(d) { d.date = parse(d.date); d.price = +d.price; });
s.maxPrice = d3.max(s.values, function(d) { return d.price; });
s.sumPrice = d3.sum(s.values, function(d) { return d.price; });
});
// Sort by maximum price, descending.
symbols.sort(function(a, b) { return b.maxPrice - a.maxPrice; });
var g = svg.selectAll("g")
.data(symbols)
.enter().append("g")
.attr("class", "symbol");
setTimeout(lines, duration);
});
function lines() {
x = d3.time.scale().range([0, w - 60]);
y = d3.scale.linear().range([h / 4 - 20, 0]);
// Compute the minimum and maximum date across symbols.
x.domain([
d3.min(symbols, function(d) { return d.values[0].date; }),
d3.max(symbols, function(d) { return d.values[d.values.length - 1].date; })
]);
var g = svg.selectAll(".symbol")
.attr("transform", function(d, i) { return "translate(0," + (i * h / 4 + 10) + ")"; });
g.each(function(d) {
var e = d3.select(this);
e.append("path")
.attr("class", "line");
e.append("circle")
.attr("r", 5)
.style("fill", function(d) { return color(d.key); })
.style("stroke", "#000")
.style("stroke-width", "2px");
e.append("text")
.attr("x", 12)
.attr("dy", ".31em")
.text(d.key);
});
function draw(k) {
g.each(function(d) {
var e = d3.select(this);
y.domain([0, d.maxPrice]);
e.select("path")
.attr("d", function(d) { return line(d.values.slice(0, k + 1)); });
e.selectAll("circle, text")
.data(function(d) { return [d.values[k], d.values[k]]; })
.attr("transform", function(d) { return "translate(" + x(d.date) + "," + y(d.price) + ")"; });
});
}
var k = 1, n = symbols[0].values.length;
d3.timer(function() {
draw(k);
if ((k += 2) >= n - 1) {
draw(n - 1);
setTimeout(horizons, 500);
return true;
}
});
}
function horizons() {
svg.insert("defs", ".symbol")
.append("clipPath")
.attr("id", "clip")
.append("rect")
.attr("width", w)
.attr("height", h / 4 - 20);
var color = d3.scale.ordinal()
.range(["#c6dbef", "#9ecae1", "#6baed6"]);
var g = svg.selectAll(".symbol")
.attr("clip-path", "url(#clip)");
area
.y0(h / 4 - 20);
g.select("circle").transition()
.duration(duration)
.attr("transform", function(d) { return "translate(" + (w - 60) + "," + (-h / 4) + ")"; })
.remove();
g.select("text").transition()
.duration(duration)
.attr("transform", function(d) { return "translate(" + (w - 60) + "," + (h / 4 - 20) + ")"; })
.attr("dy", "0em");
g.each(function(d) {
y.domain([0, d.maxPrice]);
d3.select(this).selectAll(".area")
.data(d3.range(3))
.enter().insert("path", ".line")
.attr("class", "area")
.attr("transform", function(d) { return "translate(0," + (d * (h / 4 - 20)) + ")"; })
.attr("d", area(d.values))
.style("fill", function(d, i) { return color(i); })
.style("fill-opacity", 1e-6);
y.domain([0, d.maxPrice / 3]);
d3.select(this).selectAll(".line").transition()
.duration(duration)
.attr("d", line(d.values))
.style("stroke-opacity", 1e-6);
d3.select(this).selectAll(".area").transition()
.duration(duration)
.style("fill-opacity", 1)
.attr("d", area(d.values))
.each("end", function() { d3.select(this).style("fill-opacity", null); });
});
setTimeout(areas, duration + delay);
}
function areas() {
var g = svg.selectAll(".symbol");
axis
.y(h / 4 - 21);
g.select(".line")
.attr("d", function(d) { return axis(d.values); });
g.each(function(d) {
y.domain([0, d.maxPrice]);
d3.select(this).select(".line").transition()
.duration(duration)
.style("stroke-opacity", 1)
.each("end", function() { d3.select(this).style("stroke-opacity", null); });
d3.select(this).selectAll(".area")
.filter(function(d, i) { return i; })
.transition()
.duration(duration)
.style("fill-opacity", 1e-6)
.attr("d", area(d.values))
.remove();
d3.select(this).selectAll(".area")
.filter(function(d, i) { return !i; })
.transition()
.duration(duration)
.style("fill", color(d.key))
.attr("d", area(d.values));
});
svg.select("defs").transition()
.duration(duration)
.remove();
g.transition()
.duration(duration)
.each("end", function() { d3.select(this).attr("clip-path", null); });
setTimeout(stackedArea, duration + delay);
}
function stackedArea() {
var stack = d3.layout.stack()
.values(function(d) { return d.values; })
.x(function(d) { return d.date; })
.y(function(d) { return d.price; })
.out(function(d, y0, y) { d.price0 = y0; })
.order("reverse");
stack(symbols);
y
.domain([0, d3.max(symbols[0].values.map(function(d) { return d.price + d.price0; }))])
.range([h, 0]);
line
.y(function(d) { return y(d.price0); });
area
.y0(function(d) { return y(d.price0); })
.y1(function(d) { return y(d.price0 + d.price); });
var t = svg.selectAll(".symbol").transition()
.duration(duration)
.attr("transform", "translate(0,0)")
.each("end", function() { d3.select(this).attr("transform", null); });
t.select("path.area")
.attr("d", function(d) { return area(d.values); });
t.select("path.line")
.style("stroke-opacity", function(d, i) { return i < 3 ? 1e-6 : 1; })
.attr("d", function(d) { return line(d.values); });
t.select("text")
.attr("transform", function(d) { d = d.values[d.values.length - 1]; return "translate(" + (w - 60) + "," + y(d.price / 2 + d.price0) + ")"; });
setTimeout(streamgraph, duration + delay);
}
function streamgraph() {
var stack = d3.layout.stack()
.values(function(d) { return d.values; })
.x(function(d) { return d.date; })
.y(function(d) { return d.price; })
.out(function(d, y0, y) { d.price0 = y0; })
.order("reverse")
.offset("wiggle");
stack(symbols);
line
.y(function(d) { return y(d.price0); });
var t = svg.selectAll(".symbol").transition()
.duration(duration);
t.select("path.area")
.attr("d", function(d) { return area(d.values); });
t.select("path.line")
.style("stroke-opacity", 1e-6)
.attr("d", function(d) { return line(d.values); });
t.select("text")
.attr("transform", function(d) { d = d.values[d.values.length - 1]; return "translate(" + (w - 60) + "," + y(d.price / 2 + d.price0) + ")"; });
setTimeout(overlappingArea, duration + delay);
}
function overlappingArea() {
var g = svg.selectAll(".symbol");
line
.y(function(d) { return y(d.price0 + d.price); });
g.select(".line")
.attr("d", function(d) { return line(d.values); });
y
.domain([0, d3.max(symbols.map(function(d) { return d.maxPrice; }))])
.range([h, 0]);
area
.y0(h)
.y1(function(d) { return y(d.price); });
line
.y(function(d) { return y(d.price); });
var t = g.transition()
.duration(duration);
t.select(".line")
.style("stroke-opacity", 1)
.attr("d", function(d) { return line(d.values); });
t.select(".area")
.style("fill-opacity", .5)
.attr("d", function(d) { return area(d.values); });
t.select("text")
.attr("dy", ".31em")
.attr("transform", function(d) { d = d.values[d.values.length - 1]; return "translate(" + (w - 60) + "," + y(d.price) + ")"; });
svg.append("line")
.attr("class", "line")
.attr("x1", 0)
.attr("x2", w - 60)
.attr("y1", h)
.attr("y2", h)
.style("stroke-opacity", 1e-6)
.transition()
.duration(duration)
.style("stroke-opacity", 1);
setTimeout(groupedBar, duration + delay);
}
function groupedBar() {
x = d3.scale.ordinal()
.domain(symbols[0].values.map(function(d) { return d.date; }))
.rangeBands([0, w - 60], .1);
var x1 = d3.scale.ordinal()
.domain(symbols.map(function(d) { return d.key; }))
.rangeBands([0, x.rangeBand()]);
var g = svg.selectAll(".symbol");
var t = g.transition()
.duration(duration);
t.select(".line")
.style("stroke-opacity", 1e-6)
.remove();
t.select(".area")
.style("fill-opacity", 1e-6)
.remove();
g.each(function(p, j) {
d3.select(this).selectAll("rect")
.data(function(d) { return d.values; })
.enter().append("rect")
.attr("x", function(d) { return x(d.date) + x1(p.key); })
.attr("y", function(d) { return y(d.price); })
.attr("width", x1.rangeBand())
.attr("height", function(d) { return h - y(d.price); })
.style("fill", color(p.key))
.style("fill-opacity", 1e-6)
.transition()
.duration(duration)
.style("fill-opacity", 1);
});
setTimeout(stackedBar, duration + delay);
}
function stackedBar() {
x.rangeRoundBands([0, w - 60], .1);
var stack = d3.layout.stack()
.values(function(d) { return d.values; })
.x(function(d) { return d.date; })
.y(function(d) { return d.price; })
.out(function(d, y0, y) { d.price0 = y0; })
.order("reverse");
var g = svg.selectAll(".symbol");
stack(symbols);
y
.domain([0, d3.max(symbols[0].values.map(function(d) { return d.price + d.price0; }))])
.range([h, 0]);
var t = g.transition()
.duration(duration / 2);
t.select("text")
.delay(symbols[0].values.length * 10)
.attr("transform", function(d) { d = d.values[d.values.length - 1]; return "translate(" + (w - 60) + "," + y(d.price / 2 + d.price0) + ")"; });
t.selectAll("rect")
.delay(function(d, i) { return i * 10; })
.attr("y", function(d) { return y(d.price0 + d.price); })
.attr("height", function(d) { return h - y(d.price); })
.each("end", function() {
d3.select(this)
.style("stroke", "#fff")
.style("stroke-opacity", 1e-6)
.transition()
.duration(duration / 2)
.attr("x", function(d) { return x(d.date); })
.attr("width", x.rangeBand())
.style("stroke-opacity", 1);
});
setTimeout(transposeBar, duration + symbols[0].values.length * 10 + delay);
}
function transposeBar() {
x
.domain(symbols.map(function(d) { return d.key; }))
.rangeRoundBands([0, w], .2);
y
.domain([0, d3.max(symbols.map(function(d) { return d3.sum(d.values.map(function(d) { return d.price; })); }))]);
var stack = d3.layout.stack()
.x(function(d, i) { return i; })
.y(function(d) { return d.price; })
.out(function(d, y0, y) { d.price0 = y0; });
stack(d3.zip.apply(null, symbols.map(function(d) { return d.values; }))); // transpose!
var g = svg.selectAll(".symbol");
var t = g.transition()
.duration(duration / 2);
t.selectAll("rect")
.delay(function(d, i) { return i * 10; })
.attr("y", function(d) { return y(d.price0 + d.price) - 1; })
.attr("height", function(d) { return h - y(d.price) + 1; })
.attr("x", function(d) { return x(d.symbol); })
.attr("width", x.rangeBand())
.style("stroke-opacity", 1e-6);
t.select("text")
.attr("x", 0)
.attr("transform", function(d) { return "translate(" + (x(d.key) + x.rangeBand() / 2) + "," + h + ")"; })
.attr("dy", "1.31em")
.each("end", function() { d3.select(this).attr("x", null).attr("text-anchor", "middle"); });
svg.select("line").transition()
.duration(duration)
.attr("x2", w);
setTimeout(donut, duration / 2 + symbols[0].values.length * 10 + delay);
}
function donut() {
var g = svg.selectAll(".symbol");
g.selectAll("rect").remove();
var pie = d3.layout.pie()
.value(function(d) { return d.sumPrice; });
var arc = d3.svg.arc();
g.append("path")
.style("fill", function(d) { return color(d.key); })
.data(function() { return pie(symbols); })
.transition()
.duration(duration)
.tween("arc", arcTween);
g.select("text").transition()
.duration(duration)
.attr("dy", ".31em");
svg.select("line").transition()
.duration(duration)
.attr("y1", 2 * h)
.attr("y2", 2 * h)
.remove();
function arcTween(d) {
var path = d3.select(this),
text = d3.select(this.parentNode.appendChild(this.previousSibling)),
x0 = x(d.data.key),
y0 = h - y(d.data.sumPrice);
return function(t) {
var r = h / 2 / Math.min(1, t + 1e-3),
a = Math.cos(t * Math.PI / 2),
xx = (-r + (a) * (x0 + x.rangeBand()) + (1 - a) * (w + h) / 2),
yy = ((a) * h + (1 - a) * h / 2),
f = {
innerRadius: r - x.rangeBand() / (2 - a),
outerRadius: r,
startAngle: a * (Math.PI / 2 - y0 / r) + (1 - a) * d.startAngle,
endAngle: a * (Math.PI / 2) + (1 - a) * d.endAngle
};
path.attr("transform", "translate(" + xx + "," + yy + ")");
path.attr("d", arc(f));
text.attr("transform", "translate(" + arc.centroid(f) + ")translate(" + xx + "," + yy + ")rotate(" + ((f.startAngle + f.endAngle) / 2 + 3 * Math.PI / 2) * 180 / Math.PI + ")");
};
}
setTimeout(donutExplode, duration + delay);
}
function donutExplode() {
var r0a = h / 2 - x.rangeBand() / 2,
r1a = h / 2,
r0b = 2 * h - x.rangeBand() / 2,
r1b = 2 * h,
arc = d3.svg.arc();
svg.selectAll(".symbol path")
.each(transitionExplode);
function transitionExplode(d, i) {
d.innerRadius = r0a;
d.outerRadius = r1a;
d3.select(this).transition()
.duration(duration / 2)
.tween("arc", tweenArc({
innerRadius: r0b,
outerRadius: r1b
}));
}
function tweenArc(b) {
return function(a) {
var path = d3.select(this),
text = d3.select(this.nextSibling),
i = d3.interpolate(a, b);
for (var key in b) a[key] = b[key]; // update data
return function(t) {
var a = i(t);
path.attr("d", arc(a));
text.attr("transform", "translate(" + arc.centroid(a) + ")translate(" + w / 2 + "," + h / 2 +")rotate(" + ((a.startAngle + a.endAngle) / 2 + 3 * Math.PI / 2) * 180 / Math.PI + ")");
};
}
}
setTimeout(function() {
svg.selectAll("*").remove();
svg.selectAll("g").data(symbols).enter().append("g").attr("class", "symbol");
lines();
}, duration);
}
</script>
symbol date price
Herbalife Aug-12 2
Herbalife Aug-12 2
Herbalife Aug-12 3
Herbalife Aug-12 4
Herbalife Sep-12 2
Herbalife Sep-12 3
Herbalife Sep-12 2
Herbalife Sep-12 3
Herbalife Sep-12 4
Herbalife Oct-12 4
Herbalife Oct-12 3
Herbalife Oct-12 3
Herbalife Oct-12 4
Herbalife Nov-12 5
Herbalife Nov-12 5
Herbalife Nov-12 2
Herbalife Nov-12 5
Herbalife Dec-12 4
Herbalife Dec-12 3
Herbalife Dec-12 21
Herbalife Dec-12 30
Herbalife Dec-12 9
Herbalife Jan-13 39
Herbalife Jan-13 18
Herbalife Jan-13 14
Herbalife Jan-13 16
Herbalife Feb-13 26
Herbalife Feb-13 15
Herbalife Feb-13 24
Herbalife Feb-13 19
Herbalife Mar-13 8
Herbalife Mar-13 7
Herbalife Mar-13 11
Herbalife Mar-13 13
Herbalife Mar-13 11
Herbalife Apr-13 55
Herbalife Apr-13 7
Herbalife Apr-13 10
Herbalife Apr-13 100
Herbalife May-13 8
Herbalife May-13 7
Herbalife May-13 75
Herbalife May-13 6
Herbalife Jun-13 8
Herbalife Jun-13 6
Herbalife Jun-13 8
Herbalife Jun-13 8
Herbalife Jun-13 8
Herbalife Jul-13 7
Herbalife Jul-13 10
Herbalife Jul-13 11
Herbalife Jul-13 26
Herbalife Aug-13 10
Herbalife Aug-13 13
Herbalife Aug-13 14
Herbalife Aug-13 12
Herbalife Sep-13 11
Herbalife Sep-13 10
Herbalife Sep-13 10
Herbalife Sep-13 12
Herbalife Sep-13 8
Herbalife Oct-13 7
Herbalife Oct-13 7
Herbalife Oct-13 9
Herbalife Oct-13 9
Herbalife Nov-13 6
Herbalife Nov-13 6
Herbalife Nov-13 8
Herbalife Nov-13 9
Herbalife Dec-13 5
Herbalife Dec-13 7
Herbalife Dec-13 14
Herbalife Dec-13 7
Herbalife Dec-13 5
Herbalife Jan-14 6
Herbalife Jan-14 8
Herbalife Jan-14 17
Herbalife Jan-14 11
Herbalife Feb-14 14
Herbalife Feb-14 7
Herbalife Feb-14 13
Herbalife Feb-14 10
Herbalife Mar-14 9
Herbalife Mar-14 83
Herbalife Mar-14 19
Herbalife Mar-14 20
Herbalife Mar-14 11
Herbalife Apr-14 18
Herbalife Apr-14 24
Herbalife Apr-14 15
Herbalife Apr-14 18
Herbalife May-14 11
Herbalife May-14 11
Herbalife May-14 7
Herbalife May-14 8
Herbalife Jun-14 8
Herbalife Jun-14 7
Herbalife Jun-14 11
Herbalife Jun-14 8
Herbalife Jun-14 7
Herbalife Jul-14 6
Herbalife Jul-14 9
Herbalife Jul-14 44
Herbalife Jul-14 16
Herbalife Aug-14 9
Herbalife Aug-14 9
Herbalife Aug-14 9
Herbalife Aug-14 6
Herbalife Aug-14 8
Herbalife Sep-14 5
Herbalife Sep-14 8
Herbalife Sep-14 10
Herbalife Sep-14 16
Herbalife Oct-14 9
Herbalife Oct-14 8
Herbalife Oct-14 9
Herbalife Oct-14 14
Herbalife Nov-14 17
Herbalife Nov-14 11
Herbalife Nov-14 9
Herbalife Nov-14 8
Herbalife Nov-14 7
Herbalife Dec-14 6
Herbalife Dec-14 6
Herbalife Dec-14 6
Herbalife Dec-14 10
Herbalife Jan-15 11
Herbalife Jan-15 9
Herbalife Jan-15 11
Herbalife Jan-15 10
Herbalife Feb-15 7
Herbalife Feb-15 7
Herbalife Feb-15 9
Herbalife Feb-15 11
Herbalife Mar-15 10
Herbalife Mar-15 13
Herbalife Mar-15 9
Herbalife Mar-15 8
Herbalife Mar-15 9
Herbalife Apr-15 12
Herbalife Apr-15 7
Herbalife Apr-15 7
Herbalife Apr-15 7
Herbalife May-15 8
Herbalife May-15 6
Herbalife May-15 6
Herbalife May-15 5
Herbalife May-15 7
Herbalife Jun-15 6
Herbalife Jun-15 6
Herbalife Jun-15 8
Herbalife Jun-15 5
Herbalife Jul-15 5
Herbalife Jul-15 6
Herbalife Jul-15 7
Herbalife Jul-15 6
Herbalife Aug-15 7
Herbalife Aug-15 8
Herbalife Aug-15 6
Herbalife Aug-15 7
Herbalife Aug-15 6
Herbalife Sep-15 7
Herbalife Sep-15 8
Herbalife Sep-15 7
Herbalife Sep-15 5
Herbalife Oct-15 9
Herbalife Oct-15 6
Herbalife Oct-15 9
Herbalife Oct-15 8
Herbalife Nov-15 7
Herbalife Nov-15 6
Herbalife Nov-15 7
Herbalife Nov-15 8
Herbalife Nov-15 4
Herbalife Dec-15 6
Herbalife Dec-15 5
Herbalife Dec-15 3
Herbalife Dec-15 7
Herbalife Jan-16 5
Herbalife Jan-16 5
Herbalife Jan-16 8
Herbalife Jan-16 7
Herbalife Jan-16 4
Herbalife Feb-16 7
Herbalife Feb-16 9
Herbalife Feb-16 14
Herbalife Feb-16 14
Herbalife Mar-16 12
Herbalife Mar-16 9
Herbalife Mar-16 10
Herbalife Mar-16 8
Herbalife Apr-16 8
Herbalife Apr-16 9
Herbalife Apr-16 8
Herbalife Apr-16 7
Herbalife May-16 8
Herbalife May-16 7
Herbalife May-16 8
Herbalife May-16 11
Herbalife May-16 6
Herbalife Jun-16 7
Herbalife Jun-16 5
Herbalife Jun-16 10
Herbalife Jun-16 7
Herbalife Jul-16 8
Herbalife Jul-16 19
Herbalife Jul-16 21
Herbalife Jul-16 10
Herbalife Jul-16 13
Herbalife Aug-16 8
Herbalife Aug-16 10
Herbalife Aug-16 13
Herbalife Aug-16 15
Herbalife Sep-16 11
Herbalife Sep-16 10
Herbalife Sep-16 13
Herbalife Sep-16 9
Herbalife Oct-16 5
Herbalife Oct-16 8
Herbalife Oct-16 6
Herbalife Oct-16 7
Herbalife Oct-16 12
Herbalife Nov-16 11
Herbalife Nov-16 10
Herbalife Nov-16 6
Herbalife Nov-16 9
Herbalife Dec-16 5
Herbalife Dec-16 6
Herbalife Dec-16 5
Herbalife Dec-16 4
Herbalife Jan-17 6
Herbalife Jan-17 5
Herbalife Jan-17 6
Herbalife Jan-17 10
Herbalife Jan-17 8
Herbalife Feb-17 8
Herbalife Feb-17 7
Herbalife Feb-17 6
Herbalife Feb-17 5
Herbalife Mar-17 7
Herbalife Mar-17 5
Herbalife Mar-17 6
Herbalife Mar-17 8
Herbalife Apr-17 6
Herbalife Apr-17 7
Herbalife Apr-17 6
Herbalife Apr-17 4
Herbalife Apr-17 4
Herbalife May-17 6
Herbalife May-17 6
Herbalife May-17 7
Herbalife May-17 5
Herbalife Jun-17 7
Herbalife Jun-17 9
Herbalife Jun-17 11
Herbalife Jun-17 9
Herbalife Jul-17 5
Herbalife Jul-17 8
Herbalife Jul-17 7
Herbalife Jul-17 5
Herbalife Jul-17 4
Bill Ackman Aug-12 1
Bill Ackman Aug-12 1
Bill Ackman Aug-12 1
Bill Ackman Aug-12 1
Bill Ackman Sep-12 2
Bill Ackman Sep-12 1
Bill Ackman Sep-12 1
Bill Ackman Sep-12 1
Bill Ackman Sep-12 1
Bill Ackman Oct-12 1
Bill Ackman Oct-12 2
Bill Ackman Oct-12 0
Bill Ackman Oct-12 1
Bill Ackman Nov-12 1
Bill Ackman Nov-12 2
Bill Ackman Nov-12 1
Bill Ackman Nov-12 0
Bill Ackman Dec-12 1
Bill Ackman Dec-12 0
Bill Ackman Dec-12 9
Bill Ackman Dec-12 3
Bill Ackman Dec-12 1
Bill Ackman Jan-13 3
Bill Ackman Jan-13 4
Bill Ackman Jan-13 10
Bill Ackman Jan-13 7
Bill Ackman Feb-13 3
Bill Ackman Feb-13 5
Bill Ackman Feb-13 3
Bill Ackman Feb-13 3
Bill Ackman Mar-13 4
Bill Ackman Mar-13 4
Bill Ackman Mar-13 3
Bill Ackman Mar-13 1
Bill Ackman Mar-13 3
Bill Ackman Apr-13 4
Bill Ackman Apr-13 2
Bill Ackman Apr-13 1
Bill Ackman Apr-13 3
Bill Ackman May-13 2
Bill Ackman May-13 2
Bill Ackman May-13 1
Bill Ackman May-13 1
Bill Ackman Jun-13 3
Bill Ackman Jun-13 1
Bill Ackman Jun-13 1
Bill Ackman Jun-13 1
Bill Ackman Jun-13 1
Bill Ackman Jul-13 3
Bill Ackman Jul-13 1
Bill Ackman Jul-13 1
Bill Ackman Jul-13 8
Bill Ackman Aug-13 6
Bill Ackman Aug-13 14
Bill Ackman Aug-13 6
Bill Ackman Aug-13 3
Bill Ackman Sep-13 2
Bill Ackman Sep-13 2
Bill Ackman Sep-13 3
Bill Ackman Sep-13 2
Bill Ackman Sep-13 4
Bill Ackman Oct-13 2
Bill Ackman Oct-13 1
Bill Ackman Oct-13 1
Bill Ackman Oct-13 0
Bill Ackman Nov-13 1
Bill Ackman Nov-13 1
Bill Ackman Nov-13 3
Bill Ackman Nov-13 1
Bill Ackman Dec-13 1
Bill Ackman Dec-13 1
Bill Ackman Dec-13 3
Bill Ackman Dec-13 1
Bill Ackman Dec-13 1
Bill Ackman Jan-14 1
Bill Ackman Jan-14 1
Bill Ackman Jan-14 2
Bill Ackman Jan-14 1
Bill Ackman Feb-14 0
Bill Ackman Feb-14 2
Bill Ackman Feb-14 0
Bill Ackman Feb-14 0
Bill Ackman Mar-14 1
Bill Ackman Mar-14 4
Bill Ackman Mar-14 1
Bill Ackman Mar-14 2
Bill Ackman Mar-14 2
Bill Ackman Apr-14 1
Bill Ackman Apr-14 1
Bill Ackman Apr-14 4
Bill Ackman Apr-14 2
Bill Ackman May-14 2
Bill Ackman May-14 2
Bill Ackman May-14 1
Bill Ackman May-14 2
Bill Ackman Jun-14 1
Bill Ackman Jun-14 2
Bill Ackman Jun-14 0
Bill Ackman Jun-14 3
Bill Ackman Jun-14 3
Bill Ackman Jul-14 1
Bill Ackman Jul-14 3
Bill Ackman Jul-14 15
Bill Ackman Jul-14 2
Bill Ackman Aug-14 2
Bill Ackman Aug-14 6
Bill Ackman Aug-14 1
Bill Ackman Aug-14 3
Bill Ackman Aug-14 1
Bill Ackman Sep-14 1
Bill Ackman Sep-14 1
Bill Ackman Sep-14 1
Bill Ackman Sep-14 2
Bill Ackman Oct-14 1
Bill Ackman Oct-14 4
Bill Ackman Oct-14 3
Bill Ackman Oct-14 3
Bill Ackman Nov-14 3
Bill Ackman Nov-14 3
Bill Ackman Nov-14 2
Bill Ackman Nov-14 1
Bill Ackman Nov-14 1
Bill Ackman Dec-14 2
Bill Ackman Dec-14 1
Bill Ackman Dec-14 1
Bill Ackman Dec-14 1
Bill Ackman Jan-15 2
Bill Ackman Jan-15 2
Bill Ackman Jan-15 3
Bill Ackman Jan-15 2
Bill Ackman Feb-15 2
Bill Ackman Feb-15 2
Bill Ackman Feb-15 2
Bill Ackman Feb-15 2
Bill Ackman Mar-15 1
Bill Ackman Mar-15 5
Bill Ackman Mar-15 2
Bill Ackman Mar-15 2
Bill Ackman Mar-15 1
Bill Ackman Apr-15 1
Bill Ackman Apr-15 1
Bill Ackman Apr-15 1
Bill Ackman Apr-15 1
Bill Ackman May-15 3
Bill Ackman May-15 1
Bill Ackman May-15 1
Bill Ackman May-15 3
Bill Ackman May-15 3
Bill Ackman Jun-15 1
Bill Ackman Jun-15 2
Bill Ackman Jun-15 2
Bill Ackman Jun-15 1
Bill Ackman Jul-15 2
Bill Ackman Jul-15 1
Bill Ackman Jul-15 2
Bill Ackman Jul-15 2
Bill Ackman Aug-15 8
Bill Ackman Aug-15 1
Bill Ackman Aug-15 1
Bill Ackman Aug-15 2
Bill Ackman Aug-15 4
Bill Ackman Sep-15 3
Bill Ackman Sep-15 2
Bill Ackman Sep-15 1
Bill Ackman Sep-15 2
Bill Ackman Oct-15 4
Bill Ackman Oct-15 2
Bill Ackman Oct-15 4
Bill Ackman Oct-15 4
Bill Ackman Nov-15 4
Bill Ackman Nov-15 4
Bill Ackman Nov-15 2
Bill Ackman Nov-15 1
Bill Ackman Nov-15 1
Bill Ackman Dec-15 2
Bill Ackman Dec-15 2
Bill Ackman Dec-15 1
Bill Ackman Dec-15 2
Bill Ackman Jan-16 1
Bill Ackman Jan-16 2
Bill Ackman Jan-16 2
Bill Ackman Jan-16 4
Bill Ackman Jan-16 1
Bill Ackman Feb-16 2
Bill Ackman Feb-16 3
Bill Ackman Feb-16 2
Bill Ackman Feb-16 2
Bill Ackman Mar-16 2
Bill Ackman Mar-16 10
Bill Ackman Mar-16 5
Bill Ackman Mar-16 2
Bill Ackman Apr-16 3
Bill Ackman Apr-16 2
Bill Ackman Apr-16 1
Bill Ackman Apr-16 2
Bill Ackman May-16 3
Bill Ackman May-16 3
Bill Ackman May-16 2
Bill Ackman May-16 2
Bill Ackman May-16 2
Bill Ackman Jun-16 2
Bill Ackman Jun-16 2
Bill Ackman Jun-16 2
Bill Ackman Jun-16 2
Bill Ackman Jul-16 2
Bill Ackman Jul-16 3
Bill Ackman Jul-16 2
Bill Ackman Jul-16 1
Bill Ackman Jul-16 2
Bill Ackman Aug-16 2
Bill Ackman Aug-16 1
Bill Ackman Aug-16 2
Bill Ackman Aug-16 2
Bill Ackman Sep-16 2
Bill Ackman Sep-16 2
Bill Ackman Sep-16 2
Bill Ackman Sep-16 2
Bill Ackman Oct-16 1
Bill Ackman Oct-16 2
Bill Ackman Oct-16 2
Bill Ackman Oct-16 1
Bill Ackman Oct-16 3
Bill Ackman Nov-16 3
Bill Ackman Nov-16 2
Bill Ackman Nov-16 2
Bill Ackman Nov-16 3
Bill Ackman Dec-16 3
Bill Ackman Dec-16 2
Bill Ackman Dec-16 3
Bill Ackman Dec-16 1
Bill Ackman Jan-17 2
Bill Ackman Jan-17 2
Bill Ackman Jan-17 2
Bill Ackman Jan-17 2
Bill Ackman Jan-17 1
Bill Ackman Feb-17 3
Bill Ackman Feb-17 2
Bill Ackman Feb-17 1
Bill Ackman Feb-17 2
Bill Ackman Mar-17 2
Bill Ackman Mar-17 5
Bill Ackman Mar-17 3
Bill Ackman Mar-17 2
Bill Ackman Apr-17 2
Bill Ackman Apr-17 1
Bill Ackman Apr-17 2
Bill Ackman Apr-17 1
Bill Ackman Apr-17 2
Bill Ackman May-17 1
Bill Ackman May-17 1
Bill Ackman May-17 0
Bill Ackman May-17 1
Bill Ackman Jun-17 3
Bill Ackman Jun-17 1
Bill Ackman Jun-17 2
Bill Ackman Jun-17 2
Bill Ackman Jul-17 0
Bill Ackman Jul-17 1
Bill Ackman Jul-17 2
Bill Ackman Jul-17 2
Bill Ackman Jul-17 11
HLF Aug-12 48.586906
HLF Aug-12 50.281662
HLF Aug-12 48.552471
HLF Aug-12 46.746002
HLF Sep-12 48.475189
HLF Sep-12 50.745354
HLF Sep-12 45.712357
HLF Sep-12 45.789642
HLF Oct-12 50.107773
HLF Oct-12 49.624767
HLF Oct-12 50.416901
HLF Oct-12 48.880924
HLF Oct-12 47.258003
HLF Nov-12 44.688366
HLF Nov-12 43.765331
HLF Nov-12 47.149101
HLF Nov-12 44.698788
HLF Dec-12 45.496117
HLF Dec-12 42.724926
HLF Dec-12 26.5159
HLF Dec-12 28.577274
HLF Dec-12 35.976841
HLF Jan-13 38.913322
HLF Jan-13 42.297092
HLF Jan-13 42.384602
HLF Jan-13 34.100208
HLF Feb-13 34.858639
HLF Feb-13 37.66872
HLF Feb-13 35.772644
HLF Feb-13 38.991112
HLF Mar-13 40.655121
HLF Mar-13 37.706398
HLF Mar-13 37.383114
HLF Mar-13 36.687569
HLF Apr-13 38.00029
HLF Apr-13 36.618999
HLF Apr-13 35.051567
HLF Apr-13 37.490875
HLF Apr-13 40.165295
HLF May-13 42.340099
HLF May-13 43.830418
HLF May-13 46.996387
HLF May-13 46.029823
HLF Jun-13 43.031528
HLF Jun-13 47.667057
HLF Jun-13 44.8167
HLF Jun-13 44.520813
HLF Jul-13 47.726231
HLF Jul-13 48.357456
HLF Jul-13 55.034588
HLF Jul-13 57.648243
HLF Jul-13 63.210869
HLF Aug-13 64.47332
HLF Aug-13 64.339867
HLF Aug-13 63.725594
HLF Aug-13 60.446182
HLF Sep-13 63.160862
HLF Sep-13 68.709106
HLF Sep-13 69.065781
HLF Sep-13 67.579643
HLF Sep-13 68.481239
HLF Oct-13 63.477905
HLF Oct-13 64.646996
HLF Oct-13 65.756653
HLF Oct-13 62.556499
HLF Nov-13 61.823341
HLF Nov-13 68.702286
HLF Nov-13 71.330513
HLF Nov-13 69.369301
HLF Dec-13 72.535118
HLF Dec-13 68.075096
HLF Dec-13 80.250565
HLF Dec-13 77.930954
HLF Dec-13 76.746254
HLF Jan-14 81.445213
HLF Jan-14 69.886978
HLF Jan-14 59.792194
HLF Jan-14 64.082977
HLF Feb-14 67.069603
HLF Feb-14 66.093971
HLF Feb-14 66.422501
HLF Feb-14 66.303032
HLF Mar-14 64.739998
HLF Mar-14 58.040001
HLF Mar-14 49.540001
HLF Mar-14 55.650002
HLF Mar-14 57.150002
HLF Apr-14 51.48
HLF Apr-14 55.099998
HLF Apr-14 57.830002
HLF Apr-14 59.950001
HLF May-14 61.700001
HLF May-14 61.700001
HLF May-14 63.950001
HLF May-14 64.830002
HLF Jun-14 64.540001
HLF Jun-14 63.080002
HLF Jun-14 64.900002
HLF Jun-14 65.139999
HLF Jun-14 66.099998
HLF Jul-14 64.489998
HLF Jul-14 60.84
HLF Jul-14 66.059998
HLF Jul-14 52.57
HLF Aug-14 51.490002
HLF Aug-14 51.450001
HLF Aug-14 49.950001
HLF Aug-14 50.98
HLF Sep-14 49.810001
HLF Sep-14 46.029999
HLF Sep-14 44.830002
HLF Sep-14 43.799999
HLF Sep-14 44.610001
HLF Oct-14 46.439999
HLF Oct-14 45.43
HLF Oct-14 51.599998
HLF Oct-14 52.459999
HLF Nov-14 37.5
HLF Nov-14 38.5
HLF Nov-14 40.849998
HLF Nov-14 43.25
HLF Dec-14 42.610001
HLF Dec-14 38.790001
HLF Dec-14 37.959999
HLF Dec-14 38.419998
HLF Dec-14 37.580002
HLF Jan-15 33.32
HLF Jan-15 31.24
HLF Jan-15 30.540001
HLF Jan-15 30.48
HLF Feb-15 32.73
HLF Feb-15 32.779999
HLF Feb-15 35.400002
HLF Feb-15 31.01
HLF Mar-15 32.689999
HLF Mar-15 35.959999
HLF Mar-15 42.099998
HLF Mar-15 43.169998
HLF Mar-15 42.91
HLF Apr-15 43.830002
HLF Apr-15 44.669998
HLF Apr-15 41.099998
HLF Apr-15 41.619999
HLF May-15 47.560001
HLF May-15 47.349998
HLF May-15 51.529999
HLF May-15 52.029999
HLF Jun-15 53.169998
HLF Jun-15 52.5
HLF Jun-15 53.75
HLF Jun-15 53.75
HLF Jun-15 55.650002
HLF Jul-15 51.41
HLF Jul-15 53.889999
HLF Jul-15 48.970001
HLF Jul-15 50.490002
HLF Aug-15 59.68
HLF Aug-15 59.43
HLF Aug-15 56.810001
HLF Aug-15 57.330002
HLF Aug-15 56.549999
HLF Sep-15 56.02
HLF Sep-15 56.790001
HLF Sep-15 53.549999
HLF Sep-15 55.720001
HLF Oct-15 54.93
HLF Oct-15 55.740002
HLF Oct-15 55
HLF Oct-15 56.040001
HLF Nov-15 55.060001
HLF Nov-15 53.889999
HLF Nov-15 56.73
HLF Nov-15 57.98
HLF Nov-15 56.240002
HLF Dec-15 54.110001
HLF Dec-15 54.41
HLF Dec-15 55.360001
HLF Dec-15 53.619999
HLF Jan-16 50.369999
HLF Jan-16 48.5
HLF Jan-16 46.209999
HLF Jan-16 46.209999
HLF Feb-16 45.009998
HLF Feb-16 44.639999
HLF Feb-16 47.75
HLF Feb-16 55.150002
HLF Feb-16 55.389999
HLF Mar-16 57.02
HLF Mar-16 61.18
HLF Mar-16 60.759998
HLF Mar-16 61.970001
HLF Apr-16 61.810001
HLF Apr-16 58.189999
HLF Apr-16 58.200001
HLF Apr-16 57.950001
HLF May-16 63.619999
HLF May-16 61
HLF May-16 59.98
HLF May-16 59.139999
HLF May-16 59.77
HLF Jun-16 61.889999
HLF Jun-16 58.970001
HLF Jun-16 57.5
HLF Jun-16 58.75
HLF Jul-16 61.040001
HLF Jul-16 65.25
HLF Jul-16 66.129997
HLF Jul-16 68.010002
HLF Aug-16 67.089996
HLF Aug-16 64.809998
HLF Aug-16 63.310001
HLF Aug-16 60.5
HLF Aug-16 61.349998
HLF Sep-16 61.080002
HLF Sep-16 62.029999
HLF Sep-16 61.23
HLF Sep-16 61.990002
HLF Oct-16 63.490002
HLF Oct-16 61.610001
HLF Oct-16 62.59
HLF Oct-16 60.220001
HLF Oct-16 54.959999
HLF Nov-16 53.419998
HLF Nov-16 50.860001
HLF Nov-16 51.189999
HLF Nov-16 47.990002
HLF Dec-16 50.369999
HLF Dec-16 48.290001
HLF Dec-16 49.240002
HLF Dec-16 48.139999
HLF Jan-17 50.310001
HLF Jan-17 52
HLF Jan-17 53.009998
HLF Jan-17 56.290001
HLF Jan-17 56.599998
HLF Feb-17 59.990002
HLF Feb-17 61.23
HLF Feb-17 56.720001
HLF Feb-17 55.990002
HLF Mar-17 52.27
HLF Mar-17 56.450001
HLF Mar-17 57.02
HLF Mar-17 58.139999
HLF Apr-17 58.09
HLF Apr-17 58.139999
HLF Apr-17 59.98
HLF Apr-17 63.259998
HLF May-17 69.400002
HLF May-17 72.230003
HLF May-17 71.809998
HLF May-17 71.129997
HLF May-17 73.919998
HLF Jun-17 68.879997
HLF Jun-17 71.870003
HLF Jun-17 74.029999
HLF Jun-17 71.330002
HLF Jul-17 72.510002
HLF Jul-17 73.339996
HLF Jul-17 70.410004
HLF Jul-17 67.239998
HLF Jul-17 66.510002
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment