Question

I am trying to create a real time tiker of the price of bitcoin from the BTC-E.com exchange in Ukrainian currency. The end result is to put the price on my simple html website. The exchange does not provide the price in hrivna (UAH), so i have to convert from BTC to USD to UAH. So far i have managed to put the price in USD, using the api provided by BTC-E

https://btc-e.com/api/2/btc_usd/ticker

this is the php file i have created

<?php
header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
header('Pragma: no-cache'); // HTTP 1.0.
header('Expires: 0'); // Proxies.

$data = file_get_contents("https://btc-e.com/api/2/btc_usd/ticker");
$data = json_decode($data, true);
$spot_last = $data['ticker']['last'];
echo $spot_last;
?>    

and this is the code i put in index.html

<script>
     var auto_refresh = setInterval(
     function()
     {$('.btce_price').load('ticker.php');}, 1000);


  </script>

In order to have USD to UAH conversion i would like to use the commercial rate from one of the banks.

 https://api.privatbank.ua/p24api/pubinfo?exchange&coursid=5

whis returns the following

<exchangerates>
<row>
<exchangerate ccy="RUR" base_ccy="UAH" buy="0.25000" sale="0.28000"/>
</row>
<row>
<exchangerate ccy="EUR" base_ccy="UAH" buy="13.30000" sale="14.30000"/>
</row>
<row>
<exchangerate ccy="USD" base_ccy="UAH" buy="9.60000" sale="10.10000"/>
</row>
</exchangerates>

so i have the other php file to output the buy rate that i need

$xml = simplexml_load_file("https://api.privatbank.ua/p24api/pubinfo?exchange&coursid=5");
$m = $xml->xpath('//exchangerate[@ccy="USD"]');
$exrate = (string)$m[0]['buy'];
echo $exrate;

Now back to the question. How divide the output of the first file buy the second? and then display the result in my index.html

Thx!!!

Was it helpful?

Solution

Hmm, instead of dividing the values - i would multiply them.

Actually: 1 BTC = 633 USD and 633 USD =~ 6000 UAH. So i would calculate: $uah = $spot_last * $exrate;

Example

<?php

header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
header('Pragma: no-cache'); // HTTP 1.0.
header('Expires: 0'); // Proxies.

// get BTC
$data = file_get_contents("https://btc-e.com/api/2/btc_usd/ticker");
$data = json_decode($data, true);
$spot_last = $data['ticker']['last'];

echo '1 BTC is worth ' . $spot_last . ' USD. <br>';

// get CURRENCIES
$xml = simplexml_load_file("https://api.privatbank.ua/p24api/pubinfo?exchange&coursid=5");
$m = $xml->xpath('//exchangerate[@ccy="USD"]');
$exrate = (string)$m[0]['buy'];

echo '1 USD is worth '. $exrate .' UAH. <br>';

$uah = $spot_last * $exrate;

echo 'Result: 1 BTC ~ ' . $uah . ' UAH. <br>';

For usage as ticker, delete all echos statements, they are just for demonstration and insert just echo $uah;

Output

1 BTC is worth 624.928 USD.
1 USD is worth 9.60000 UAH.
1 BTC ~ 5999.3088 UAH. 

Comparison Calc

see http://preev.com/btc/uah

By the way: it's pretty awesome that Privatbank provides such an API.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top