API_KEY
- API key from https://site.financialmodelingprep.com/developer/docs/dashboardDEBUG
- Debug printingMarketRate
- market rate of returnRiskFreeRate
- risk free rateDefaultEffectiveTaxRate
- effective tax rate to use if one isn't reported
- Gather up the fundamentals of a ton of companies (at least 1000)
- Perform and document as many securities analysis functions as possible against the financial statements
- Give each result a weight from -1.0 to 1.0, the final value will be result*weight
- Organize each company in order by some aggregate value func(calculations*weights) and pick the top 10 companies to backtest
- Identify the 'best' weights using a (genetic algorithm, simulated annealing, whatever) and multi-range backtesting
- Add backtesting purchase/sale rules to make the algorithm more proactive / reactive
- Add weights to each of the buy/sell indicators and repeat the algorithmic weight optimization process switching between optimizing weights for securities analysis using optimized buy/sell weights and weights for buy/sell signals with optimized security analysis weights
- Optimization should be based on some function that works to maximize certain portfolio risk/reward values while minimizing others based on their definitions
- Research news related to each company in the 10 company portfolio using biztoc and chatgpt
- Perform sentiment analysis on news reports and compare it to sentiment provided by chatgpt
- give sentiment analysis and chatgpt analysis points weights between -1.0 and 1.0
- Perform algorithmic optimization on the weights, this part could require a ton of time
- gather company fundamentals and calculations
- create a weight system from -1.0 to 1.0 for each fundamentals item
- TODO: fix the full financial document and employee count retrievers and add the full financial document type to the final results struct type / weight type for weighting
- TODO: finalize fundamentals calculations with post-calculation meta/performance calculations
- calculate a normalized weighted value that represents every value in all of the fundamentals / calculations * their field weights
- set up a backtesting utility for backtesting a buy/sell strategy across multiple timelines, tickers, and portfolios
- set up some function to rate the backtesting performance
- create a genetic algorithm to identify optimized fundamentals analysis weights
- add more complex portfolio backtesting strategies