This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
en:nominal-exchange-rate [2018/07/05 08:29] federico |
en:nominal-exchange-rate [2019/03/29 15:16] (current) federico |
||
|---|---|---|---|
| Line 8: | Line 8: | ||
| The [[:en:exchange-rate|exchange rate]] has an influence in the real economy through various channels. It affect exports and imports, prices, capital flows and investment. | The [[:en:exchange-rate|exchange rate]] has an influence in the real economy through various channels. It affect exports and imports, prices, capital flows and investment. | ||
| - | |||
| - | Evolution of the EURUSD exchange rate | ||
| - | |||
| - | {{:en:eurusd.png?nolink&}} | ||
| ===== Fluctuations of the Nominal Exchange Rate ===== | ===== Fluctuations of the Nominal Exchange Rate ===== | ||
| Line 57: | Line 53: | ||
| P: local price index | P: local price index | ||
| + | <php> include '/home/fede/econowiki.com/fede/nominal-exchange-rate.php'; </php> | ||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | |||
| - | <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> | ||
| - | <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> <php> $i = 0; while ($i <= ($obs-1)) { echo '<td>'.round($data1_MX[$i],2).'</td>'; $i++; } </php> </tr> | ||
| - | <tr><td>United Kingdom</td> <php> $i = 0; while ($i <= ($obs-1)) { echo '<td>'.round($data1_GB[$i],2).'</td>'; $i++; } </php> </tr> | ||
| - | <tr><td>Brazil</td> <php> $i = 0; while ($i <= ($obs-1)) { echo '<td>'.round($data1_BR[$i],2).'</td>'; $i++; } </php> </tr> | ||
| - | <tr><td>China</td> <php> $i = 0; while ($i <= ($obs-1)) { echo '<td>'.round($data1_CN[$i],2).'</td>'; $i++; } </php> </tr> | ||
| - | <tr><td>India</td> <php> $i = 0; while ($i <= ($obs-1)) { echo '<td>'.round($data1_IN[$i],2).'</td>'; $i++; } </php> </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> | ||