mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-10-29 05:21:48 +00:00
6
.github/workflows/test.yml
vendored
6
.github/workflows/test.yml
vendored
@@ -49,8 +49,9 @@ jobs:
|
||||
architecture: x64
|
||||
|
||||
- name: Install Poetry
|
||||
uses: snok/install-poetry@v1.1.1
|
||||
uses: snok/install-poetry@v1.1.4
|
||||
with:
|
||||
version: 1.1.6
|
||||
virtualenvs-create: true
|
||||
virtualenvs-in-project: true
|
||||
|
||||
@@ -102,8 +103,9 @@ jobs:
|
||||
architecture: x64
|
||||
|
||||
- name: Install Poetry
|
||||
uses: snok/install-poetry@v1.1.1
|
||||
uses: snok/install-poetry@v1.1.4
|
||||
with:
|
||||
version: 1.1.6
|
||||
virtualenvs-create: true
|
||||
virtualenvs-in-project: true
|
||||
|
||||
|
||||
10
ROADMAP.md
10
ROADMAP.md
@@ -20,6 +20,7 @@
|
||||
* [Credit Analysis](#Credit-Analysis)
|
||||
* [Cryptocurrencies](#Cryptocurrencies)
|
||||
* [Screener](#Screener)
|
||||
* [Forex](#Forex)
|
||||
|
||||
## Additional
|
||||
|
||||
@@ -63,6 +64,7 @@
|
||||
|
||||
## Fundamental Analysis
|
||||
* [x] Rearrange FA menu to have AV and FMP as submenus (@didier) - [PR #166](https://github.com/DidierRLopes/GamestonkTerminal/pull/166)
|
||||
* [x] Add Fundamental Analysis score (@didier) - [PR #383](https://github.com/DidierRLopes/GamestonkTerminal/pull/383)
|
||||
|
||||
**NEXT**
|
||||
* [ ] Add Treasury Yield Curve data (@aia) - [PR #281](https://github.com/DidierRLopes/GamestonkTerminal/pull/281)
|
||||
@@ -190,6 +192,7 @@ ___
|
||||
|
||||
## Cryptocurrencies
|
||||
* [x] Add Coingecko (@jmaslek) - [PR #283](#https://github.com/DidierRLopes/GamestonkTerminal/pull/283)
|
||||
* [x] view top coins from coinmarketcap (@jmaslek) - [PR #378](https://github.com/DidierRLopes/GamestonkTerminal/pull/378)
|
||||
|
||||
**NEXT**
|
||||
* [ ] Add [Coinpaprika](https://coinpaprika.com/api/)
|
||||
@@ -209,6 +212,13 @@ ___
|
||||
|
||||
---
|
||||
|
||||
## Forex
|
||||
* [x] Add entire forex menu through Oanda (@alokan) - [PR #360](https://github.com/DidierRLopes/GamestonkTerminal/pull/360)
|
||||
|
||||
**NEXT**
|
||||
|
||||
---
|
||||
|
||||
## Backend
|
||||
|
||||
**NEXT**
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
* [FRED](#FRED-)
|
||||
* [Options](#Options-)
|
||||
* [Screener](#Screener-)
|
||||
* [Forex](#Forex-)
|
||||
|
||||
## Main
|
||||
|
||||
@@ -145,6 +146,7 @@ Command|Description
|
||||
----- | ---------
|
||||
`screener` |screen info about the company ([Finviz](https://finviz.com/))
|
||||
`mgmt` |management team of the company ([Business Insider](https://markets.businessinsider.com/))
|
||||
`score` |investing score from Warren Buffett, Joseph Piotroski and Benjamin Graham ([FMP](https://financialmodelingprep.com/))
|
||||
[Market Watch API](https://markets.businessinsider.com/) |
|
||||
`income` |income statement of the company
|
||||
`balance` |balance sheet of the company
|
||||
@@ -272,6 +274,7 @@ Command|Description
|
||||
------ | ------------
|
||||
`load`| load cryptocurrency data
|
||||
`view`| load and view cryptocurrency data
|
||||
`top` | view top coins from coinmarketcap
|
||||
|
||||
|
||||
## Comparison Analysis [»](comparison_analysis/README.md)
|
||||
@@ -364,5 +367,26 @@ performance |performance (e.g. Perf Week, Perf YTD, Volatility M)
|
||||
technical |technical (e.g. Beta, SMA50, 52W Low, RSI, Change)
|
||||
signals |view filter signals (e.g. -s top_gainers)
|
||||
|
||||
|
||||
|
||||
|
||||
## Forex [»](forex/README.md)
|
||||
Command|Description
|
||||
------ | --------
|
||||
summary |display a summary of your account
|
||||
calendar |get information about past or upcoming events which may impact the price
|
||||
list |list your order history
|
||||
pending |get information about pending orders
|
||||
cancel |cancel a pending order by ID
|
||||
positions |get information about your positions
|
||||
trades |see a list of open trades
|
||||
closetrade |close a trade by ID
|
||||
load |specify an instrument to use
|
||||
candles |get a candlestick chart for the forex instrument
|
||||
price |show the current price for the forex instrument
|
||||
order |place a limit order
|
||||
orderbook |display the orderbook if Oanda provides one for the forex instrument
|
||||
positionbook |display the positionbook if Oanda provides one for the forex instrument
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,57 +1,52 @@
|
||||
# Cryptocurrency
|
||||
# CRYPTOCURRENCY
|
||||
|
||||
This page gives an overview of the ability to load cryptocurrency data.
|
||||
|
||||
Current crypto data is [Powered by CoinGecko API](#https://www.coingecko.com/en).
|
||||
This is an awesome service that currently requires no API Key!
|
||||
|
||||
Current functionality is aimed to be similar to loading a stock ticker.
|
||||
This menu aims to explore crypto world, and the usage of the following commands along with an example will be exploited below.
|
||||
|
||||
* [load](#load)
|
||||
* load a given coin vs a given currency [CoinGecko]
|
||||
* [view](#view)
|
||||
* plot the loaded crypto data
|
||||
* [top](#top)
|
||||
* view top coins from coinmarketcap [coinmarketcap.com]
|
||||
|
||||
|
||||
## load <a name="load"></a>
|
||||
Load a given coin vs a given currency:
|
||||
|
||||
````
|
||||
usage: load [-c --coin] [-d --days] [--vs]
|
||||
````
|
||||
|
||||
Load a given coin vs a given currency. Currently only retrieves price, not volume or MarketCap. The current crypto data is [Powered by CoinGecko API](#https://www.coingecko.com/en), which is an awesome service that currently requires no API Key!
|
||||
|
||||
* -c/--coin The coin you wish to load. This can either be the symbol or the name. `load -c btc` and `load -c bitcoin`
|
||||
will load. The -c flag is optional, the above is equivalent to `load btc`.
|
||||
|
||||
* -d/--days The number of days to look. Defaults to 30 days. As per the API: Minutely data will be used for duration within 1 day,
|
||||
Hourly data will be used for duration between 1 day and 90 days, Daily data will be used for duration above 90 days.
|
||||
|
||||
* --vs The currency to look against. Defaults to "usd".
|
||||
|
||||
Currently only retrieves price, not volume or MarketCap.
|
||||
|
||||
Example doge/eur for the past day:
|
||||
````
|
||||
load -c doge -d 1 --vs eur
|
||||
````
|
||||
|
||||
## view <a name="view"></a>
|
||||
Plot the loaded crypto data.
|
||||
|
||||
````
|
||||
usage: view
|
||||
````
|
||||
After loading the above 1 day dogecoin/eur. Running view plots the data:
|
||||
|
||||

|
||||
Plot the loaded crypto data.
|
||||
|
||||

|
||||
|
||||
|
||||
## top <a name="top"></a>
|
||||
This command displays the top n cryptocurrencies from coinmarketcap.com. The list appears to be sorted by Mar
|
||||
|
||||
````
|
||||
top [-n] [-s --sort SORTBY] [--descend]
|
||||
````
|
||||
|
||||
This command displays the top n cryptocurrencies from coinmarketcap.com.
|
||||
|
||||
* -n: Number of coins to look at (after sort). Defaults to 10.
|
||||
* -s/--sort : Column to sort by. One of {Symbol,CMC_Rank,LastPrice,DayPctChange,MarketCap}. Defaults to sorting by the CMC rank.
|
||||
* --descend : Flag to change the sorting order. Sorts in ascending order (since default order is the Rank which starts at 1).
|
||||
|
||||
Example usage to get the CMC top 100, then show the top 4 highest Percent Day Change
|
||||
<img width="990" alt="crypto" src="https://user-images.githubusercontent.com/25267873/115787544-4746d100-a3ba-11eb-9433-b7cb9142404a.png">
|
||||
|
||||

|
||||
|
||||
@@ -6,7 +6,9 @@ This menu aims to extract all fundamentals of a pre-loaded company, and the usag
|
||||
* screen info about the company [Finviz]
|
||||
* [mgmt](#mgmt)
|
||||
* management team of the company [Business Insider]
|
||||
|
||||
* [score](#score)
|
||||
* investing score from Warren Buffett, Joseph Piotroski and Benjamin Graham [FMP]
|
||||
|
||||
[MARKET WATCH](#MARKET_WATCH)
|
||||
|
||||
* [income](#income)
|
||||
@@ -323,3 +325,12 @@ Prints the growth of several financial statement items and ratios over time. Thi
|
||||
|
||||
* n : Number of latest years/quarters. Default 1.
|
||||
* q : Quarter fundamental data flag. Default False.
|
||||
|
||||
|
||||
### score <a name="score"></a>
|
||||
|
||||
```text
|
||||
usage: score
|
||||
```
|
||||
|
||||
Value investing tool based on Warren Buffett, Joseph Piotroski and Benjamin Graham thoughts [Source: Financial Modeling Prep]
|
||||
|
||||
@@ -9,6 +9,7 @@ from gamestonk_terminal.fundamental_analysis import alpha_vantage_controller as
|
||||
from gamestonk_terminal.fundamental_analysis import business_insider_view as biw
|
||||
from gamestonk_terminal.fundamental_analysis import (
|
||||
financial_modeling_prep_controller as fmpc,
|
||||
financial_modeling_prep_view as fmpv,
|
||||
)
|
||||
from gamestonk_terminal.fundamental_analysis import finviz_view
|
||||
from gamestonk_terminal.fundamental_analysis import market_watch_view
|
||||
@@ -26,6 +27,7 @@ class FundamentalAnalysisController:
|
||||
"help",
|
||||
"q",
|
||||
"quit",
|
||||
"score",
|
||||
"screener",
|
||||
"income",
|
||||
"balance",
|
||||
@@ -83,6 +85,9 @@ class FundamentalAnalysisController:
|
||||
print("")
|
||||
print(" screener screen info about the company [Finviz]")
|
||||
print(" mgmt management team of the company [Business Insider]")
|
||||
print(
|
||||
" score investing score from Warren Buffett, Joseph Piotroski and Benjamin Graham [FMP]"
|
||||
)
|
||||
print("")
|
||||
print("Market Watch API")
|
||||
print(" income income statement of the company")
|
||||
@@ -137,6 +142,10 @@ class FundamentalAnalysisController:
|
||||
""" Process screener command """
|
||||
finviz_view.screener(other_args, self.ticker)
|
||||
|
||||
def call_score(self, other_args: List[str]):
|
||||
""" Process score command """
|
||||
fmpv.valinvest_score(other_args, self.ticker)
|
||||
|
||||
def call_income(self, other_args: List[str]):
|
||||
""" Process income command """
|
||||
market_watch_view.income(other_args, self.ticker)
|
||||
|
||||
@@ -5,6 +5,7 @@ import argparse
|
||||
from typing import List
|
||||
from datetime import datetime
|
||||
import pandas as pd
|
||||
import valinvest
|
||||
import FundamentalAnalysis as fa # Financial Modeling Prep
|
||||
from gamestonk_terminal import config_terminal as cfg
|
||||
from gamestonk_terminal.dataframe_helpers import clean_df_index
|
||||
@@ -15,6 +16,40 @@ from gamestonk_terminal.helper_funcs import (
|
||||
)
|
||||
|
||||
|
||||
def valinvest_score(other_args: List[str], ticker: str):
|
||||
"""Value investing tool based on Warren Buffett, Joseph Piotroski and Benjamin Graham thoughts [Source: FMP]
|
||||
|
||||
Parameters
|
||||
----------
|
||||
other_args : List[str]
|
||||
argparse other args
|
||||
ticker : str
|
||||
Fundamental analysis ticker symbol
|
||||
"""
|
||||
|
||||
parser = argparse.ArgumentParser(
|
||||
add_help=False,
|
||||
prog="score",
|
||||
description="""
|
||||
Value investing tool based on Warren Buffett, Joseph Piotroski and Benjamin Graham thoughts [Source: FMP]
|
||||
""",
|
||||
)
|
||||
|
||||
try:
|
||||
ns_parser = parse_known_args_and_warn(parser, other_args)
|
||||
if not ns_parser:
|
||||
return
|
||||
|
||||
valstock = valinvest.Fundamental(ticker, cfg.API_KEY_FINANCIALMODELINGPREP)
|
||||
score = 100 * (valstock.fscore() / 9)
|
||||
print(f"Score: {score:.2f}".rstrip("0").rstrip(".") + " %")
|
||||
print("")
|
||||
|
||||
except Exception as e:
|
||||
print(e, "\n")
|
||||
return
|
||||
|
||||
|
||||
def profile(other_args: List[str], ticker: str):
|
||||
"""Financial Modeling Prep ticker profile
|
||||
|
||||
|
||||
@@ -100,9 +100,10 @@ In order to run, the selenium webdriver must be installed.
|
||||
Currently, this runs on either Chrome or Firefox. The path to the driver should be defined in [config_terminal.py](#config_terminal.py).
|
||||
|
||||
Note this may take more time than other commands to process.
|
||||
|
||||
````
|
||||
usage: info [-d DRIVER]
|
||||
````
|
||||
* -d/--driver : One of {chrome, firefox}. This indicates which driver you have installed.
|
||||
|
||||

|
||||
<img width="989" alt="opinfo" src="https://user-images.githubusercontent.com/25267873/115787028-80cb0c80-a3b9-11eb-97a4-ca208aed3be8.png">
|
||||
|
||||
@@ -5,8 +5,9 @@ import argparse
|
||||
from typing import List
|
||||
from selenium import webdriver
|
||||
from bs4 import BeautifulSoup
|
||||
from selenium.webdriver.chrome.options import Options as cOpts
|
||||
from selenium.webdriver.firefox.options import Options as fOpts
|
||||
|
||||
# from selenium.webdriver.chrome.options import Options as cOpts
|
||||
# from selenium.webdriver.firefox.options import Options as fOpts
|
||||
import pandas as pd
|
||||
from tabulate import tabulate
|
||||
from gamestonk_terminal.config_terminal import (
|
||||
@@ -63,14 +64,18 @@ def print_options_data(stock: str, other_args: List[str]):
|
||||
|
||||
try:
|
||||
if browser == "chrome":
|
||||
options = cOpts()
|
||||
options.headless = True
|
||||
driver = webdriver.Chrome(options=options, executable_path=path_to_driver)
|
||||
# commenting this because it breaks when in usage
|
||||
# the downside is that the browser will pop up to get the data
|
||||
# options = cOpts()
|
||||
# options.headless = True
|
||||
driver = webdriver.Chrome(executable_path=path_to_driver)
|
||||
|
||||
elif browser == "firefox":
|
||||
options = fOpts()
|
||||
options.headless = True
|
||||
driver = webdriver.Firefox(options=options, executable_path=path_to_driver)
|
||||
# commenting this because it breaks when in usage
|
||||
# the downside is that the browser will pop up to get the data
|
||||
# options = fOpts()
|
||||
# options.headless = True
|
||||
driver = webdriver.Firefox(executable_path=path_to_driver)
|
||||
|
||||
page = f"https://www.barchart.com/stocks/quotes/{stock}/overview"
|
||||
driver.get(page)
|
||||
|
||||
35
poetry.lock
generated
35
poetry.lock
generated
@@ -2837,6 +2837,14 @@ python-versions = "*"
|
||||
[package.dependencies]
|
||||
six = "*"
|
||||
|
||||
[[package]]
|
||||
name = "valinvest"
|
||||
version = "0.0.2"
|
||||
description = "A value investing tool based on Warren Buffett, Joseph Piotroski and Benjamin Graham thoughts"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = ">=3.6"
|
||||
|
||||
[[package]]
|
||||
name = "wcwidth"
|
||||
version = "0.2.5"
|
||||
@@ -2962,7 +2970,7 @@ prediction = ["fbprophet", "tensorflow", "pmdarima", "transformers", "flair", "t
|
||||
[metadata]
|
||||
lock-version = "1.1"
|
||||
python-versions = "^3.6.8"
|
||||
content-hash = "2b31cd4c709b83d1a6f1d516036c84dc611cc487ae5d499905658454fa8dba40"
|
||||
content-hash = "2088d5cb7d1789cabe8d0f0f211ec599f56e630b4997527b9838d3ecf517f04c"
|
||||
|
||||
[metadata.files]
|
||||
absl-py = [
|
||||
@@ -3295,51 +3303,30 @@ entrypoints = [
|
||||
]
|
||||
ephem = [
|
||||
{file = "ephem-3.7.7.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:0a6d6ed003383f702695094399728052981c567d423b25aa7163b3fd40de3d5a"},
|
||||
{file = "ephem-3.7.7.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3cbc4f643329c4f64de63584e636625fa9f11b50209386ed99cbf508abe19488"},
|
||||
{file = "ephem-3.7.7.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:e73b9997d7b844fabff988d7f66c3bad4e76ec8975ec9c60ec988037bb5c04b1"},
|
||||
{file = "ephem-3.7.7.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:7619297a1103f6b3dac0c609bfa7c31e17678fb1a02653347ec030487e412031"},
|
||||
{file = "ephem-3.7.7.1-cp27-cp27m-win32.whl", hash = "sha256:7756218a8b72ca50ee4f290b80828073412e7d7023389df5ead5d14839175bda"},
|
||||
{file = "ephem-3.7.7.1-cp27-cp27m-win_amd64.whl", hash = "sha256:b8f9fb5b4184523b98f6629c6c927aeeba80d61df21f07af2844cdae45e1a294"},
|
||||
{file = "ephem-3.7.7.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:37fd1abbebb821381d2865064a6fa9484ffdcd2161cf92193da8d42da79aa7db"},
|
||||
{file = "ephem-3.7.7.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:ff4e1584cc232d8bc4aea405346eeb8a24b0fbe84c6331d4edb5d4456d19f1c3"},
|
||||
{file = "ephem-3.7.7.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:c6081a9791e9de6511cddbeb9529bd5550fdb6f9e2a8dc9c2ec85911d67c6d11"},
|
||||
{file = "ephem-3.7.7.1-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:d1d1ac8dc9be47dc6c7ec62800ca6557d03e8be3716c2a10ea0c8f1198c0a701"},
|
||||
{file = "ephem-3.7.7.1-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:7f781d73e49caf7989c503a948471f1c8c1f738a450d557413999fb732f4dba3"},
|
||||
{file = "ephem-3.7.7.1-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:f0959882bf73c8fe1cb801f42b0989e0ecb9d84b99eb8b8f70d61d16767a1e8a"},
|
||||
{file = "ephem-3.7.7.1-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:06029db6b26f1764ed009360de8530f6cd759411232b3001df1b69ba6afa871d"},
|
||||
{file = "ephem-3.7.7.1-cp35-cp35m-manylinux2014_s390x.whl", hash = "sha256:562baaeb3a46cf2248f97d2ad80092d747024e5dea62ebe50386a04b8e506c10"},
|
||||
{file = "ephem-3.7.7.1-cp35-cp35m-win32.whl", hash = "sha256:2bcd953cced045e4232bcb71d60f6ba237f7944c880e83e74cc959449b192dee"},
|
||||
{file = "ephem-3.7.7.1-cp35-cp35m-win_amd64.whl", hash = "sha256:fd0b922387df1ad8721f2fafd5dca51ce7105238f968e1532a177b781b8cae0e"},
|
||||
{file = "ephem-3.7.7.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:e10c2c8afbb9e927d46d9bf3562441da2173ff196790a75ad0e5c5ee920d5922"},
|
||||
{file = "ephem-3.7.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:592264e512b5658402e93903343eb26502c6f327df8a71847f3dcaea73908f32"},
|
||||
{file = "ephem-3.7.7.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:8d586d970c42d62b1fc757a1c7c10679416a43e9e4a77391a05907159ce346f8"},
|
||||
{file = "ephem-3.7.7.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:1a8ea6a045ff669011f8ecdeffadfc5eaa519fb56ab8dd40508910e9db5ec7b0"},
|
||||
{file = "ephem-3.7.7.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:c25993d6554820ff11fdd8f2ddb75bf99e70db01327f09700bf8811201e9daef"},
|
||||
{file = "ephem-3.7.7.1-cp36-cp36m-manylinux2014_s390x.whl", hash = "sha256:9180d953ff4cbe89fc9ccc78aea73f290c0166b8ddb01e9c837b4639a7492ec8"},
|
||||
{file = "ephem-3.7.7.1-cp36-cp36m-win32.whl", hash = "sha256:72fdb72c813fc9780726aa732eb2193bbe1663549265ca5a746899215ecfbffd"},
|
||||
{file = "ephem-3.7.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f5af029f8814aa8617e73b2ddcad2bd1c682ca13c31ee3b6f5825dd5cb43e777"},
|
||||
{file = "ephem-3.7.7.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:e61c68f1c7d304a130bb6b88c1fca6600bbc1a1df6ca9a109b6eba4c6cbd3376"},
|
||||
{file = "ephem-3.7.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fdf5f3ed8bd46ce2bf1145b26aec65a2c08ea7c97cf42b6b439af6e7bc6dc94d"},
|
||||
{file = "ephem-3.7.7.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:31e2a17ca6f8d6bd44832574fea5461938ba034e52bf551e15e1a4c8f8c6c4fb"},
|
||||
{file = "ephem-3.7.7.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:1ff5abefa230d5ab40846f1cb27d4f5583d46044fecf10e17bfb559bdc766a47"},
|
||||
{file = "ephem-3.7.7.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:5ef34e3cfea0683998e867d7b8de642081e8821fafbd5e1d2dcab503c119c4a2"},
|
||||
{file = "ephem-3.7.7.1-cp37-cp37m-manylinux2014_s390x.whl", hash = "sha256:e2aca9edb59ee2bb3c8c36f17177966bc762da04af994450c8ad61a20fb6acdd"},
|
||||
{file = "ephem-3.7.7.1-cp37-cp37m-win32.whl", hash = "sha256:71ea3935c658ee184575fd4cc2aa3e7fd6d6bac4a1ccff9ee5549cee67ff0385"},
|
||||
{file = "ephem-3.7.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:34fd228105b89fefd20608420861a75a184db1edeaf0056cf2f85d2a2f768aee"},
|
||||
{file = "ephem-3.7.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:189fcaeacb44dc5a1684ad489542f126d99d4a85e87d2fe73864c902f0bc2c71"},
|
||||
{file = "ephem-3.7.7.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:a5ddf46ced515e4b81dfd22e6408fd06a329c31c6abb10af48d392641c490b0e"},
|
||||
{file = "ephem-3.7.7.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:3530bee3eb7458d86d4c399f51f5b73ad7ea0441f0b2fb03de41d623789935af"},
|
||||
{file = "ephem-3.7.7.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:77193de077e5fff453756144dee978e5fd6978c5c03ce3f67a09bb237e78f9d4"},
|
||||
{file = "ephem-3.7.7.1-cp38-cp38-manylinux2014_s390x.whl", hash = "sha256:095ad42e8df6a5c91e0aeb5a68d76c0800b0283f72fc5f76e6df370ae1fb5537"},
|
||||
{file = "ephem-3.7.7.1-cp38-cp38-win32.whl", hash = "sha256:33ad1a71b204aff123250b04e0ff2d5c3b8e9c6c814bf2c675d7752ce5896c02"},
|
||||
{file = "ephem-3.7.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:4bc5140cc7218a53ee6d949110f6ed413b8e3165294100515cd0fb29aa8e3637"},
|
||||
{file = "ephem-3.7.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:7aa88d2a6d216c2044be2a3b3cb184e9c8a5022f12464220694017ea9d75209d"},
|
||||
{file = "ephem-3.7.7.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:1a9822bde93205c67fd3399b26868204b67d9e4442af21a764307e51ea6dc672"},
|
||||
{file = "ephem-3.7.7.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:15dd3dbb3864fb853388e39ac3c915c72873507f54ee6b3ede0033b03465d8ba"},
|
||||
{file = "ephem-3.7.7.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:5763919cdf38cd0488172711da504c3be003b7c104ccd2516cc496ff05f146ae"},
|
||||
{file = "ephem-3.7.7.1-cp39-cp39-manylinux2014_s390x.whl", hash = "sha256:cdea23a7caa1178b322e6e76484d40bd021672446ff51b512f35581e0f1b32b7"},
|
||||
{file = "ephem-3.7.7.1-cp39-cp39-win32.whl", hash = "sha256:c3cbc973b334892972445cec3deb99aafd0c57cb4e50679d5f12fc8c51b4e65f"},
|
||||
{file = "ephem-3.7.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:1af920c382980fe3566a31f36bd712973e1ca6049cbe07b4624214d5e1f144bc"},
|
||||
{file = "ephem-3.7.7.1.tar.gz", hash = "sha256:36b51a8dc7cfdeb456dd6b8ab811accab8341b2d562ee3c6f4c86f6d3dbb984e"},
|
||||
]
|
||||
fbprophet = [
|
||||
@@ -4940,6 +4927,10 @@ urllib3 = [
|
||||
user-agent = [
|
||||
{file = "user_agent-0.1.9.tar.gz", hash = "sha256:8f1ad46cc4aef9f99515ea1c74bb8cacc43e23074c335b2ba2db7735ebe9c0d5"},
|
||||
]
|
||||
valinvest = [
|
||||
{file = "valinvest-0.0.2-py3-none-any.whl", hash = "sha256:37fadaf30c69e0487fed8d9cc93bb792ca8cf36fed0839e0e755a84738166ab9"},
|
||||
{file = "valinvest-0.0.2.tar.gz", hash = "sha256:9614aaf8019e015c20ea48867ede8a6ea10e1c6410e787314066d7b2e5aeb7dc"},
|
||||
]
|
||||
wcwidth = [
|
||||
{file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"},
|
||||
{file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"},
|
||||
|
||||
@@ -60,6 +60,7 @@ pyportfolioopt = "^1.4.1"
|
||||
selenium = "^3.141.0"
|
||||
python-coinmarketcap = "^0.2"
|
||||
oandapyV20 = "^0.6.3"
|
||||
valinvest = "^0.0.2"
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
pytest = "^6.2.2"
|
||||
|
||||
@@ -158,6 +158,7 @@ typing-extensions==3.7.4.3; python_version < "3.8" and python_version >= "3.6"
|
||||
update-checker==0.18.0; python_version >= "3.6" and python_version < "4.0"
|
||||
urllib3==1.26.4; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version < "4" and python_version >= "3.6"
|
||||
user-agent==0.1.9
|
||||
valinvest==0.0.2; python_version >= "3.6"
|
||||
wcwidth==0.2.5; python_version >= "3.6" and python_full_version >= "3.6.1"
|
||||
webencodings==0.5.1; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6"
|
||||
websocket-client==0.58.0; python_version >= "3.6" and python_full_version < "3.0.0" and python_version < "4.0" or python_version >= "3.6" and python_version < "4.0" and python_full_version >= "3.4.0"
|
||||
|
||||
Reference in New Issue
Block a user