Bitcoin Forum
November 17, 2024, 11:28:42 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: HTML Snipped para un contador en directo del precio de MTGOX?  (Read 2695 times)
Tacticat (OP)
Full Member
***
Offline Offline

Activity: 210
Merit: 100



View Profile
January 19, 2013, 01:07:36 PM
 #1

¡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
n8rwJeTt8TrrLKPa55eU
Hero Member
*****
Offline Offline

Activity: 588
Merit: 500



View Profile
January 19, 2013, 04:29:24 PM
 #2

Este servicio te deja poner el precio actual en una pagina usando una imagen:

http://btcticker.appspot.com/

mrvision
Sr. Member
****
Offline Offline

Activity: 527
Merit: 250



View Profile
January 20, 2013, 11:40:55 PM
 #3

¡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
Sr. Member
****
Offline Offline

Activity: 527
Merit: 250



View Profile
January 21, 2013, 02:13:38 AM
Last edit: January 21, 2013, 02:25:29 AM by mrvision
 #4

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
Sr. Member
****
Offline Offline

Activity: 527
Merit: 250



View Profile
January 21, 2013, 02:39:03 AM
Last edit: January 21, 2013, 12:47:37 PM by mrvision
 #5

Y aqui una evolución... a ver si se entiende lo que quiero hacer...
img543.imageshack.us/img543/1980/ticker.png
fernarios
Hero Member
*****
Offline Offline

Activity: 616
Merit: 501



View Profile
January 21, 2013, 03:16:45 AM
 #6

Interesante mrvision xD... a ver qué sale de eso...

(no veo la última imagen).
mrvision
Sr. Member
****
Offline Offline

Activity: 527
Merit: 250



View Profile
January 21, 2013, 12:48:16 PM
 #7

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
Sr. Member
****
Offline Offline

Activity: 527
Merit: 250



View Profile
January 21, 2013, 02:09:23 PM
 #8

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
Sr. Member
****
Offline Offline

Activity: 527
Merit: 250



View Profile
January 21, 2013, 02:42:49 PM
 #9

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)
Full Member
***
Offline Offline

Activity: 210
Merit: 100



View Profile
January 22, 2013, 01:47:50 PM
 #10

¡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
Sr. Member
****
Offline Offline

Activity: 527
Merit: 250



View Profile
January 22, 2013, 01:49:10 PM
 #11

¡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 Smiley
Tacticat (OP)
Full Member
***
Offline Offline

Activity: 210
Merit: 100



View Profile
January 22, 2013, 01:52:57 PM
 #12

¡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 Smiley

¿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
Sr. Member
****
Offline Offline

Activity: 527
Merit: 250



View Profile
January 22, 2013, 02:24:15 PM
 #13

Esto lo colocas en algún lado arriba de la página:

Code:
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:
Code:
<?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
Sr. Member
****
Offline Offline

Activity: 527
Merit: 250



View Profile
January 22, 2013, 02:27:29 PM
 #14

¿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 Offline

Activity: 27
Merit: 0



View Profile WWW
January 25, 2013, 09:11:28 PM
 #15

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
Sr. Member
****
Offline Offline

Activity: 527
Merit: 250



View Profile
January 26, 2013, 01:22:50 AM
 #16

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 Offline

Activity: 27
Merit: 0



View Profile WWW
January 26, 2013, 01:47:21 AM
 #17

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:
Code:
<?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], 26);

        
// generate the POST data string
        
$post_data http_build_query($req'''&');

        
$prefix '';
        if (
substr($path02) == '2/') {
                
$prefix substr($path2)."\0";
        }

        
// our curl handle (initialize if required)
        
static $ch null;
        if (
is_null($ch)) {
                
$ch curl_init();
                
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
                
curl_setopt($chCURLOPT_USERAGENT'Mozilla/4.0 (compatible; BitCoin - Central - PHP client; '.php_uname('s').'; PHP/'.phpversion().')');
        }
        
$url 'https://bitcoin-central.net/'.$path;
        
curl_setopt($chCURLOPT_URL$url);
        if (!empty(
$req)) {
                
curl_setopt($chCURLOPT_POSTFIELDS$post_data);
                
curl_setopt($chCURLOPT_HTTPGETfalse);
                
curl_setopt($chCURLOPT_POSTtrue);
        } else {
                
curl_setopt($chCURLOPT_POSTfalse);
                
curl_setopt($chCURLOPT_HTTPGETtrue);
        }

        
// curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_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($restrue);

        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 Offline

Activity: 27
Merit: 0



View Profile WWW
January 26, 2013, 01:48:28 AM
 #18

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:
Code:
<?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], 26);

        
// generate the POST data string
        
$post_data http_build_query($req'''&');

        
$prefix '';
        if (
substr($path02) == '2/') {
                
$prefix substr($path2)."\0";
        }

        
// our curl handle (initialize if required)
        
static $ch null;
        if (
is_null($ch)) {
                
$ch curl_init();
                
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
                
curl_setopt($chCURLOPT_USERAGENT'Mozilla/4.0 (compatible; BitCoin - Central - PHP client; '.php_uname('s').'; PHP/'.phpversion().')');
        }
        
$url 'https://bitcoin-central.net/'.$path;
        
curl_setopt($chCURLOPT_URL$url);
        if (!empty(
$req)) {
                
curl_setopt($chCURLOPT_POSTFIELDS$post_data);
                
curl_setopt($chCURLOPT_HTTPGETfalse);
                
curl_setopt($chCURLOPT_POSTtrue);
        } else {
                
curl_setopt($chCURLOPT_POSTfalse);
                
curl_setopt($chCURLOPT_HTTPGETtrue);
        }

        
// curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);
        
curl_setopt($chCURLOPT_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($restrue);

        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í?)
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!