# StockRecommendSystem
**Repository Path**: jsyzc/StockRecommendSystem
## Basic Information
- **Project Name**: StockRecommendSystem
- **Description**: An intelligent recommender system for stock analyzing, predicting and trading
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-05-04
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# StockRecommendSystem
## Main Requirement:
Python 3.5.2
Keras 2.0.6
TensorFlow 1.2
pymongo
tqdm
nltk
googletrans
## Install
brew install mongodb --with-openssl
brew services start mongodb
mongod --dbpath (Your Porject Folder)/Data/DB
When you storing stock data with mongodb mode, you may meet [too many open files](https://superuser.com/questions/433746/is-there-a-fix-for-the-too-many-open-files-in-system-error-on-os-x-10-7-1) problem, try the following codes in command line:
> sysctl -w kern.maxfiles=20480 (or whatever number you choose)
> sysctl -w kern.maxfilesperproc=18000 (or whatever number you choose)
> launchctl limit maxfiles 1000000 (or whatever number you choose)
> brew services restart mongodb
> mongodump -h localhost:27017 -d DB_STOCK -o ./
## Data Fetching:
Cover stock related data fetching, storaging in either MongoDB or CSV mode (See config.ini [Setting] sector for more detail).
1. Stock:(NSDQ, NYSE)-> US, (HKSE) -> HK, (SSE,SZSE) -> CHN
2. Earning: US stock market earning info.
3. Short: US stock market short squeeze info. (Require Multi IP Routing Support)
4. News: NewsRiver
5. Media: Twitter Data
### Data Structure
** US Stock List **
DB : DB_STOCK
SHEET: SHEET_US_DAILY_LIST
ITEM : symbol, name, market_cap, sector, industry, stock_update, news_update
** US Stock Daily **
DB : DB_STOCK
SHEET: SHEET_US_DAILY_DATA
ITEM : symbol (stock symbol)
data -> [{date, open, high, low, close, adj_close, volume}]
** US Stock Earning **
DB : DB_STOCK
SHEET: SHEET_US_EARN
ITEM : symbol (date)
data -> [{date, symbol, analyist, estimate, actual, surprise}]
** US News **
DB : DB_STOCK
SHEET: SHEET_US_NEWS
ITEM : symbol, date, time, title, source, ranking, sentiment, uri, url, body_html, body_eng, body_chn
### Run
cd Source/FetchData
python Fetch_Data_Stock_US_Daily.py
## Stock Prediction:
Under Development...
## Stock Processing:
Correlation
> Company1 Company2 Correlation
> QQQ TQQQ 0.999
> IBB BIB 0.999
> INSE XBKS 0.999
> JAG JPT 0.999
> ACWX VXUS 0.995
> IXUS ACWX 0.993
> VONE SPY 0.992
> IXUS VXUS 0.991
> VTWO VTWV 0.988
> NTB FBK 0.988
> GOOG GOOGL 0.987
### Run
cd Source/StockProcessing
python Correlation_Stock_US.py
## Reinforcement Learning:
This sector is directly clone from: [Link](https://github.com/shenyichen105/Deep-Reinforcement-Learning-in-Stock-Trading)
More in mind:
1. The approach use only "Adj Close" price as input, it's supposed more features combinations shall be joined to the party.
2. The Trading Strategy is a little mediocre and limited, better rewrite it.
3. At most only two tickers are allowed in the trading system, rewrite it.
testing output:
> init cash: 100000
> Columns: [AMD, NVDA, SPY, ^VIX]
> Index: []
> Runner: Taking action 2016-03-16 00:00:00 buy
> Runner: Taking action 2016-03-17 00:00:00 buy
> Runner: Taking action 2016-03-18 00:00:00 hold
> ......
> Runner: Taking action 2017-06-12 00:00:00 buy
> Runner: Taking action 2017-06-13 00:00:00 buy
> Runner: Taking action 2017-06-14 00:00:00 buy
> Final outcome: 121500.348294
### Run
cd Source/ReinforcementLearning
python runner.py
## ToDo:
More AI approach will be arranged and upload ASAP