Author

Topic: Historico de precios y dificultad (Read 1503 times)

hero member
Activity: 727
Merit: 500
April 18, 2013, 04:48:43 PM
#12
A ver que os parece esto...

He estado trasteando con los datos históricos en busca de algún tipo de indicador, o algo que pudiera ser de utilidad para el análisis técnico de la evolución del precio. Vaya por delante que no sé realmente de análisis técnico, pero he conseguido obtener un modelo sobre la distribución de probabilidad del precio que podría ser hasta razonable (también puede ser amor de padre). He hecho algunas suposiciones con las que no estoy muy a gusto, y hay un par de parámetros libres que he tenido que poner a ojo de buen cubero. Como todo, es mejorable, y estoy en ello precisamente  Cheesy.

Como he dicho, este modelo intenta estimar la distribución de probabilidad del precio, por lo que no da un único valor instantáneo, sino una probabilidad para cada uno. En la siguiente imagen se muestra el análisis de la primera burbuja (2011). Se pueden pinchar para ampliar.



Los datos se corresponden con la cotización diaria. La linea negra representa el precio promedio del día. Como se puede ver cada día tiene una banda que va del azul al rojo (de abajo a arriba). Esa banda representa la densidad de probabilidad acumulada (P(precio<=x)). De forma simplificada, estar "muy rojo" o "muy azul" indica una probabilidad baja, lo ideal es estar en el centro, que es de color verde (aunque aparece pocas veces). De este mismo color es la línea que indica el valor esperado (E(x)) del precio para ese día según la distribución de probabilidad que ha calculado el modelo. Un bandeado amplio indica una densidad de probabilidad dispersa (no hay consenso sobre el precio) mientras que un bandeado ajustado indica lo contrario (una mayor certeza del precio estimado). Como he dicho el evento representado se corresponde con la primera burbuja. Debe notarse que tanto la escala temporal como la del precio son incorrectas (no quería perder demasiado el tiempo en cuestiones estéticas), también aparece al principio un fallo de bandeado continuo en azul que debe ignorarse.



La figura de arriba representa el evento "Pirate@40", esto es, cuando pirate decidió cerrar su esquema Ponzi poniendo a todo el mundo un pelín nervioso. Según el modelo había consenso en el crecimiento del precio, hasta la aparición del cisne negro. De no haber pasado lo de pirate ¿hubiéramos comenzado la actual burbuja en aquel momento?



Y por último la situación de los 100 últimos días. Lo más destacable es el poco consenso sobre el precio, así como la ascensión hasta precios "poco probables". No sé como lo veis vosotros. Por simple curiosidad he sacado el último valor de la línea verde (valor esperado del precio) y salía 84.2 $. Viendo como vamos hacia los 100, parece que no anda muy fino el modelo. Aunque en su defensa diré que también indica una alta incertidumbre.

En fin, tal y como he dicho, no se si estoy haciendo un Bollinguer encubierto (desde luego uso más datos para componer la métrica), ni si estoy reinventando la rueda (podría ser muy probable  Smiley). Por eso me gustaría que los más técnicos me dierais vuestra opinión (por favor, no me tiréis muy fuerte  Wink). Si se os ocurre otro evento interesante no dudéis en decírmelo.
sr. member
Activity: 252
Merit: 250
April 16, 2013, 04:54:17 PM
#11
El enlace de KEMP RASS se lo recomiendo a todo el mundo

A todo el mundo que tenga facebook, esto es.

:/

Los que enlazan con corralitos privados deberían ser colgados de los pulgares...
legendary
Activity: 1974
Merit: 1029
April 16, 2013, 04:00:30 PM
#10
El enlace de KEMP RASS se lo recomiendo a todo el mundo

A todo el mundo que tenga facebook, esto es.

:/
hero member
Activity: 727
Merit: 500
April 16, 2013, 03:03:27 PM
#9
¡Muchas gracias a los dos por la información!

El enlace de KEMP RASS se lo recomiendo a todo el mundo (aunque para lo que quiero hacer tiene una utilidad limitada). La hoja excel para trading es excelente Grin
full member
Activity: 126
Merit: 101
April 16, 2013, 11:16:48 AM
#8
amgomez mira a ver si te puede valer esto https://www.facebook.com/groups/bitcoinespana/439116026172954/
legendary
Activity: 1974
Merit: 1029
April 16, 2013, 11:13:49 AM
#7
Siento el spam, pero antes cuando puse el anterior mensaje, no esperaba que terminara tan pronto. Aquí van los que faltan hasta ahorita mismo:

Code:
221760: 3651011.63069321 Mon Feb 18 00:47:50 2013
223776: 4367876.0008422 Fri Mar  1 17:42:44 2013
225792: 4847647.15206561 Thu Mar 14 08:32:26 2013
227808: 6695826.28259625 Sun Mar 24 12:00:25 2013
229824: 7672999.92016414 Fri Apr  5 17:40:43 2013

El siguiente ajuste será pasadomañana.
legendary
Activity: 1974
Merit: 1029
April 16, 2013, 06:32:42 AM
#6
Los últimos son lentos pero hay estos nuevos desde ayer:

Code:
195552: 2440642.60691596 Sat Aug 25 01:46:39 2012
197568: 2694047.95295501 Thu Sep  6 18:10:37 2012
199584: 2864140.50781097 Wed Sep 19 22:14:11 2012
201600: 3054627.52694864 Wed Oct  3 01:11:00 2012
203616: 3072321.73202076 Tue Oct 16 22:56:08 2012
205632: 3304356.39299034 Tue Oct 30 00:16:35 2012
207648: 3368767.14053294 Mon Nov 12 17:59:46 2012
209664: 3438908.96015914 Mon Nov 26 11:10:29 2012
211680: 3370181.79927784 Mon Dec 10 18:03:33 2012
213696: 2979636.61693807 Wed Dec 26 14:05:40 2012
215712: 3249549.58448721 Tue Jan  8 10:40:34 2013
217728: 2968775.33207507 Wed Jan 23 18:41:27 2013
219744: 3275464.58656562 Tue Feb  5 11:19:06 2013
hero member
Activity: 727
Merit: 500
April 15, 2013, 02:43:04 PM
#5
¡Un montón de gracias! ¡Eres una maquina! (Yo sigo dándome cabezazos con el bash...)

Aunque incompletos voy a preparar la importación a MatLab de tus salidas y de bitcoincharts a ver si sale algo "interesante". Serás el primero en enterarte Grin


legendary
Activity: 1974
Merit: 1029
April 15, 2013, 02:02:40 PM
#4
Con respecto al histórico de dificultad, ¿puedes modificar el script para que bitcoind te dé también la marca de tiempo del bloque en el que cambia la dificultad?

En Perl:

Code:
use warnings;
use strict;
use JSON::RPC::Client;

my $cfgfile = $ENV{'HOME'} . '/.bitcoin/bitcoin.conf';
-f $cfgfile or die "bitcoin configuration not found\n";
my ($rpcuser, $rpcpass);
open my $fd, '<', $cfgfile or die "open: '$cfgfile': $!";
while (<$fd>) {
    if (/^rpcuser=(.*)/)     { $rpcuser = $1; }
    if (/^rpcpassword=(.*)/) { $rpcpass = $1; }
}
close $fd;
if (!$rpcuser or !$rpcpass) { die "can't find RPC credentials in bitcoin configuration\n"; }

my $url = "http://$rpcuser:$rpcpass\@localhost:8332/";
my $rpc = JSON::RPC::Client->new;
$rpc->prepare ($url, [ qw/getblock getblockhash/ ]);
my $b = 0;
while (1) {
    my $block = $rpc->getblock ($rpc->getblockhash ($b));
    last unless $block;
    printf "%5d: %s %s\n", $b, $block->{'difficulty'}, scalar gmtime $block->{'time'};
    $b += 2016;
}
__END__
    0: 1 Sat Jan  3 18:15:05 2009
 2016: 1 Tue Jan 27 13:38:51 2009
 4032: 1 Thu Feb 12 19:16:30 2009
 6048: 1 Mon Mar  2 04:01:53 2009
 8064: 1 Fri Mar 20 00:26:26 2009
10080: 1 Mon Apr  6 22:04:23 2009
12096: 1 Fri Apr 24 18:51:38 2009
14112: 1 Tue May 12 03:20:25 2009
16128: 1 Sun May 31 02:31:25 2009
18144: 1 Fri Jun 26 21:32:53 2009
20160: 1 Sat Jul 25 00:30:16 2009
22176: 1 Fri Sep  4 13:01:38 2009
24192: 1 Fri Oct  2 03:27:08 2009
26208: 1 Sat Oct 31 15:28:20 2009
28224: 1 Fri Nov 27 21:51:07 2009
30240: 1 Fri Dec 18 09:56:01 2009
32256: 1.18289953 Wed Dec 30 06:11:04 2009
34272: 1.30506213 Mon Jan 11 22:48:37 2010
36288: 1.34422497 Mon Jan 25 13:07:59 2010
38304: 1.81864854 Thu Feb  4 21:43:14 2010
40320: 2.52773822 Sun Feb 14 23:52:59 2010
42336: 3.78117925 Wed Feb 24 08:41:04 2010
44352: 4.53108175 Mon Mar  8 01:14:33 2010
46368: 4.56516291 Sun Mar 21 22:54:24 2010
48384: 6.08547691 Thu Apr  1 11:07:22 2010
50400: 7.81979699 Mon Apr 12 08:39:46 2010
52416: 11.46431581 Wed Apr 21 21:52:52 2010
54432: 12.84918315 Tue May  4 09:46:16 2010
56448: 11.84622815 Wed May 19 14:13:55 2010
58464: 16.61907875 Sat May 29 13:57:28 2010
60480: 17.38148816 Fri Jun 11 23:26:26 2010
62496: 19.40479633 Thu Jun 24 12:27:26 2010
64512: 23.50125722 Tue Jul  6 01:57:44 2010
66528: 45.38582234 Tue Jul 13 08:03:57 2010
68544: 181.54328936 Fri Jul 16 16:29:39 2010
70560: 244.21322309 Tue Jul 27 02:42:38 2010
72576: 352.16120907 Thu Aug  5 19:46:35 2010
74592: 511.77353426 Sun Aug 15 11:11:11 2010
76608: 623.38695987 Thu Aug 26 23:13:23 2010
78624: 712.88486455 Wed Sep  8 05:04:49 2010
80640: 917.8307413 Sun Sep 19 02:04:07 2010
82656: 1318.67005015 Tue Sep 28 19:58:28 2010
84672: 1378.02816504 Tue Oct 12 05:35:05 2010
86688: 2149.02181495 Thu Oct 21 05:13:15 2010
88704: 3091.73689041 Sat Oct 30 22:58:47 2010
90720: 4536.35372328 Tue Nov  9 12:29:28 2010
92736: 6866.89864897 Thu Nov 18 18:44:34 2010
94752: 8078.19525793 Tue Nov 30 16:37:55 2010
96768: 12251.99976037 Thu Dec  9 22:20:02 2010
98784: 14484.16236123 Tue Dec 21 18:34:03 2010
100800: 16307.42093852 Mon Jan  3 05:10:11 2011
102816: 18437.64439217 Sat Jan 15 14:26:07 2011
104832: 22012.38133799 Thu Jan 27 08:16:11 2011
106848: 25997.87992881 Tue Feb  8 04:53:20 2011
108864: 36459.88692508 Fri Feb 18 05:15:52 2011
110880: 55589.51812687 Sun Feb 27 09:59:20 2011
112896: 76192.61934751 Wed Mar  9 15:25:55 2011
114912: 68977.78463021 Fri Mar 25 02:39:45 2011
116928: 82345.64411297 Tue Apr  5 20:09:57 2011
118944: 92347.59095209 Mon Apr 18 07:49:36 2011
120960: 109670.13329248 Sat Apr 30 02:53:00 2011
122976: 157416.40184365 Mon May  9 21:17:24 2011
124992: 244112.48777434 Wed May 18 22:04:47 2011
127008: 434877.04552763 Thu May 26 18:41:56 2011
129024: 567269.53016242 Mon Jun  6 12:25:05 2011
131040: 876954.49351354 Wed Jun 15 13:49:34 2011
133056: 1379192.28822808 Fri Jun 24 11:45:23 2011
135072: 1563027.99611622 Wed Jul  6 20:35:46 2011
137088: 1690895.80305239 Tue Jul 19 19:23:09 2011
139104: 1888786.70535305 Mon Aug  1 08:11:19 2011
141120: 1805700.83619367 Mon Aug 15 23:44:54 2011
143136: 1777774.48200146 Tue Aug 30 05:15:03 2011
145152: 1755425.3203287 Tue Sep 13 09:31:56 2011
147168: 1689334.4045971 Tue Sep 27 22:47:04 2011
149184: 1468195.42722083 Fri Oct 14 01:44:35 2011
151200: 1203461.92637997 Mon Oct 31 03:42:14 2011
153216: 1192497.75008948 Mon Nov 14 06:56:10 2011
155232: 1090715.68005127 Tue Nov 29 14:20:20 2011
157248: 1155038.33396364 Mon Dec 12 19:42:35 2011
159264: 1159929.49722438 Mon Dec 26 18:43:25 2011
161280: 1250757.73927466 Sun Jan  8 18:26:16 2012
163296: 1307728.36060407 Sun Jan 22 03:55:04 2012
165312: 1379647.43921429 Sat Feb  4 10:32:41 2012
167328: 1376302.26788638 Sat Feb 18 11:24:15 2012
169344: 1496978.59502557 Fri Mar  2 08:25:36 2012
171360: 1498294.36281651 Fri Mar 16 08:09:54 2012
173376: 1626553.48132894 Thu Mar 29 05:41:47 2012
175392: 1577913.48567673 Thu Apr 12 16:04:49 2012
177408: 1508589.67206029 Fri Apr 27 07:39:30 2012
179424: 1733207.51384839 Wed May  9 12:08:33 2012
181440: 1591074.96184731 Thu May 24 18:10:29 2012
183456: 1583177.84744401 Thu Jun  7 20:05:25 2012
185472: 1726566.55919348 Wed Jun 20 16:16:04 2012
187488: 1751454.53534068 Wed Jul  4 11:37:21 2012
189504: 1866391.30500321 Tue Jul 17 14:59:26 2012
191520: 2036671.08869332 Mon Jul 30 11:26:17 2012
193536: 2190865.97010286 Sun Aug 12 12:00:55 2012
500 Internal Server Error at - line 20

Las horas están en UTC. Dame un toque mañana o pasado y te pongo lo que falta Wink.
hero member
Activity: 727
Merit: 500
April 15, 2013, 10:08:41 AM
#3
¡Muchas gracias! En serio.

Bitcoincharts permite establecer el periodo. Lo he puesto en "All Data" y "Daily". Más abajo hay un enlace que pone "Load raw data", que es justo lo que necesito. Si se pincha salen los datos tabulados con la apertura, cierre, máximo, mínimo, promedio y volumen para el periodo. ¡Genial!

Con respecto al histórico de dificultad, ¿puedes modificar el script para que bitcoind te dé también la marca de tiempo del bloque en el que cambia la dificultad?
legendary
Activity: 1974
Merit: 1029
April 15, 2013, 09:09:41 AM
#2
¿Alguien sabe donde puedo obtener un histórico de precios del bitcoin en formato crudo (un raw o un txt tabulado)? No ha de ser muy detallado, con el precio por día podría valer, aunque si se puede elegir como parámetro sería estupendo.

Bitcoincharts te da todos los trades, tú tendrías que agregarlos según el período de tiempo que te interese. Bueno, realmente también te da los datos agregados pero para eso necesitas hacer clics en la página y luego copiar-pegar los datos. Nada muy programático que digamos Tongue.


Por otro lado, necesitaría también el histórico de dificultad.

¿Así?

Code:
0: 1.00000000
2016: 1.00000000
4032: 1.00000000
6048: 1.00000000
8064: 1.00000000
10080: 1.00000000
12096: 1.00000000
14112: 1.00000000
16128: 1.00000000
18144: 1.00000000
20160: 1.00000000
22176: 1.00000000
24192: 1.00000000
26208: 1.00000000
28224: 1.00000000
30240: 1.00000000
32256: 1.18289953
34272: 1.30506213
36288: 1.34422497
38304: 1.81864854
40320: 2.52773822
42336: 3.78117925
44352: 4.53108175
46368: 4.56516291
48384: 6.08547691
50400: 7.81979699
52416: 11.46431581
54432: 12.84918315
56448: 11.84622815
58464: 16.61907875
60480: 17.38148816
62496: 19.40479633
64512: 23.50125722
66528: 45.38582234
68544: 181.54328936
70560: 244.21322309
72576: 352.16120907
74592: 511.77353426
76608: 623.38695987
78624: 712.88486455
80640: 917.83074130
82656: 1318.67005015
84672: 1378.02816504
86688: 2149.02181495
88704: 3091.73689041
90720: 4536.35372328
92736: 6866.89864897
94752: 8078.19525793
96768: 12251.99976037
98784: 14484.16236123
100800: 16307.42093852
102816: 18437.64439217
104832: 22012.38133799
106848: 25997.87992881
108864: 36459.88692508
110880: 55589.51812687
112896: 76192.61934751
114912: 68977.78463021
116928: 82345.64411297
118944: 92347.59095209
120960: 109670.13329248
122976: 157416.40184365
124992: 244112.48777434
127008: 434877.04552763
129024: 567269.53016242
131040: 876954.49351354
133056: 1379192.28822808
135072: 1563027.99611622
137088: 1690895.80305239
139104: 1888786.70535305
141120: 1805700.83619367
143136: 1777774.48200146
145152: 1755425.32032870
147168: 1689334.40459710
149184: 1468195.42722083
151200: 1203461.92637997
153216: 1192497.75008948
155232: 1090715.68005127
157248: 1155038.33396364
159264: 1159929.49722438

No tengo más datos ahora mismo porque estoy volviendo a empezar, que mi cadena de bloques estaba rota, pero si te sirve, avisa y cualquiera con linux puede recrear la lista usando esto:

Code:
for I in {0..120}; do B=$((2016*$I)); echo -n $B:; bitcoind getblock $(bitcoind getblockhash $B) |grep diff; done |sed -e 's/\(.*\):    .diff.* : \(.*\),/\1: \2/'
hero member
Activity: 727
Merit: 500
April 15, 2013, 07:47:06 AM
#1
¿Alguien sabe donde puedo obtener un histórico de precios del bitcoin en formato crudo (un raw o un txt tabulado)? No ha de ser muy detallado, con el precio por día podría valer, aunque si se puede elegir como parámetro sería estupendo. (No es para usar el sierra chart, pero los analistas técnicos, ¿donde lo enchufáis para obtener los datos?). Por otro lado, necesitaría también el histórico de dificultad.

He tenido una idea y me gustaría contrastarla con datos (no, no es sobre la conocida correlación, que no causalidad, entre dificultad y precio). Espero no parecer muy HOIGAN, con un par de indicaciones me doy por satisfecho  Roll Eyes
Jump to: