|
In questi giorni sto cercando di fare una surruga per il mutuo di casa mia. Tra le varie offerte ce n'è una di una banca (di cui non farò il nome per evitare pubblicità) che mi ha incuriosito: fare un mutuo a tasso variabile con la possibilità di passare in qualsiasi momento al tasso fisso mantenedo fermo lo spread.
Naturalmente il problema sta nel quando conviene passare dal tasso variabile a quello fisso; chi si è interessato un po' a queste cose sa che per fare questa decisione occorre tenere d'occhio l'andamento degli indici di riferimento per il tasso fisso e quello variabile che sono, rispettivamente, l'EURIRS e l'EURIBOR.
Ecco come si può fare tutto in automatico, con il proprio PC, ricevendo il valore corrente degli indici direttamente nella propria casella di posta elettronica! :)
Premessa: che a me piacciano i sistemi Linux-based è risaputo, ma ora vi faccio vedere che questa mia «passione» non è dettata da una scelta religiosa (come molti potrebbero pensare) ma da una ragione meramente pratica: c'è poco da fare, un computer con Linux a bordo è molto più versatile di uno con su un sistema operativo a finestre... Secondo me (quindi dal punto di vista di un programmatore) avere un computer e non potergli far fare quello che si vuole, ma essere limitati alle sole operazioni permesse dal software preinstallato, è come non averlo!
Bene, detto questo, vediamo come dimostrare quanto detto ritornando al problema di dover tenere sotto controllo i tassi d'interesse.
Innanzi tutto, per poter risolvere questo problema, dobbiamo trovare una fonte in rete da dove poter prendere i dati aggiornati. Cercando un po' ho trovato questa pagina dal sito de «Il Sole 24 ORE» da dove poter leggere i dati che ci interessano. Riporto di seguito una porzione:
Come si vede abbiamo trovato proprio quello che ci serve.
Ora dobbiamo estrarre i dati e portarli in una forma che ci permetta di elaborarli in maniera semplice. La cosa più facile è convertire questa tabellina in formato testo. Avrei potuto anche usare un parser del formato HTML ma si vedrà che con il testo semplice si risolve il problema in maniera egregia.
Per passare dall'HTML al testo la via più veloce è usare links2, un client web che fa il render delle pagine in formato testo. Ecco come, basta usare il parametro -dump per dire a links2 di mandare l'output su stdout:
$ links2 -dump http://mutuionline.24oreborsaonline.ilsole24ore.com/guidaestrumenti/osservatorio.asp ... TASSO FISSO TASSO VARIABILE EURIRS aggiornati al EURIBOR aggiornati al 24/2/2010 24/2/2010 Scadenze Tasso Scadenze Euribor Euribor 360 365 1 anno 1,14% 2 anni 1,50% 1 mese 0,42% 0,42% 3 anni 1,86% 2 mesi 0,52% 0,53% 4 anni 2,19% 3 mesi 0,66% 0,67% 5 anni 2,47% 4 mesi 0,76% 0,77% 6 anni 2,72% 5 mesi 0,85% 0,86% 7 anni 2,92% 6 mesi 0,96% 0,98% 8 anni 3,09% 7 mesi 1,00% 1,01% 9 anni 3,24% 8 mesi 1,05% 1,06% 10 anni 3,35% 9 mesi 1,10% 1,11% 12 anni 3,53% 10 mesi 1,14% 1,15% 15 anni 3,72% 11 mesi 1,18% 1,19% 20 anni 3,83% 12 mesi 1,23% 1,24% 25 anni 3,80% 30 anni 3,72% 40 anni 3,59% TASSO BCE 50 anni 3,52% aggiornato al 24/2/2010 Tasso 1,00% ...
Naturalmente ho tolto a mano tutte le altre informazioni contenute nella pagina e che non mi interessano.
A questo punto però vediamo come fare questa operazione di rimozione del testo extra in maniera automatica in modo da avere in output solo la tabellina. Basta usare awk, un tool di manipolazione testi molto potente.
Ecco come:
$ links2 -dump $SITO | awk ' BEGIN { c = p = 0 } /TASSO FISSO[[:space:]]*TASSO VARIABILE/ { c = p = 1 } { if (p && (++c < 25)) print } '
Nella variabile SITO ho memorizzato il link riportato sopra e poi ho mandato l'output di links2 in pasto ad awk. Non starò qui a spiegare come questi funziona, ma due parole le devo pur dire; in pratica, con il codice racchiuso tra apici, dico ad awk di stampare in output solo il testo tra la linea contenente le parole «TASSO FISSO» e «TASSO VARIABILE» e di continuarte fino a 25 linee dopo. La variabile c serve appunto per contare le linee.
A questo punto il più è fatto, ma se volessi selezionare in output solo i tassi che mi interessano? In particolare, nel mio caso, dovrei tenere sott'occhio l'EURIRS a 30 anni e l'EURIBOR ad un mese. Come fare? Utilizzo ancora awk!
In pratica basta osservare che per ogni linea del tipo «1 anno», «2 anni», ecc. e «1 mese», «2 mesì», ecc. ha accanto (separati da spazi) i tassi che mi interessano; quindi basta che dica ad awk di prendere la linea con «30 anni» e quella con «1 mese» e quindi di stampare il testo che segue. Sapendo che awk separa i campi di una riga, in colonne, utilizzando proprio gli spazi e supponendo che la stringa da trovare sia memorizzata nella variabile par, le regole da fargli eseguire sono queste:
- Se par è nella colonna 1 e 2, allora stampa la colonna 3.
- Se par è nella colonna 4 e 5, allora stampa la colonna 6 (e pure la 7 per l'EURIBOR 365).
Nel dialetto di awk tutto ciò si scrive come segue:
awk -v par="$t" ' $1 " " $2 ~ par { print $3} $4 " " $5 ~ par { print $6, $7} '
dove nella variabile t c'è la stringa da cercare, "30 anni" o "1 mese" a seconda del tasso che voglio vedere.
A questo punto, mettendo tutto in uno script di bash per semplificare l'esecuzione, si ha:
#!/bin/bash
SITO='http://mutuionline.24oreborsaonline.ilsole24ore.com/guidaestrumenti/osservatorio.asp'
# Get data from the web and save it into a temp file links2 -dump $SITO | awk ' BEGIN { c = p = 0 } /TASSO FISSO[[:space:]]*TASSO VARIABILE/ { c = p = 1 } { if (p && (++c < 25)) print } ' > /tmp/tassi
if [ $# -lt 1 ] ; then cat /tmp/tassi else for t ; do awk -v par="$t" ' $1 " " $2 ~ par { print $3} $4 " " $5 ~ par { print $6, $7} ' < /tmp/tassi done
fi
Questo script (che io ho chiamato tassi), semplicemente, se lo si lancia senza argomenti mostra la tabella di prima completa, se invece gli date come argomento una stringa tipo «1 anno» o «2 mesi» stampa il tasso di interesse relativo. Ecco alcuni esempi di esecuzione:
$ tassi TASSO FISSO TASSO VARIABILE EURIRS aggiornati al EURIBOR aggiornati al 25/2/2010 25/2/2010 Scadenze Tasso Scadenze Euribor Euribor 360 365 1 anno 1,11% 2 anni 1,45% 1 mese 0,42% 0,42% 3 anni 1,83% 2 mesi 0,52% 0,53% 4 anni 2,18% 3 mesi 0,66% 0,67% 5 anni 2,46% 4 mesi 0,76% 0,77% 6 anni 2,71% 5 mesi 0,85% 0,86% 7 anni 2,92% 6 mesi 0,96% 0,97% 8 anni 3,09% 7 mesi 1,00% 1,01% 9 anni 3,23% 8 mesi 1,04% 1,06% 10 anni 3,36% 9 mesi 1,09% 1,11% 12 anni 3,54% 10 mesi 1,13% 1,15% 15 anni 3,73% 11 mesi 1,17% 1,19% 20 anni 3,84% 12 mesi 1,22% 1,23% 25 anni 3,81% 30 anni 3,73% 40 anni 3,59% TASSO BCE 50 anni 3,52% aggiornato al 25/2/2010 Tasso 1,00% $ tassi '1 anno' 1,11% $ tassi '4 mesi' 0,76% 0,77%
Dicevamo all'inizio però che volevamo ricevere giornalmente, e nella casella di posta elettronica, il valore dei tassi a 30 anni ed ad un mese, bene, questo lo si può fare semplicemente utilizzando cron. Questo tool ci dà la possibilità di eseguire un qualunque comando ad intervalli di tempo prefissati e di ricevere, via posta elettronica, l'output del comando stesso: proprio quello che ci vuole!
Per finire il lavoro dunque, non ci resta che impostare cron in modo tale che, ad esempio, ogni giorno alle 12:00 ci invii per posta lo stato dei tassi che ci interessano; per farlo diamo il comando crontab -e, per aprire il file di configurazione di cron, e mettiamo in una riga di detto file quanto segue:
0 12 * * * tassi '30 anni' '1 mese'
Finito! :)
Ecco che abbiamo realizzato un programmino che monitorizza i tassi di interesse del nostro nuovo mutuo in nemmeno 30 minuti... capito perché dico che Linux è più versatile? ;)
|