* bump
* Update ALL the exports with sheet name option
* Update contributing too
* Add in sheet name to each docstring
* Update tests
* Fix the small things for tests
* Converting CONTRIBUTING.md back since I put minimal changes in and it complains
* Fix terminal exit after `--sort p/e` (#4013)
* fix scr sort exit
* rewrite unit test output
* rewind slash replace
* rewind slash replace
* fix regex
* rewrite expected scr tests
* black
Co-authored-by: James Maslek <jmaslek11@gmail.com>
* fix: small typo (#4036)
* fix income comparison error (#4029)
* Update tests due to yfinance error
* I broke tests and fixed them
* Fix tests?
* Missed a few sheet name additions
* missed one more
* Fix some missing sheet_name parameters
* Fix a test I broke
* Update tests due to changes with sheet_name
* Update stocks and common
* Mutual funds just because
* Portfolio update
* Update Forecast
* Update Futures
* Update ETF
* Update Economy
* Update Crypto
* Update others
* Update documentation to explain --sheet-name
* It should be None test
* Add None for sheet_name since empty string can result in errors
* Formatting
* Fix tests
* Update documentation
* Also update the image
* Add back to options commands
Co-authored-by: james <jmaslek11@gmail.com>
Co-authored-by: Jeroen Bouma <jeroenbouma@Jeroens-MacBook-Pro.local>
Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com>
Co-authored-by: jose-donato <43375532+jose-donato@users.noreply.github.com>
Co-authored-by: teh_coderer <me@tehcoderer.com>
* fix inception bug and clean some useless attributes
* reorder attributes
* add returns and cumulative returns
* fix cumulative returns
* fix cumulative returns
* remove cumulative ret
* add some doc and encapsule methods
* order detail
* add more details on docstrings
* wrong docstring
* add commnet
* Update portfolio_engine.py
* fix bug with unsupported type
* Fix plot look when using eval and add query to choices (#3881)
* convert index to datetime and update choices
* uncomment economy integration test
* fix treasury concat bug
* fix datasets concat on duplciates
* Lock ruff version so that new lints dont break our CI (#3905)
* Lock ruff version so that new lints dont break our CI
* Bumped pre-commit ruff version
* fix table header
* fix portfolio integration test
* ruff
* fix tests
* rewrite yfinance call
* fix test_draw
* test_stocks_helper
* bt model
* fix comp analysis
* fix ftd
* fix dd
* fix screener
Co-authored-by: James Maslek <jmaslek11@gmail.com>
Co-authored-by: Colin Delahunty <72827203+colin99d@users.noreply.github.com>
Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt>
* add attribution toolkit
* add attrib to test script for portfolio
* removes yahooquery dependency and early rounding
* Update _index.md
* update feature to include raw and type flags, graph always shows, table output optional, one type of output at a time
* Linting
* Update index
* Update index 2
* Update tests
* changes argument descriptions
* Small fix
* Formatting Black
Co-authored-by: S3908818 <S3908818@student.rmit.edu.au>
Co-authored-by: Louise Platts (S3908818) <88080425+s3908818@users.noreply.github.com>
Co-authored-by: Jeroen Bouma <jer.bouma@gmail.com>
Co-authored-by: James Maslek <jmaslek11@gmail.com>
Co-authored-by: Louise Amy <74476622+louiseamy4@users.noreply.github.com>
Co-authored-by: Jeroen Bouma <jeroenbouma@Jeroens-MacBook-Pro.local>
* normalized way moving average is treated and prevent huge exception prompt
* changed descriptions on docs
* change to check_positive_float
* add integration tests
* fix linting
* add more integration tests
* add more integration tests
* fix linting
* add some po integration tests
* fix flag without prompt
* change orderbook to transactions
* limit warning to portfolio
* change print help
* format portfolio var
* reformat controller
* reformat es
* remove autocompletion
* change print help
* add percentage symbol to summary
* fix holp holv
* fix scripts
* update website doc
* add tqdm progress bars
* fix table spacing
* identify mret tables
* remove positive float from rfr
* flake8
* pylint
* fix reports
* revert to old menu help
* revert to old menu help
* Update test_portfolio.openbb
* quick change on empty lines
Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt>
Co-authored-by: James Maslek <jmaslek11@gmail.com>
* fix rvol
* added .
* remove all ifs
* fix rsharpe, rsortino
* reorder rsort, rsharpe args
* change error msg
* change error msg
* added verification to check if the window len is larger than sample len
* change rbeta msg
* fix var and es
* add more integration tests
* changed boolean params to true booleans
* renamed the file to use test_
Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt>
Co-authored-by: Colin Delahunty <72827203+colin99d@users.noreply.github.com>
* fill etf and prevent different length errors
* auto fill etf sectors and allow 0 value portfolios
* allow 0 value portfolios
* remove unused folder
* allow 1 asset portfolios
* split allocation calls by category in controller
* comment sector allocation model
* get country and region allocations for etf
* add comments and black
* improve comments
* improve comments
* allow for 1 category in sector, country and region
* add progress bars
* linting fix
* fix mypy
* set default date
* fix pylint
* add isin on paexport
* merge main
* auto pre load benchmark
* fix rich table for np.float64
* refactor portfolio allocs
* refactor alloc command
* add isins column
* format output alloc
* rename variable
* fix nan bug
* black
* add ticker conversion to yf format by isin
* warn and removed unsupported ISINs
* solve same day trades bug
* display bench loading progress
* portfolio show
* check if valid isins on preprocessing
* black
* fix bug when region empty
* warn when category is empty
* reformat preprocessing
* codespell
* check if ticker is valid
* flake8
* fix test
* fix bug with trades on holidays
Co-authored-by: Jeroen Bouma <jer.bouma@gmail.com>
* pull sector industry country data from yfinance
* fix imports with missing info
* run black on helper
* fix tests
* fix tests
* fix linting
* autofill stock data and display progress bar
* redirect stock data file
* substitute only stocks not provided by user
* reset benchmark when new portfolio is loaded (bug fix)
* rewrite help, will be fixed in previous pr
* fix mypy
* fix linting
* fix linting with open
* format progress bar
* run black
* avoid clearing of all fields
* reformat error message
* improve returns calculation performance
* general linting
Co-authored-by: Jeroen Bouma <jer.bouma@gmail.com>
Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com>
* adds pythonic portfolio class
* start calculate trades refactoring
* adds comments to portfolio model - delete afterwards
* finish calculate trades refactoring
* restore original portfolio_model.py
* implement calculate_allocations
* adapt and test controller load, show, bench, alloc and perf
* add old code that was ok
* adapt controller
* adapt portfolio_view
* run black on pythonic_portfolio.py
* fix crypto bug
* change column name in example datasets
* substitute portfolio_model.py
* update show command
* push cumulative returns calculation to model
* fix last change in cumulative returns
* add comments on possibly unused code
* run black on changes
* bring metrics from helper to model
* push rolling metrics from view to model
* Details and linting
* Fix tests
* remove empty attribute and rename class
* fix view and controller rf
* change returns calculation method
* remove CASH from code
* remove cash from tickers_list
* run black on changes
* change function name
* adapt to PortfolioModel
* fix tests
* fix tests on help
* fix linting
* call metrics from PortfolioModel
* call drawdown from model
* fix some mypy issues
* fix remaining mypy issues
* fix test
* Fix linting
* Remove unused function
* Small fixes
* Remove old code and adjust summary to simply work
* Update the Excel since CASH is no longer a thing
* Fix tests
* Update the csvs
* Updates to usage of full_shares and more details
* Fix -t flag for perf
Co-authored-by: Jeroen Bouma <jer.bouma@gmail.com>
* Making pa active + pa minor features
Makes pa actice and adds country to the df. The groupby command also gets percents of holding allocation. It also fixes warnings and prepares for a later pr that I'm currently working on.
* Fix linting
* black linter
* Fixes
Should fix everything
* Linting
* Making pa controller to base class standard
* Fix linting
* first metrics
* Adding calmar ratio
* Adding metrics to controller
* Linting
* Linting
* Test fixes
* Test fixes
* Adding tests
* Linting
* Restructuring added tests
* Linting
* Updating hugo website and fixing help
* Fixing commands
* Fix kelly criterion command
* Fixing tests
* Linting
* More linting
Co-authored-by: DidierRLopes <dro.lopes@campus.fct.unl.pt>
Co-authored-by: Jeroen Bouma <jer.bouma@gmail.com>
* improve portfolio controller
* improve menu ux with disabling command when port or bench are not loaded
* allow custom reset with benchmark and portfolio loaded
* bench needs portfolio loaded to use start date, reflect that
* fix tests
* allow to see sum of a portfolio holdings
* add r-square to portfolio
* add skewness of data
* add kurtosis
* add stats
* allow perf command to select a period
* add yearly returns to cumulative return plot
* add individual rolling volatility
* add individual rolling sharpe
* add individual rolling sortino
* add individual rolling beta
* add period to cumulative returns
* clean up on aisle 5
* minor fix
* add volatility, sharpe ratio, sortino ratio and maximum drawdown ratio
* remove duplicated metrics
* check for portfolio and benchmark more modular
* fix tests
* remove sqrt(N) and N from sharpe and sortino calculations
* allow hold to export raw data from tail
* automatically add space before and after table
* add portfolio holdings in percentage
* fix relative dates to be more accurate
* refactor metric command to allow to select a metric of interest and check different periods
* fix cumulative return and implement new yearly return command
* add daily returns graph
* add distribution of daily returns command
* add monthly returns command
* add summary command with multiple metrics for a specific period
* calculate yearly (out)performance
* fix show
* rbeta with benchmark of 1
* improve mret style
* improve title of distribution
* improve volatility
* minor improvement in doc
* improve mret and yret
* tests
* update portfolio content on hugo docs
* fix ycrv hugo docs
* Update _index.md
* Update _index.md
* Update _index.md
* Update _index.md
* Update _index.md
* Update _index.md
* Update _index.md
* Update _index.md
* Update _index.md
* Update _index.md
* Update _index.md
* Update _index.md
* Update _index.md
* Update _index.md
* fix issue
Co-authored-by: Jeroen Bouma <jer.bouma@gmail.com>
* Add in Portfolio Holdings for Attribution functionality
* Update a whole bunch
* Small bugfix and linting
* Remove print statements
* Update Excel to match Yahoo Finance categorization
* Make sure portfolio and benchmark are aligned
* Add in benchmarks, robustness and bugfixing
* Improve the spreadsheet
* Add in allocation model and improve portfolio features
* Bugfixing and more equities in the template
* Bugfix
* Bugfixing
* Add tests and website stuff
* WORK
* Clean up the code
* Add back in terminal changes
* Missing an enter imo
* Documentation fix
* Small fix
* Change code because tests cant handle formatting
Co-authored-by: James Maslek <jmaslek11@gmail.com>
* quick econ fix
* black
* keys and feature flags
* terminal name 👀
* some more replacements
* some more replacements
* edit pyproject
* gst -> openbb
* add example portfolios back to git
* Update api from gst
* sorry. skipping some tests
* another round of names
* another round of test edits
* Missed some .gst refs and update timezone
* water mark stuff
* Fixing Names in terminal.spec and name of GTFF_DEFAULTS to OBBFF_DEFAULTS
* fix more GST to OpenBB Terminal
* Logging : merge conflicts with main
* Revert wrong files
Co-authored-by: Andrew <andrew.kenreich@gmail.com>
Co-authored-by: DidierRLopes <dro.lopes@campus.fct.unl.pt>
Co-authored-by: Chavithra PARANA <chavithra@gmail.com>