[Bash] Quotazioni azionarie
3 partecipanti
Pagina 1 di 1
[Bash] Quotazioni azionarie
Questa settimana sono stato incastrato a fare un InteressanteLavoro(dMxxda) sulla gestione di dati finanziari. È chiaro che non posso darvi tutto ma ho aggiustato una cosina che può essere interessante...
Il seguente script estrae da yahoo-finanza il valore delle azioni del MIBTEL in tempo reale (per yahoo-finanza) dando anche ulteriri informazioni ritrovabili nel sito: http://it.finance.yahoo.com
I dati vengono estratti da un dump con lynx ma il browser può essere modificato purchè la pagina venga inserita in un file temporaneo di lavoro (vedi commenti allo script).
Vi servono anche i codici-azione che trovate nel sito e potete indicare i valori richiesti per ogni titolo.
In ogni caso trovate tutto nei commenti oppure basta chiedere ^^
Come ho detto lo script è aggiustato perchè farebbe parte di una cosa molto più grossa che lavora con grep/sed/awk/bc sul file finale, con la modifica può essere ad esempio usato per conky ma resta il file finale con i dati se qualcuno ci volesse ragionare sopra con altri script.
Per la cronaca, funziona anche su Cygwin
Il seguente script estrae da yahoo-finanza il valore delle azioni del MIBTEL in tempo reale (per yahoo-finanza) dando anche ulteriri informazioni ritrovabili nel sito: http://it.finance.yahoo.com
I dati vengono estratti da un dump con lynx ma il browser può essere modificato purchè la pagina venga inserita in un file temporaneo di lavoro (vedi commenti allo script).
Vi servono anche i codici-azione che trovate nel sito e potete indicare i valori richiesti per ogni titolo.
In ogni caso trovate tutto nei commenti oppure basta chiedere ^^
Come ho detto lo script è aggiustato perchè farebbe parte di una cosa molto più grossa che lavora con grep/sed/awk/bc sul file finale, con la modifica può essere ad esempio usato per conky ma resta il file finale con i dati se qualcuno ci volesse ragionare sopra con altri script.
Per la cronaca, funziona anche su Cygwin
- Codice:
#!/bin/sh
# Visualizza dati azionari da http://it.finance.yahoo.com
# Di default si appoggia a lynx, usabile anche con altri browser
# testuali modificando le istruzioni
# (c)2010 Dante Carraro aka floatman
# <floatman@hotmail.it>
# DATI PRINCIPALI PER IL FUNZIONAMENTO DEL PROGRAMMA -----------
# directory di lavoro (es: ~/.mibwatch)
# assicurarsi che sia permessa la scrittura
PROG_DIR="$HOME/.mibwatch"
# elenco dei titoli, codici da http://it.finance.yahoo.com
# (es: Telecom, Unicredit, ENEL e ENI)
elenco_titoli="
TIT.MI
UCG.MI
ENEL.MI
ENI.MI
"
# informazioni da visualizzare per ogni titolo. Vedere la pagina
# di it.finance.yahoo.com sui singoli titoli per maggiori info.
# Valori Possibili:
# - Ultimo_scambio - Lettera - Capitalizzazione
# - Orario - Target_1A - P/E_ttm
# - Variazione - Min-Max_Giorno - EPS_ttm
# - Chiusura_precedente - Min-Max_Anno - Dividendo/Prezzo
# - Apertura - Volumi
# - Denaro - Vol_medi_3m
dati_richiesti="
Ultimo_scambio
Variazione
Min-Max_Anno
"
function check_values {
for Value in $elenco_titoli; do
# modificare 'lynx -dump' per usare altri browser --------
lynx -dump http://it.finance.yahoo.com/q?s="$Value" > "$PROG_DIR"/tempfile 2> /dev/null
grep "($Value)" "$PROG_DIR"/tempfile | head -1 >> "$PROG_DIR"/alldata
check_data >> "$PROG_DIR"/alldata
done
}
function check_data {
for Line in $dati_richiesti; do
case $Line in
Ultimo_scambio ) grep "Ultimo scambio:" "$PROG_DIR"/tempfile | awk '{print "Quotazione: "$3,$4}'
;;
Orario ) grep "Orario:" "$PROG_DIR"/tempfile | awk '{print $1," "$2}'
;;
Variazione ) grep "Variazione:" "$PROG_DIR"/tempfile | awk '{print $1,$3,$4}'
;;
Chiusura_precedente ) grep "Chiusura Precedente:" "$PROG_DIR"/tempfile | awk '{print "Chius.Prec: "$3}'
;;
Apertura ) grep "Apertura:" "$PROG_DIR"/tempfile | awk '{print $1," "$2}'
;;
Denaro ) grep "Denaro:" "$PROG_DIR"/tempfile | awk '{print $1," "$2}'
;;
Lettera ) grep "Lettera:" "$PROG_DIR"/tempfile | awk '{print $1," "$2}'
;;
Target_1A ) grep "Target 1A:" "$PROG_DIR"/tempfile | awk '{print $1,$2," "$3}'
;;
Min-Max_Giorno ) grep "Min-Max Giorno:" "$PROG_DIR"/tempfile | awk '{print "Min-Max G: "$3,$4,$5}'
;;
Min-Max_Anno ) grep "Min-Max Anno:" "$PROG_DIR"/tempfile | awk '{print "Min-Max A: "$3,$4,$5}'
;;
Volumi ) grep "Volumi:" "$PROG_DIR"/tempfile | awk '{print $1," "$2}'
;;
Vol_medi_3m ) grep "Vol medi (3m):" "$PROG_DIR"/tempfile | awk '{print "V.Medi(3m): "$4}'
;;
Capitalizzazione ) grep "Capitalizzazione:" "$PROG_DIR"/tempfile | awk '{print "Capitalizz: "$2}'
;;
P/E_ttm ) grep "P/E (ttm):" "$PROG_DIR"/tempfile | awk '{print $1,$2," "$3,$4}'
;;
EPS_ttm ) grep "EPS (ttm):" "$PROG_DIR"/tempfile | awk '{print $1,$2," "$3,$4}'
;;
Dividendo/Prezzo ) grep "Dividendo/Prezzo:" "$PROG_DIR"/tempfile | head -1 | awk '{print "Divid/Pr: "$2,$3}'
;;
* ) echo "[Nessun valore selezionato]"
esac
done
echo
}
# main program
if [ ! -d "$PROG_DIR" ]; then
mkdir "$PROG_DIR"
echo "[Nessun valore selezionato]" > "$PROG_DIR"/tempfile
echo "[Nessun valore selezionato]" > "$PROG_DIR"/alldata
echo "[Nessun valore selezionato]" > "$PROG_DIR"/lastdata
fi
check_values
cp "$PROG_DIR"/alldata "$PROG_DIR"/lastdata
cat "$PROG_DIR"/lastdata
rm "$PROG_DIR"/alldata
# EOF
Argomenti simili
» Guida al bash-scripting
» [Bash] Visualizzare proprio IP
» [Bash] Update sistema Debian
» [bash] Da flv a mp3 (tutti i file di una directory)
» [bash] Contare le pagine totali dei pdf in una cartella
» [Bash] Visualizzare proprio IP
» [Bash] Update sistema Debian
» [bash] Da flv a mp3 (tutti i file di una directory)
» [bash] Contare le pagine totali dei pdf in una cartella
Pagina 1 di 1
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.