Markets worried over effectiveness of further central bank action; challenges ahead in light of sharp volatility and significant contraction in global markets; another step up in credit concerns

By Ian Dobbs*:

Key global central banks face a tough task in light of the sharp rise in financial market volatility and significant contraction in global equities seen so far in 2016.

Global and emerging market growth concerns and the exposure of many countries to the weak oil price environment continue to cloud the current investment outlook.

Credit concerns also took another sharp rise during the week as the fear deepened over the exposures of banks to poor quality credit.

Market expectations for U.S. Fed rate hikes in 2016 have now all but disappeared in light of the recent financial market turmoil. Both the ECB and BOJ look highly likely to announce further stimulus measures in the months ahead.

Many market participants are now worried over the effectiveness of any further central bank action, especially given the weak response of many economies to the significant easings already instigated.

Expect the heightened levels of volatility to continue in the short term at least.

Major Announcements last week:

  • Canadian Building Permits, +11.3% m/m vs. +5.6% exp. (Dec.)
  • German Industrial Production, -1.2% m/m vs. +0.4% exp. (Dec.)
  • US JOLTS job openings, +5.6M vs. +5.4M exp. (Dec.)
  • Australian HIA New Home Sales +6.0%.
  • UK Manufacturing Production, -0.2% m/m vs. +0.1% exp. (Dec.)
  • UK Industrial Production, -1.1% m/m vs. -0.1% exp. (Dec.)
  • EU Industrial Production, -1.0% m/m vs. +0.3% exp. (Dec.)
  • US Retail Sales, +0.2% m/m vs. +0.1% exp. (Jan.)
  • US Retail Control, +0.6% vs. +0.3% exp. (Jan.)
  • US Michigan Consumer Sentiment, 90.7 vs. 93.0 exp. (Feb.)

NZD/USD

The New Zealand dollar has eased in recent trade against the USD after this morning’s miss in the latest headline NZ retail sales data. The NZD underperformed in late trade on Friday and failed to benefit from the U.S. data inspired lift in risk sentiment. Of immediate interest is tonight’s GDT dairy price auction where current pricing points to another decline (~10%) in milk powder prices. Risk flow and incoming U.S. data will continue to be an important driver again. We favour more lateral pricing with support at .6550 holding, a break of .6750 looks unlikely on the topside at present, although levels beyond .6680 may even prove a stretch prior our next report.
DIRECT FX Current level Support Resistance Last wk range
NZD / USD 0.6650 0.6550 0.6680 0.6567 – 0.6737

NZD/AUD (AUD/NZD)

The New Zealand dollar has weakened significantly against the Australian dollar since our last report. This comes after the NZD/USD failed to benefit from the improvement seen in risk sentiment after the better than expected U.S. data on Friday. Today’s NZ retail sales miss and a likely weak outcome to tonight’s dairy auction are also weighing. The AUD/USD in comparison has rallied on the lift in risk sentiment and on the back of a move up in oil pricing. Australian employment data on Thursday will be important for this cross. A break of .9265 (1.0793) has the potential to open levels near .9100 (1.0989).

DIRECT FX Current level Support Resistance Last wk range
NZD / AUD 0.9300 0.9265 0.9455 0.9292 – 0.9459
AUD / NZD 1.0753 1.0576 1.0793 1.0572 – 1.0762

NZD/GBP (GBP/NZD)

The rally in the New Zealand dollar against the U.K. pound has again failed to break the key .4650 (2.1505) level over recent days. The lack of participation by the NZD/USD exchange rate in the improving risk sentiment (after the better than expected U.S. data on Friday) was a key reason behind the sell-off from the NZD resistance. The .4550 (2.1978) level holds the key to further NZ dollar declines. A miss in the N.Z. retail sales data has seen the NZD dip again this morning. The next 36 hours will be key to the next move given the release of key U.K. data and the latest in N.Z. dairy pricing.

DIRECT FX Current level Support Resistance Last wk range
NZD / GBP 0.4600 0.4550 0.4650 0.4557 – 0.4653
GBP / NZD 2.1739 2.1505 2.1978 2.1490 – 2.1942

 NZD/CAD

The New Zealand dollar has fallen sharply against the Canadian dollar since our last report. This comes on the back of a sharp rally in the oil price on Friday (CAD+) which posted its largest percentage gain since 2009. The NZD/USD exchange rate failed to participate in Friday’s lift in risk sentiment after the better than expected U.S. data flow. A break of .9140 may place this cross under additional selling pressure. Canadian data on Saturday morning and the latest dairy auction tonight are events to consider this week, oil pricing remains our primary concern overall however.

DIRECT FX Current level Support Resistance Last wk range
NZD / CAD 0.9190 0.9140 0.9240 0.9137 – 0.9378

NZD/EURO (EURO/NZD)

The New Zealand dollar has eased from its recent highs against the Euro having moved up in early trade this week. A disappointing N.Z. retail sales release has seen the cross ease this morning although for the meantime the simultaneously soft EUR/USD and NZD/USD exchange rates mean this cross looks set for more “range trading” this week. Key support is seen at .5880 (1.7007 resistance), whilst above .5980 (1.6722) key resistance at .6050 (1.6529 support) is unlikely to be challenged.

DIRECT FX Current level Support Resistance Last wk range
NZD / EUR 0.5955 0.5880 0.5980 0.5815 – 0.5983
EUR / NZD 1.6793 1.6722 1.7007 1.6713 – 1.7197

NZD/YEN

The New Zealand dollar has drifted higher against the Japanese Yen since our last report. Once again it has been risk sentiment flows and the safe haven appeal of the Yen which has been the key driver. Better than expected U.S. data on Friday helped lift investor risk sentiment at the end of week, which accordingly reduced the safe haven demand for the Yen. Comments from Japanese officials have also placed the Yen under some pressure since our last report, although some consolidation after last week’s strong surge had to be expected. We favour selling rallies in this cross and expect the JPY sell-off against the USD to be relatively brief. Key support is distant (~73.50).

DIRECT FX Current level Support Resistance Last wk range
NZD / YEN 76.15 75.70 76.35 73.34 – 76.78

AUD/USD

The Australian dollar has drifted higher in trade since our last report. The move played out on the back of a lift in risk sentiment which was initiated on Friday. Better than expected U.S. data helped soothe the frayed nerves of investors which had discounted global equities heavily during the course of the week. The AUD/USD held well during the week despite the poor showing put in by global equities. The RBA minutes which feature this afternoon are unlikely to contain any new material information.  This will leave the AUD/USD vulnerable to further risk sentiment changes and in-coming U.S. data, at least until Thursday’s local employment numbers. We moderately favour buying dips towards .7000 at present.

DIRECT FX Current level Support Resistance Last wk range
AUD / USD 0.7150 0.6970 0.7250 0.6977 – 0.7170

AUD/GBP (GBP/AUD)                            

The Australian dollar has moved higher against the U.K. pound since our last report, a move which has been helped by the improving risk sentiment seen after Friday’s better than expected U.S. data-flow (AUD/USD+). The Australian dollar has had an additional lift from continued concerns over a Brexit and BoE member comments overnight. U.K. data tonight (inflation) and tomorrow (employment) should bear significantly on this cross (if significantly different from consensus). Australian employment numbers on Thursday should also be noted. We favour a continuation of the mover higher from the AUD, although the incoming data means levels nearer .4850 (2.0619) may be on offer should the data favour the GBP.

DIRECT FX Current level Support Resistance Last wk range
AUD / GBP 0.4950 0.4850 0.5000 0.4842 – 0.4955
GBP / AUD 2.0202 2.0000 2.0619 2.0183 – 2.0654

AUD/EURO (EURO/AUD)

The Australian dollar has continued to enjoy the gains seen late last week against the Euro. This comes on the back of the recovery seen in risk sentiment after Friday’s better than expected U.S. data which has helped consolidate the recent upswing seen in the AUD/USD exchange rate. The rapid gains seen by the EUR/USD this month have eased somewhat in recent trade, in part on the back of comments from ECB president Draghi overnight. Australian employment numbers on Thursday are the only key numbers of note this week which are likely to affect this cross significantly; this will mean that changes in risk sentiment will continue to be a key driver behind moves in the lead-up to the release.

DIRECT FX Current level Support Resistance Last wk range
AUD / EUR 0.6400 0.6150 0.6420 0.6180 – 0.6419
EUR / AUD 1.5625 1.5576 1.6260 1.5580 – 1.6182

AUD/YEN

The Australian dollar has rallied against the Japanese Yen since our last report. Again the move can be put down to changes in risk sentiment and Yen safe haven demand. These factors were key drivers last week and again should play a large roll this week. Australian employment data on Thursday will also be important, but should quickly take a back-seat given the macro factors at play. Resistance at 82.00 has capped the rally so far; beyond here the next resistance level looks to lie just ahead of 83.00.

DIRECT FX Current level Support Resistance Last wk range
AUD / YEN 81.85 77.50 82.00 77.83 – 81.99

AUD/CAD

The Australian dollar is drifting in current trade against the Canadian dollar. This comes after both currencies have enjoyed decent gains against the USD since our last report, the CAD on the back of improving oil pricing, and the AUD mainly on improving risk sentiment. These themes look set to dominate again this week, although Australian employment (Thursday) and Canadian inflation/retail sales (Sat. morning) should be noted. We favour selling rallies noting recent lower tops on up-swings, and also fearing the potential for a more concrete development from the OPEC producers to curtail production.

DIRECT FX Current level Support Resistance Last wk range
AUD / CAD 0.9880 0.9700 0.9930 0.9715 – 0.9925

————————————————————————————————————————-

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

Email:  

————————————————————————————————————————–

Market commentary:

Key global central banks face a tough task in light of the sharp rise in financial market volatility and significant contraction in global equities seen so far in 2016. Global and emerging market growth concerns and the exposure of many countries to the weak oil price environment continue to cloud the current investment outlook. Credit concerns also took another sharp rise during the week as the fear deepened over the exposures of banks to poor quality credit. Market expectations for U.S. Fed rate hikes in 2016 have now all but disappeared in light of the recent financial market turmoil. Both the ECB and BOJ look highly likely to announce further stimulus measures in the months ahead. Many market participants are now worried over the effectiveness of any further central bank action, especially given the weak response of many economies to the significant easings already instigated. Expect the heightened levels of volatility to continue in the short term at least.

Australia

It has been a relatively quiet start to the week for the Australian dollar with the U.S. out overnight for Presidents’ Day holiday. Trade in the AUD last week was dictated by the sentiment which emulated from the performance of the offshore financial markets, which for most of the week was negative. The markets finished the week on a positive note however, this saw both the Dow and S&P 500 finish the week up around 2% in trade on Friday. Better than expected U.S. data (retail sales, consumer sentiment) helped calm the mood of the markets, especially after the recent run of weaker numbers which has played a part in undermining the global growth outlook. In Australia a speech by the RBA Governor added little on Friday after he noted that the RBA was unlikely to be raising rates any time soon and that they retained the flexibility to ease further, both were points which are already well known by the market. The Governor will be speaking again this afternoon over the release of the monetary policy meeting minutes. The only other data of note this week is the January employment data release on Thursday. Yesterday’s better than expected Chinese trade data and Australian new motor vehicle sales elicited little market response.

New Zealand

The NZD has failed to materially benefit from the lift in risk sentiment seen since our last report on Friday. Better than expected U.S. data which included a strong retail sales release gave investors reason to be more cheerful and led to strong gains in U.S. equities (+~2%). A surge in the oil price which posted its largest percentage gain seen since 2009 also bolstered sentiment and global equities. This morning’s local retail sales release has put the NZD under some additional pressure after the headline number failed to match the market consensus in the fourth quarter. Expectations of a significant decline in tonight’s dairy auction have also weighed on the sentiment towards the NZD. A quiet calendar for the remainder of the week means that once again pricing in the NZD is likely to heavily influenced by offshore events and the prevailing sentiment in the financial markets.

United States

The USD (DXY index) is strengthening in trade so far this week, although still sits lower than levels seen at this time last week. This comes after the heavy selling which occurred on the back of the reduced expectations for 2016 Fed rate hikes. The recent heightened financial market volatility has been a key driver behind the reduced expectations and featured as an issue in a speech from the Fed chair Yellen last week. The USD took a boost on Friday after bettered than expected data. The retail sales data for January was strong and suggests that so far the recent volatility in financial markets has failed to negatively impact the U.S. consumer, a point also illustrated by the decent print in the Michigan consumer confidence series. The reducing appreciation of the USD was seen supporting the latest numbers which showed an easing in import price deflation. It is a busy week again for U.S. dataflow this week, inflation numbers feature on Friday, various Fed members are also scheduled to speak, the FOMC minutes feature on Thursday and come after a heavy data schedule released earlier in the day.

Europe

The EUR has eased in recent trade this week, giving up some of last week’s impressive gains which had emanated from a continued reduction in extreme USD positioning. This as the market looked to reduce exposures as it assessed that the chances of Fed rate hikes in 2016 have all but disappeared. Comments from ECB Governor Draghi overnight have played a part in the EUR’s drift lower after he reiterated the potential for policy action in March, although the improving risk sentiment was likely the main reason. Data out of Europe last week was mainly soft and included a miss in the German industrial production and trade numbers. Euro-zone growth data released on Friday matched the consensus forecast, although the industrial production data which fell well short of expectations elevates the concern for the European growth outlook. On the immediate horizon is tonight’s German and euro-zone ZEW economic confidence data in what is otherwise generally a quiet week for key European data.

United Kingdom

The GBP has eased in trade this week having been weighed down by comments overnight from the BoE member McCafferty who stated that the case for a U.K. rate rise was less compelling as the upside risk to wages had been delayed. McCafferty recently changed his vote for a rate move at the most recent BoE meeting, this time opting for no change having earlier been the only board member to vote for hikes between August 2015 and January 2016. The GBP had taken a boost last week despite weaker than expected data which included a miss in the latest industrial/manufacturing production figures and RICS house price numbers. U.S. positioning liquidation was seen as the primary reason of the move during the week. This week’s GBP sentiment will be dominated by tonight’s inflation numbers and tomorrow’s employment data, retail sales numbers feature on Friday. Sentiment towards the GBP remains weak at present in part over wider concerns of E.U. contagion, although fears over an exit from the E.U. also ranks highly especially in the lead-up to this week’s E.U. leaders summit on the subject.

Japan

An uptick in risk sentiment has seen the JPY retrace some of last week’s strong gains in trade since our last report. The JPY put in a huge showing last week amidst the turmoil seen in the global financial markets, again on the back of safe haven demand. The gains were tempered late in the week on the back of official comments over the pace of the JPY surge. Although an improvement in U.S. and global equities in part helped by better than expected U.S. data can be seen as the main reason behind the reversal. These factors and the weakening yen helped Japanese stocks rally over 7% during trade yesterday (Nikkei 225). Headlines from the BOJ’s Nakaso placed the JPY under some further pressure after he said that the BOJ had not approached its limit on bond buying. Data released yesterday included a larger than expected decline in industrial production and Q4 GDP disappointment. The misses come on the back of last week’s underwhelming labour cash earnings numbers. The weak data and resurgent JPY will keep the pressure on the BOJ to announce additional easing as early as next month, although the current failure to stabilise sentiment has many questioning the likely potency of any additional central bank monetary policy action.

Canada

The fortunes for the CAD reversed sharply in trade on Friday after oil prices posted their largest one-day percentage gain since 2009 (+12%). This came on the back of a previously poor showing during the week as the markets reacted negatively to reports from the IEA that lowered the forecast for global oil demand this year. The turnaround on Friday came on the back of an announcement from the United Arab Emirates (a key OPEC supplier) that the leaders of the OPEC countries were ready to cooperate on production cuts. The Baker Hughes U.S. drilling rig count also again saw another sharp reduction in numbers deployed in the field and now stands at less than half that employed at this time last year. Canadian data released last week again took a back seat to the oil market developments, they included however a sharp improvement in building permits data and a smaller than expected rise in house prices (Dec.). Of interest this week is the latest inflation and retail sales numbers due for release on Saturday morning N.Z. time.

Daily exchange rates

<!–

var root_url = "http://www.interest.co.nz/charts-csv/";
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= ["8"];
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;

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]);
if (arr[i]!='')
{

fomat= String(arr[i][0]);
replic=String(arr[i][0]);
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;

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”;
if(arr[i][2]) {
var url=arr[i][2];
var flag_date='{“x”:’+timestam+’, “title”:”  “,”text”:”Click here for Story!”}’;

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;
var decpad;
decpad = parseFloat(arr[i][1]);
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;
}

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//////
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;
}
}

}
}

//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("");
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

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

—————————–

Ian Dobbs is a currency analyst with Direct FX You can contact him here »