Tacticat (OP)
|
|
January 19, 2013, 01:07:36 PM |
|
¡Saludos a todos!
Disponía de una pregunta rápida puesto que buscando en Google no he podido resolverla. ¿Existe algún tipo de código HTML que puedo utilizar para listar en una página web el precio de Bitcoin en directo?
Estaba pensando en ir actualizando queesbitcoin y puesto que el precio está cambiando mucho, creo que incluir un "ticker" en directo sería una de las principales prioridades.
Publico esta petición en un post nuevo pues creo que puede ser de ayuda también a otras personas.
¡Gracias!
|
Tips and donations:
15nqQGfkgoxrBnsshD6vCuMWuz71MK51Ug
|
|
|
|
mrvision
|
|
January 20, 2013, 11:40:55 PM |
|
¡Saludos a todos!
Disponía de una pregunta rápida puesto que buscando en Google no he podido resolverla. ¿Existe algún tipo de código HTML que puedo utilizar para listar en una página web el precio de Bitcoin en directo?
Estaba pensando en ir actualizando queesbitcoin y puesto que el precio está cambiando mucho, creo que incluir un "ticker" en directo sería una de las principales prioridades.
Publico esta petición en un post nuevo pues creo que puede ser de ayuda también a otras personas.
¡Gracias!
Justo ayer me hice un script que me va guardando en una base de datos, cada 3 minutos: a) cantidad de últimos trades tipo bid que se han cerrado b) cantidad de últimos trades tipo ask que se han cerrado c) la diferencia entre ambos d) el precio medio de los ultimos trades tipo bid que se han cerrado e) el precio medio de los últimos trades tipo ask que se han cerrado f) la diferencia entre ambos g) La cantidad de satoshis que se han 'comprado' en los últimos trades h) La cantidad de satoshis que se han 'vendido' en los últimos trades i) el precio de mtgox 'oficial' (el last) Todo es a modo muy experimental. Rescata los datos en USD. Ésto hay que tenerlo en cuenta. No sé si se podrá hacer que mtgox me devuelva euros, sino habrá que llamar a google para que me haga la conversión. Tengo que comprobar que los trades que registro son diferentes, sino habrá que ampliar el tiempo. (pero creo que sí lo son). Una cosa que hago 'mal' es que trabajo con floats, es decir que puedo tener errores de coma flotante. Sé que es mejor trabajar con integers, pero no sé hasta cuantos decimales piensa devolverme mtgox cuando uso USD. Si me devolviera siempre los mismos, sería una maravilla, pero a veces son dos a veces son 5... entonces, no sé qué haré... supongo que multiplicaré por 1000 lo que me devuelve mtgox, y almacenaré la parte entera, sabiendo que a lo almacenado hay que dividirlo por 1000. Pero bueno, por ahora trabajo con floats y por ahora lo hace bien. Si crees que mi código te puede ser de utilidad, te lo paso. Si quieres que te diga cómo rescatar el ticker de mtgox (TODO LO QUE SALE EN LA BARRA DE ARRIBA), porque no quieres guardar nada... te hago el código.
|
|
|
|
mrvision
|
|
January 21, 2013, 02:13:38 AM Last edit: January 21, 2013, 02:25:29 AM by mrvision |
|
Te dejo un screenshot de mis últimos ticks... Mi teoría es que si las ordenes de venta que encuentran comprador, lo hacen a un precio más bajo que las órdenes de compra que encuentran vendedor, y el volumen de estas últimas es mucho mayor, entonces el precio subirá. Ocurre en la linea que te he marcado y efectivamente el precio sube. (Puede ser casualidad) Cuanto mayor es esa situación mayor creo que es la 'tensión' para que suba, y cuando sucede lo contrario... mayor es la tensión para vender. Puede ser que se adopte valores negativos. Eso sucedería si las órdenes de compra encuentran vendedor a un precio más bajo que las órdenes de venta. Como te digo es todo muy experimental, pero ayer publiqué en elbitcoin que creía que el lunes caería... y ahora ya no lo tengo tan claro XDD ATENCION: LA BARRA DE SCROLL HORIZONTAL FUNCIONA, NO ES DE LA IMAGEN XD
|
|
|
|
mrvision
|
|
January 21, 2013, 02:39:03 AM Last edit: January 21, 2013, 12:47:37 PM by mrvision |
|
Y aqui una evolución... a ver si se entiende lo que quiero hacer... img543.imageshack.us/img543/1980/ticker.png
|
|
|
|
fernarios
|
|
January 21, 2013, 03:16:45 AM |
|
Interesante mrvision xD... a ver qué sale de eso...
(no veo la última imagen).
|
|
|
|
mrvision
|
|
January 21, 2013, 12:48:16 PM |
|
Interesante mrvision xD... a ver qué sale de eso...
(no veo la última imagen).
No deja poner la foto, es demasiado grande... he dejado el link (tp me deja hacerlo clickeable)
|
|
|
|
mrvision
|
|
January 21, 2013, 02:09:23 PM |
|
Ahora mi sistema da muestras de agotamiento del precio... y se ve que los valores de preciode compra menos precio de venta, empiezan a ser negativos, y que hay más ordenes de venta ejecutadas que ordenes de compra http://img833.imageshack.us/img833/5084/tickerf.png
|
|
|
|
mrvision
|
|
January 21, 2013, 02:42:49 PM |
|
La verdad es que ahora se ha vuelto a dar la vuelta... xDD Voy a dejar de escribir, cuando lo renderice todo ya veremos si se puede sacar algo de aquí o no.
Mientras tanto, tacticat, lo dicho, si quieres mi código avisa.
|
|
|
|
Tacticat (OP)
|
|
January 22, 2013, 01:47:50 PM |
|
¡Hola Mrvision!
En primer lugar permíteme que me disculpe por mi tardía respuesta. También he de comentarte que no comprendo del todo tu base de datos, pero sí me gustaría tener el código HTML para poder insertar en mi página.
¡Muchas gracias!
|
Tips and donations:
15nqQGfkgoxrBnsshD6vCuMWuz71MK51Ug
|
|
|
mrvision
|
|
January 22, 2013, 01:49:10 PM |
|
¡Hola Mrvision!
En primer lugar permíteme que me disculpe por mi tardía respuesta. También he de comentarte que no comprendo del todo tu base de datos, pero sí me gustaría tener el código HTML para poder insertar en mi página.
¡Muchas gracias!
Qué quieres insertar exactamente y dime si quieres guardar algún dato en la base de datos? Quieres los datos del ticker de mtgox? Bueno como y te paso el código de lo que creo que quieres
|
|
|
|
Tacticat (OP)
|
|
January 22, 2013, 01:52:57 PM |
|
¡Hola Mrvision!
En primer lugar permíteme que me disculpe por mi tardía respuesta. También he de comentarte que no comprendo del todo tu base de datos, pero sí me gustaría tener el código HTML para poder insertar en mi página.
¡Muchas gracias!
Qué quieres insertar exactamente y dime si quieres guardar algún dato en la base de datos? Quieres los datos del ticker de mtgox? Bueno como y te paso el código de lo que creo que quieres ¿Existe la posibilidad de usar el Weighted Average? De esta manera evito poner un dato que cambia cada dos por tres.
|
Tips and donations:
15nqQGfkgoxrBnsshD6vCuMWuz71MK51Ug
|
|
|
mrvision
|
|
January 22, 2013, 02:24:15 PM |
|
Esto lo colocas en algún lado arriba de la página: function mtgox_query($path) { static $ch = null; if (is_null($ch)) { $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MtGox PHP client; '.php_uname('s').'; PHP/'.phpversion().')'); } curl_setopt($ch, CURLOPT_URL, 'https://mtgox.com/api/'.$path); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); $res = curl_exec($ch); if ($res === false) throw new Exception('Could not get reply: '.curl_error($ch)); $dec = json_decode($res, true); if (!$dec) throw new Exception('Invalid data received, please make sure connection is working and requested API exists'); return $dec; } $ticker=mtgox_query('0/data/ticker.php'); $tickerHigh = $ticker['ticker']['high']; $tickerLow = $ticker['ticker']['low']; $tickerAvg = $ticker['ticker']['avg']; $tickerVwap = $ticker['ticker']['vwap']; $tickerVol = $ticker['ticker']['vol']; $tickerLastAll = $ticker['ticker']['last_all']; $tickerLastLocal = $ticker['ticker']['last_local']; $tickerLast = $ticker['ticker']['last']; $tickerBuy = $ticker['ticker']['buy']; $tickerSell = $ticker['ticker']['sell']; ?>
Y en la misma página, a partir de ese código, podrás trabajar los valores usando esto: <?php echo $tickerHigh;?> <?php echo $tickerLow;?> <?php echo $tickerAvg;?> <?php echo $tickerVwap;?> <?php echo $tickerVol;?> <?php echo $tickerLastAll;?> <?php echo $tickerLastLocal;?> <?php echo $tickerLast;?> <?php echo $tickerBuy;?> <?php echo $tickerSell;?>
Aqui tienes el resultado de todo junto: http://www.ukash2bitcoin.com/mtgox2.php(Ten en cuenta que no hay ningún <br> así que queda todo seguido en una linea)
|
|
|
|
mrvision
|
|
January 22, 2013, 02:27:29 PM |
|
¿Existe la posibilidad de usar el Weighted Average? De esta manera evito poner un dato que cambia cada dos por tres.
Esto es posible, pero para hacerlo deberás guardar al menos los últimos 60 ticks para cambiar cada hora el dato. o 1440 ticks para cambiar cada dia. Puedo decirte cómo hacerlo. El dato de la media de mtgox tb va cambiando creo (pq se va moviendo).
|
|
|
|
KikoV79
Newbie
Offline
Activity: 27
Merit: 0
|
|
January 25, 2013, 09:11:28 PM |
|
MrVision,
has conseguido hacer lo mismo con BitCoin-Central?
Me estoy pegando con la API, pero tienen mucho desastre. He visto que puedo acceder a mis operaciones, pero me gustaría acceder al book_order o a algo que me permita deducir las cotizaciones de las divisas.
Gracias!
|
|
|
|
mrvision
|
|
January 26, 2013, 01:22:50 AM |
|
MrVision,
has conseguido hacer lo mismo con BitCoin-Central?
Me estoy pegando con la API, pero tienen mucho desastre. He visto que puedo acceder a mis operaciones, pero me gustaría acceder al book_order o a algo que me permita deducir las cotizaciones de las divisas.
Gracias!
Hola kikoV79, después de leer tu mensaje he estado trasteando con la API. Por ahora no consigo que me devuelva nada. Respecto a deducir cotizaciones por divisas, tengo hecho un código que me hace la conversión a 40 divisas o así utilizando la api de google, entonces extraigo el precio en dólares de mtgox y hago la conversión, que guardo cada 10 minutos. El precio no es exacto, pero es bastante aproximado. Si te interesa te lo paso.
|
|
|
|
KikoV79
Newbie
Offline
Activity: 27
Merit: 0
|
|
January 26, 2013, 01:47:21 AM |
|
MrVision,
has conseguido hacer lo mismo con BitCoin-Central?
Me estoy pegando con la API, pero tienen mucho desastre. He visto que puedo acceder a mis operaciones, pero me gustaría acceder al book_order o a algo que me permita deducir las cotizaciones de las divisas.
Gracias!
Hola kikoV79, después de leer tu mensaje he estado trasteando con la API. Por ahora no consigo que me devuelva nada. Respecto a deducir cotizaciones por divisas, tengo hecho un código que me hace la conversión a 40 divisas o así utilizando la api de google, entonces extraigo el precio en dólares de mtgox y hago la conversión, que guardo cada 10 minutos. El precio no es exacto, pero es bastante aproximado. Si te interesa te lo paso. Finalmente, lo he conseguido. Si mandas un POST no funciona: <?php
function bitcoin_central_query($path, array $req = array()) { // API settings $user = '<MY-USER-BC-Central>'; $secret = '<MY-PASSWORD>';
if (empty($req )) { $method="GET"; } // generate a nonce as microtime, with as-string handling to avoid problems with 32bits systems $mt = explode(' ', microtime()); if (!empty($req)) $req['nonce'] = $mt[1].substr($mt[0], 2, 6);
// generate the POST data string $post_data = http_build_query($req, '', '&');
$prefix = ''; if (substr($path, 0, 2) == '2/') { $prefix = substr($path, 2)."\0"; }
// our curl handle (initialize if required) static $ch = null; if (is_null($ch)) { $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; BitCoin - Central - PHP client; '.php_uname('s').'; PHP/'.phpversion().')'); } $url = 'https://bitcoin-central.net/'.$path; curl_setopt($ch, CURLOPT_URL, $url); if (!empty($req)) { curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); curl_setopt($ch, CURLOPT_HTTPGET, false); curl_setopt($ch, CURLOPT_POST, true); } else { curl_setopt($ch, CURLOPT_POST, false); curl_setopt($ch, CURLOPT_HTTPGET, true); }
// curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_USERPWD, $user.":". $secret);
// run the query $res = curl_exec($ch); if ($res === false) throw new Exception('Could not get reply: '.curl_error($ch)); $dec = json_decode($res, true);
if (!$dec) throw new Exception('Invalid data received, please make sure connection is working and requested API exists'); return $dec; } $EUR_BC_array=bitcoin_central_query('ticker.json');
?>
Lo otro, me interesa. Lo tienes colgado en algún sitio? (github,o algo así?)
|
|
|
|
KikoV79
Newbie
Offline
Activity: 27
Merit: 0
|
|
January 26, 2013, 01:48:28 AM |
|
MrVision,
has conseguido hacer lo mismo con BitCoin-Central?
Me estoy pegando con la API, pero tienen mucho desastre. He visto que puedo acceder a mis operaciones, pero me gustaría acceder al book_order o a algo que me permita deducir las cotizaciones de las divisas.
Gracias!
Hola kikoV79, después de leer tu mensaje he estado trasteando con la API. Por ahora no consigo que me devuelva nada. Respecto a deducir cotizaciones por divisas, tengo hecho un código que me hace la conversión a 40 divisas o así utilizando la api de google, entonces extraigo el precio en dólares de mtgox y hago la conversión, que guardo cada 10 minutos. El precio no es exacto, pero es bastante aproximado. Si te interesa te lo paso. Finalmente, he conseguido al menos los valores ask,bid,high,low. Si mandas un POST no funciona: <?php
function bitcoin_central_query($path, array $req = array()) { // API settings $user = '<MY-USER-BC-Central>'; $secret = '<MY-PASSWORD>';
if (empty($req )) { $method="GET"; } // generate a nonce as microtime, with as-string handling to avoid problems with 32bits systems $mt = explode(' ', microtime()); if (!empty($req)) $req['nonce'] = $mt[1].substr($mt[0], 2, 6);
// generate the POST data string $post_data = http_build_query($req, '', '&');
$prefix = ''; if (substr($path, 0, 2) == '2/') { $prefix = substr($path, 2)."\0"; }
// our curl handle (initialize if required) static $ch = null; if (is_null($ch)) { $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; BitCoin - Central - PHP client; '.php_uname('s').'; PHP/'.phpversion().')'); } $url = 'https://bitcoin-central.net/'.$path; curl_setopt($ch, CURLOPT_URL, $url); if (!empty($req)) { curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data); curl_setopt($ch, CURLOPT_HTTPGET, false); curl_setopt($ch, CURLOPT_POST, true); } else { curl_setopt($ch, CURLOPT_POST, false); curl_setopt($ch, CURLOPT_HTTPGET, true); }
// curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_USERPWD, $user.":". $secret);
// run the query $res = curl_exec($ch); if ($res === false) throw new Exception('Could not get reply: '.curl_error($ch)); $dec = json_decode($res, true);
if (!$dec) throw new Exception('Invalid data received, please make sure connection is working and requested API exists'); return $dec; } $EUR_BC_array=bitcoin_central_query('ticker.json');
var_dump($EUR_BC_array);
?>
Lo otro, me interesa. Lo tienes colgado en algún sitio? (github,o algo así?)
|
|
|
|
|