Author

Topic: HTML Snipped para un contador en directo del precio de MTGOX? (Read 2695 times)

newbie
Activity: 27
Merit: 0
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:

function bitcoin_central_query($path, array $req = array()) {
        
// API settings
        
$user '';
        
$secret '';

        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í?)
newbie
Activity: 27
Merit: 0
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:

function bitcoin_central_query($path, array $req = array()) {
        
// API settings
        
$user '';
        
$secret '';

        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í?)
sr. member
Activity: 527
Merit: 250
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.
newbie
Activity: 27
Merit: 0
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!
sr. member
Activity: 527
Merit: 250
¿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).
sr. member
Activity: 527
Merit: 250
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:
echo $tickerHigh;?> 
echo $tickerLow;?>
echo $tickerAvg;?>
echo $tickerVwap;?>
echo $tickerVol;?>
echo $tickerLastAll;?>
echo $tickerLastLocal;?>
echo $tickerLast;?>
echo $tickerBuy;?>
echo $tickerSell;?>


Aqui tienes el resultado de todo junto:  http://www.ukash2bitcoin.com/mtgox2.php

(Ten en cuenta que no hay ningún
así que queda todo seguido en una linea)
full member
Activity: 210
Merit: 100
¡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.
sr. member
Activity: 527
Merit: 250
¡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
full member
Activity: 210
Merit: 100
¡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!
sr. member
Activity: 527
Merit: 250
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.
sr. member
Activity: 527
Merit: 250
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
sr. member
Activity: 527
Merit: 250
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)
hero member
Activity: 616
Merit: 501
Interesante mrvision xD... a ver qué sale de eso...

(no veo la última imagen).
sr. member
Activity: 527
Merit: 250
Y aqui una evolución... a ver si se entiende lo que quiero hacer...
img543.imageshack.us/img543/1980/ticker.png
sr. member
Activity: 527
Merit: 250
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

sr. member
Activity: 527
Merit: 250
¡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.
hero member
Activity: 588
Merit: 500
Este servicio te deja poner el precio actual en una pagina usando una imagen:

http://btcticker.appspot.com/

full member
Activity: 210
Merit: 100
¡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!
Jump to: