<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.slacky.eu/wikislack/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
		<id>http://www.slacky.eu/wikislack/index.php?title=Automatizzare_la_gestione_dei_titoli_di_borsa&amp;feed=atom&amp;action=history</id>
		<title>Automatizzare la gestione dei titoli di borsa - Cronologia</title>
		<link rel="self" type="application/atom+xml" href="http://www.slacky.eu/wikislack/index.php?title=Automatizzare_la_gestione_dei_titoli_di_borsa&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/wikislack/index.php?title=Automatizzare_la_gestione_dei_titoli_di_borsa&amp;action=history"/>
		<updated>2013-05-24T22:51:19Z</updated>
		<subtitle>Cronologia della pagina su questo sito</subtitle>
		<generator>MediaWiki 1.20.3</generator>

	<entry>
		<id>http://www.slacky.eu/wikislack/index.php?title=Automatizzare_la_gestione_dei_titoli_di_borsa&amp;diff=4336&amp;oldid=prev</id>
		<title>Slacky il 15:58, 21 ott 2007</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/wikislack/index.php?title=Automatizzare_la_gestione_dei_titoli_di_borsa&amp;diff=4336&amp;oldid=prev"/>
				<updated>2007-10-21T15:58:12Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nuova pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Script]]&lt;br /&gt;
= Descrizione =&lt;br /&gt;
Lo script consente di automatizzare la gestione dei titoli di borsa; si inserisce codice isin, quantità e prezzo di acquisto delle azioni acquistate; ogni volta che si vuole controllare l'andamento dei titoli in possesso basta eseguire lo script, che calcola il guadagno/la perdita per tipo di azione a seconda del prezzo corrente; una volta venduto un pacchetto di titoli lo si può cancellare; il sistema estrae le quotazioni dal sito www.borsa.it&lt;br /&gt;
= Download =&lt;br /&gt;
http://www.slacky.eu/misto/concorso/paoletta/borsa.sh&lt;br /&gt;
= Script =&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
&lt;br /&gt;
file_src=/tmp/borsa.src&lt;br /&gt;
url=&amp;quot;http://www.borse.it/Cerca.php&amp;quot;&lt;br /&gt;
db=~/.borsa/database.db&lt;br /&gt;
&lt;br /&gt;
numberOfGain=0&lt;br /&gt;
numberOfLoss=0&lt;br /&gt;
numberSamePrice=0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Function - Testing Internet Connection (thanks gall0ws)&lt;br /&gt;
conn()&lt;br /&gt;
{	&lt;br /&gt;
	ping -c1 -W1 borsa.it &amp;amp;&amp;gt; /dev/null || {&lt;br /&gt;
	echo -e $MSG_ERR_CONNECTION &lt;br /&gt;
	exit 1 &lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
# Function - Testing if www.borsa.it is working properly&lt;br /&gt;
isWorking()&lt;br /&gt;
{&lt;br /&gt;
    echo &amp;quot;tipo=0&amp;amp;rtype=ISIN&amp;amp;nome=NL0000226223&amp;amp;x=25&amp;amp;y=9&amp;quot;  | lynx  -post-data $url &amp;amp;&amp;gt;$file_src&lt;br /&gt;
    name=$(cat $file_src | grep &amp;quot;\-\|+\|=\.gif&amp;quot; |  grep -o &amp;quot;\[[0-9][0-9]\][^0-9]*&amp;quot;  | head -1 |  cut -c 5-)&lt;br /&gt;
    currentPrice=$(cat $file_src |  grep &amp;quot;\-\|+\|=\.gif&amp;quot;  | grep &amp;quot;$name&amp;quot; | grep -o  &amp;quot;\w*,\w*&amp;quot; | head -1)&lt;br /&gt;
    if [ &amp;quot;$currentPrice&amp;quot; = &amp;quot;&amp;quot; ];then&lt;br /&gt;
	echo &amp;quot;valori non disponibili!&amp;quot;&lt;br /&gt;
	exit 1&lt;br /&gt;
    else&lt;br /&gt;
	rm $file_src&lt;br /&gt;
    fi	  &lt;br /&gt;
}&lt;br /&gt;
# Function - It chooses isin code&lt;br /&gt;
find_isin(){&lt;br /&gt;
    if [ -f $db ]; then	&lt;br /&gt;
    	echo &amp;quot;&amp;quot;;echo&amp;quot;&amp;quot;&lt;br /&gt;
    	echo -e &amp;quot;\033[01;32mQUOTAZIONI TITOLI\033[0;33m&amp;quot;&lt;br /&gt;
    	echo &amp;quot;&amp;quot;;echo&amp;quot;&amp;quot;; echo &amp;quot;&amp;quot;&lt;br /&gt;
    	while read all&lt;br /&gt;
    	do&lt;br /&gt;
    		isin=$(echo $all | cut -d &amp;quot;#&amp;quot; -f 1)&lt;br /&gt;
    		purchasePrice=$(echo $all | cut -d &amp;quot;#&amp;quot; -f 2)&lt;br /&gt;
		howMany=$(echo $all | cut -d &amp;quot;#&amp;quot; -f 3)&lt;br /&gt;
        	alg $isin $purchasePrice $howMany&lt;br /&gt;
		echo &amp;quot;&amp;quot;&lt;br /&gt;
    	done&amp;lt;$(echo $db)&lt;br /&gt;
    else	    &lt;br /&gt;
    	help&lt;br /&gt;
    	exit &lt;br /&gt;
    fi	&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Function - Help message&lt;br /&gt;
help()&lt;br /&gt;
{   &lt;br /&gt;
    echo &amp;quot;con l'opzione 'i' inserisci un titolo in questo modo: borsa.sh i ISIN prezzo_acquisto quantità&amp;quot;&lt;br /&gt;
    echo &amp;quot;&amp;quot;&lt;br /&gt;
    echo &amp;quot;con l'opzione 'd' cancelli un titolo in questo modo: borsa.sh d ISIN&amp;quot;&lt;br /&gt;
    echo &amp;quot;&amp;quot;&lt;br /&gt;
    echo &amp;quot;senza opzioni controlla quanto guadagni/perdi vendendo all'istante tutte le azioni&amp;quot;&lt;br /&gt;
    echo &amp;quot;di cui sei in possesso&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Function - It removes the temporary files&lt;br /&gt;
remove_tmp()&lt;br /&gt;
{&lt;br /&gt;
	rm -rf $file_src&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Function - Search Algorithm&lt;br /&gt;
alg()&lt;br /&gt;
{	&lt;br /&gt;
	echo &amp;quot;tipo=0&amp;amp;rtype=ISIN&amp;amp;nome=$1&amp;amp;x=25&amp;amp;y=9&amp;quot;  | lynx  -post-data $url &amp;amp;&amp;gt;$file_src&lt;br /&gt;
	name=$(cat $file_src | grep &amp;quot;\-\|+\|=\.gif&amp;quot; |  grep -o &amp;quot;\[[0-9][0-9]\][^0-9]*&amp;quot;  | head -1 |  cut -c 5-)	&lt;br /&gt;
	#name=$(cat $file_src | grep &amp;quot;\[67\]&amp;quot; | grep \.gif | grep -o &amp;quot;\[67\][^0-9]*&amp;quot; | cut -c 5-)&lt;br /&gt;
	currentPrice=$(cat $file_src |  grep &amp;quot;\-\|+\|=\.gif&amp;quot;  | grep &amp;quot;$name&amp;quot; | grep -o  &amp;quot;\w*,\w*&amp;quot; | head -1)&lt;br /&gt;
	purchasePriceForSed=$(echo $2 | sed &amp;quot;s/\,/\./&amp;quot;)&lt;br /&gt;
	currentPriceForSed=$(echo $currentPrice | sed &amp;quot;s/\,/\./&amp;quot;)&lt;br /&gt;
	ris=$(echo &amp;quot;$currentPriceForSed - $purchasePriceForSed &amp;gt;= 0&amp;quot; | bc -l)&lt;br /&gt;
	gainForSed=$(echo &amp;quot;$currentPriceForSed - $purchasePriceForSed&amp;quot; | bc -l)&lt;br /&gt;
	gain=$(echo &amp;quot;$gainForSed * $3&amp;quot; | bc -l)&lt;br /&gt;
	gain=$(echo $gain | sed &amp;quot;s/\./\,/&amp;quot;)&lt;br /&gt;
	print &amp;quot;$name&amp;quot; &amp;quot;$3&amp;quot;  &amp;quot;$purchasePrice&amp;quot; &amp;quot;$currentPrice&amp;quot; &amp;quot;$gainForSed&amp;quot; &amp;quot;$gain&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
print(){&lt;br /&gt;
        &lt;br /&gt;
        echo -e &amp;quot;\033[01;31m$1 \033[0;33m &amp;quot;&lt;br /&gt;
	echo &amp;quot;&amp;quot;&lt;br /&gt;
	echo &amp;quot;ne hai comprate $2 al prezzo iniziale di $3 euro l'una;&amp;quot;&lt;br /&gt;
	echo &amp;quot;&amp;quot;&lt;br /&gt;
	echo &amp;quot;ora valgono $4 l'una&amp;quot;&lt;br /&gt;
	echo &amp;quot;&amp;quot;&lt;br /&gt;
	bool=$(echo &amp;quot;$5 &amp;gt; 0.0&amp;quot; | bc -l)&lt;br /&gt;
	if [ &amp;quot;$bool&amp;quot; -eq 1 ]; then&lt;br /&gt;
	    echo -e &amp;quot;\033[01;31mGUADAGNERESTI\033[0;33m $6 euro vendendole tutte ora&amp;quot;&lt;br /&gt;
	    numberOfGain=`echo &amp;quot;$numberOfGain + 1&amp;quot; | bc -l`&lt;br /&gt;
	    &lt;br /&gt;
	else&lt;br /&gt;
	    bool=$(echo &amp;quot;$5 &amp;lt; 0.0&amp;quot; | bc -l)&lt;br /&gt;
	    if [ &amp;quot;$bool&amp;quot; -eq 1 ]; then&lt;br /&gt;
		gain=$(echo $6 | sed &amp;quot;s/\-//&amp;quot;)&lt;br /&gt;
		echo -e &amp;quot;\033[01;31mPERDERESTI\033[0;33m $gain euro vendendole tutte ora&amp;quot;&lt;br /&gt;
		numberOfLoss=`echo &amp;quot;$numberOfLoss + 1&amp;quot; | bc -l`&lt;br /&gt;
	    else&lt;br /&gt;
		echo -e &amp;quot;prezzo invariato&amp;quot;&lt;br /&gt;
		numberSamePrice=`echo &amp;quot;$numberSamePrice + 1&amp;quot; | bc -l`&lt;br /&gt;
	    fi	&lt;br /&gt;
	fi&lt;br /&gt;
	echo &amp;quot;&amp;quot;;echo &amp;quot;&amp;quot;;echo &amp;quot;&amp;quot;;echo &amp;quot;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&amp;quot;;echo &amp;quot;&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$1&amp;quot; in&lt;br /&gt;
    &amp;quot;d&amp;quot;)&lt;br /&gt;
    	isPresent=`grep -o $2 $db`&lt;br /&gt;
    	if [ &amp;quot;$isPresent&amp;quot; = &amp;quot;&amp;quot;  ];then  &lt;br /&gt;
    	    echo &amp;quot;$2 non e' presente nel db&amp;quot;&lt;br /&gt;
	    exit 1&lt;br /&gt;
	fi    &lt;br /&gt;
	sed &amp;quot;/$2/d&amp;quot; -i $db&lt;br /&gt;
	if [ $? -eq 1 ]&lt;br /&gt;
	    then&lt;br /&gt;
	    echo &amp;quot;problemi nella cancellazione del record&amp;quot;&lt;br /&gt;
	    exit 1&lt;br /&gt;
	fi	;;&lt;br /&gt;
    &lt;br /&gt;
    &amp;quot;i&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	if [ ! -d ~/.borsa/ ];then&lt;br /&gt;
		mkdir ~/.borsa/     &lt;br /&gt;
		touch $db&lt;br /&gt;
	fi&lt;br /&gt;
    	if [ \( &amp;quot;$2&amp;quot; != &amp;quot;&amp;quot; \) -a \( &amp;quot;$3&amp;quot; != &amp;quot;&amp;quot; \) -a  \( &amp;quot;$4&amp;quot; != &amp;quot;&amp;quot; \) ];then&lt;br /&gt;
		echo &amp;quot;$2#$3#$4&amp;quot; &amp;gt;&amp;gt; $db&lt;br /&gt;
	else&lt;br /&gt;
		help&lt;br /&gt;
		exit 1&lt;br /&gt;
	fi		&lt;br /&gt;
	;;&lt;br /&gt;
    &amp;quot;h&amp;quot;)&lt;br /&gt;
	help&lt;br /&gt;
	;;&lt;br /&gt;
    *)                                        &lt;br /&gt;
	&lt;br /&gt;
	if [ ! -f $db ];then&lt;br /&gt;
		help     &lt;br /&gt;
		exit&lt;br /&gt;
	fi&lt;br /&gt;
	conn	    &lt;br /&gt;
	isWorking&lt;br /&gt;
	find_isin&lt;br /&gt;
	echo &amp;quot;azioni +: $numberOfGain&amp;quot;&lt;br /&gt;
	echo &amp;quot;azioni -: $numberOfLoss&amp;quot;&lt;br /&gt;
	if [ &amp;quot;$numberSamePrice&amp;quot; -ne 0 ];then&lt;br /&gt;
	    echo &amp;quot;azioni =: $numberSamePrice&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
	remove_tmp&lt;br /&gt;
	;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Data: 21/10/2007&lt;br /&gt;
* Autore: Paoletta&lt;/div&gt;</summary>
		<author><name>Slacky</name></author>	</entry>

	</feed>