Good German confidence and 'woeful' US data pushes around the majors, but the NZD comes through relatively unscathed

Short headline: 
Bond yields and carry trade drive the NZD

By Raiko Shareef

The majors have had a very mixed performance against the USD overnight.

Given the mix of incoming data, EUR and its compatriots sit pretty at the top of the leader-board. NZD and AUD sit at the bottom of the rankings, along with the emerging-market cast of carry trade favourites.

Germany’s IFO survey pleasantly surprised, with the swing higher in the headline index driven by optimism about future conditions. This is likely to keep German on track for a solid Q1 growth result of around 1.5% y/y.

On the other, the US durable goods report was woeful. The core (ex-aircraft) measure fell by 0.4% m/m, the fifth consecutive month of contraction. In each one of those months, the consensus had expected gains.

The business investment numbers were worse, falling 1.4% m/m against expectations of a 0.3% gain. This will have analysts downgrading their expectations of US Q1 GDP further.

That poor report provided the impetus for major currencies to hit their overnight highs against the USD.

EUR/USD made a couple of attempts to find a foothold above 1.10, but has settled back down at 1.0970. Short-term investors appear to readying for a sustained push higher.

But we would warn that the lack of clear resolution on Greece’s imminent cash crunch could instigate a sharp downward correction. Greece is set to run out of cash in early- to mid-April, by most estimates. 

NZD/USD took a look at 0.7700 after the US data, but that was only a brief respite in a session where it has traded very heavily. It tested support at 0.7600 twice overnight, before finally slipping below this morning.

Fonterra’s affirmation of a $4.70kg/MS had little influence on NZD (despite a lowered dividend payout). We also wouldn’t blame the smaller-than-expected monthly trade surplus for NZD’s heaviness.

We think it is more a combination of higher US bond yields and higher volatility that has dragged NZD lower, along with the usual carry trade suspects. It seems unlikely that the move higher in bond yields and volatility will extend significantly in the near-term. As such, we expect NZD/USD to find some support.

Tonight’s data calendar is exceptionally light. The focus should turn to Fed Chair Yellen’s speech in the early hours of Saturday morning, entitled “The New Normal for Monetary Policy”.

 


To subscribe to our free daily Currency Rate Sheet and News email, enter your email address here.

Email:   

 


 

Daily exchange rates

//var root_url=”http://www.interest.co.nz/”
var root_url=”http://www.interest.co.nz/charts-csv/” // left untouched for now
var tabs_count=”7″;
var csvfiles_loc= [“/charts-csv/chart_data/exchangerates/daily-usd.csv”,” /charts-csv/chart_data/exchangerates/daily-aud.csv”,” /charts-csv/chart_data/exchangerates/daily-twi.csv”,” /charts-csv/chart_data/exchangerates/daily-yen.csv”,” /charts-csv/chart_data/exchangerates/daily-yuan.csv”,” /charts-csv/chart_data/exchangerates/daily-eur.csv”,” /charts-csv/chart_data/exchangerates/daily-gbp.csv”];
var chart_title_arr= [“US dollar”,”Australian dollar”,”Trade weighted index”,”Japanese Yen”,”Chinese Yuan”,”Euro”,”British pound”];
var chart_subtitles_arr= [“Daily benchmark rate”,”Daily benchmark rate”,”Daily benchmark rate”,”Daily benchmark rate”,”Daily benchmark rate”,”Daily benchmark rate”,”Daily benchmark rate”];
var tab_titles_arr= [“US$”,”AU$”,”TWI”,”u00a5en”,”u00a5uan”,”u20acuro”,”GBP”];
var source_arr= [“RBNZ”,”RBNZ”,”RBNZ”,”RBNZ”,”RBNZ”,”RBNZ”,”RBNZ”];
var source_hyperlink_arr= [“http://www.rbnz.govt.nz”,”http://www.rbnz.govt.nz”,”http://www.rbnz.govt.nz”,”http://www.rbnz.govt.nz”,”http://www.rbnz.govt.nz”,”http://www.rbnz.govt.nz”,”http://www.rbnz.govt.nz”];
var tabswidth=”8″;
var decimal_arr= [“4″,”4″,”4″,”2″,”2″,”4″,”4”];

// variable declaration
var xpad;
var padding_value=0;
var range_selector=0
var loc;
var updt;
var val_num;
var vi=0;
var max_val;
var x;

var finalAr = new Array();
for (var i = 0; i <= tabs_count; i++) {
finalAr[i] = new Array();
}
var flagAr = new Array();
for (var i = 0; i <= tabs_count; i++) {
flagAr[i] =[];
}
var yaxisAr = new Array();
for (var i = 0; i 536)
{
var b = arr.length – 536; // to get last 36 points
}
else if (arr.length < 536)
{
var b = 537 – arr.length;
}
else if(arr.length == 536)
{
var b=2;
}

// to generate the format for date representation in x axis

var timestamweek = 604800000;
var timestamday = 86400000;
var timestammonth30 = 2592000000;
var timestammonth31 = 2678400000;
var timestamyear = 31536000000;
var timestamquarterly = 7776000000;

for (var u=0;u<2;u++) {
arr[u] = parseLineCSV(arr[u]);
fomat= String(arr[u][0]);
var k=0;

//alert(fomat.charAt(k));
do {
k++;
} while(fomat.charAt(k)!="-")
var k1 =k;

do {
k++;
} while(fomat.charAt(k)!="-")
var k2=k;

do {
k++;
} while(k<fomat.length)
var k3=k;

var dd= fomat.substring(0,k1);
var mm = fomat.substring(k1+1,k2);
var yy = "20"+fomat.substring(k2+1,k3+1);
var yy1=fomat.substring(k2+1,k3+1);

// conversion of months into numerical form

//+++++++++++++++++++++++++++++++++++
if (mm == "Jan")
{
mm= "01";
}
else if (mm == "Feb")
{
mm= "02";
}

else if (mm == "Mar")
{
mm= "03";
}

else if (mm == "Apr")
{
mm= "04";
}

else if (mm == "May")
{
mm= "05";
}

else if (mm == "Jun")
{
mm= "06";
}

else if (mm == "Jul")
{
mm= "07";
}

else if (mm == " Aug")
{
mm= "08";
}

else if (mm == "Sep")
{
mm= "09";
}

else if (mm == "Oct")
{
mm= "10";
}

else if (mm == "Nov")
{
mm= "11";
}

else if (mm == "Dec")
{
mm= "12";
}

// +++++++++++++++++++++++++++++++++++++++++++++++++++++++

var date2 = mm+"/"+dd+"/"+yy;

if (u==0)
{
var timestam1 = Date.parse(date2);
}
else if(u==1)
{
var timestam2 = Date.parse(date2);
}
}
var timestamvar = (timestam2- timestam1);
var flagAR_count=0;
for (var i=2;i<arr.length;i++) {
flagAR_count++;
var tempAr = new Array();
var tempAr1 = new Array();
arr[i] = parseLineCSV(arr[i]);
//alert("this is arr[i]="+arr[i]);
if (arr[i]!='')
{

fomat= String(arr[i][0]);
replic=String(arr[i][0]);
//alert("this is the value fomat first cond= "+ fomat);
var k=0;

do {
k++;
} while(fomat.charAt(k)!="-")
var k1 =k;

do {
k++;
} while(fomat.charAt(k)!="-")
var k2=k;

do {
k++;
} while(k<fomat.length)
var k3=k;

var dd= fomat.substring(0,k1);
var mm = fomat.substring(k1+1,k2);
var current_year=""+new Date().getFullYear();
var c_year=Number(current_year.substring(2,4));
var c_data=Number(''+fomat.substring(k2+1,k3+1));
if(c_data c_year)
{
var yy = “19”+fomat.substring(k2+1,k3+1);
}
else if(c_data == c_year)
{
var yy = “20”+fomat.substring(k2+1,k3+1);
}
// conversion of months into numerical form

//+++++++++++++++++++++++++++++++++++
if (mm == “Jan”)
{
mm= “01”;
}
else if (mm == “Feb”)
{
mm= “02”;
}

else if (mm == “Mar”)
{
mm= “03”;
}

else if (mm == “Apr”)
{
mm= “04”;
}

else if (mm == “May”)
{
mm= “05”;
}

else if (mm == “Jun”)
{
mm= “06”;
}

else if (mm == “Jul”)
{
mm= “07”;
}

else if (mm == “Aug”)
{
mm= “08”;
}

else if (mm == “Sep”)
{
mm= “09”;
}

else if (mm == “Oct”)
{
mm= “10”;
}

else if (mm == “Nov”)
{
mm= “11”;
}

else if (mm == “Dec”)
{
mm= “12”;
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++

var date = mm+”/”+dd+”/”+yy;
//alert(date);

//alert(flagAr[csvgen_counter]);
//alert(“this is flagAr”+flagAr);

var timestam_1 = Date.parse(date);
var timestam= timestam_1+86400000; //86400000 added to get correct timezone output from Date.parse
var time4 = new Date(timestam);
var Weeko = time4.getDay();
var dd2 = time4.getDate();
var mm2 = time4.getMonth();
var flag_y=arr[i][1];
var ahref_title=”Click here for full story”;
// var url= arr[i][2];
//var url=”http://www.nzherald.co.nz”;
//var flag_date='{“x”: “Date.UTC(‘+yy+’,’+mm2+’,’+dd2+’)”, “y”:’flag_y’, “title”: “On series”}’;
//var flag_date='{“x”:”‘+timestam+'”, “title”:”A”}’;
if(arr[i][2])
{
var url=arr[i][2];
var flag_date='{“x”:’+timestam+’, “title”:”  “,”text”:”Click here for Story!“}’;

//var flag_date='{“x”:”‘+timestam+'”, “title”: “A“}’;
//var flag_date=”{x:Date.UTC(“+yy+”,”+mm2+”,”+dd2+”), title:’On series’}”;
flagAr[csvgen_counter].push(flag_date);
}
var yy2 = time4.getFullYear();
var yy3 = yy2+””;
var yy4= yy3.substring(2,4);
//++++++++++++++++++++++++this for days conversion++++++++++++++++++++++++++++
if (Weeko==1)
{
Weeko = “Mon”;
}

else if (Weeko==2)
{
Weeko = “Tue”;
}

else if (Weeko==3)
{
Weeko = “Wed”;
}

else if (Weeko==4)
{
Weeko = “Thu”;
}

else if (Weeko==5)
{
Weeko = “Fri”;
}

else if (Weeko==6)
{
Weeko = “Sat”;
}

else if (Weeko==0)
{
Weeko = “Sun”;
}

//+++++++++++++++++++++++this is for month conversion+++++

if (mm2==0)
{
mm2 = “Jan”;
}

else if (mm2==1)
{
mm2 = “Feb”;
}

else if (mm2==2)
{
mm2 = “Mar”;
}

else if (mm2==3)
{
mm2 = “Apr”;
}

else if (mm2==4)
{
mm2 = “May”;
}

else if (mm2==5)
{
mm2 = “Jun”;
}

else if (mm2==6)
{
mm2 = “Jul”;
}

else if (mm2==7)
{
mm2 = “Aug”;
}

else if (mm2==8)
{
mm2 = “Sep”;
}

else if (mm2==9)
{
mm2 = “Oct”;
}

else if (mm2==10)
{
mm2 = “Nov”;
}

else if (mm2==11)
{
mm2 = “Dec”;
}
//++++++++++++++++++++++++++++++++++++++++

//weekly
if ( timestamvar == timestamweek)
{
fomat2=dd2+”-“+mm2+”-“+yy4;
padding_value=timestamweek;
range_selector=2;
}

// Daily
else if ( timestamvar = timestamyear)
{
fomat2=mm2+”-“+yy4;
padding_value=timestamyear;
range_selector=3;
}

//monthly
else if ((timestamvar <= timestammonth30)&&(timestamvar = timestamquarterly)
{
fomat2=mm2+”-“+yy4;
padding_value=timestamquarterly;
range_selector=3;
}

else
{
fomat2=dd2+”-“+mm2+”-“+yy4;
padding_value=timestamday;
range_selector=3;
}

arr[i][0]= fomat2;
//alert(“this is arr[i][0]”+arr[i][0]);
var decpad;
decpad = parseFloat(arr[i][1]);
//arr[i][1] = roundVal(decpad);
arr[i][1] = decpad;

if(i==(arr.length-1))
{

// Functionality to get the last value

var xvalu=dd2+”-“+mm2+”-“+yy4;
var yvalu= String(arr[i][1]);
var xyvalu=”Latest value at “+xvalu+” is “+yvalu;
updt=”Updated on “+xvalu;
//alert(“this is updt= “+updt);
}

tempAr.push(timestam);
if(!arr[i][1])
{
arr[i][1]=null;
}
yaxisAr[csvgen_counter].push(arr[i][1]);
// tempAr1.push(timestam);
// tempAr2.push(tempAr1);
tempAr.push(arr[i][1]);
last_val=timestam;
finalAr[csvgen_counter].push(tempAr);
}
xpad=last_val+padding_value; //*****************to end up graph early//////
//alert(finalAr[csvgen_counter]);
if(arr[i]== “”)
{
vi=arr.length-i;
arr.length=arr.length-vi;
i=arr.length-1;
fomat = replic;

var k=0;

do {
k++;
} while(fomat.charAt(k)!=”-“)
var k1 =k;

do {
k++;
} while(fomat.charAt(k)!=”-“)
var k2=k;

do {
k++;
} while(k<fomat.length)
var k3=k;

var dd= fomat.substring(0,k1);
var mm = fomat.substring(k1+1,k2);
var yy = "20"+fomat.substring(k2+1,k3+1);

// conversion of months into numerical form

//+++++++++++++++++++++++++++++++++++
if (mm == "Jan")
{
mm= "01";
}
else if (mm == "Feb")
{
mm= "02";
}

else if (mm == "Mar")
{
mm= "03";
}

else if (mm == "Apr")
{
mm= "04";
}

else if (mm == "May")
{
mm= "05";
}

else if (mm == "Jun")
{
mm= "06";
}

else if (mm == "Jul")
{
mm= "07";
}

else if (mm == "Aug")
{
mm= "08";
}

else if (mm == "Sep")
{
mm= "09";
}

else if (mm == "Oct")
{
mm= "10";
}

else if (mm == "Nov")
{
mm= "11";
}

else if (mm == "Dec")
{
mm= "12";
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++

var date = mm+"/"+dd+"/"+yy;
//here flagAr may be
var timestam = Date.parse(date);
var time4 = new Date(timestam);
var Weeko = time4.getDay();
var dd2 = time4.getDate();
var mm2 = time4.getMonth();

var yy2 = time4.getFullYear();
var yy3 = yy2+"";
var yy4= yy3.substring(2,4);
//++++++++++++++++++++++++this for days conversion++++++++++++++++++++++++++++
if (Weeko==1)
{
Weeko = "Mon";
}

else if (Weeko==2)
{
Weeko = "Tue";
}

else if (Weeko==3)
{
Weeko = "Wed";
}

else if (Weeko==4)
{
Weeko = "Thu";
}

else if (Weeko==5)
{
Weeko = "Fri";
}

else if (Weeko==6)
{
Weeko = "Sat";
}

else if (Weeko==0)
{
Weeko = "Sun";
}

//+++++++++++++++++++++++this is for month conversion+++++

if (mm2==0)
{
mm2 = "Jan";
}

else if (mm2==1)
{
mm2 = "Feb";
}

else if (mm2==2)
{
mm2 = "Mar";
}

else if (mm2==3)
{
mm2 = "Apr";
}

else if (mm2==4)
{
mm2 = "May";
}

else if (mm2==5)
{
mm2 = "Jun";
}

else if (mm2==6)
{
mm2 = "Jul";
}

else if (mm2==7)
{
mm2 = "Aug";
}

else if (mm2==8)
{
mm2 = "Sep";
}

else if (mm2==9)
{
mm2 = "Oct";
}

else if (mm2==10)
{
mm2 = "Nov";
}

else if (mm2==11)
{
mm2 = "Dec";
}
//++++++++++++++++++++++++++++++++++++++++

//weekly
if ( timestamvar == timestamweek)
{
fomat2=dd2+"-"+mm2+"-"+yy4;
}

// Daily
else if ( timestamvar = timestamyear)
{
fomat2=mm2+”-“+yy4;
}

//monthly
else if ((timestamvar <= timestammonth30)&&(timestamvar = timestamquarterly)
{
fomat2=mm2+”-“+yy4;
}

arr[i][0]= fomat2;
var decpad;

decpad = parseFloat(arr[i][1]);
//arr[i][1] = roundVal(decpad);
arr[i][1] = decpad;
if(i==(arr.length-1))
{

var xvalu=dd2+”-“+mm2+”-“+yy4;
var yvalu= String(arr[i][1]);
var xyvalu=”Latest value at “+xvalu+” is “+yvalu;
updt=”Updated on “+xvalu;
//alert(“this is updt= “+updt);
}
}

}
//alert(finalAr[csvgen_counter]);
}

//other required functions

//chart configuration starts here

function getXMLHttpRequest(file) {

//var arrSignatures = [“MSXML2.XMLHTTP.5.0”, “MSXML2.XMLHTTP.4.0″,
//”MSXML2.XMLHTTP.3.0”, “MSXML2.XMLHTTP”,
//”Microsoft.XMLHTTP”];

//for (var i=0; i < arrSignatures.length; i++) {

try
{
var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open("POST",file,false);
return xmlhttp;
}
catch(e)
{
error=e.message;
}

//}
throw new Error("MSXML is not installed on your system.");
}

function readCSV(locfile) {
// load a whole csv file, and then split it line by line
var req = new getXMLHttpRequest(locfile);
//req.open("POST",locfile,false);
req.send("");
//alert(req.responseText.split(/n/g));
return req.responseText.split(/n/g);
}

function parseLineCSV(lineCSV) {
// parse csv line by line into array
var CSV = new Array();

lineCSV = lineCSV.replace(/,/g," ,");

lineCSV = lineCSV.split(/,/g);

// This is continuing of 'split' issue in IE
// remove all trailing space in each field
for (var i=0;i<lineCSV.length;i++) {
lineCSV[i] = lineCSV[i].replace(/s*$/g,"");
}

lineCSV[lineCSV.length-1]=lineCSV[lineCSV.length-1].replace(/^s*|s*$/g,"");
var fstart = -1;

for (var i=0;i=0) {
for (var j=fstart+1;j<=i;j++) {
lineCSV[fstart]=lineCSV[fstart]+","+lineCSV[j];
lineCSV[j]="-DELETED-";

}
fstart=-1;
}
}
fstart = (lineCSV[i].match(/^"/)) ? i : fstart;
}

var j=0;

for (var i=0;i<lineCSV.length;i++) {
if (lineCSV[i]!="-DELETED-") {
CSV[j] = lineCSV[i];
j++;
}

}

return CSV;
}

function roundVal(val_num){
var dec = 2;
var result = Math.round(val_num*Math.pow(10,dec))/Math.pow(10,dec);
return result;
}

function setdecimalpoints(deca)
{
var deca1= deca;
var deca2= parseInt(deca);
if((deca1-deca2)!=0)
{
return 2;
}
else
{
return 0;
}
}
for(i=0;i<tabs_count;i++)
{
var loc=csvfiles_loc[i];
csvgenerata(loc);
//alert(flagAr[csvgen_counter]);
// var flag_test="["+flagAr[csvgen_counter]+"]";
// alert(flag_test);
}

Charts loading…
Charts loading…
Charts loading…
Charts loading…
Charts loading…
Charts loading…
Charts loading…

jQuery.noConflict();
(function($) {

//alert(xpad);
$.getJSON(‘http://www.highcharts.com/samples/data/jsonp.php?filename=aapl-c.json&callback=?’, function(data) {
var demo = $(“div#mySliderTabs”).sliderTabs({
transition: ‘fade’,
});
for (var i=1;i<=tabs_count;i++)
{
//alert(range_selector);
//alert(finalAr[i]);
var arr_size=finalAr[i].length;
var arr_midpos=Math.floor(arr_size / 2);
var arr_uppermedian_pos=Math.floor((arr_size + arr_midpos)/2);
//alert(arr_uppermedian_pos);
var arr_uppermedian_val=finalAr[i][arr_uppermedian_pos][0];
//alert(finalAr[i][arr_uppermedian_pos][0]);
var oneDay = 24*60*60*1000;
var window_selector=Math.floor((xpad-arr_uppermedian_val)/oneDay);
//alert(window_selector);
var j=i-1;
var flag_test=flagAr[i];
ymax_pad[i]=Math.max.apply(Math, yaxisAr[i]);
ymin_pad[i]=Math.min.apply(Math, yaxisAr[i]);
var margin_max=ymax_pad[i] * 0.1;
var margin_min=ymin_pad[i] * 0.1;
var y_max=ymax_pad[i] + margin_max;
var y_min=ymin_pad[i] – margin_min;

// var ymax=ymax_pad[i];
// var ymin=ymin_pad[i];
// var max_ticks=1000;
// var ticks_int=(ymax-ymin)/max_ticks;
// var ymax_padder=ymax_pad[i]+ticks_int;
// var ymin_padder=ymin_pad[i]-ticks_int;
//alert(ticks_int);
// alert("ymax_pad="+ymax_pad[i]);
// alert("ymax="+ymax);
// alert("ymin_pad="+ymin_pad[i]);
// alert("ymin="+ymin);
$('#container_'+i).highcharts('StockChart', {
chart: {
borderColor: '#000000',
height:363,
width:547,
marginLeft:-3,
marginTop:-43, //takes the chart area up
events: {
load: function() {
this.renderer.image('/sites/all/libraries/InterestHighcharts/images/Interest_logo.gif', 170, 75, 200, 80).add(); // add image(url, x, y, w, h)
}
},
zoomType:'x'
},

credits: {
itemStyle: {
cursor: 'pointer',
color: '#000000',
fontSize: '11px',
fontWeight:'bold'
},
position: {
align: 'right',
x:-50,
verticalAlign: 'bottom',
y:-35
},
text: 'Source:'+source_arr[j],
href: source_hyperlink_arr[j] },

exporting: {
enabled:false, //diables the print button
},

rangeSelector : {
selected : 0,
inputEnabled : false,
buttonTheme:{
display: 'none'
},
labelStyle:{
color: 'transparent'
},
buttons: [{
type: 'day',
count: window_selector,
}, {
type: 'week',
count: 3,
text: '3w'
}, {
type: 'month',
count: 6,
text: '6m'
}, {
type: 'ytd',
text: 'YTD'
}, {
type: 'year',
count: 1,
text: '1y'
}, {
type: 'all',
text: 'All'
}] },

navigator : {
adaptToUpdatedData: false,
xAxis:{
labels:{
enabled: false,
},
},
height: 50,
margin:-2,
series:{
lineColor:'#FF0000',
fillColor : '#FFFFFF'
}
},

title : {
text : chart_title_arr[j],
align: 'left',
x: 26,
verticalAlign: 'top',
//y: 50,
style: {
fontFamily:'Arial,Helvetica,sans-serif',
fontWeight:'bold'
}
},

subtitle : {
text : chart_subtitles_arr[j],
floating:true, //enable us to position the subtitle using 'x' and 'y'
align: 'center',
x:10,
y:15,
style: {
fontFamily:'Arial,Helvetica,sans-serif',
},
},

xAxis: {
type:'datetime',
lineWidth: 20,
// gridLineColor:'#FAFFFF',
// gridLineDashStyle:'Dot',
dateTimeLabelFormats: {
day: '%e-%b',
week: '%e-%b',
month: '%b-%y',
year: '%Y'
},
max:xpad,
events: {
setExtremes: function(e) {
if (e.trigger === "navigator") {
max=e.max+padding_value;
var x=this;
setTimeout(function(){
x.setExtremes(e.min,max); //chart xAxis
}, 4);
}
}
},
labels: {
style: {
color: 'black',
fontSize: '10px',
fontWeight:'bold',
fontFamily:'Arial,Helvetica,sans-serif'
},
y:3
}
},

yAxis: {
opposite: true,
startonTick: true,
endonTick: true,
labels: {
formatter: function() {
return Highcharts.numberFormat(this.value,setdecimalpoints(this.value));
},
style: {
color: 'black',
fontSize: '10px',
fontWeight:'normal'
},
y:-12
}
},

scrollbar: {
liveRedraw: false
},

series : [{
data : finalAr[i],
id: 'dataseries',
lineWidth:3,
pointPlacement: 'on',
zIndex:9999,
name : 'AAPL Stock Price',
shadow:{
width:3,
color:'#000000'
},
lineColor:'#FF0000',
type : 'area',
threshold : null,
tooltip : {
valueDecimals : decimal_arr[i],
useHTML: true,
headerFormat:'

{point.key}
‘,
pointFormat: ‘{point.y}
‘,
footerFormat:’

‘,
},
dataGrouping:{
dateTimeLabelFormats: {
hour:[‘%b-%e,%Y’, ‘%b-%e,%Y’, ”],
day: [‘%b-%e,%Y’, ‘%b-%e,%Y’, ‘-%b %e, %Y’],
week: [‘%e-%b,%Y’, ‘%e-%b,%Y’, ‘-%e %b, %Y’],
month:[‘%b-%y’, ‘%b-%y’, ‘-%b %y %Y’],
year: [‘%Y’, ‘%Y’, ‘-%Y’] }
},
fillColor: {
linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1},
stops: [
[0, ‘#FFD8D5’],
[1, ‘rgba(255,255,255,0)’] ] },
fillOpacity:.01
},
{
type: ‘flags’,
useHTML: true,
name: ‘Flags on series’,
data: JSON.parse(“[“+flag_test+”]”),
onSeries: ‘dataseries’,
shape: “url(/sites/all/libraries/InterestHighcharts/images/balloon.jpg)”,
width : 5,
y: -33 //this is for flag
}]

});
}
});
//$(‘.series’).animate({height: 600, width: 800});

})(jQuery);

We update this chart twice each day, from the same data the drives our 'live-rates' charts.

Read full story

All its research is available here.