Commit Graph

38 Commits

Author SHA1 Message Date
Theodore Aptekarev
15d1870194 Reorganize project extras for a pip installable package (#3432)
* Re-solve the dependencies for optimization extras

* Remove unused reportlab helpers

* Update install from source and troubleshooting docs

* Fix typos found by cspell

* Prevent po menu from launching when optimization toolkit not installed

* Add optimization dependencies to default requirements.txt for the CI

* Add optimization toolkit installation to the CI

* Fix markdown linting

* Update CI test dependency installation for matrix tests

* Fix markdown linting

* Update source installation docs

* Clean up ToC in the main readme

* Update the SDK documentation

* Fix markdown linting after making readme sections linkable

* Fix more markdown linting

* Fix more markdown linting

* Update secrets detection with exclusion rules

* Bump detect-secrets configuration

* Tune secret detector

* Fix more markdown linting

* Add optimization toolkit install to installer GH actions

* Add optimization toolkit install to docker build

* Fix typos

* Add "all" extras setting to install torch and riskfolio

* Move forecasting dependencies to pyproject.toml

* Update CI build configs

* Update documentation to feature the "all" extra

* Lint markdown

* Update docs to specify requirement of having a C compiler

* Added log Id to codesigning steps in inteel Macos workflow

* Changed disk for the m1 macos build

* Changed disk for the m1 macos build

* Changed disk for the intel macos build

* taking out sigtool removal line

* Remove dev version number from pyproject.toml

* removing sigtool from all build steps

* changes to m1 build and commenting test_report_economy

* more m1 build changes

* testing exit on conda setup

* some more

* changing shell to bash to setup conda

* bash on lines

* bash on all lines

* small bash removals

* intel fix and test_crypto int test

* upgrading setupminiconda version

* adding back in intel conda init and reset

* intel removal of init

* taking bash back out from m1

* removing old codesign lines

* adding codesign specific binaries

* ssl fix for all terminal

* removing if installer

* various ssl fixes across commands

* fixing ssl mistake

* integration test changes

* Linting + remove comment

* Update poetry.lock

* Update requirements

* Update the docs to mention that PO is not working on arm arch

* Update deps to pin setuptools

* Disable reports on pyinstaller packaged version

* Update reports

* small grammar change for forecast report message

* Pin grpcio following introduced regression in 1.51.0

* Update docs to reflect changes in how optimization is installed

Co-authored-by: Luqman Bello <lb@Luqmans-MacBook-Pro.local>
Co-authored-by: James Simmons <simmonsj330@gmail.com>
Co-authored-by: James Simmons <53658028+simmonsj330@users.noreply.github.com>
Co-authored-by: James Maslek <jmaslek11@gmail.com>
Co-authored-by: Chavithra <chavithra@gmail.com>
2022-11-22 12:33:59 -05:00
Colin Delahunty
87458c965d Stocks Suggestor Repair (#3477)
* broken edition

* Fixed issue

* Update StockController

* Update choices generation

* Update parent_classes

* Update choices generation

* Update choices generation

* Update crypto_controller

* Update DefiController

* Update crypto/disc controller

* Update crypto/dd

* Update choices generation

* Update crypto : dd + nft

* Update crypto/onchain

* Update crypto_controller

* Linting

* Update crypto/ov

* Linting

* Update crypto/ov

* Update crypto/qa

* Update crypto/tools

* Update crypto/ta + dd

* Linting

* Update alt

* Tests fix crypto

* Update future

* Update futures

* Refactored through Options

* Tests + Linting

* finished stocks refactor

* Update stocks/sia

* finished stocks refactor

* Added fixes

* Added fix

* Tests

* Fix conditions

* Fix portfolio

* Prepare for merge

Co-authored-by: Chavithra PARANA <chavithra@gmail.com>
Co-authored-by: northern-64bit <75195383+northern-64bit@users.noreply.github.com>
2022-11-21 17:54:26 +01:00
montezdesousa
1d3e468cb9 Portfolio optimization - plot, show and load endpoints (#3443)
* minor changes

* add spaces to print help

* start _show refactoring

* partial refactor po

* fix ef view

* refactor plot

* remove some unused stuff

* refactor charts

* forgot this

* validate input type

* change func name

* rename some endpoints

* move statics

* turn some args to kwargs

* rewrite equal docstring

* equal docstring again

* add docstrings and move some statics

* fix maxsharpe terminal bug

* refactor show

* fix ef

* add integration tests

* fix category bug

* fill some examples

* add more examples and fix nco

* add more examples

* add one more example

* add examples file

* add examples to load

* add detail to example

* add integration tests

* fix doc

* fix teste

* black

* flake

* pylint

* Linting

* Fix return

* Trying to fix display_plot

* display_rc_chart -> display_rc

Co-authored-by: Chavithra PARANA <chavithra@gmail.com>
2022-11-18 20:56:16 +00:00
montezdesousa
570e579067 Portfolio docstring example fixes and some bugs (#3431)
* fix doctest

* fix some type hints

* reorganize portfolio folders

* fix rfr

* fix vol bug

* fix more docs

* fix failing test

* doc typo

* numpy fix

* pydocstyle

* regenerate website docs
2022-11-18 19:30:55 +00:00
montezdesousa
8e9e6bd57f Incorporate portfolio class into SDK (#3401)
* create functions to interact with portfolio

* fix some docstrings

* view docstrings

* make portfolio loading available in sdk

* reorder some methods

* fix bug

* update controller

* update website

* remove import

* change input name

* regenerate website

* change portfolio arg name

* fix metrics bugs

* fix report

* refactor assets alloc

* refactor assets sectors alloc

* remove unecessary attributes

* refactor allocaasset sector

* reorganize class

* first refactor alloc

* refactor portfolio alloc

* black

* fix alloc bug

* regenerate sdk website

* fix alloc bugs

* forgot this exception

* some refactor on portfolio alloc country region

* fix some allocation bugs

* add examples

* regenerate website

Co-authored-by: James Maslek <jmaslek11@gmail.com>
2022-11-14 11:27:34 -05:00
Sammac-dev
aed683f440 Feature/attribution toolkit (#3156)
* 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>
2022-11-11 10:28:05 +01:00
James Simmons
c8df2c39ce Removing autocomplete for all limit (#3322)
* all limit fixes

* flake

Co-authored-by: James Maslek <jmaslek11@gmail.com>
2022-11-10 13:13:48 -05:00
montezdesousa
9951461df8 remove -p from perf (#3344)
Co-authored-by: Jeroen Bouma <jer.bouma@gmail.com>
Co-authored-by: James Maslek <jmaslek11@gmail.com>
2022-11-09 16:37:27 -05:00
montezdesousa
f9086d6f38 Portfolio menu bug fixes (#3204)
* 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>
2022-11-09 10:46:42 +00:00
Chavithra
40e486f93b Moving portfolio and data_sources_default.json into openbb_terminal folder. (#2857)
* Move `portfolio` to `openbb_terminal\miscellaneous\portfolio_examples`

* Fixing build

* Portfolio : fixing path

* Add `data_sources_default.json`

Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt>
2022-10-17 15:04:51 +02:00
northern-64bit
28a0cfd2ee Improved auto completion (#2763)
* Adding improved auto complete to all menus

* Improve autocomplete

* Done

* Linting : fix unused imports

* Tests : fix help messages

* Fixing typing

* Tests : forex

* Tests: stocks

* Stocks/TA

* Linting

* Stocks/insider

* Portfolio/Broker/Degiro

* Linting

Co-authored-by: Chavithra PARANA <chavithra@gmail.com>
2022-10-11 16:07:24 +02:00
montezdesousa
e4f5039627 Portfolio bundle fix (#2665)
* 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>
2022-09-29 18:59:09 +01:00
Om Gupta
5a3a9f94e5 New path for portfolio data (#2611)
* start portfolio path change

* portfolio path changes

* some more changes

* fix

* allow default files to be imported

* portfolio changes

* allow default portfolios to be imported

* black

* fix pylint

* add files in terminal spec for reports

Co-authored-by: minhhoang1023 <40023817+minhhoang1023@users.noreply.github.com>
2022-09-26 12:28:58 +01:00
montezdesousa
7a02f85e51 Portfolio controller fixes (#2610)
* fix some bugs

* fix rf bug

* fix rf units

* black

* fix tagency not showing

Co-authored-by: minhhoang1023 <40023817+minhhoang1023@users.noreply.github.com>
2022-09-23 23:14:46 +01:00
Chavithra
72b0a9f1ee Next release : reports on steroids (#2349)
* fix gov tests

* refactor insider

* new virtual path extraction

* removed some symbol default params as they're considered critical

* little adjustments

* portfolio refactor

* merge API factory

* add helpers, stocks, crypto, forex

* minor forex changes

* include forex api paths

* add 2 missing forex funcs

* portfolio brokers refactor

* display help on api func call

* add econometrics virtual paths to api

* add api unit test

* fixed report for the new api

* minor portfolio refactorings

* added gdapps

* anchor_yield path

* some more crypto path fixes

* small change

* fixed wrong param

* minor fixes

* wip - inital commit for forex report

* add bw as a model, we'll get better solution afterwards

* added ema with dummy model as it adds great functionality to the report

* minor fixes

* wip - added functions to forex report

* add feedparser news path

* add new virtual paths to api

* adding commands to equity report

* revert to old paths, new ones were breaking

* Add in very basic ETF report

* Add candle chart to ETF report

* add etf load

* allow use of candle without data

* add raw to candle

* added forex report

* ongoing equity report

* equity report change

* fix some portfolio bugs and add docstrings

* include portfolio paths and coin class

* add crypto paths

* change event dates to str

* starting economy report

* window for limit

* equity report and refactor newsapi

* add helper to api

* update on economy report

* equity report

* update economy report

* refactor some docstrings

* change maturities helper

* refactor newsapi

* refactor futures command

* add some sauce to ycrv plot

* black

* update report

* refactor alphavantage

* refactor wsj

* update economy report

* ycrv tenor

* map avaiable_indices

* map economy helpers

* fix econdb docstring

* add plots on economy report

* minor fixes

* wip - crypto report

* update economy report

* added same default args as view

* added view to explicity use chart=True when suing the api

* adjustments - removed rich tables to use only df

* final version economy report

* change report name

* equity report for review

* linting

* add etf symbols endpoint

* incorporate feedback economy report

* fix reports launch by adding tag to economy report

* fix equity bug

* remove analyst name

* fix

* fix news

* make links hyperlinks for equity

* click links

* fixed arg name

* improved news

* small improves

* Fix light terminal stylesheet that would prevent using it in notebooks (#2473)

* improved report

* run reports in installer

* fix #2209

* minor ycrv refactoring

* refactor portfolio/holdv virtual path

* refactor benchmark trades

* fix events args

* adapt economy report to changes

* fix portfolio controller bug

* holdv refactor

* refactor perf command

* start portfolio report

* remove perf view

* refactor holp

* add textwrap3 to poetry (doesn't solve the error)

* fix equity after merge

* add some rolling commands

* fix equity after save button

* improved crypto report, plus minor fixes

* minor fixes on the reports

* add maxdd and distr

* refactor qa

* var command

* refactor qa expected shortfall

* add es command

* add es command

* fix qa percentile bug

* fix economy rendering

* refactor qa omega

* add om command

* add summary command

* add dret command

* add mret command

* add yret command

* add metrics

* add allocs to report

* remove bro and po commands, add later

* fixed some tests

* adjustments to crypto report

* Fix docstring for VSCode

Added a note about installing Jupyter PowerToys extension for optimal API usage in Jupyter VSCode, in the API_README.md.

* minor adjustment

* remove nft calendar model virtual paths

* Add in Portfolio report

* fix external axes portfolio view

* Update portfolio report with rolling plots

* Details for ETF and Portfolio

* fix economy report

* change analyst to openbb

* floppy

* fixed unmatched axis in reports

* Speed up tests

* fix file and load on po

* get_news output

* add some po paths

* Add integration tests for Reports menu

* refactor maxsharpe

* open maxsharpe

* open minrisk

* open maxutil

* open maxret

* Added fixes

* black

* remove useless views

* Fixed small issue

* refactor ef

* open ef api

* portfolio optimization report

* Added fixes

* unblock api loading

* add more endpoints

* update po report

* unblock api loading

* update po report

* expose herc

* expose property endpoint

* Added fixes

* More api fixes

* flake8

* Fixed some mypy

* news api model

* flake8

* mypy fix

* mypy

* black

* pylint

* fix tests

* markdown

* markdown

* Added fixes

* fix economy report

* merge

* fix economy report

* remove empty notebook

* expose nco

* remove jupyter notebook

* expose plot endpoint

* remove po report, just used for tests

* api v paths plot

* remove api_old

* change loading msg

Co-authored-by: montezdesousa <montezdesousa@gmail.com>
Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt>
Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com>
Co-authored-by: Om Gupta <guptagom@gmail.com>
Co-authored-by: minhhoang1023 <40023817+minhhoang1023@users.noreply.github.com>
Co-authored-by: JerBouma <jer.bouma@gmail.com>
Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com>
Co-authored-by: Om Gupta <85685255+soggyomelette@users.noreply.github.com>
Co-authored-by: Diogo Sousa <diogosousa@Diogos-MBP.lan>
Co-authored-by: Colin Delahunty <72827203+colin99d@users.noreply.github.com>
Co-authored-by: northern-64bit <75195383+northern-64bit@users.noreply.github.com>
Co-authored-by: colin99d <colin99delahunty@gmail.com>
Co-authored-by: Minh Hoang <nminh.hoang1023@gmail.com>
2022-09-20 15:07:58 +01:00
montezdesousa
291e7d6991 Add ETF support for portfolio allocation command (#2143)
* 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>
2022-09-09 15:12:59 +01:00
montezdesousa
a597501c70 fix laod prompt (#2408)
Co-authored-by: Jeroen Bouma <jer.bouma@gmail.com>
2022-08-24 14:10:16 -04:00
Chavithra
9e1a58e2db Here we merge all API Refactor related branches (#2236)
* Update api.py

* Updated forex menu

* refactor ycrv command

* refactor ycrv command black

* refactor ecocal command

* Minh changes

* Adding space to test pushing

* title fix ecocal df

* get economic calendar annotation

* fix investingcom tests

* refactor index command

* refactor overview command

* give defaults to wsj view function args

* rename date args investincom

* refacto bigmac command

* fix ecocal typo

* refactor rtps command

* alphavantage gdp

* alphavantage gdp per capita

* alphavantage cpi

* alphavantage tyld

* alphavantage inf

* refactor macro command

* refactor macro command w helpers

* refactor treasury command

* fix macro on terminal

* treasury labels

* refactor maturities

* update treasury maturities doc strings

* refactor get economic calendar finhub

* refactor map command api

* display map filter choices

* route economy api to performance map

* route economy api to performance map

* display group choices on valuation command

* refactor performance and valuation commands

* refactor spectrum model and view

* add choices to spectrum controller

* delete image after view

* fix model tests finviz

* fix finciz view tests

* refactor futures

* fix some tests

* fix more tests

* fix controller test

* refactor fred series notes

* update fred notes docstring

* refacto fred series ids

* fix pred and qa when empty datasets

* refactor fred

* uncomment stuff

* refacto get series data

* fix some tests

* set defaults on args

* refactor fred yield curve

* black

* fix spell and remove ecocal names

* fix linting

* linting

* pylint fix

* change dangerous defaults

* Working through crypto fixes (#2256)

* Working through crypto fixes

* Continued adding crypto stuff

* Added crypto overview

* Added test fixes

* Added fixtures

* Fixed tests

* Fixed charting issue

* Removed broken APIs

* Final adjustments

* Added test fixes

* map get groups and get ycrv countries into old api

* exposed econdb helper funcs

* remove helpers

* refactor search indices

* linting

* refactor arg currency

* pylint from currency

* Started switching crpyto ascending to ascend

* Merging

* Portfolio model arguements, params, and docstring

* Refactored for etf commands (#2292)

* Refactored for etf commands

* Fixed tests

* Added load command

* Fixed menu

* Portfolio logic fixes

* Added econometrics (#2260)

* Added econometrics

* Fixed tests

* Simplified API

* Added test fixes

* Added test csv

* Allowed examples to be loaded

* Fund refactor (#2291)

* Fund refactor

* Changed fund_name and fund to name

* Changed ascending to ascend

* Stock menu refactoring for easier API usage (#2194)

* Stocks  refactoring for easier API usage

* Linting

* Refactor newly added features

* Linting

* Fixing tests

* Refactor common files used by stocks menu

* Fixing flake8

* Fix linting and tests

* Linting

* Fix flake8

* refactor insider_data

* refactor mentions

* refactor watchlist

* refactor sentiment

* refactor sentiment

* fix yahoofinance tests

* refactor load and candle

* refactor get_news and display_news

* refactor stocks.ins.act

* candle default matplotlib

* fix yahoofinance_view tests

* fix ark model tests

* fix ark view tests

* fix business insider model

* fix business insider view

* refactor csimarket model

* fix tests csi market model

* update dd controller

* fix get suppliers tests

* fix dd controller tests

* fix finhub tests

* fix finviz tests

* fix fmp tests

* fix marketwatch tests

* corrected argument keywords in test_bt_model

* corrected argument keywords in test_bt_view

* refactor fa controller

* refactor marketwatch view

* refactor gov controller

* fix tests fa av

* fix tests elect

* fix dcf tests

* fix polygon tests

* fix fmp tests

* fix quiverquant tests

* fix yahoofinance fa tests

* fix more fa tests

* fix insider tests

* fix more tests

* fix more tests

* fix options tests

* fix stock gov tests

* fix tests test_ba_controller

* fix tests for test_finviz_compare_model.py

* fixed 2 tests

* fixed tests

* fixed tests

* fixed tests

* fixed tests

* fixed tests

* fixed tests

* fixed tests

* fixed tests

* fixed tests

* fixed tests

* fix final tests

* fixed tests

* fixed tests

* Fix tests

* black

* forgot to black tests

* fixed tests

* fixed tests

* fixed tests

* fixed tests

* flakefix

* Tests + code : Stocks / Discovery

* fix tests

* added recorder

* fixed tests

* fixed tests

* black

* black

* remove unused imports

* refactor display raw

* sia dicts fix

* pylint

* linting

* remove dangerous default

* fix tests

* fix beta model test

* black

* skip screener qa test

* change sector path to sectors

* update tests readme

* fix metric defaults

* black

* substitute lost ticker

* defaults cpic

* another round on sia

* refactor cramer

* reduce default tweets on sentiment

* refactor yf hist, corr, volume

* arkorders default

* refactor income, balance, cashflow

* refacto scorr, screener, getfinnhub

* refactor stockgrid

* ibkr refactor

* another round on stockgrid

* add dividens end point

* refactor discovery endpoints

* update docstrings with similar input

* refactor messages

* refactor ba

* refactor regioons

* refactor twitter sentiment

* refactor hist

* refactor regions

* give default to timeframe

* refactor bunch of defaults and arg names

* remove leftover imports

* refactor vwap

* let tests run

* fix tests

* fix stock tests

* fix stockanalysis tests

* flake

* MYPY

* Made important changes

* added fixes

* Fixed big issue

* Added fixes to tests

* fix qa tests

* fix tests

* fix 1 more test

* last stocks failing

* fix crypto test

Co-authored-by: Chavithra PARANA <chavithra@gmail.com>
Co-authored-by: montezdesousa <montezdesousa@gmail.com>
Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt>
Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com>
Co-authored-by: colin99d <colin99delahunty@gmail.com>

* fix portfolio tests

* change period to window

* update ca docstrings

* refactor get_similar_companies func

* Fixed

* Update CI

* Update CI 2

* Update CI 3

* Update dependencies

Co-authored-by: colin99d <colin99delahunty@gmail.com>
Co-authored-by: Colin Delahunty <72827203+colin99d@users.noreply.github.com>
Co-authored-by: montezdesousa <montezdesousa@gmail.com>
Co-authored-by: James Simmons <simmonsj330@gmail.com>
Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com>
Co-authored-by: minhhoang1023 <40023817+minhhoang1023@users.noreply.github.com>
Co-authored-by: jose-donato <43375532+jose-donato@users.noreply.github.com>
Co-authored-by: montezdesousa <79287829+montezdesousa@users.noreply.github.com>
Co-authored-by: northern-64bit <75195383+northern-64bit@users.noreply.github.com>
Co-authored-by: hjoaquim <h.joaquim@campus.fct.unl.pt>
2022-08-17 15:28:54 +01:00
Theodore Aptekarev
775d218891 Add parser for input command arguments (The Forward Slash PR) (#2064)
* Add helper command to filter unix paths and other edge cases

* Remove sort argument filtering from parsing

* Make --file arg mandatory for loading files

* Refactor queue parsing logic

* Enable adding controller level input parsing filters

* Remove the github repo path hack because it's not needed anymore

* Fix typos and line length linting

* Update unix path parser to match known extensions

* Update oss custom filters to not require space after slash arg

* Fix tests and failing linters

* Add pre-commit hook to check for reserved arguments validity

* Fix tests

* Fix finviz compare screener tests

* Fix screener test

* Fix screener test

* Fix float representation in pd dataframe on finviz screener tests

* Update test records

* Update test records

* Remove explicit float formatting in tests

* Update tests

* Remove prepending file argument

* Update long arguments that have lost their short default to file

* Update arguments in docs

* Update portfolio test data

* Fix econometrics/desc throwing error on empty df and fix tests

* Update tests

* Fix econometrics load autocompletion

* Fix portfolio tests giving different results every time

* Allow loading openbb scripts from arbitrary path

* Fix passing path as a terminal argument

* Fix guess game being case sensitive

* Silence bandit warning about using pseudo-random generators

* Update gov tests

* Fix screener sort fields that have forward slash

* Make controllers apply custom argument filters on entry

Co-authored-by: DidierRLopes <dro.lopes@campus.fct.unl.pt>
2022-08-05 12:51:23 +03:00
montezdesousa
d474bcc0f8 Allow direct orderbook export from degiro paexport to portfolio load command (#2091)
* redirect paexport to holdings/portfolio folder

* allow name change on export

* centralize default holdings path in helper

* create default folder for degiro orderbook

* refresh and unrestrict choices

* update degiro help

* fix linting

* remove unused import

* move logic to model
2022-07-20 08:46:40 +01:00
montezdesousa
ec9a88e8fa Fill missing static data (sector, industry, country and region) on portfolio creation (#2072)
* 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>
2022-07-18 18:47:45 +01:00
montezdesousa
82b6411cab remove cumulative returns functionalities (#2103)
Co-authored-by: Jeroen Bouma <jer.bouma@gmail.com>
Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com>
2022-07-18 18:50:59 +03:00
ghbcode
51b6c6ca76 Corrected wording (#2080) 2022-07-13 09:15:12 -04:00
montezdesousa
2c3e10a128 Overhaul Portfolio class (#2021)
* 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>
2022-07-08 17:59:09 +02:00
northern-64bit
89297fadc4 Adding new portfolio metrics (#2029)
* 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>
2022-07-07 10:14:16 +02:00
Jeroen Bouma
b749d6e3c6 Improvements within the Terminal for the Documentation (#2048)
* Change about us to open_terminal_documentation

* Change the home menu to be more compact

* Make changes to menu layout and change bottom bar

* Change about command to send you to the documentation and add about to bottom bar

* Add in about choices to all menus

* Adjust wording

* Adjust the website to match terminal commands and make adjustments for common menus

* Update the website and small change to about command

* Small adjustment to about command

* Remove update command

* Add some more info about arguments

* Fix broken link

* Add pro tip

* Update keys to work well with about

* Fix some common paths

* Add back in the update command with exception if packaged application

* Remove update comment

* Fix all the things

* Make about more robust and also add in exe

* Make sure that there are actual commands and menus
2022-07-06 13:52:26 +01:00
Colin Delahunty
b0b81c4d14 Fixed risk free bug (#1953) 2022-06-16 11:02:27 -04:00
Sam Kerr
497324d75f Preferred data source for a given command and help docs for any command (#1928)
* Add a feature flag loaded from . env for preferred data source

* Update the load command to use the preferred source

* Add a test

* Black syntax checker updates

* Update test syntax

* Update load command documentation

* Add a variable to read a sources file from

* Add a default sources.json file

* Add a helper function to read the source file and get the most relevant value

* Add some comments

* Remove older preferred data source file setting

* Add a default source file for data and use it if no user preference specifies a specific file

* Remove duplicate source file and old settings values

* Update the test file

* Update documentation string

* Update tests/openbb_terminal/test_settings_controller.py

* Black syntax formatting issues

* Fix a test case

* Fix a typo

* Fix Flake8 errors

* Fix Flake8 errors

* Pyupgrade syntax fixes

* Additional linter corrections

* More pylint issues

* Improve predefined default sources

* refactor parse_known_args_and_warn for documentation

* Update openbb_terminal/helper_funcs.py

* Add a feature flag loaded from . env for preferred data source

* Update the load command to use the preferred source

* Add a test

* Black syntax checker updates

* Update test syntax

* Update load command documentation

* Add a variable to read a sources file from

* Add a default sources.json file

* Add a helper function to read the source file and get the most relevant value

* Add some comments

* Remove older preferred data source file setting

* Add a default source file for data and use it if no user preference specifies a specific file

* Remove duplicate source file and old settings values

* Update the test file

* Update documentation string

* Update tests/openbb_terminal/test_settings_controller.py

* Black syntax formatting issues

* Fix a test case

* Fix a typo

* Fix Flake8 errors

* Fix Flake8 errors

* Pyupgrade syntax fixes

* Additional linter corrections

* More pylint issues

* Improve predefined default sources

* refactor parse_known_args_and_warn for documentation

* Update openbb_terminal/helper_funcs.py

* Forex controller

* Tests : Fixing `parse_known_args_and_warn` issue

* Comparison Analysis controller

* Tests : Comparison Analysis

* Tests : Stocks/DarkPoolShorts + Stocks/Options

* Tests : fix call_load tests

* Linting : fixing line size

Co-authored-by: DidierRLopes <dro.lopes@campus.fct.unl.pt>
Co-authored-by: Chavithra PARANA <chavithra@gmail.com>
2022-06-14 20:23:55 +02:00
didierlopes.eth
707fd8f506 Terminal supporting controller with multiple languages (#1730)
* initial implementation of terminal supporting multiple languages

* improve quote command

* stocks controller with english translation pattern

* add language to settings

* update reqs to have python-i18n

* find languages automatically

* add to documentation how to support another language

* markdown

* fix no member issue

* fix test

* refactor code with translations

* translate for options and options/scr

* solve translation for all submenus within options controller

* fix stocks controller tests

* translate disc and th

* dps and sia menus

* scr and ins

* add gov controller

* fix tests for new controllers

* stocks/ba and stocks/ca menus

* add stocks/fa

* res controller

* stocks/dd

* stocks/bt

* qa and pred

* crypto and crypto/disc

* overview and onchain menus

* defi

* nft and tools

* crpyto/dd

* stocks and crypto TA

* finish crypto menu

* finish ETF controller

* finish economy menu

* forex

* alternative and mutual funds

* refactor source for translated version

* econometrics and portfolio and brokers

* portfolio

* fix tests

* finish language implementation

* refactor code for cmds

* improve keys

* refactor name funcs and add docstrings

* fix minor stuff

* fix tests

Co-authored-by: Theodore Aptekarev <aptekarev@gmail.com>
Co-authored-by: Chavithra <chavithra@gmail.com>
Co-authored-by: James Maslek <jmaslek11@gmail.com>
2022-05-24 21:56:16 +01:00
didierlopes.eth
2cb229f35e Fix a bunch (#1852)
* spacing before and after rich tables

* fix menus to have standard UI

* fix tests

* fix tests

* fix tests
2022-05-21 16:57:39 +01:00
didierlopes.eth
0e3b62e143 Portfolio improvements (#1818)
* 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>
2022-05-19 14:26:37 +01:00
Jeroen Bouma
7e37ed0444 Add comparisons between the portfolio and benchmark including an orderbook sheet (#1773)
* 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>
2022-05-14 12:42:01 +01:00
didierlopes.eth
1e454bb4a4 Fix regression bug introduced by #1709 regarding support command (#1803)
* fix tz autocomplete

* fix regression introduced by support command #1709

Co-authored-by: James Maslek <jmaslek11@gmail.com>
2022-05-12 00:57:01 +01:00
minhhoang1023
2e67fd28a0 Add terminal-wide report command (#1709)
* Add terminal-wide report command

* Update requirements.txt

* Update lock file

* Remove commented lines

* Pre-fill Google Forms

* Update form

* Fix PR review

* Fix PR review

* remove conflicts

Co-authored-by: jmaslek <jmaslek11@gmail.com>
2022-05-11 01:45:14 +07:00
didierlopes.eth
30d657b50d Improves PO controller from UX perspective (#1760)
* improve portfolio optimization UX

* fix custom_reset and styling color and rmv add/rmv commands

* fix tests

* allow -h in load and file
2022-05-04 10:53:19 +01:00
northern-64bit
fd2839c913 Adding everything from Risk Metrics PR based on new main branch (#1666) 2022-04-15 11:38:37 +01:00
jmaslek
ffbce37aeb Edit portfolio value for add as well as a spelling error (#1614) 2022-04-02 12:19:47 -04:00
jmaslek
b71abcfbf4 Updating some names (#1575)
* 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>
2022-03-29 09:46:26 -04:00