stockfolio

Created: 2012-03-22 00:22
Updated: 2018-12-24 03:01

README.md

Description

Track your stock portfolio and stock watchlist from the command line.

This mainly leverages the Google Finance data, it is not using the GData Google Finance API though, and is not storing your portfolio information in Google. Read the motivation.

Install

$ gem install stockfolio

Usage

Search for a stock

$ ./bin/stockfolio search "Tesla Motors"
+-------------+---------------------------+
| Symbol      | Name                      |
+-------------+---------------------------+
| NASDAQ:TSLA | Tesla Motors Inc          |
| FRA:TL0     | TESLA MOTORS INC. DL-,001 |
+-------------+---------------------------+
2 rows in set

Adding stock to the watch list

$ stockfolio watch NASDAQ:AAPL
Added NASDAQ:AAPL to watchlist - current price $602.50

See today's performance for the watch list

$ stockfolio watchlist
+--------+------------+----------------+
| Symbol | Last Price | Change         |
+--------+------------+----------------+
| AAPL   | $602.50    | -3.46 (-0.57%) |
+--------+------------+----------------+
1 row in set

Removing stock from the watch list

$ stockfolio unwatch NASDAQ:AAPL

Check historical data

$ stockfolio historical NASDAQ:AAPL 2011-12-25 2011-12-31
+------------+--------+--------+--------+--------+---------+
| date       | open   | close  | low    | high   | volume  |
+------------+--------+--------+--------+--------+---------+
| 2011-12-30 | 405.00 | 405.00 | 405.00 | 405.00 | 0       |
| 2011-12-29 | 403.40 | 405.12 | 400.51 | 405.65 | 7719863 |
| 2011-12-28 | 406.89 | 402.64 | 401.34 | 408.25 | 8173461 |
| 2011-12-27 | 403.10 | 406.53 | 403.02 | 409.09 | 9472659 |
+------------+--------+--------+--------+--------+---------+
4 rows in set

Create a portfolio

$ stockfolio create 401k
Created portfolio "401k"

Add a buy transaction to portfolio

$ stockfolio buy --portfolio 401k --symbol NASDAQ:AAPL --price 602.50 --quantity 10 --fee 9.99 --date 2012/03/20
Added BUY  of 10 NASDAQ:AAPL to 401k

See your current position

$ stockfolio positions 401k
+--------+------------+----------------+------------+--------+------------+--------------+--------+--------+
| Symbol | Last Price | Change         | Day's Gain | Shares | Cost Basis | Market Value | Gain   | Gain % |
+--------+------------+----------------+------------+--------+------------+--------------+--------+--------+
| AAPL   | $602.5     | -3.46 (-0.57%) | -34.6      | 10     | $6034.99   | $6025.0      | $-9.99 | -0.2%  |
+--------+------------+----------------+------------+--------+------------+--------------+--------+--------+


# all combined positions
$ stockfolio positions
+--------+------------+----------------+------------+--------+------------+--------------+--------+--------+
| Symbol | Last Price | Change         | Day's Gain | Shares | Cost Basis | Market Value | Gain   | Gain % |
+--------+------------+----------------+------------+--------+------------+--------------+--------+--------+
| AAPL   | $602.5     | -3.46 (-0.57%) | -34.6      | 10     | $6034.99   | $6025.0      | $-9.99 | -0.2%  |
+--------+------------+----------------+------------+--------+------------+--------------+--------+--------+

See list of transactions

$ stockfolio transactions 401k

Delete a transaction

$ stockfolio delete transaction 401k 1

Delete a portfolio

$ stockfolio delete portfolio 401k

Configuration

Configure stockfolio with a ~/.stockfolio.yml, which is loaded before every command request.

For example, to configure where the database is stored:

#
db: ~/Dropbox/.stockfolio.db

By default the database file is stored in ~/.stockfolio.db

Motivation

After seeing all that user tracking news regarding Google, I've decided to not be logged in on google when doing searches, which meant moving away from a few tools for me including Google Finance and particularly the Portfolio section, which gave me a nice quick glance at my stock portfolio.

For a while I was not sure of which form the replacement would take and after running into Hirb and Boson, I decided that a command line tool was just going to be fine, I could store the database file where I want

TODO

Encrypting database file Rework buy/sell commands Support for short sell and buy to cover

Cookies help us deliver our services. By using our services, you agree to our use of cookies Learn more