[Bash] Quotazioni azionarie

Andare in basso

[Bash] Quotazioni azionarie

Messaggio Da floatman il Dom Giu 20, 2010 12:01 pm

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

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
Detto questo...per tutta oggi vado in ferie totale e non faccio più nulla Razz

_________________
HP Compaq nx6110; Debian Testing/Squeeze - Fluxbox

avatar
floatman

Messaggi : 844
Data d'iscrizione : 14.09.09

Visualizza il profilo dell'utente http://myville.altervista.org

Torna in alto Andare in basso

Re: [Bash] Quotazioni azionarie

Messaggio Da vikkio88 il Dom Giu 20, 2010 7:49 pm

figata pazzesca!
avatar
vikkio88
Admin
Admin

Messaggi : 792
Data d'iscrizione : 14.09.09
Età : 29
Località : Palermo

Visualizza il profilo dell'utente http://vikkio88.altervista.org

Torna in alto Andare in basso

Re: [Bash] Quotazioni azionarie

Messaggio Da floatman il Lun Giu 21, 2010 12:09 pm

ohhh grazie Embarassed

_________________
HP Compaq nx6110; Debian Testing/Squeeze - Fluxbox

avatar
floatman

Messaggi : 844
Data d'iscrizione : 14.09.09

Visualizza il profilo dell'utente http://myville.altervista.org

Torna in alto Andare in basso

Re: [Bash] Quotazioni azionarie

Messaggio Da DoMinO il Ven Lug 02, 2010 12:32 pm

Che strafigata xD

DoMinO

Messaggi : 93
Data d'iscrizione : 13.03.10

Visualizza il profilo dell'utente

Torna in alto Andare in basso

Re: [Bash] Quotazioni azionarie

Messaggio Da Contenuto sponsorizzato


Contenuto sponsorizzato


Torna in alto Andare in basso

Torna in alto


 
Permessi di questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum