Giter Club home page Giter Club logo

avibrazil / investorzilla Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 3.47 MB

Use your investments spreadsheet (Excel, Google Sheets) containing assets’ ledger and balance to get powerful insights of your investments health and performance, in multiple currencies, including crypto and market indexes.

License: GNU General Public License v3.0

Python 90.00% Jupyter Notebook 9.16% Shell 0.43% Makefile 0.42%
cryptocurrency excel google-sheets pandas streamlit yahoo-finance

investorzilla's People

Contributors

avibrazil avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

investorzilla's Issues

Separate views for performance vs wealth

On performance view:

  • Accumulated RoR
  • RoR per period (with tendency line) (new)
  • Gains per period
  • RoR histogram
  • Performance table

On wealth view:

  • Balance x cumulative gains x cumulative savings
  • Savings per period (with tendency line) (new)
  • Wealth evolution

Concept of family of assets

YAML will have a new entry to define family of assets.
UI will have a new dropdown to select family, which will simply populate the list of assets widget.
Example of families and their assets:

  • NFTs:
    • NFT fund 1
    • NFT fund 2
  • Stocks:
    • Stocks fund 1
    • Stocks fund 2
  • Active:
    • fund 1
    • fund 2
  • Crypto:
    • NFT fund 1
    • NFT fund 2
    • Crypto fund 1

i get this error - No module named 'investorzilla'

ModuleNotFoundError: No module named 'investorzilla'
Traceback:
File "/usr/local/lib/python3.8/dist-packages/streamlit/runtime/scriptrunner/script_runner.py", line 534, in _run_script
	exec(code, module.__dict__)
File "/root/investorzilla/investorzilla/streamlit_ui.py", line 11, in <module>
	import investorzilla

this is all my steps in ubuntu 20

apt update
apt upgrade
shutdown -r now
sudo su
cd
apt install python3-pip
pip install streamlit
pip install streamlit --upgrade
pip install Jinja2==3
git clone https://github.com/avibrazil/investorzilla
cd investorzilla/
pip3 install -r requirements.txt --user
pip3 install pandas pyyaml sqlalchemy pandas_datareader
pip3 install streamlit google-api-python-client
https://docs.google.com/spreadsheets/d/1AE0F_mzXTJJuuuQwPnSzBejRrmui01CfUUY1qyvnbkk

cd investorzilla/
streamlit run streamlit_ui.py

pls tell me how solve?

Portfolio with archived status

Invent a flag for portfolio items that will trat them as archived.
Archived portfolio means it will always be read from cache.
It will be retrieved from the internet only if it has no cache.

investorzilla.datacache.DataCache|No cache for kind=BCBCurrencyConverter / ubuntu 20 / python 3.10

SNAG-0008

- type: !!python/name:investorzilla.portfolios.google_sheets.GoogleSheetsBalanceAndLedger ''
  params:
    sheetStructure:
        # This Google Sheet is an example that should work out of the box
        sheet: 1U2SAvRuwcA74heo2dAeFvKuH5zFLowlCGdn4-tcVC9U

and in console show me this:

(env) root@template:~/investorzilla/investorzilla# investorzilla

Collecting usage statistics. To deactivate, set browser.gatherUsageStats to False.


  You can now view your Streamlit app in your browser.

  Network URL: http://192.168.20.14:8502
  External URL: http://181.51.32.154:8502

2023-12-11 17:22:18,657|INFO|investorzilla.datacache.DataCache|No cache for kind=BCBCurrencyConverter and id=USD
2023-12-11 17:22:18,659|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__BCBCurrencyConverter
[SQL:
			SELECT *
			FROM DataCache__BCBCurrencyConverter
			WHERE
				__DataCache_id   = 'USD' AND
				__DataCache_time =
			(
				SELECT DISTINCT __DataCache_time
				FROM DataCache__BCBCurrencyConverter
				WHERE __DataCache_id = 'USD'
				ORDER BY __DataCache_time DESC
				LIMIT 1
			)

		]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 17:22:18,660|INFO|investorzilla.datacache.DataCache|No cache for kind=BCBCurrencyConverter and id=EUR
2023-12-11 17:22:18,661|INFO|investorzilla.datacache.DataCache|No cache for kind=gsheet•generic__ledger and id=1U2SAvRuwcA74heo2dAeFvKuH5zFLowlCGdn4-tcVC9U
2023-12-11 17:22:18,666|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__gsheet•generic__ledger
[SQL:
			SELECT *
			FROM DataCache__gsheet•generic__ledger
			WHERE
				__DataCache_id   = '1U2SAvRuwcA74heo2dAeFvKuH5zFLowlCGdn4-tcVC9U' AND
				__DataCache_time =
			(
				SELECT DISTINCT __DataCache_time
				FROM DataCache__gsheet•generic__ledger
				WHERE __DataCache_id = '1U2SAvRuwcA74heo2dAeFvKuH5zFLowlCGdn4-tcVC9U'
				ORDER BY __DataCache_time DESC
				LIMIT 1
			)

		]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 17:22:18,666|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__BCBCurrencyConverter
[SQL:
			SELECT *
			FROM DataCache__BCBCurrencyConverter
			WHERE
				__DataCache_id   = 'EUR' AND
				__DataCache_time =
			(
				SELECT DISTINCT __DataCache_time
				FROM DataCache__BCBCurrencyConverter
				WHERE __DataCache_id = 'EUR'
				ORDER BY __DataCache_time DESC
				LIMIT 1
			)

		]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 17:22:18,672|INFO|investorzilla.datacache.DataCache|Cache for kind=BCBMarketIndex and id=IPCA has 526 entries and was cached at 2023-12-11 17:18:45.284489
2023-12-11 17:22:18,812|INFO|investorzilla.datacache.DataCache|Cache for kind=BCBMarketIndex and id=CDI has 9446 entries and was cached at 2023-12-11 17:18:46.503898
2023-12-11 17:22:19,470|INFO|investorzilla.datacache.DataCache|Cache for kind=BCBMarketIndex and id=SELIC has 9404 entries and was cached at 2023-12-11 17:18:46.914460
2023-12-11 17:22:19,998|INFO|investorzilla.datacache.DataCache|Cache for kind=BCBMarketIndex and id=IGPM has 414 entries and was cached at 2023-12-11 17:18:45.012878
2023-12-11 17:22:20,036|INFO|investorzilla.datacache.DataCache|Cache for kind=BCBMarketIndex and id=INPC has 535 entries and was cached at 2023-12-11 17:18:45.405681
2023-12-11 17:22:20,070|INFO|investorzilla.datacache.DataCache|No cache for kind=gsheet•generic__balance and id=1U2SAvRuwcA74heo2dAeFvKuH5zFLowlCGdn4-tcVC9U
2023-12-11 17:22:20,072|INFO|investorzilla.datacache.DataCache|No cache for kind=YahooMarketIndex and id=^GSPC
2023-12-11 17:22:20,073|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__YahooMarketIndex
[SQL:
			SELECT *
			FROM DataCache__YahooMarketIndex
			WHERE
				__DataCache_id   = '^GSPC' AND
				__DataCache_time =
			(
				SELECT DISTINCT __DataCache_time
				FROM DataCache__YahooMarketIndex
				WHERE __DataCache_id = '^GSPC'
				ORDER BY __DataCache_time DESC
				LIMIT 1
			)

		]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 17:22:20,072|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__gsheet•generic__balance
[SQL:
			SELECT *
			FROM DataCache__gsheet•generic__balance
			WHERE
				__DataCache_id   = '1U2SAvRuwcA74heo2dAeFvKuH5zFLowlCGdn4-tcVC9U' AND
				__DataCache_time =
			(
				SELECT DISTINCT __DataCache_time
				FROM DataCache__gsheet•generic__balance
				WHERE __DataCache_id = '1U2SAvRuwcA74heo2dAeFvKuH5zFLowlCGdn4-tcVC9U'
				ORDER BY __DataCache_time DESC
				LIMIT 1
			)

		]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 17:22:20,074|INFO|investorzilla.portfolio.GoogleSheetsBalanceAndLedger|Google authentication…
2023-12-11 17:22:20,077|INFO|investorzilla.datacache.DataCache|No cache for kind=YahooMarketIndex and id=SPY
2023-12-11 17:22:20,078|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__YahooMarketIndex
[SQL:
			SELECT *
			FROM DataCache__YahooMarketIndex
			WHERE
				__DataCache_id   = 'SPY' AND
				__DataCache_time =
			(
				SELECT DISTINCT __DataCache_time
				FROM DataCache__YahooMarketIndex
				WHERE __DataCache_id = 'SPY'
				ORDER BY __DataCache_time DESC
				LIMIT 1
			)

		]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 17:22:20,081|INFO|investorzilla.datacache.DataCache|No cache for kind=YahooMarketIndex and id=VOO
2023-12-11 17:22:20,081|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__YahooMarketIndex
[SQL:
			SELECT *
			FROM DataCache__YahooMarketIndex
			WHERE
				__DataCache_id   = 'VOO' AND
				__DataCache_time =
			(
				SELECT DISTINCT __DataCache_time
				FROM DataCache__YahooMarketIndex
				WHERE __DataCache_id = 'VOO'
				ORDER BY __DataCache_time DESC
				LIMIT 1
			)

		]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 17:22:20,078|INFO|investorzilla.datacache.DataCache|No cache for kind=YahooMarketIndex and id=IVV
2023-12-11 17:22:20,082|INFO|investorzilla.datacache.DataCache|No cache for kind=YahooMarketIndex and id=^BVSP
2023-12-11 17:22:20,083|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__YahooMarketIndex
[SQL:
			SELECT *
			FROM DataCache__YahooMarketIndex
			WHERE
				__DataCache_id   = '^BVSP' AND
				__DataCache_time =
			(
				SELECT DISTINCT __DataCache_time
				FROM DataCache__YahooMarketIndex
				WHERE __DataCache_id = '^BVSP'
				ORDER BY __DataCache_time DESC
				LIMIT 1
			)

		]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 17:22:20,083|INFO|investorzilla.datacache.DataCache|No cache for kind=YahooMarketIndex and id=^DJI
2023-12-11 17:22:20,083|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__YahooMarketIndex
[SQL:
			SELECT *
			FROM DataCache__YahooMarketIndex
			WHERE
				__DataCache_id   = 'IVV' AND
				__DataCache_time =
			(
				SELECT DISTINCT __DataCache_time
				FROM DataCache__YahooMarketIndex
				WHERE __DataCache_id = 'IVV'
				ORDER BY __DataCache_time DESC
				LIMIT 1
			)

		]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 17:22:20,084|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__YahooMarketIndex
[SQL:
			SELECT *
			FROM DataCache__YahooMarketIndex
			WHERE
				__DataCache_id   = '^DJI' AND
				__DataCache_time =
			(
				SELECT DISTINCT __DataCache_time
				FROM DataCache__YahooMarketIndex
				WHERE __DataCache_id = '^DJI'
				ORDER BY __DataCache_time DESC
				LIMIT 1
			)

		]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 17:22:37,649|INFO|investorzilla.datacache.DataCache|Set cache to kind=BCBCurrencyConverter, id=USD, time=2023-12-11 17:22:37.648424+00:00
2023-12-11 17:22:38,582|INFO|investorzilla.datacache.DataCache|Set cache to kind=BCBCurrencyConverter, id=EUR, time=2023-12-11 17:22:38.581396+00:00
2023-12-11 17:22:49,181|INFO|investorzilla.datacache.DataCache|No cache for kind=YahooMarketIndex and id=^IXIC
2023-12-11 17:22:49,182|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__YahooMarketIndex
[SQL:
			SELECT *
			FROM DataCache__YahooMarketIndex
			WHERE
				__DataCache_id   = '^IXIC' AND
				__DataCache_time =
			(
				SELECT DISTINCT __DataCache_time
				FROM DataCache__YahooMarketIndex
				WHERE __DataCache_id = '^IXIC'
				ORDER BY __DataCache_time DESC
				LIMIT 1
			)

		]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 17:22:49,249|INFO|investorzilla.datacache.DataCache|No cache for kind=YahooMarketIndex and id=QQQM
2023-12-11 17:22:49,249|INFO|investorzilla.datacache.DataCache|(sqlite3.OperationalError) no such table: DataCache__YahooMarketIndex
[SQL:
			SELECT *
			FROM DataCache__YahooMarketIndex
			WHERE
				__DataCache_id   = 'QQQM' AND
				__DataCache_time =
			(
				SELECT DISTINCT __DataCache_time
				FROM DataCache__YahooMarketIndex
				WHERE __DataCache_id = 'QQQM'
				ORDER BY __DataCache_time DESC
				LIMIT 1
			)

		]
(Background on this error at: https://sqlalche.me/e/20/e3q8)
2023-12-11 17:23:06,903|INFO|investorzilla.datacache.DataCache|Set cache to kind=YahooMarketIndex, id=IVV, time=2023-12-11 17:23:06.902823+00:00
2023-12-11 17:23:06,913|INFO|investorzilla.datacache.DataCache|Set cache to kind=YahooMarketIndex, id=^BVSP, time=2023-12-11 17:23:06.912169+00:00
2023-12-11 17:23:07,014|INFO|investorzilla.datacache.DataCache|Set cache to kind=YahooMarketIndex, id=SPY, time=2023-12-11 17:23:07.013611+00:00
2023-12-11 17:23:09,282|INFO|investorzilla.datacache.DataCache|Cache empty for kind=YahooMarketIndex and id=QQQ
2023-12-11 17:23:09,293|INFO|investorzilla.datacache.DataCache|Set cache to kind=YahooMarketIndex, id=VOO, time=2023-12-11 17:23:09.292406+00:00
2023-12-11 17:23:10,572|INFO|investorzilla.datacache.DataCache|Set cache to kind=YahooMarketIndex, id=QQQM, time=2023-12-11 17:23:10.564232+00:00
2023-12-11 17:23:10,604|INFO|investorzilla.datacache.DataCache|Set cache to kind=YahooMarketIndex, id=^DJI, time=2023-12-11 17:23:10.603471+00:00
2023-12-11 17:23:10,813|INFO|investorzilla.datacache.DataCache|Set cache to kind=YahooMarketIndex, id=^GSPC, time=2023-12-11 17:23:10.813061+00:00
2023-12-11 17:23:11,106|INFO|investorzilla.datacache.DataCache|Cache for kind=BCBCurrencyConverter and id=USD has 68112 entries and was cached at 2023-12-11 17:22:37.648424
2023-12-11 17:23:12,210|INFO|investorzilla.datacache.DataCache|Set cache to kind=YahooMarketIndex, id=^IXIC, time=2023-12-11 17:23:12.210234+00:00
2023-12-11 17:23:16,161|INFO|investorzilla.datacache.DataCache|Cache for kind=BCBCurrencyConverter and id=EUR has 63762 entries and was cached at 2023-12-11 17:22:38.581396

model portfolio vs proposed portfolio

Need for a solution to handle portfolio calculations and interactions.

The proposed portfolio refers to the recommended investment allocation for a client’s portfolio. It is a portfolio composition suggested by financial advisors based on the client’s profile and investment goals. The proposed portfolio takes into account various factors such as risk tolerance, investment horizon, and financial objectives.

the client’s portfolio is composed of different financial products, such as funds (also known as FIC, Collective Investment Funds) and titles (e.g., stocks). Each product generates a balance for the client, representing the value of their investments. The client’s portfolio is the aggregation of these balances.

The model portfolio, on the other hand, is the recommended allocation of investments at the asset level. Instead of specifying individual funds or titles, the model portfolio suggests the percentage allocation for different asset types. For example, it may recommend allocating 50% to variable income products, 30% to fixed income products, and 20% to alternative investments.

The proposed portfolio is derived from the model portfolio but allows for customization and adjustments based on the client’s preferences. The client can make changes to the proposed portfolio by modifying the allocation percentages or adding/removing specific funds or titles. These changes reflect the client’s investment decisions and preferences.

the proposed portfolio requires a user-friendly interface where financial advisors can interact with the data. The interface should allow them to edit values, add or delete funds/titles, and recalculate the portfolio composition and performance in real-time. The proposed portfolio should be dynamic and responsive to changes made by the advisor.

Overall, the proposed portfolio is a customizable investment allocation recommended by financial advisors based on the model portfolio. It allows for adjustments and modifications to suit the client’s preferences and investment decisions. The goal is to provide a user-friendly interface that enables financial advisors to interact with the portfolio data, make changes, and recalculate the portfolio composition and performance in real-time.

Example in sheet:
SNAG-0052

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.