This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
en:nominal-exchange-rate [2018/07/05 08:33] federico |
en:nominal-exchange-rate [2018/07/05 08:39] federico |
||
---|---|---|---|
Line 67: | Line 67: | ||
<php> | <php> | ||
- | /* | + | include '/home/fede/econowiki.com/fede/nominal-exchange-rate.php'; |
- | ENDE_XDC_USD_RATE : nominal exchange rate, look in http://data.imf.org/regular.aspx?key=61545850 (code) | + | |
- | /* http://dataservices.imf.org/REST/SDMX_JSON.svc/CompactData/IFS/A.US.EREER_IX.?startPeriod=2007&endPeriod=2017 */ | + | |
- | $baseurl = 'http://dataservices.imf.org/REST/SDMX_JSON.svc/CompactData/IFS/'; | + | |
- | // $url = 'file:///home/fede/economicpoint.com/data/'; | + | |
- | $frequency = 'A'; | + | |
- | $obs = 21; | + | |
- | $start = date("Y")-$obs; | + | |
- | $end = date("Y"); | + | |
- | $separator = '.'; | + | |
- | $slash = '/'; | + | |
- | + | ||
- | $indicator = 'ENDE_XDC_USD_RATE'; | + | |
- | /* | + | |
- | ENDE_XDC_USD_RATE = Domestic Currency per U.S. Dollar, End of Period | + | |
- | */ | + | |
- | + | ||
- | $countries_names = array("Mexico", "Great Britain", "Brazil", "China", "India", "Japan", "Canada"); | + | |
- | $countries_codes = array('MX', 'GB','BR','CN','IN', 'JP', 'CA'); | + | |
- | + | ||
- | $country = 'MX'; | + | |
- | + | ||
- | $url= $baseurl.$frequency.$separator.$country.$separator.$indicator.$separator.'?startPeriod='.$start.'&endPeriod='.$end; | + | |
- | + | ||
- | $data = file_get_contents($url); | + | |
- | $json = json_decode($data, true); | + | |
- | + | ||
- | $time_period = array(); | + | |
- | + | ||
- | $data1_MX = array (); | + | |
- | $i = 0; | + | |
- | while ($i < $obs) { | + | |
- | $time_period[] = $json['CompactData']['DataSet']['Series']['Obs'][$i]["@TIME_PERIOD"]; | + | |
- | $data1_MX[] = $json['CompactData']['DataSet']['Series']['Obs'][$i]["@OBS_VALUE"]; | + | |
- | $i++; | + | |
- | }; | + | |
- | + | ||
- | + | ||
- | + | ||
- | $country = 'GB'; | + | |
- | $url= $baseurl.$frequency.$separator.$country.$separator.$indicator.$separator.'?startPeriod='.$start.'&endPeriod='.$end; | + | |
- | + | ||
- | $data = file_get_contents($url); | + | |
- | $json = json_decode($data, true); | + | |
- | $data1_GB = array (); | + | |
- | $i = 0; | + | |
- | while ($i < $obs) { | + | |
- | $time_period[] = $json['CompactData']['DataSet']['Series']['Obs'][$i]["@TIME_PERIOD"]; | + | |
- | $data1_GB[] = $json['CompactData']['DataSet']['Series']['Obs'][$i]["@OBS_VALUE"]; | + | |
- | $i++; | + | |
- | }; | + | |
- | + | ||
- | $country = 'BR'; | + | |
- | $url= $baseurl.$frequency.$separator.$country.$separator.$indicator.$separator.'?startPeriod='.$start.'&endPeriod='.$end; | + | |
- | $data = file_get_contents($url); $json = json_decode($data, true); | + | |
- | $data1_BR = array (); | + | |
- | $i = 0; | + | |
- | while ($i < $obs) { $time_period[] = $json['CompactData']['DataSet']['Series']['Obs'][$i]["@TIME_PERIOD"]; $data1_BR[] = $json['CompactData']['DataSet']['Series']['Obs'][$i]["@OBS_VALUE"]; $i++; }; | + | |
- | + | ||
- | $country = 'CN'; | + | |
- | $url= $baseurl.$frequency.$separator.$country.$separator.$indicator.$separator.'?startPeriod='.$start.'&endPeriod='.$end; | + | |
- | $data = file_get_contents($url); $json = json_decode($data, true); | + | |
- | $data1_CN = array (); | + | |
- | $i = 0; | + | |
- | while ($i < $obs) { $time_period[] = $json['CompactData']['DataSet']['Series']['Obs'][$i]["@TIME_PERIOD"]; $data1_CN[] = $json['CompactData']['DataSet']['Series']['Obs'][$i]["@OBS_VALUE"]; $i++; }; | + | |
- | + | ||
- | $country = 'IN'; | + | |
- | $url= $baseurl.$frequency.$separator.$country.$separator.$indicator.$separator.'?startPeriod='.$start.'&endPeriod='.$end; | + | |
- | $data = file_get_contents($url); $json = json_decode($data, true); | + | |
- | $data1_IN = array (); | + | |
- | $i = 0; | + | |
- | while ($i < $obs) { $time_period[] = $json['CompactData']['DataSet']['Series']['Obs'][$i]["@TIME_PERIOD"]; $data1_IN[] = $json['CompactData']['DataSet']['Series']['Obs'][$i]["@OBS_VALUE"]; $i++; }; | + | |
- | + | ||
- | $country = 'JP'; | + | |
- | $url= $baseurl.$frequency.$separator.$country.$separator.$indicator.$separator.'?startPeriod='.$start.'&endPeriod='.$end; | + | |
- | $data = file_get_contents($url); $json = json_decode($data, true); | + | |
- | $data1_JP = array (); | + | |
- | $i = 0; | + | |
- | while ($i < $obs) { $time_period[] = $json['CompactData']['DataSet']['Series']['Obs'][$i]["@TIME_PERIOD"]; $data1_JP[] = $json['CompactData']['DataSet']['Series']['Obs'][$i]["@OBS_VALUE"]; $i++; }; | + | |
- | + | ||
- | $country = 'CA'; | + | |
- | $url= $baseurl.$frequency.$separator.$country.$separator.$indicator.$separator.'?startPeriod='.$start.'&endPeriod='.$end; | + | |
- | $data = file_get_contents($url); $json = json_decode($data, true); | + | |
- | $data1_CA = array (); | + | |
- | $i = 0; | + | |
- | while ($i < $obs) { $time_period[] = $json['CompactData']['DataSet']['Series']['Obs'][$i]["@TIME_PERIOD"]; $data1_CA[] = $json['CompactData']['DataSet']['Series']['Obs'][$i]["@OBS_VALUE"]; $i++; }; | + | |
- | + | ||
- | + | ||
</php> | </php> | ||
- | <html> | ||
- | <h1>Nominal Exchange Rate</h1> | ||
- | <br /> | ||
- | <h2>Table</h2> | ||
- | Domestic Currency per U.S. Dollar, End of Period | ||
- | <table border=1> | ||
- | <tr><th>Country</th> | ||
- | </html><php> | ||
- | $i = 0; while ($i <= ($obs-1)) { echo '<th>'.round($time_period[$i],2).'</th>'; $i++; } | ||
- | </php><html> | ||
- | </tr> | ||
- | <tr><td>Mexico</td> | ||
- | </html><php> | ||
- | $i = 0; while ($i <= ($obs-1)) { echo '<td>'.round($data1_MX[$i],2).'</td>'; $i++; } | ||
- | </php><html> | ||
- | </tr> | ||
- | <tr><td>United Kingdom</td> | ||
- | </html><php> | ||
- | $i = 0; while ($i <= ($obs-1)) { echo '<td>'.round($data1_GB[$i],2).'</td>'; $i++; } | ||
- | </php><html> | ||
- | </tr> | ||
- | <tr><td>Brazil</td> | ||
- | </html><php> | ||
- | $i = 0; while ($i <= ($obs-1)) { echo '<td>'.round($data1_BR[$i],2).'</td>'; $i++; } | ||
- | </php><html> | ||
- | </tr> | ||
- | <tr><td>China</td> <php> $i = 0; while ($i <= ($obs-1)) { echo '<td>'.round($data1_CN[$i],2).'</td>'; $i++; } | ||
- | </php><html> | ||
- | </tr> | ||
- | <tr><td>India</td> | ||
- | </html><php> | ||
- | $i = 0; while ($i <= ($obs-1)) { echo '<td>'.round($data1_IN[$i],2).'</td>'; $i++; } | ||
- | </php><html> | ||
- | </tr> | ||
- | <tr><td>Japan</td> | ||
- | <php> $i = 0; while ($i <= ($obs-1)) { echo '<td>'.round($data1_JP[$i],2).'</td>'; $i++; } | ||
- | </php> </tr> | ||
- | <tr><td>Canada</td> <php> $i = 0; while ($i <= ($obs-1)) { echo '<td>'.round($data1_CA[$i],2).'</td>'; $i++; } </php> </tr> | ||
- | </table> | ||
- | <p>Source: International Monetary Fund</p> | ||
- | |||
- | <script src="https://code.jquery.com/jquery-3.3.1.min.js" ></script> | ||
- | <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.bundle.min.js" ></script> | ||
- | |||
- | |||
- | <div style="display:block;width:40%;float:left"> | ||
- | <h2>Nominal Exchange Rate Chart - Per Country</h2> | ||
- | <form> | ||
- | <select onchange="changedata(value);" > | ||
- | </html> | ||
- | <php> | ||
- | $i = 0; | ||
- | while ($i < 6) { | ||
- | echo '<option value="'; | ||
- | echo $countries_codes[$i]; | ||
- | echo '">'; | ||
- | echo $countries_names[$i]; | ||
- | echo '</option>'; | ||
- | $i++; | ||
- | }; | ||
- | </php> | ||
- | <html> | ||
- | </select> | ||
- | </form> | ||
- | |||
- | <canvas id="main_chart"></canvas> | ||
- | <p>Source: International Monetary Fund</p> | ||
- | </div> | ||
- | |||
- | <script> | ||
- | var ctx = document.getElementById("main_chart").getContext('2d'); | ||
- | var main_chart = new Chart(ctx, { | ||
- | type: 'line', | ||
- | data: { | ||
- | labels: [ | ||
- | </html> | ||
- | <php> | ||
- | $i = $start; | ||
- | while ($i <= $end) { | ||
- | echo '"'.$i.'",'; | ||
- | $i++; | ||
- | } | ||
- | </php> | ||
- | <html> | ||
- | ], | ||
- | datasets: [{ | ||
- | label: 'Nominal Exchange Rate - vs USD', | ||
- | lineTension: 0, | ||
- | borderColor: "#3e95cd", | ||
- | backgroundColor: "rgba(238, 247, 255,0.5)", | ||
- | data: [ | ||
- | <php> | ||
- | $i = 0; | ||
- | while ($i <= ($obs - 1)) { | ||
- | echo $data1_MX[$i].','; | ||
- | $i++; | ||
- | } | ||
- | </php> | ||
- | ], | ||
- | }] | ||
- | }, | ||
- | }); | ||
- | </script> | ||
- | |||
- | <script> | ||
- | function addData(chart, data, datasetIndex) { | ||
- | chart.data.datasets[datasetIndex].data = data; | ||
- | chart.update(); | ||
- | } | ||
- | |||
- | // update chart | ||
- | function adddata_GB(){addData(main_chart, [<php> $i = 0;while ($i <= ($obs-1)) { echo $data1_GB[$i].','; $i++;}</php> ], 0);}; | ||
- | |||
- | function changedata(country){ | ||
- | if (country == 'MX') {addData(main_chart, [<php> $i = 0;while ($i <= ($obs-1)) {echo $data1_MX[$i].',';$i++;};</php>], 0);}; | ||
- | if (country == 'GB') {addData(main_chart, [<php> $i = 0;while ($i <= ($obs-1)) {echo $data1_GB[$i].',';$i++;};</php>], 0);}; | ||
- | if (country == 'BR') {addData(main_chart, [<php> $i = 0;while ($i <= ($obs-1)) {echo $data1_BR[$i].',';$i++;};</php>], 0);}; | ||
- | if (country == 'CN') {addData(main_chart, [<php> $i = 0;while ($i <= ($obs-1)) {echo $data1_CN[$i].',';$i++;};</php>], 0);}; | ||
- | if (country == 'IN') {addData(main_chart, [<php> $i = 0;while ($i <= ($obs-1)) {echo $data1_IN[$i].',';$i++;};</php>], 0);}; | ||
- | if (country == 'JP') {addData(main_chart, [<php> $i = 0;while ($i <= ($obs-1)) {echo $data1_JP[$i].',';$i++;};</php>], 0);}; | ||
- | if (country == 'CA') {addData(main_chart, [<php> $i = 0;while ($i <= ($obs-1)) {echo $data1_CA[$i].',';$i++;};</php>], 0);}; | ||
- | } | ||
- | </script> | ||
- | |||
- | <div style="display:block;width:40%;float:left"> | ||
- | <h2>Compare - Nominal Exchange Rate vs USD - Index - 2010=1</h2> | ||
- | |||
- | |||
- | <canvas id="compare_chart"></canvas> | ||
- | <p>Source: International Monetary Fund</p> | ||
- | </div> | ||
- | |||
- | <script> | ||
- | var ctx = document.getElementById("compare_chart").getContext('2d'); | ||
- | var compare_chart = new Chart(ctx, { | ||
- | type: 'line', | ||
- | data: { | ||
- | labels: [ | ||
- | </html> | ||
- | <php> | ||
- | $i = $start; | ||
- | while ($i <= $end) { | ||
- | echo '"'.$i.'",'; | ||
- | $i++; | ||
- | } | ||
- | </php><html> | ||
- | ], | ||
- | datasets: [{ | ||
- | borderColor: 'rgba(200,0,0,0.9)', | ||
- | lineTension: 0, | ||
- | data: [ | ||
- | </html><php> | ||
- | $base = 2010 - $start; | ||
- | $i = 0; | ||
- | while ($i <= ($obs - 1)) { | ||
- | echo ($data1_MX[$i]/$data1_MX[$base]).','; | ||
- | $i++; | ||
- | } | ||
- | </php><html> | ||
- | ], | ||
- | } //end first dataset | ||
- | , | ||
- | { | ||
- | lineTension: 0, data: [], | ||
- | }// end 2nd dataset | ||
- | , | ||
- | { lineTension: 0, data:[]} //end 3rd dataset (empty) | ||
- | , | ||
- | { lineTension: 0, data:[]} | ||
- | , //end 4th dataset (empty) | ||
- | { lineTension: 0, data:[]} | ||
- | , //end 5th dataset (empty) | ||
- | { lineTension: 0, data:[]} | ||
- | , //end 6th dataset (empty) | ||
- | ] | ||
- | }, | ||
- | }); | ||
- | </script> | ||
- | |||
- | <script> | ||
- | // datasets | ||
- | |||
- | var data_mx = [<php> $i = 0;while ($i <= ($obs-1)) { echo ($data1_MX[$i]/$data1_MX[$base]).','; $i++;}</php> ]; | ||
- | var data_gb = [<php> $i = 0;while ($i <= ($obs-1)) { echo ($data1_GB[$i]/$data1_GB[$base]).','; $i++;}</php> ]; | ||
- | var data_br = [<php> $i = 0;while ($i <= ($obs-1)) { echo ($data1_BR[$i]/$data1_BR[$base]).','; $i++;}</php> ]; | ||
- | var data_cn = [<php> $i = 0;while ($i <= ($obs-1)) { echo ($data1_CN[$i]/$data1_CN[$base]).','; $i++;}</php> ]; | ||
- | var data_in = [<php> $i = 0;while ($i <= ($obs-1)) { echo ($data1_IN[$i]/$data1_IN[$base]).','; $i++;}</php> ]; | ||
- | var data_jp = [<php> $i = 0;while ($i <= ($obs-1)) { echo ($data1_JP[$i]/$data1_JP[$base]).','; $i++;}</php> ]; | ||
- | var data_ca = [<php> $i = 0;while ($i <= ($obs-1)) { echo ($data1_CA[$i]/$data1_CA[$base]).','; $i++;}</php> ]; | ||
- | |||
- | function adddata2_MX(){compare_chart.data.datasets[0].data = data_mx;compare_chart.data.datasets[0].label = 'mx';compare_chart.data.datasets[0].borderColor = 'rgba(150,0,0,0.9)';compare_chart.update();}; | ||
- | function adddata2_GB(){compare_chart.data.datasets[1].data = data_gb;compare_chart.data.datasets[1].label = 'gb';compare_chart.data.datasets[1].borderColor = 'rgba(255,255,0,0.9)';compare_chart.update();}; | ||
- | function adddata2_BR(){compare_chart.data.datasets[2].data = data_br;compare_chart.data.datasets[2].label = 'br';compare_chart.data.datasets[2].borderColor = 'rgba(0,0,150,0.9)';compare_chart.update();}; | ||
- | function adddata2_CN(){compare_chart.data.datasets[3].data = data_cn;compare_chart.data.datasets[3].label = 'cn';compare_chart.data.datasets[3].borderColor = 'rgba(0,200,0,0.9)';compare_chart.update();}; | ||
- | function adddata2_IN(){compare_chart.data.datasets[4].data = data_in;compare_chart.data.datasets[4].label = 'in';compare_chart.data.datasets[4].borderColor = 'rgba(255,165,0,0.9)';compare_chart.update();}; | ||
- | function adddata2_JP(){compare_chart.data.datasets[5].data = data_jp;compare_chart.data.datasets[5].label = 'jp';compare_chart.data.datasets[5].borderColor = 'rgba(154,205, 50,0.9)';compare_chart.update();}; | ||
- | function adddata2_CA(){compare_chart.data.datasets[5].data = data_jp;compare_chart.data.datasets[5].label = 'ca';compare_chart.data.datasets[5].borderColor = 'rgba(154,205, 50,0.9)';compare_chart.update();}; | ||
- | |||
- | function removedata2_MX(){compare_chart.data.datasets[0].data = [];compare_chart.update();}; | ||
- | function removedata2_GB(){compare_chart.data.datasets[1].data = [];compare_chart.update();}; | ||
- | function removedata2_BR(){compare_chart.data.datasets[2].data = [];compare_chart.update();}; | ||
- | function removedata2_CN(){compare_chart.data.datasets[3].data = [];compare_chart.update();}; | ||
- | function removedata2_IN(){compare_chart.data.datasets[4].data = [];compare_chart.update();}; | ||
- | function removedata2_JP(){compare_chart.data.datasets[5].data = [];compare_chart.update();}; | ||
- | function removedata2_CA(){compare_chart.data.datasets[5].data = [];compare_chart.update();}; | ||
- | </script> | ||
- | <form></html> | ||
- | <php> | ||
- | $i = 0; | ||
- | while ($i < 6) { | ||
- | echo ' | ||
- | <input type="checkbox" id="checkbox_'.$countries_codes[$i].'">'.$countries_names[$i].'</input><br /> | ||
- | '; | ||
- | echo '<script>$("#checkbox_'.$countries_codes[$i].'").click(function() {if($(this).is(":checked")) {adddata2_'.$countries_codes[$i].'();} if($(this).is(":not(:checked)")) {removedata2_'.$countries_codes[$i].'();}});</script> | ||
- | '; | ||
- | $i++; | ||
- | }; | ||
- | </php><html> | ||
- | </form></html> | ||
- |