GetStocks
Overview: This module facilitates the retrieval and analysis of stock data from the S&P 500 index. It uses web scraping to obtain the list of S&P 500 companies and `yfinance` to fetch historical stock data. The module calculates the average annual return for each stock and identifies the top investment options based on these returns.Functionality: - Scrapes the S&P 500 company symbols from Wikipedia. - Fetches historical stock data for each symbol using `yfinance`. - Calculates the average annual return for each stock based on monthly closing prices. - Ranks the stocks by their average annual returns and returns the top investment options.
Args: - `alpha (Secret)`: This argument was initially required for Alpha Vantage API keys but is now redundant since `yfinance` is used. It can be ignored or removed.
Return: - The `stocks` function returns a JSON formatted string representing the top investment options. Each investment option is a dictionary containing the stock symbol and its average annual return. - The `sp500` function returns a JSON string containing the list of S&P 500 company symbols. - The `get_historical_data` function fetches and returns historical stock data as a pandas DataFrame. - The `calculate_avg_return` function computes the average annual return for the given historical data.
Example Call: dagger call stocks
Installation
dagger install github.com/EmmS21/daggerverse/GetStocks@v0.0.3
Entrypoint
Return Type
GetStocks !
Example
dagger -m github.com/EmmS21/daggerverse/GetStocks@71120c841cb6192d378fe18008c034d8ea633343 call \
func (m *myModule) example() *GetStocks {
return dag.
GetStocks()
}
@function
def example() -> dag.GetStocks:
return (
dag.get_stocks()
)
@func()
example(): GetStocks {
return dag
.getStocks()
}
Types
GetStocks 🔗
stocks() 🔗
Return Type
String !
Example
dagger -m github.com/EmmS21/daggerverse/GetStocks@71120c841cb6192d378fe18008c034d8ea633343 call \
stocks
func (m *myModule) example(ctx context.Context) string {
return dag.
GetStocks().
Stocks(ctx)
}
@function
async def example() -> str:
return await (
dag.get_stocks()
.stocks()
)
@func()
async example(): Promise<string> {
return dag
.getStocks()
.stocks()
}