alensiljak / asset-allocation-python Goto Github PK
View Code? Open in Web Editor NEWAsset Allocation implementation in Python
License: GNU General Public License v3.0
Asset Allocation implementation in Python
License: GNU General Public License v3.0
allow setting difference threshold (i.e. 20%)
and mark the rows in the output, with difference % larger than this value
Use Price Db library for storing and fetching the security prices.
Allow a command-line interface (CLI) for easy testing and use.
Links:
In addition to #16, allow displaying stock information for each asset class:
Indent stock info one level below each class. This is not shown by default but a switch enables it.
To the package setup.
Generate schema with SQLAlchemy. After #1, this is the next step in accessing the data store.
Links:
check the values manually:
Allow editing asset class from cli.
If modifying Allocation, always recalculate total. It has to be 100%. Provide a Warning if it does not. Exception would block editing while Warning allows the user to modify another record and correct the allocation.
aa edit "id" --allocation "10"
for each asset class calculate current allocation and difference to set allocation.
In order to get the cash asset class amount, there must be a setting that lists the cash accounts to use.
Options:
The second option should work well, unless there is a specific need to list multiple accounts explicitly.
Since the default option is to output ASCII-formatted asset allocation report, a parameter would allow formatting the output as HTML.
Only works with the print (default) option.
--output html
This is intended for GnuCash Portfolio.
Accept a date parameter and request prices on this day, to allow displaying historical reports.
Find holdings that are not part of asset allocation.
These are securities (non-currency) that
Add the setting for default currency, and perhaps a cli parameter.
The currency is currently hard-coded.
As noted in #1, the price database will need to be external. Perhaps another tool, that populates the data?
Try some of the available options on Android, based on the list:
Allow creating an asset class record through cli.
aa add "asset class name" --parent "id"
Depends on #5.
Setting for the default currency
This text file can be used by pricedb to download prices.
One stock can belong to multiple asset classes. I.e. a bond fund belongs 60% to international and 40% to domestic bonds.
between allocated % / value and current.
add columns to the output
this is used for threshold (i.e. 20% diff triggers a notification)
Create a method for AA model validation.
It can be called via CLI explicitly. It is also utilized at some key points in the app. The validation errors are not exceptions but are reported to the user so that they can be mitigated.
Especially useful when the partial allocation is implemented as it will ensure that the value of any specific symbol is correctly allocated among asset classes.
From alensiljak/gnucash-portfolio#44.
Allow manual adjustments (buffers) to allocation difference amounts.
This is used when switching allocations but do not want to make an immediate transfer but freeze the amount based on the current prices.
The resulting amount will then depend on the price swings. When allocation is increased by purchasing more stock, the adjustment can be modified.
Create a data store for asset allocation. Use the implementation from MoneyManagerEx for Android for start.
When using --full parameter, for Cash asset class, display line per currency.
Instead of assembling the rows, create a view model that is to be used for display.
The model is a display row, with columns as properties. Simple string values?
publish via Pip, as a precursor to #22.
Option to display the Asset Class tree with IDs, assigned allocations.
Configuration file is required in order not to constantly repeat parameters.
When loading the currency rates, use the currency parameter to locate the correct currency pair. This is for safety in case there are rates expressed in multiple currencies.
Create a package so that it is available to other projects.
Links:
Compare the report to the one in MMEX for Android and identify any discrepancies.
Also compare to GC Portfolio.
the show option displays an ascii report for asset allocation
Depends on #2 to get the aa tree.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.