diff --git a/.env b/.env
new file mode 100644
index 0000000..003d94a
--- /dev/null
+++ b/.env
@@ -0,0 +1 @@
+CSS_DIR="styles/main.css"
\ No newline at end of file
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..87e654b
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1 @@
+*.csv filter=lfs diff=lfs merge=lfs -text
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e710407
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,7 @@
+myenv
+venv
+.ipynb_checkpoints
+/BatchProcess/DataSource/YahooFinance/.ipynb_checkpoints
+__pycache__
+build
+dist
diff --git a/.sonarlint/connectedMode.json b/.sonarlint/connectedMode.json
new file mode 100644
index 0000000..d102997
--- /dev/null
+++ b/.sonarlint/connectedMode.json
@@ -0,0 +1,4 @@
+{
+ "sonarCloudOrganization": "nolanmm",
+ "projectKey": "NolanMM_DeepLearning_Quant_Trading_Group_Project"
+}
\ No newline at end of file
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..341a386
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,6 @@
+{
+ "sonarlint.connectedMode.project": {
+ "connectionId": "nolanmm",
+ "projectKey": "NolanMM_DeepLearning_Quant_Trading_Group_Project"
+ }
+}
\ No newline at end of file
diff --git a/1_HomePage.py b/1_HomePage.py
new file mode 100644
index 0000000..bc84e69
--- /dev/null
+++ b/1_HomePage.py
@@ -0,0 +1,209 @@
+from BatchProcess.DataSource.ListSnP500.ListSnP500Collect import ListSAndP500
+from BatchProcess.BatchProcess import BatchProcessManager
+from multiprocessing.pool import ThreadPool
+import plotly.graph_objects as go
+from dotenv import load_dotenv
+from pathlib import Path
+import streamlit as st
+import pandas as pd
+import time
+import os
+
+pool = ThreadPool(processes=6)
+load_dotenv(override=True)
+
+current_dir = Path(__file__).parent if "__file__" in locals() else Path.cwd()
+css_file = current_dir / os.getenv("CSS_DIR")
+defaut_start_date = "2014-01-01"
+
+st.set_page_config(page_title="Home Page", page_icon=":house:",
+ initial_sidebar_state="collapsed")
+st.sidebar.header("Quantitative Trading Project")
+st.title("Welcome to the Home Page")
+st.markdown(
+ """
+
+ """, unsafe_allow_html=True)
+
+# --- LOAD CSS ---
+with open(css_file) as f:
+ st.markdown("".format(f.read()), unsafe_allow_html=True)
+
+
+# --- CACHE DATA ---
+@st.cache_data(ttl=1800)
+def retrieve_list_ticket():
+ list_of_symbols__ = BatchProcessManager().get_stock_list_in_database()
+ if list_of_symbols__ is None or len(list_of_symbols__) < 497:
+ list_of_symbols__ = ListSAndP500().tickers_list
+ return list_of_symbols__
+
+
+@st.cache_data(ttl=1800)
+def batch_process(list_of_symbols__):
+ return BatchProcessManager().run_process(list_of_symbols__)
+
+
+@st.cache_data(ttl=1800)
+def batch_process_retrieve_data_by_stock(the_stock_in):
+ return BatchProcessManager().get_stock_data_by_ticker(the_stock_in)
+
+
+@st.cache_data
+def convert_df_to_csv(df):
+ return df.to_csv().encode("utf-8")
+
+
+@st.cache_data(ttl=1800)
+def batch_process_retrieve_all_data_in_stock_table():
+ return BatchProcessManager().get_all_stock_data_in_database()
+
+
+PROCESS_TIME = 180 # seconds
+_list_of_symbols = retrieve_list_ticket()
+
+
+# --- MAIN PAGE ---
+if "stock_data" not in st.session_state:
+ st.session_state.stock_data = None
+st.markdown('---')
+st.markdown("### I. Retrieve stock data symbol list")
+
+the_stock = st.selectbox(
+ "Select the stock you want to retrieve from database (if available)", _list_of_symbols)
+
+retrieve_col1, retrieve_col2, retrieve_col3 = st.columns(3)
+with retrieve_col1:
+ btn_prepare = st.button("Retrieve stock data from database...")
+
+# Download data by ticket button
+with retrieve_col2:
+ btn_retrieve_data_by_ticket = st.button(
+ "Process File for Ticket Data in Database (csv)")
+
+ if btn_retrieve_data_by_ticket:
+ st.session_state.stock_data = the_stock
+ df = batch_process_retrieve_data_by_stock(the_stock)
+ if df is not None:
+ df = pd.DataFrame(df)
+ csv = convert_df_to_csv(df)
+ st.download_button(
+ label="Download Ticket as CSV",
+ data=csv,
+ file_name=f"Ticket_{the_stock}_data.csv",
+ mime="text/csv",
+ )
+ else:
+ st.error(
+ "No data found for this stock, please update the database first.")
+
+# Download all data in database button
+with retrieve_col3:
+ btn_retrieve_all_data = st.button("Download All Data in Database(csv)")
+ if btn_retrieve_all_data:
+ st.session_state.stock_data = the_stock
+ df = batch_process_retrieve_all_data_in_stock_table()
+ if df is not None:
+ csv = convert_df_to_csv(df)
+ st.download_button(
+ label="Download All Data as CSV",
+ data=csv,
+ file_name="All_Stock_data.csv",
+ mime="text/csv",
+ )
+ else:
+ st.error(
+ "No data found for in database, please update the database first.")
+
+if btn_prepare:
+ st.session_state.stock_data = the_stock
+
+st.markdown('---')
+# --- TABS ---
+st.markdown(
+ "### II. List of 500 S&P, Historical data, In Day Data, Top News, Reddit News")
+List500, Historical_data, IndayData_RealTime, news, reddit_news = st.tabs(
+ ["List 500 S&P", "Historical data", "In Day Data", "Top News", "Reddit News"])
+
+# --- TABS LIST500 S&P CONTENT---
+with List500:
+ st.write("List of 500 S&P")
+ st.write(_list_of_symbols)
+
+# --- TABS HISTORICAL DATA CONTENT---
+with Historical_data:
+ if st.session_state.stock_data is not None:
+ df = batch_process_retrieve_data_by_stock(st.session_state.stock_data)
+ if df is not None:
+ df = pd.DataFrame(df)
+ fig = go.Figure(data=[go.Candlestick(x=df['date'],
+ open=df['open'],
+ high=df['high'],
+ low=df['low'],
+ close=df['close'])])
+ # Add a title
+ fig.update_layout(
+ title=f"{st.session_state.stock_data} Price Candlestick Chart",
+ # Center the title
+ title_x=0.3,
+
+ # Customize the font and size of the title
+ title_font=dict(size=24, family="Arial"),
+
+ # Set the background color of the plot
+ plot_bgcolor='white',
+
+ # Customize the grid lines
+ xaxis=dict(showgrid=True, gridwidth=1, gridcolor='lightgray'),
+ yaxis=dict(showgrid=True, gridwidth=1, gridcolor='lightgray'),
+ )
+
+ # Add a range slider and customize it
+ fig.update_layout(
+ xaxis_rangeslider_visible=True, # Show the range slider
+
+ # Customize the range slider's appearance
+ xaxis_rangeslider=dict(
+ thickness=0.1, # Set the thickness of the slider
+ bordercolor='black', # Set the border color
+ borderwidth=1, # Set the border width
+ )
+ )
+
+ # Display the chart in Streamlit
+ st.plotly_chart(fig)
+ st.markdown(
+ f"#### Dataframe of {st.session_state.stock_data} Prices")
+ st.write(df)
+ else:
+ st.write(
+ "No data found for this stock, please update the database first.")
+ else:
+ st.write("Please select the stock to retrieve the data")
+
+st.markdown('---')
+# --- Set Up/ Update all data in database---
+st.markdown("### III. Set Up data in database for the first time")
+update_database = st.button("Update Database")
+if update_database:
+ async_result = pool.apply_async(
+ batch_process, args=(_list_of_symbols,))
+ bar = st.progress(0)
+ per = PROCESS_TIME / 100
+ for i in range(100):
+ time.sleep(per)
+ bar.progress(i + 1)
+ df_dict = async_result.get()
+ st.write("Please check the data in the database")
diff --git a/BatchProcess/.env b/BatchProcess/.env
new file mode 100644
index 0000000..8ed62df
--- /dev/null
+++ b/BatchProcess/.env
@@ -0,0 +1,12 @@
+DATABASE_SERVER="localhost"
+DATABASE_PORT="5432"
+DATABASE_NAME="postgres"
+DATABASE_USER="postgres"
+DATABASE_PASSWORD="admin"
+CREATE_SCHEMA_QUERY="CREATE SCHEMA IF NOT EXISTS tickets;"
+
+INSERT_QUERY_REDDIT_TABLE="INSERT INTO reddits.stock_reddit_news (id, subreddit, url, title, score, num_comments, downvotes, ups, date_created_utc) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s) ON CONFLICT (id) DO NOTHING;"
+POSTGRE_CONNECTION="dbname=postgres user=postgres host=localhost password=admin"
+CONFIGURE_REDDIT_TABLE = "CREATE INDEX IF NOT EXISTS idx_stock_reddit_news_id ON reddits.stock_reddit_news(id);"
+CREATE_REDDIT_TABLE_QUERY = "CREATE TABLE IF NOT EXISTS reddits.stock_reddit_news (id VARCHAR PRIMARY KEY, subreddit VARCHAR, url VARCHAR, title TEXT, score TEXT, num_comments TEXT, downvotes TEXT, ups TEXT, date_created_utc TEXT);"
+CREATE_REDDIT_SCHEMA_QUERY="CREATE SCHEMA IF NOT EXISTS reddits;"
diff --git a/BatchProcess/BatchProcess.py b/BatchProcess/BatchProcess.py
new file mode 100644
index 0000000..2fa5315
--- /dev/null
+++ b/BatchProcess/BatchProcess.py
@@ -0,0 +1,129 @@
+from Database.PostGreSQLInteraction import DatabaseManager, StockDatabaseManager, TicketDimDatabaseManager, RedditNewsDatabaseManager
+from BatchProcess.DataSource.YahooFinance.YahooFinances_Services import YahooFinance
+from dotenv import load_dotenv
+from datetime import datetime
+import pandas as pd
+import psycopg2
+import os
+
+defaut_start_date = "2014-01-01"
+
+date_to = datetime.now().strftime('%Y-%m-%d')
+
+load_dotenv(override=True)
+
+postgres_server = os.getenv("DATABASE_SERVER")
+postgres_port = os.getenv("DATABASE_PORT")
+postgres_dbname = os.getenv("DATABASE_NAME")
+postgres_user = os.getenv("DATABASE_USER")
+postgres_pass = os.getenv("DATABASE_PASSWORD")
+
+
+class BatchProcessManager:
+ def __init__(self):
+ self.list_of_symbols = None
+ self.dict_ticket = dict()
+ self.dbname = postgres_dbname
+ self.user = postgres_user
+ self.password = postgres_pass
+ self.host = postgres_server
+ self.port = postgres_port
+ self.conn = self.create_connection()
+
+ def create_connection(self):
+ """
+ Create a connection to the database
+ """
+ try:
+ conn = psycopg2.connect(
+ dbname=self.dbname,
+ user=self.user,
+ password=self.password,
+ host=self.host,
+ port=self.port
+ )
+ return conn
+ except Exception as e:
+ print(e)
+ return None
+
+ def run_process(self, list_of_symbols_):
+ self.list_of_symbols = list_of_symbols_
+
+ # Get data from Yahoo Finance
+ transformed_data = YahooFinance(
+ self.list_of_symbols, defaut_start_date, date_to)
+ df = transformed_data.process_data()
+
+ # Create Database Manager
+ db_manager = DatabaseManager()
+
+ # Drop all tables exist in the database
+ db_manager.delete_schema()
+
+ # Create Stock table
+ db_manager.StockDatabaseManager.create_schema_and_tables(
+ self.list_of_symbols)
+
+ # Create TicketDim table
+ db_manager.TicketDimDatabaseManager.create_table()
+
+ # Create RedditNews table
+ db_manager.RedditNewsDatabaseManager.create_schema_and_tables()
+
+ # Apply multiprocessing to insert data into the database (Testing later)
+ for i in range(len(self.list_of_symbols)):
+ filtered_data = df[df['stock_id'] == self.list_of_symbols[i]]
+ filtered_data = filtered_data.reset_index()
+ self.dict_ticket[self.list_of_symbols[i]] = filtered_data
+
+ # Insert data into the database Stock table
+ for key, value in self.dict_ticket.items():
+ if isinstance(value, pd.DataFrame):
+ db_manager.StockDatabaseManager.insert_data(key, value)
+
+ # Insert data into the database TicketDim table
+ db_manager.TicketDimDatabaseManager.insert_data(self.list_of_symbols)
+
+ db_manager.close_connection()
+ return self.dict_ticket
+
+ def get_stock_data_by_ticker(self, ticker):
+ try:
+ # Create StockDatabaseManager
+ db_manager = StockDatabaseManager()
+ # Get data by table
+ data = db_manager.get_data_by_table(ticker)
+ db_manager.close_connection()
+ return data
+ except Exception as e:
+ print(e)
+ return None
+
+ def get_stock_list_in_database(self):
+ try:
+ # Create TicketDimDatabaseManager
+ db_manager = TicketDimDatabaseManager()
+ # Get data
+ data = db_manager.get_data()
+ db_manager.close_connection()
+ return data
+ except Exception as e:
+ print(e)
+ return None
+
+ def get_all_stock_data_in_database(self):
+ try:
+ db_manager = StockDatabaseManager()
+ data = db_manager.fetch_all_data()
+ db_manager.close_connection()
+ dataframes_list = [value for key, value in data.items()]
+ combined_dataframe = pd.concat(dataframes_list, ignore_index=True)
+ combined_dataframe['date'] = pd.to_datetime(
+ combined_dataframe['date'])
+
+ # Sort the combined dataframe by the 'date' column
+ return combined_dataframe.sort_values(by='date')
+ except Exception as e:
+ print(e)
+ return None
diff --git a/BatchProcess/DataSource/AlphaVantage/.env b/BatchProcess/DataSource/AlphaVantage/.env
new file mode 100644
index 0000000..57f11e5
--- /dev/null
+++ b/BatchProcess/DataSource/AlphaVantage/.env
@@ -0,0 +1,18 @@
+# Postgres Configuration
+POSTGRES_VERSION="org.postgresql:postgresql:42.2.20"
+POSTGRES_URL="jdbc:postgresql://localhost:5432/postgres"
+POSTGRES_USER="postgres"
+POSTGRES_PASSWORD="admin"
+POSTGRES_TABLE="FactPrices"
+
+FORMAT_FILE="jdbc"
+MODE="append"
+
+COLUMN_1="stock_id"
+COLUMN_2="date"
+COLUMN_3="open"
+COLUMN_4="high"
+COLUMN_5="low"
+COLUMN_6="close"
+COLUMN_7="volume"
+COLUMN_8="adjusted_close"
\ No newline at end of file
diff --git a/BatchProcess/DataSource/AlphaVantage/Retrieve Data Alpha Vantage.ipynb b/BatchProcess/DataSource/AlphaVantage/Retrieve Data Alpha Vantage.ipynb
new file mode 100644
index 0000000..43b51b7
--- /dev/null
+++ b/BatchProcess/DataSource/AlphaVantage/Retrieve Data Alpha Vantage.ipynb
@@ -0,0 +1,56 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "de71fd75-6dc9-4a45-952e-81732c3d8e26",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from alpha_vantage.timeseries import TimeSeries\n",
+ "import pandas as pd\n",
+ "from dotenv import load_dotenv\n",
+ "import os\n",
+ "\n",
+ "load_dotenv(override=True)\n",
+ "\n",
+ "api_key = os.getenv('alpha_vantage_api')\n",
+ "\n",
+ "symbol = 'AAPL'\n",
+ "\n",
+ "# Initialize the TimeSeries object with API key\n",
+ "ts = TimeSeries(key=api_key, output_format='pandas')\n",
+ "\n",
+ "# Specify the function to get daily financial data\n",
+ "# 'Time Series (Daily)' returns daily data\n",
+ "data, meta_data = ts.get_daily(symbol=symbol, outputsize='full')\n",
+ "\n",
+ "# Extract and display the relevant information\n",
+ "df = data.rename(columns={'1. open': 'Open', '2. high': 'High', '3. low': 'Low', '4. close': 'Close', '5. volume': 'Volume'})\n",
+ "df.index = pd.to_datetime(df.index)\n",
+ "#df.to_csv(f'{symbol.lower()}_data_alpha_vantage_daily.csv')"
+ ]
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.8.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/BatchProcess/DataSource/Binance/Untitled.ipynb b/BatchProcess/DataSource/Binance/Untitled.ipynb
new file mode 100644
index 0000000..198affe
--- /dev/null
+++ b/BatchProcess/DataSource/Binance/Untitled.ipynb
@@ -0,0 +1,141 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "8013c201-9c54-4fdb-b23b-d161e7454cb6",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "url = 'https://www.alphavantage.co/query?function=TIME_SERIES_INTRADAY&symbol=IBM&interval=5min&apikey=demo'\n",
+ "r = requests.get(url)\n",
+ "data = r.json()\n",
+ "\n",
+ "print(data)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "0c7b6a09-63a2-4ff0-b71f-141378b40450",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Empty DataFrame\n",
+ "Columns: [1. open, 2. high, 3. low, 4. close, 5. volume]\n",
+ "Index: []\n"
+ ]
+ }
+ ],
+ "source": [
+ "from alpha_vantage.timeseries import TimeSeries\n",
+ "import pandas as pd\n",
+ "\n",
+ "# Replace with your actual Alpha Vantage API key\n",
+ "\n",
+ "\n",
+ "ts = TimeSeries(key=api_key, output_format='pandas')\n",
+ "\n",
+ "symbol = 'AAPL' # Replace with your desired symbol\n",
+ "date_str = '2023-06-19' # Replace with your desired date\n",
+ "\n",
+ "# Fetch intraday data\n",
+ "data, meta_data = ts.get_intraday(symbol=symbol, interval='1d', outputsize='full')\n",
+ "\n",
+ "# Convert index to datetime\n",
+ "data.index = pd.to_datetime(data.index)\n",
+ "\n",
+ "# Filter data for the specific date\n",
+ "data = data[data.index.date == pd.to_datetime(date_str).date()]\n",
+ "\n",
+ "print(data)\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "a028f032-c284-45a4-a637-a11489b50df3",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{'Meta Data': {'1. Information': 'Daily Prices (open, high, low, close) and Volumes', '2. Symbol': 'IBM', '3. Last Refreshed': '2024-06-18', '4. Output Size': 'Compact', '5. Time Zone': 'US/Eastern'}, 'Time Series (Daily)': {'2024-06-18': {'1. open': '170.0000', '2. high': '170.7500', '3. low': '168.3800', '4. close': '170.5500', '5. volume': '3386442'}, '2024-06-17': {'1. open': '168.7600', '2. high': '169.7200', '3. low': '167.5000', '4. close': '169.5000', '5. volume': '3239815'}, '2024-06-14': {'1. open': '168.2900', '2. high': '169.4700', '3. low': '167.2300', '4. close': '169.2100', '5. volume': '2777717'}, '2024-06-13': {'1. open': '169.0100', '2. high': '169.5900', '3. low': '168.3350', '4. close': '169.1200', '5. volume': '3525717'}, '2024-06-12': {'1. open': '171.3500', '2. high': '172.4700', '3. low': '168.1010', '4. close': '169.0000', '5. volume': '3522698'}, '2024-06-11': {'1. open': '169.9800', '2. high': '170.0000', '3. low': '166.8100', '4. close': '169.3200', '5. volume': '2951251'}, '2024-06-10': {'1. open': '169.5500', '2. high': '170.7600', '3. low': '168.8800', '4. close': '170.3800', '5. volume': '3444684'}, '2024-06-07': {'1. open': '168.1800', '2. high': '171.3050', '3. low': '168.0600', '4. close': '170.0100', '5. volume': '3475495'}, '2024-06-06': {'1. open': '167.3800', '2. high': '168.4400', '3. low': '166.8000', '4. close': '168.2000', '5. volume': '2207263'}, '2024-06-05': {'1. open': '166.4100', '2. high': '167.7900', '3. low': '165.7800', '4. close': '167.3800', '5. volume': '3049377'}, '2024-06-04': {'1. open': '164.6000', '2. high': '166.4000', '3. low': '163.8800', '4. close': '165.8100', '5. volume': '2594203'}, '2024-06-03': {'1. open': '166.5400', '2. high': '166.7800', '3. low': '163.5300', '4. close': '165.2800', '5. volume': '2776058'}, '2024-05-31': {'1. open': '165.7000', '2. high': '166.9700', '3. low': '163.8400', '4. close': '166.8500', '5. volume': '4905002'}, '2024-05-30': {'1. open': '165.5600', '2. high': '166.7300', '3. low': '164.2300', '4. close': '165.6300', '5. volume': '3852963'}, '2024-05-29': {'1. open': '168.0000', '2. high': '168.6300', '3. low': '166.2100', '4. close': '167.0500', '5. volume': '4206576'}, '2024-05-28': {'1. open': '170.4400', '2. high': '171.0850', '3. low': '168.6500', '4. close': '169.6600', '5. volume': '2629645'}, '2024-05-24': {'1. open': '171.4800', '2. high': '172.0100', '3. low': '170.2100', '4. close': '170.8900', '5. volume': '2587829'}, '2024-05-23': {'1. open': '175.3900', '2. high': '175.4600', '3. low': '170.4350', '4. close': '170.6700', '5. volume': '3341335'}, '2024-05-22': {'1. open': '173.3900', '2. high': '174.9900', '3. low': '172.7600', '4. close': '173.6900', '5. volume': '3294900'}, '2024-05-21': {'1. open': '169.9400', '2. high': '174.9700', '3. low': '169.9400', '4. close': '173.4700', '5. volume': '6459800'}, '2024-05-20': {'1. open': '169.0000', '2. high': '170.1600', '3. low': '168.3800', '4. close': '169.9200', '5. volume': '2726261'}, '2024-05-17': {'1. open': '168.9700', '2. high': '169.1100', '3. low': '167.3300', '4. close': '169.0300', '5. volume': '2956387'}, '2024-05-16': {'1. open': '168.2600', '2. high': '169.6300', '3. low': '167.7900', '4. close': '168.9700', '5. volume': '3492267'}, '2024-05-15': {'1. open': '167.9400', '2. high': '168.3500', '3. low': '167.3400', '4. close': '168.2600', '5. volume': '4468823'}, '2024-05-14': {'1. open': '167.8600', '2. high': '168.1300', '3. low': '166.4800', '4. close': '167.3600', '5. volume': '2600967'}, '2024-05-13': {'1. open': '167.5000', '2. high': '168.0600', '3. low': '166.7600', '4. close': '167.5600', '5. volume': '2414859'}, '2024-05-10': {'1. open': '167.1300', '2. high': '168.0700', '3. low': '166.3200', '4. close': '167.1500', '5. volume': '2255370'}, '2024-05-09': {'1. open': '167.5000', '2. high': '167.5500', '3. low': '165.8800', '4. close': '166.2700', '5. volume': '4266616'}, '2024-05-08': {'1. open': '168.0100', '2. high': '170.2600', '3. low': '167.9000', '4. close': '169.9000', '5. volume': '3522011'}, '2024-05-07': {'1. open': '169.0000', '2. high': '169.2900', '3. low': '167.9400', '4. close': '168.3800', '5. volume': '3155260'}, '2024-05-06': {'1. open': '166.5000', '2. high': '168.6700', '3. low': '166.3800', '4. close': '168.6100', '5. volume': '4222266'}, '2024-05-03': {'1. open': '165.0000', '2. high': '166.6100', '3. low': '164.9200', '4. close': '165.7100', '5. volume': '3400405'}, '2024-05-02': {'1. open': '164.3500', '2. high': '164.8800', '3. low': '162.6200', '4. close': '164.6900', '5. volume': '3829853'}, '2024-05-01': {'1. open': '165.6900', '2. high': '166.2700', '3. low': '164.3000', '4. close': '164.4300', '5. volume': '4030960'}, '2024-04-30': {'1. open': '166.4900', '2. high': '166.7600', '3. low': '165.2605', '4. close': '166.2000', '5. volume': '6011634'}, '2024-04-29': {'1. open': '167.4000', '2. high': '168.2200', '3. low': '166.2250', '4. close': '167.4300', '5. volume': '5263342'}, '2024-04-26': {'1. open': '167.5000', '2. high': '167.8700', '3. low': '165.7300', '4. close': '167.1300', '5. volume': '8983796'}, '2024-04-25': {'1. open': '168.2000', '2. high': '172.4500', '3. low': '165.6600', '4. close': '168.9100', '5. volume': '16702150'}, '2024-04-24': {'1. open': '183.1700', '2. high': '184.2900', '3. low': '181.4000', '4. close': '184.1000', '5. volume': '7616643'}, '2024-04-23': {'1. open': '182.7300', '2. high': '184.6800', '3. low': '179.0000', '4. close': '182.1900', '5. volume': '5950229'}, '2024-04-22': {'1. open': '182.4500', '2. high': '183.3150', '3. low': '180.4500', '4. close': '181.9000', '5. volume': '3076451'}, '2024-04-19': {'1. open': '182.4300', '2. high': '182.8000', '3. low': '180.5700', '4. close': '181.5800', '5. volume': '3037990'}, '2024-04-18': {'1. open': '182.3500', '2. high': '183.4600', '3. low': '180.1700', '4. close': '181.4700', '5. volume': '2886733'}, '2024-04-17': {'1. open': '184.1600', '2. high': '184.6700', '3. low': '181.7800', '4. close': '183.1000', '5. volume': '3003033'}, '2024-04-16': {'1. open': '185.5900', '2. high': '185.7100', '3. low': '182.8600', '4. close': '183.7500', '5. volume': '4473654'}, '2024-04-15': {'1. open': '185.5700', '2. high': '187.4800', '3. low': '180.8800', '4. close': '181.2500', '5. volume': '3528140'}, '2024-04-12': {'1. open': '184.0000', '2. high': '185.1699', '3. low': '181.6850', '4. close': '182.2700', '5. volume': '3547378'}, '2024-04-11': {'1. open': '186.0400', '2. high': '186.7950', '3. low': '184.5800', '4. close': '185.9000', '5. volume': '2861736'}, '2024-04-10': {'1. open': '187.4200', '2. high': '187.9150', '3. low': '185.5200', '4. close': '186.0400', '5. volume': '3081915'}, '2024-04-09': {'1. open': '190.5400', '2. high': '191.2500', '3. low': '186.6600', '4. close': '189.3100', '5. volume': '2790673'}, '2024-04-08': {'1. open': '189.2400', '2. high': '190.2400', '3. low': '188.9118', '4. close': '189.8200', '5. volume': '2673611'}, '2024-04-05': {'1. open': '188.5900', '2. high': '190.3200', '3. low': '188.0200', '4. close': '189.1400', '5. volume': '2012428'}, '2024-04-04': {'1. open': '192.0000', '2. high': '193.2800', '3. low': '187.3400', '4. close': '187.9400', '5. volume': '2924438'}, '2024-04-03': {'1. open': '188.6000', '2. high': '191.3500', '3. low': '188.4850', '4. close': '190.9000', '5. volume': '2818910'}, '2024-04-02': {'1. open': '189.1400', '2. high': '189.8000', '3. low': '187.6000', '4. close': '188.8800', '5. volume': '2689711'}, '2024-04-01': {'1. open': '190.0000', '2. high': '190.4600', '3. low': '188.5200', '4. close': '189.8300', '5. volume': '2362586'}, '2024-03-28': {'1. open': '190.9400', '2. high': '191.9299', '3. low': '190.3400', '4. close': '190.9600', '5. volume': '3742169'}, '2024-03-27': {'1. open': '189.6000', '2. high': '190.9600', '3. low': '188.6000', '4. close': '190.8000', '5. volume': '3693305'}, '2024-03-26': {'1. open': '189.0200', '2. high': '190.0000', '3. low': '188.5000', '4. close': '188.5000', '5. volume': '4229535'}, '2024-03-25': {'1. open': '190.2600', '2. high': '190.8200', '3. low': '188.7500', '4. close': '188.7900', '5. volume': '3718289'}, '2024-03-22': {'1. open': '192.0000', '2. high': '192.9850', '3. low': '190.5100', '4. close': '190.8400', '5. volume': '3988398'}, '2024-03-21': {'1. open': '193.0000', '2. high': '193.3700', '3. low': '190.0100', '4. close': '191.9000', '5. volume': '6013561'}, '2024-03-20': {'1. open': '192.8700', '2. high': '193.9800', '3. low': '191.3100', '4. close': '193.9600', '5. volume': '3238643'}, '2024-03-19': {'1. open': '191.4900', '2. high': '193.5800', '3. low': '190.2800', '4. close': '193.3400', '5. volume': '5317341'}, '2024-03-18': {'1. open': '191.7000', '2. high': '193.2300', '3. low': '190.3200', '4. close': '191.6900', '5. volume': '5410562'}, '2024-03-15': {'1. open': '191.9900', '2. high': '193.0573', '3. low': '190.7000', '4. close': '191.0700', '5. volume': '8828184'}, '2024-03-14': {'1. open': '196.9500', '2. high': '197.7480', '3. low': '192.1200', '4. close': '193.4300', '5. volume': '4102202'}, '2024-03-13': {'1. open': '197.5500', '2. high': '198.1000', '3. low': '195.3200', '4. close': '196.7000', '5. volume': '3960737'}, '2024-03-12': {'1. open': '192.4600', '2. high': '199.1800', '3. low': '192.1500', '4. close': '197.7800', '5. volume': '5862512'}, '2024-03-11': {'1. open': '195.0900', '2. high': '195.3800', '3. low': '190.8800', '4. close': '191.7300', '5. volume': '4712688'}, '2024-03-08': {'1. open': '196.0600', '2. high': '197.7700', '3. low': '194.3800', '4. close': '195.9500', '5. volume': '3943113'}, '2024-03-07': {'1. open': '197.5800', '2. high': '198.7300', '3. low': '196.1400', '4. close': '196.5400', '5. volume': '4604458'}, '2024-03-06': {'1. open': '193.5000', '2. high': '198.1300', '3. low': '192.9600', '4. close': '196.1600', '5. volume': '6945818'}, '2024-03-05': {'1. open': '192.0000', '2. high': '193.9400', '3. low': '190.5700', '4. close': '191.9500', '5. volume': '5653641'}, '2024-03-04': {'1. open': '187.7600', '2. high': '193.8980', '3. low': '187.6000', '4. close': '193.0600', '5. volume': '7938266'}, '2024-03-01': {'1. open': '185.4900', '2. high': '188.3800', '3. low': '185.1800', '4. close': '188.2000', '5. volume': '4018354'}, '2024-02-29': {'1. open': '186.1500', '2. high': '186.8495', '3. low': '184.6900', '4. close': '185.0300', '5. volume': '6458487'}, '2024-02-28': {'1. open': '184.6300', '2. high': '185.3700', '3. low': '183.5500', '4. close': '185.3000', '5. volume': '3216345'}, '2024-02-27': {'1. open': '184.1600', '2. high': '185.1300', '3. low': '182.6200', '4. close': '184.8700', '5. volume': '3641378'}, '2024-02-26': {'1. open': '185.6000', '2. high': '186.1250', '3. low': '184.0600', '4. close': '184.1300', '5. volume': '4620815'}, '2024-02-23': {'1. open': '184.9000', '2. high': '186.4550', '3. low': '184.5700', '4. close': '185.7200', '5. volume': '3433800'}, '2024-02-22': {'1. open': '182.4500', '2. high': '184.5500', '3. low': '181.9300', '4. close': '184.2100', '5. volume': '5078398'}, '2024-02-21': {'1. open': '182.5600', '2. high': '183.0300', '3. low': '178.7500', '4. close': '179.7000', '5. volume': '4728473'}, '2024-02-20': {'1. open': '187.6400', '2. high': '188.7700', '3. low': '183.0600', '4. close': '183.4400', '5. volume': '4247181'}, '2024-02-16': {'1. open': '186.6300', '2. high': '188.9500', '3. low': '185.9452', '4. close': '187.6400', '5. volume': '4842840'}, '2024-02-15': {'1. open': '183.6200', '2. high': '186.9800', '3. low': '183.6200', '4. close': '186.8700', '5. volume': '4714301'}, '2024-02-14': {'1. open': '185.0000', '2. high': '185.0000', '3. low': '182.2600', '4. close': '183.5700', '5. volume': '3173391'}, '2024-02-13': {'1. open': '184.2800', '2. high': '184.7700', '3. low': '182.3600', '4. close': '183.7000', '5. volume': '4290453'}, '2024-02-12': {'1. open': '185.9000', '2. high': '186.4800', '3. low': '184.0300', '4. close': '186.1600', '5. volume': '4724021'}, '2024-02-09': {'1. open': '184.4400', '2. high': '187.1800', '3. low': '183.8500', '4. close': '186.3400', '5. volume': '5064641'}, '2024-02-08': {'1. open': '182.6300', '2. high': '184.5500', '3. low': '181.4900', '4. close': '184.3600', '5. volume': '5161185'}, '2024-02-07': {'1. open': '183.3400', '2. high': '184.0200', '3. low': '182.6250', '4. close': '183.7400', '5. volume': '4841188'}, '2024-02-06': {'1. open': '183.5500', '2. high': '184.6800', '3. low': '183.0400', '4. close': '183.4100', '5. volume': '3338196'}, '2024-02-05': {'1. open': '185.5100', '2. high': '185.7800', '3. low': '183.2550', '4. close': '183.4200', '5. volume': '4379602'}, '2024-02-02': {'1. open': '187.1000', '2. high': '187.3900', '3. low': '185.6150', '4. close': '185.7900', '5. volume': '4055411'}, '2024-02-01': {'1. open': '183.6300', '2. high': '187.5100', '3. low': '182.7100', '4. close': '186.9000', '5. volume': '4669444'}, '2024-01-31': {'1. open': '187.0500', '2. high': '187.6500', '3. low': '183.1400', '4. close': '183.6600', '5. volume': '8876055'}, '2024-01-30': {'1. open': '187.7100', '2. high': '188.6500', '3. low': '186.7700', '4. close': '187.8700', '5. volume': '4575058'}, '2024-01-29': {'1. open': '187.4600', '2. high': '189.4600', '3. low': '186.0500', '4. close': '187.1400', '5. volume': '6107908'}, '2024-01-26': {'1. open': '191.3100', '2. high': '192.3896', '3. low': '186.1600', '4. close': '187.4200', '5. volume': '9895941'}}}\n"
+ ]
+ }
+ ],
+ "source": [
+ "import requests\n",
+ "api_key = 'E51I8SW56CK2Z1NQ'\n",
+ "# replace the \"demo\" apikey below with your own key from https://www.alphavantage.co/support/#api-key\n",
+ "url = 'https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=IBM&apikey=E51I8SW56CK2Z1NQ'\n",
+ "r = requests.get(url)\n",
+ "data = r.json()\n",
+ "\n",
+ "print(data)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "10abdb81-2011-4363-8d03-2124b4e30166",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from alpha_vantage.timeseries import TimeSeries\n",
+ "import pandas as pd\n",
+ "\n",
+ "# Replace 'YOUR_API_KEY' with your Alpha Vantage API key\n",
+ "api_key = \"E51I8SW56CK2Z1NQ\"\n",
+ "\n",
+ "# Set the symbol for the financial instrument you're interested in (e.g., 'BTCUSDT' for Bitcoin/US Dollar)\n",
+ "symbol = 'BTCUSDT'\n",
+ "\n",
+ "# Initialize the TimeSeries object with your API key\n",
+ "ts = TimeSeries(key=api_key, output_format='pandas')\n",
+ "\n",
+ "# Specify the function to get daily financial data\n",
+ "# 'Time Series (Daily)' returns daily data\n",
+ "data, meta_data = ts.get_daily(symbol=symbol, outputsize='full')\n",
+ "\n",
+ "# Extract and display the relevant information\n",
+ "df = data.rename(columns={'1. open': 'Open', '2. high': 'High', '3. low': 'Low', '4. close': 'Close', '5. volume': 'Volume'})\n",
+ "df.index = pd.to_datetime(df.index)\n",
+ "df.to_csv(f'{symbol.lower()}_data_alpha_vantage_daily.csv')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "1d7f876a-bf74-447f-bba7-2315b8ee7616",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.8.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/BatchProcess/DataSource/Binance/btcusdt_data_alpha_vantage_daily.csv b/BatchProcess/DataSource/Binance/btcusdt_data_alpha_vantage_daily.csv
new file mode 100644
index 0000000..2c62af7
--- /dev/null
+++ b/BatchProcess/DataSource/Binance/btcusdt_data_alpha_vantage_daily.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f13a501ee1996d32e5f9253141f46a6a295b240deef0490f04561a067ae04b6b
+size 76530
diff --git a/BatchProcess/DataSource/ListSnP500/ListSnP500Collect.py b/BatchProcess/DataSource/ListSnP500/ListSnP500Collect.py
new file mode 100644
index 0000000..7015fc1
--- /dev/null
+++ b/BatchProcess/DataSource/ListSnP500/ListSnP500Collect.py
@@ -0,0 +1,27 @@
+import pandas as pd
+
+list_remove = ['GEV', 'SOLV', 'VLTO', 'BF.B', 'BRK.B']
+
+
+class ListSAndP500:
+ def __init__(self):
+ """
+ Initialize the ListSAndP500 class
+
+ Attributes:
+ tickers_string (list): A list of stock symbols in string format
+ tickers_list (list): A list of stock symbols in list format
+
+ """
+ _tickers = pd.read_html(
+ 'https://en.wikipedia.org/wiki/List_of_S%26P_500_companies')[0]
+ _tickers = _tickers.Symbol.to_list()
+ self.tickers_string = [i.replace('.', '-') for i in _tickers]
+ _tickers_list_transform_ = [
+ i if i not in list_remove else False for i in _tickers]
+ self.tickers_list = [i for i in _tickers_list_transform_ if i]
+
+
+"""
+Usage: list_of_symbols = ListSAndP500().tickers_list
+"""
diff --git a/BatchProcess/DataSource/Reddit/RedditDataSource.py b/BatchProcess/DataSource/Reddit/RedditDataSource.py
new file mode 100644
index 0000000..b0a47a7
--- /dev/null
+++ b/BatchProcess/DataSource/Reddit/RedditDataSource.py
@@ -0,0 +1,130 @@
+import psycopg2
+import praw
+from datetime import datetime
+import pandas as pd
+from time import sleep
+import os
+from dotenv import load_dotenv
+
+
+class RedditToPostgres:
+ def __init__(self):
+ load_dotenv(override=True)
+
+ self.subreddits = ["trading", "stockmarket",
+ "investing", "stocks", "wallstreetbets"]
+ self.fields = ["title", "url", "subreddit",
+ "score", "num_comments", "ups", "id"]
+
+ self.client_id = os.getenv("REDDIT_CLIENT_ID")
+ self.client_secret = os.getenv("REDDIT_CLIENT_SECRET")
+ self.username = os.getenv("REDDIT_USER")
+ self.password = os.getenv("REDDIT_PASSWORD")
+ self.user_agent = os.getenv("REDDIT_USER_AGENT")
+
+ self.postgres_url = os.getenv("POSTGRES_URL")
+ self.postgres_user = os.getenv("POSTGRES_USER")
+ self.postgres_pass = os.getenv("POSTGRES_PASSWORD")
+ self.postgres_table = os.getenv("POSTGRES_TABLE")
+ self.format_file = os.getenv("FORMAT_FILE")
+ self.mode = os.getenv("MODE")
+ self.insert_query = os.getenv("INSERT_QUERY")
+ self.configure_table = os.getenv("CONFIGURE_TABLE")
+ self.create_table_query = os.getenv("CREATE_TABLE_QUERY")
+ self.connection_os_postgres = os.getenv("POSTGRE_CONNECTION")
+
+ @staticmethod
+ def convert_unix_to_datetime(unix_timestamp):
+ try:
+ if isinstance(unix_timestamp, str):
+ if unix_timestamp.isdigit():
+ unix_timestamp = int(unix_timestamp)
+ else:
+ try:
+ datetime.strptime(unix_timestamp, '%Y-%m-%d %H:%M:%S')
+ return unix_timestamp
+ except ValueError:
+ raise ValueError("Invalid Unix timestamp format")
+ elif isinstance(unix_timestamp, int):
+ pass
+ else:
+ raise ValueError("Invalid Unix timestamp format")
+
+ return datetime.utcfromtimestamp(unix_timestamp).strftime('%Y-%m-%d %H:%M:%S')
+ except Exception as e:
+ print(f"Error: {e}")
+ return None
+
+ def init_postgresql(self):
+ connection = psycopg2.connect(self.connection_os_postgres)
+ connection.set_client_encoding('UTF8')
+ cursor = connection.cursor()
+ cursor.execute(self.create_table_query)
+ cursor.execute(self.configure_table)
+ connection.commit()
+ return connection, cursor
+
+ @staticmethod
+ def write_to_postgresql(df, cursor, connection, insert_query):
+ """Write DataFrame to PostgreSQL database."""
+ for _, row in df.iterrows():
+ date_created_utc = RedditToPostgres.convert_unix_to_datetime(
+ row["date_created_utc"])
+
+ if date_created_utc is None:
+ print(
+ f"Skipping row due to invalid timestamp: {date_created_utc}")
+ continue
+ row["date_created_utc"] = str(row["date_created_utc"])
+ data = (row["id"], row["subreddit"], row["url"], row["title"].replace(
+ '\'', ""), row["score"], row["num_comments"], row["downvotes"], row["ups"], row["date_created_utc"])
+ try:
+ cursor.execute(insert_query, data)
+ connection.commit()
+ except Exception as e:
+ print(f"Error: {e}")
+ continue
+
+ def init_reddit(self):
+ """Initialize the reddit instance"""
+ return praw.Reddit(
+ client_id=self.client_id,
+ client_secret=self.client_secret,
+ user_agent=self.user_agent,
+ username=self.username,
+ password=self.password
+ )
+
+ def reddit_stream(self, reddit, cursor, connection):
+ """Stream the data from Reddit"""
+ rows = []
+ while True:
+ recent_posts = reddit.subreddit(
+ "+".join(self.subreddits)).hot(limit=10)
+ for p in recent_posts:
+ rows_dict = {field: str(getattr(p, field))
+ for field in self.fields}
+ created_utc = str(int(getattr(p, "created_utc")))
+ rows_dict["date_created_utc"] = str(
+ datetime.fromtimestamp(int(created_utc)))
+ rows_dict["downvotes"] = str(
+ getattr(p, "ups") - getattr(p, "score"))
+ rows.append(rows_dict)
+ df = pd.DataFrame(rows)
+ with open('reddit.csv', 'a', newline='', encoding='utf-8') as f:
+ df.to_csv(f, header=f.tell() == 0, index=False)
+ if not df.empty:
+ RedditToPostgres.write_to_postgresql(
+ df, cursor, connection, self.insert_query)
+ rows.clear()
+ print(f"Finish write at {datetime.now()}")
+ sleep(65)
+
+ def main(self):
+ reddit = self.init_reddit()
+ connection, cursor = self.init_postgresql()
+ self.reddit_stream(reddit, cursor, connection)
+
+
+if __name__ == "__main__":
+ RedditToPostgres().main()
diff --git a/BatchProcess/DataSource/YahooFinance/.env b/BatchProcess/DataSource/YahooFinance/.env
new file mode 100644
index 0000000..57f11e5
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/.env
@@ -0,0 +1,18 @@
+# Postgres Configuration
+POSTGRES_VERSION="org.postgresql:postgresql:42.2.20"
+POSTGRES_URL="jdbc:postgresql://localhost:5432/postgres"
+POSTGRES_USER="postgres"
+POSTGRES_PASSWORD="admin"
+POSTGRES_TABLE="FactPrices"
+
+FORMAT_FILE="jdbc"
+MODE="append"
+
+COLUMN_1="stock_id"
+COLUMN_2="date"
+COLUMN_3="open"
+COLUMN_4="high"
+COLUMN_5="low"
+COLUMN_6="close"
+COLUMN_7="volume"
+COLUMN_8="adjusted_close"
\ No newline at end of file
diff --git a/BatchProcess/DataSource/YahooFinance/.ipynb_checkpoints/Workbook Yahoo Retrieve Data-checkpoint.ipynb b/BatchProcess/DataSource/YahooFinance/.ipynb_checkpoints/Workbook Yahoo Retrieve Data-checkpoint.ipynb
new file mode 100644
index 0000000..986c0f4
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/.ipynb_checkpoints/Workbook Yahoo Retrieve Data-checkpoint.ipynb
@@ -0,0 +1,637 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "4e86daf8-e0cb-4767-bb8a-f8cf46a10fbe",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from pyspark.sql.types import StructType, StructField, StringType\n",
+ "from pyspark.sql import SparkSession\n",
+ "from dotenv import load_dotenv\n",
+ "from datetime import datetime\n",
+ "import yfinance as yf\n",
+ "import pandas as pd\n",
+ "import os\n",
+ "\n",
+ "load_dotenv(override=True)\n",
+ "\n",
+ "postgres_v = os.getenv(\"POSTGRES_VERSION\")\n",
+ "postgres_url = os.getenv(\"POSTGRES_URL\")\n",
+ "postgres_user = os.getenv(\"POSTGRES_USER\")\n",
+ "postgres_pass = os.getenv(\"POSTGRES_PASSWORD\")\n",
+ "postgres_table = os.getenv(\"POSTGRES_TABLE\")\n",
+ "format_file = os.getenv(\"FORMAT_FILE\")\n",
+ "_mode = os.getenv(\"MODE\")\n",
+ "\n",
+ "config_ = postgres_v\n",
+ "\n",
+ "column_1_name = os.getenv(\"COLUMN_1\")\n",
+ "column_2_name = os.getenv(\"COLUMN_2\")\n",
+ "column_3_name = os.getenv(\"COLUMN_3\")\n",
+ "column_4_name = os.getenv(\"COLUMN_4\")\n",
+ "column_5_name = os.getenv(\"COLUMN_5\")\n",
+ "column_6_name = os.getenv(\"COLUMN_6\")\n",
+ "column_7_name = os.getenv(\"COLUMN_7\")\n",
+ "column_8_name = os.getenv(\"COLUMN_8\")\n",
+ "\n",
+ "list_remove = ['GEV','SOLV','VLTO','BF.B','BRK.B']\n",
+ "\n",
+ "class ListSAndP500:\n",
+ " def __init__(self):\n",
+ " \"\"\"\n",
+ " Initialize the ListSAndP500 class\n",
+ "\n",
+ " Attributes:\n",
+ " tickers_string (list): A list of stock symbols in string format\n",
+ " tickers_list (list): A list of stock symbols in list format\n",
+ "\n",
+ " \"\"\"\n",
+ " _tickers = pd.read_html('https://en.wikipedia.org/wiki/List_of_S%26P_500_companies')[0]\n",
+ " _tickers = _tickers.Symbol.to_list()\n",
+ " self.tickers_string = [i.replace('.','-') for i in _tickers]\n",
+ " _tickers_list_transform_ = [i if i not in list_remove else False for i in _tickers]\n",
+ " self.tickers_list = [i for i in _tickers_list_transform_ if i]\n",
+ " \n",
+ "list_of_symbols__ = ListSAndP500().tickers_list\n",
+ "\n",
+ "class YahooFinance:\n",
+ " def __init__(self, list_of_symbols, start, end):\n",
+ " self.schema = StructType([\n",
+ " StructField(column_1_name, StringType(), True),\n",
+ " StructField(column_2_name, StringType(), True),\n",
+ " StructField(column_3_name, StringType(), True),\n",
+ " StructField(column_4_name, StringType(), True),\n",
+ " StructField(column_5_name, StringType(), True),\n",
+ " StructField(column_6_name, StringType(), True),\n",
+ " StructField(column_7_name, StringType(), True)\n",
+ " #StructField(column_8_name, StringType(), True)\n",
+ " ])\n",
+ "\n",
+ " self.symbols = list_of_symbols\n",
+ " self.interval = '1d'\n",
+ " self.start = start\n",
+ " self.end = end\n",
+ " self.results = self.process_data()\n",
+ "\n",
+ " def process_data(self):\n",
+ " \"\"\"\n",
+ " Process the historical stock data for the stock symbols\n",
+ " \"\"\"\n",
+ " data = self.get_data()\n",
+ " return self.transform_data(data)\n",
+ "\n",
+ " def get_data(self):\n",
+ " \"\"\"\n",
+ " Get historical stock data from Yahoo Finance API using yfinance library\n",
+ "\n",
+ " Returns:\n",
+ " DataFrame: A DataFrame containing historical stock data\n",
+ " \"\"\"\n",
+ " try:\n",
+ " data = yf.download(\n",
+ " self.symbols,\n",
+ " start=self.start,\n",
+ " end=self.end,\n",
+ " interval=self.interval,\n",
+ " ignore_tz=True,\n",
+ " threads=5,\n",
+ " timeout=60,\n",
+ " progress=True\n",
+ " )\n",
+ " return data\n",
+ " except Exception as e:\n",
+ " print(f\"Error downloading data: {e}\")\n",
+ " return None\n",
+ "\n",
+ " def transform_data(self, df):\n",
+ " \"\"\"\n",
+ " Transform the historical stock data into a format that can be stored in a database FactPrices table\n",
+ "\n",
+ " Args:\n",
+ " df (DataFrame): A DataFrame containing historical stock data\n",
+ "\n",
+ " Returns:\n",
+ " DataFrame: A DataFrame containing transformed historical stock data with the following columns:\n",
+ " - stock_id (str): The stock symbol\n",
+ " - date (str): The date of the stock data\n",
+ " - open (float): The opening price of the stock\n",
+ " - high (float): The highest price of the stock\n",
+ " - low (float): The lowest price of the stock\n",
+ " - close (float): The closing price of the stock\n",
+ " - volume (int): The volume of the stock\n",
+ " - adjusted_close (float): The adjusted closing price of the stock\n",
+ "\n",
+ " \"\"\"\n",
+ " # Reset the index to turn the MultiIndex into columns\n",
+ " df = df.reset_index()\n",
+ "\n",
+ " # Create a list to store transformed records\n",
+ " records = []\n",
+ "\n",
+ " # Iterate over each row and stock symbol\n",
+ " for index, row in df.iterrows():\n",
+ " date = row[('Date', '')]\n",
+ " for stock in self.symbols:\n",
+ " try:\n",
+ " record = {\n",
+ " column_1_name: stock,\n",
+ " column_2_name: date,\n",
+ " column_3_name: row[('Open', stock)],\n",
+ " column_4_name: row[('High', stock)],\n",
+ " column_5_name: row[('Low', stock)],\n",
+ " column_6_name: row[('Close', stock)],\n",
+ " column_7_name: row[('Volume', stock)]\n",
+ " #column_8_name: row[('Adj Close', stock)]\n",
+ " }\n",
+ " records.append(record)\n",
+ " except KeyError as e:\n",
+ " print(f\"KeyError: {e} for stock: {stock} on date: {date}\")\n",
+ "\n",
+ " # Convert the list of records into a DataFrame\n",
+ " return pd.DataFrame(records)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "7a0cd6a5-3629-42ae-886d-03e872242276",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "[*********************100%%**********************] 498 of 498 completed\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " stock_id date open high low close \\\n",
+ "0 MMM 2014-01-02 115.426422 116.220734 115.058525 115.493309 \n",
+ "1 AOS 2014-01-02 26.965000 26.990000 26.535000 26.660000 \n",
+ "2 ABT 2014-01-02 38.090000 38.400002 38.000000 38.230000 \n",
+ "3 ABBV 2014-01-02 52.119999 52.330002 51.520000 51.980000 \n",
+ "4 ACN 2014-01-02 81.500000 81.919998 81.089996 81.129997 \n",
+ "\n",
+ " volume \n",
+ "0 3650312.0 \n",
+ "1 1297000.0 \n",
+ "2 4967500.0 \n",
+ "3 4569100.0 \n",
+ "4 2405400.0 \n"
+ ]
+ }
+ ],
+ "source": [
+ "transformed_data = YahooFinance(list_of_symbols__, '2014-01-01', datetime.now().strftime('%Y-%m-%d')).results\n",
+ "print(transformed_data.head())"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "e3613f13-de97-4dae-b6c7-2b7408806ec0",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "1311732"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "len(transformed_data)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "id": "69e16637-f9d7-4656-80b6-5f03f6f29c38",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " stock_id | \n",
+ " date | \n",
+ " open | \n",
+ " high | \n",
+ " low | \n",
+ " close | \n",
+ " volume | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1311581 | \n",
+ " NVR | \n",
+ " 2024-06-20 | \n",
+ " 7507.569824 | \n",
+ " 7562.299805 | \n",
+ " 7422.330078 | \n",
+ " 7514.879883 | \n",
+ " 22500.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311303 | \n",
+ " BKNG | \n",
+ " 2024-06-20 | \n",
+ " 3995.000000 | \n",
+ " 4004.399902 | \n",
+ " 3961.280029 | \n",
+ " 3972.080078 | \n",
+ " 211600.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311337 | \n",
+ " CMG | \n",
+ " 2024-06-20 | \n",
+ " 3445.580078 | \n",
+ " 3445.580078 | \n",
+ " 3188.000000 | \n",
+ " 3214.419922 | \n",
+ " 844100.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311285 | \n",
+ " AZO | \n",
+ " 2024-06-20 | \n",
+ " 2979.469971 | \n",
+ " 3029.879883 | \n",
+ " 2979.469971 | \n",
+ " 3008.229980 | \n",
+ " 287400.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311308 | \n",
+ " AVGO | \n",
+ " 2024-06-20 | \n",
+ " 1803.459961 | \n",
+ " 1804.750000 | \n",
+ " 1722.219971 | \n",
+ " 1734.560059 | \n",
+ " 6595500.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311546 | \n",
+ " MTD | \n",
+ " 2024-06-20 | \n",
+ " 1466.770020 | \n",
+ " 1470.729980 | \n",
+ " 1452.270020 | \n",
+ " 1456.589966 | \n",
+ " 119400.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311424 | \n",
+ " FICO | \n",
+ " 2024-06-20 | \n",
+ " 1428.250000 | \n",
+ " 1428.609985 | \n",
+ " 1401.670044 | \n",
+ " 1412.760010 | \n",
+ " 138300.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311680 | \n",
+ " TDG | \n",
+ " 2024-06-20 | \n",
+ " 1347.869995 | \n",
+ " 1349.000000 | \n",
+ " 1325.260010 | \n",
+ " 1329.670044 | \n",
+ " 208400.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311516 | \n",
+ " LRCX | \n",
+ " 2024-06-20 | \n",
+ " 1091.920044 | \n",
+ " 1093.390015 | \n",
+ " 1050.219971 | \n",
+ " 1061.310059 | \n",
+ " 1461200.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311583 | \n",
+ " ORLY | \n",
+ " 2024-06-20 | \n",
+ " 1059.500000 | \n",
+ " 1083.239990 | \n",
+ " 1059.500000 | \n",
+ " 1080.569946 | \n",
+ " 724300.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311628 | \n",
+ " REGN | \n",
+ " 2024-06-20 | \n",
+ " 1038.439941 | \n",
+ " 1046.290039 | \n",
+ " 1028.000000 | \n",
+ " 1044.390015 | \n",
+ " 590500.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311659 | \n",
+ " SMCI | \n",
+ " 2024-06-20 | \n",
+ " 961.289978 | \n",
+ " 1014.020020 | \n",
+ " 900.320007 | \n",
+ " 917.640015 | \n",
+ " 13347900.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311375 | \n",
+ " DECK | \n",
+ " 2024-06-20 | \n",
+ " 1008.099976 | \n",
+ " 1012.450012 | \n",
+ " 980.000000 | \n",
+ " 989.440002 | \n",
+ " 381700.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311708 | \n",
+ " GWW | \n",
+ " 2024-06-20 | \n",
+ " 921.809998 | \n",
+ " 927.710022 | \n",
+ " 913.630005 | \n",
+ " 915.289978 | \n",
+ " 186400.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311401 | \n",
+ " LLY | \n",
+ " 2024-06-20 | \n",
+ " 893.000000 | \n",
+ " 905.450012 | \n",
+ " 870.130005 | \n",
+ " 885.989990 | \n",
+ " 3357900.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311365 | \n",
+ " COST | \n",
+ " 2024-06-20 | \n",
+ " 871.309998 | \n",
+ " 873.849976 | \n",
+ " 860.559998 | \n",
+ " 862.440002 | \n",
+ " 1941100.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311511 | \n",
+ " KLAC | \n",
+ " 2024-06-20 | \n",
+ " 863.369995 | \n",
+ " 864.190002 | \n",
+ " 826.549988 | \n",
+ " 829.590027 | \n",
+ " 1281900.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311557 | \n",
+ " MPWR | \n",
+ " 2024-06-20 | \n",
+ " 846.000000 | \n",
+ " 848.450012 | \n",
+ " 819.630005 | \n",
+ " 825.330017 | \n",
+ " 649900.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311300 | \n",
+ " BLK | \n",
+ " 2024-06-20 | \n",
+ " 782.020020 | \n",
+ " 784.049988 | \n",
+ " 777.520020 | \n",
+ " 782.830017 | \n",
+ " 496800.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311409 | \n",
+ " EQIX | \n",
+ " 2024-06-20 | \n",
+ " 773.000000 | \n",
+ " 774.809998 | \n",
+ " 762.340027 | \n",
+ " 763.599976 | \n",
+ " 369600.0 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " stock_id date open high low \\\n",
+ "1311581 NVR 2024-06-20 7507.569824 7562.299805 7422.330078 \n",
+ "1311303 BKNG 2024-06-20 3995.000000 4004.399902 3961.280029 \n",
+ "1311337 CMG 2024-06-20 3445.580078 3445.580078 3188.000000 \n",
+ "1311285 AZO 2024-06-20 2979.469971 3029.879883 2979.469971 \n",
+ "1311308 AVGO 2024-06-20 1803.459961 1804.750000 1722.219971 \n",
+ "1311546 MTD 2024-06-20 1466.770020 1470.729980 1452.270020 \n",
+ "1311424 FICO 2024-06-20 1428.250000 1428.609985 1401.670044 \n",
+ "1311680 TDG 2024-06-20 1347.869995 1349.000000 1325.260010 \n",
+ "1311516 LRCX 2024-06-20 1091.920044 1093.390015 1050.219971 \n",
+ "1311583 ORLY 2024-06-20 1059.500000 1083.239990 1059.500000 \n",
+ "1311628 REGN 2024-06-20 1038.439941 1046.290039 1028.000000 \n",
+ "1311659 SMCI 2024-06-20 961.289978 1014.020020 900.320007 \n",
+ "1311375 DECK 2024-06-20 1008.099976 1012.450012 980.000000 \n",
+ "1311708 GWW 2024-06-20 921.809998 927.710022 913.630005 \n",
+ "1311401 LLY 2024-06-20 893.000000 905.450012 870.130005 \n",
+ "1311365 COST 2024-06-20 871.309998 873.849976 860.559998 \n",
+ "1311511 KLAC 2024-06-20 863.369995 864.190002 826.549988 \n",
+ "1311557 MPWR 2024-06-20 846.000000 848.450012 819.630005 \n",
+ "1311300 BLK 2024-06-20 782.020020 784.049988 777.520020 \n",
+ "1311409 EQIX 2024-06-20 773.000000 774.809998 762.340027 \n",
+ "\n",
+ " close volume \n",
+ "1311581 7514.879883 22500.0 \n",
+ "1311303 3972.080078 211600.0 \n",
+ "1311337 3214.419922 844100.0 \n",
+ "1311285 3008.229980 287400.0 \n",
+ "1311308 1734.560059 6595500.0 \n",
+ "1311546 1456.589966 119400.0 \n",
+ "1311424 1412.760010 138300.0 \n",
+ "1311680 1329.670044 208400.0 \n",
+ "1311516 1061.310059 1461200.0 \n",
+ "1311583 1080.569946 724300.0 \n",
+ "1311628 1044.390015 590500.0 \n",
+ "1311659 917.640015 13347900.0 \n",
+ "1311375 989.440002 381700.0 \n",
+ "1311708 915.289978 186400.0 \n",
+ "1311401 885.989990 3357900.0 \n",
+ "1311365 862.440002 1941100.0 \n",
+ "1311511 829.590027 1281900.0 \n",
+ "1311557 825.330017 649900.0 \n",
+ "1311300 782.830017 496800.0 \n",
+ "1311409 763.599976 369600.0 "
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "transformed_data_today = transformed_data.sort_values(by=['date', 'high','volume'],ascending=False)\n",
+ "transformed_data_today_highest = transformed_data_today.head(20)\n",
+ "transformed_data_today_highest"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "59c52b0a-1f7f-4ec8-b976-a691e8c49f8f",
+ "metadata": {},
+ "source": [
+ "## Transform Data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "94ecfc50-b102-4561-b691-51d14a717ad4",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "total_data_dict = dict()\n",
+ "fileroute=\"./dataset/\"\n",
+ "fileroute_ticket=\"./dataset/tickets/\"\n",
+ "transformed_data.to_csv(fileroute + \"Summary.csv\", index=False, encoding='utf-8')\n",
+ "\n",
+ "for i in range(len(list_of_symbols__)):\n",
+ " filtered_data = transformed_data[transformed_data['stock_id'] == list_of_symbols__[i]]\n",
+ " filtered_data = filtered_data.reset_index()\n",
+ " total_data_dict[list_of_symbols__[i]] = filtered_data\n",
+ " filtered_data.to_csv(fileroute_ticket + list_of_symbols__[i] + \".csv\", index=False, encoding='utf-8')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "b85ff026-0996-47ca-ab1c-0d1552dd6936",
+ "metadata": {},
+ "source": [
+ "## Checking the missing data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "bd7367a7-8c9f-4a71-832b-26e0b3d469b2",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "unique_dates = pd.DatetimeIndex(transformed_data['date'].unique())"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "1f3edde9-b968-47d2-8ad3-bf08f9f3870e",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "284\n",
+ " missing_dates\n",
+ "264 2024-04-21\n",
+ "265 2024-04-27\n",
+ "266 2024-04-28\n",
+ "267 2024-05-04\n",
+ "268 2024-05-05\n",
+ "269 2024-05-11\n",
+ "270 2024-05-12\n",
+ "271 2024-05-18\n",
+ "272 2024-05-19\n",
+ "273 2024-05-25\n",
+ "274 2024-05-26\n",
+ "275 2024-05-27\n",
+ "276 2024-06-01\n",
+ "277 2024-06-02\n",
+ "278 2024-06-08\n",
+ "279 2024-06-09\n",
+ "280 2024-06-15\n",
+ "281 2024-06-16\n",
+ "282 2024-06-19\n",
+ "283 2024-06-20\n",
+ "902\n"
+ ]
+ }
+ ],
+ "source": [
+ "complete_dates = pd.date_range(start='2022-01-01', end=datetime.now().strftime('%Y-%m-%d'))\n",
+ "\n",
+ "missing_dates = complete_dates.difference(unique_dates)\n",
+ "\n",
+ "# Convert missing dates to a DataFrame for display\n",
+ "missing_dates_df = pd.DataFrame(missing_dates, columns=['missing_dates'])\n",
+ "\n",
+ "print(len(missing_dates_df))\n",
+ "print(missing_dates_df.tail(20))\n",
+ "print(len(complete_dates))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "59f13b03-07db-402f-acdc-24f93047b48d",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.8.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/BatchProcess/DataSource/YahooFinance/Workbook Yahoo Retrieve Data.ipynb b/BatchProcess/DataSource/YahooFinance/Workbook Yahoo Retrieve Data.ipynb
new file mode 100644
index 0000000..986c0f4
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/Workbook Yahoo Retrieve Data.ipynb
@@ -0,0 +1,637 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "id": "4e86daf8-e0cb-4767-bb8a-f8cf46a10fbe",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "from pyspark.sql.types import StructType, StructField, StringType\n",
+ "from pyspark.sql import SparkSession\n",
+ "from dotenv import load_dotenv\n",
+ "from datetime import datetime\n",
+ "import yfinance as yf\n",
+ "import pandas as pd\n",
+ "import os\n",
+ "\n",
+ "load_dotenv(override=True)\n",
+ "\n",
+ "postgres_v = os.getenv(\"POSTGRES_VERSION\")\n",
+ "postgres_url = os.getenv(\"POSTGRES_URL\")\n",
+ "postgres_user = os.getenv(\"POSTGRES_USER\")\n",
+ "postgres_pass = os.getenv(\"POSTGRES_PASSWORD\")\n",
+ "postgres_table = os.getenv(\"POSTGRES_TABLE\")\n",
+ "format_file = os.getenv(\"FORMAT_FILE\")\n",
+ "_mode = os.getenv(\"MODE\")\n",
+ "\n",
+ "config_ = postgres_v\n",
+ "\n",
+ "column_1_name = os.getenv(\"COLUMN_1\")\n",
+ "column_2_name = os.getenv(\"COLUMN_2\")\n",
+ "column_3_name = os.getenv(\"COLUMN_3\")\n",
+ "column_4_name = os.getenv(\"COLUMN_4\")\n",
+ "column_5_name = os.getenv(\"COLUMN_5\")\n",
+ "column_6_name = os.getenv(\"COLUMN_6\")\n",
+ "column_7_name = os.getenv(\"COLUMN_7\")\n",
+ "column_8_name = os.getenv(\"COLUMN_8\")\n",
+ "\n",
+ "list_remove = ['GEV','SOLV','VLTO','BF.B','BRK.B']\n",
+ "\n",
+ "class ListSAndP500:\n",
+ " def __init__(self):\n",
+ " \"\"\"\n",
+ " Initialize the ListSAndP500 class\n",
+ "\n",
+ " Attributes:\n",
+ " tickers_string (list): A list of stock symbols in string format\n",
+ " tickers_list (list): A list of stock symbols in list format\n",
+ "\n",
+ " \"\"\"\n",
+ " _tickers = pd.read_html('https://en.wikipedia.org/wiki/List_of_S%26P_500_companies')[0]\n",
+ " _tickers = _tickers.Symbol.to_list()\n",
+ " self.tickers_string = [i.replace('.','-') for i in _tickers]\n",
+ " _tickers_list_transform_ = [i if i not in list_remove else False for i in _tickers]\n",
+ " self.tickers_list = [i for i in _tickers_list_transform_ if i]\n",
+ " \n",
+ "list_of_symbols__ = ListSAndP500().tickers_list\n",
+ "\n",
+ "class YahooFinance:\n",
+ " def __init__(self, list_of_symbols, start, end):\n",
+ " self.schema = StructType([\n",
+ " StructField(column_1_name, StringType(), True),\n",
+ " StructField(column_2_name, StringType(), True),\n",
+ " StructField(column_3_name, StringType(), True),\n",
+ " StructField(column_4_name, StringType(), True),\n",
+ " StructField(column_5_name, StringType(), True),\n",
+ " StructField(column_6_name, StringType(), True),\n",
+ " StructField(column_7_name, StringType(), True)\n",
+ " #StructField(column_8_name, StringType(), True)\n",
+ " ])\n",
+ "\n",
+ " self.symbols = list_of_symbols\n",
+ " self.interval = '1d'\n",
+ " self.start = start\n",
+ " self.end = end\n",
+ " self.results = self.process_data()\n",
+ "\n",
+ " def process_data(self):\n",
+ " \"\"\"\n",
+ " Process the historical stock data for the stock symbols\n",
+ " \"\"\"\n",
+ " data = self.get_data()\n",
+ " return self.transform_data(data)\n",
+ "\n",
+ " def get_data(self):\n",
+ " \"\"\"\n",
+ " Get historical stock data from Yahoo Finance API using yfinance library\n",
+ "\n",
+ " Returns:\n",
+ " DataFrame: A DataFrame containing historical stock data\n",
+ " \"\"\"\n",
+ " try:\n",
+ " data = yf.download(\n",
+ " self.symbols,\n",
+ " start=self.start,\n",
+ " end=self.end,\n",
+ " interval=self.interval,\n",
+ " ignore_tz=True,\n",
+ " threads=5,\n",
+ " timeout=60,\n",
+ " progress=True\n",
+ " )\n",
+ " return data\n",
+ " except Exception as e:\n",
+ " print(f\"Error downloading data: {e}\")\n",
+ " return None\n",
+ "\n",
+ " def transform_data(self, df):\n",
+ " \"\"\"\n",
+ " Transform the historical stock data into a format that can be stored in a database FactPrices table\n",
+ "\n",
+ " Args:\n",
+ " df (DataFrame): A DataFrame containing historical stock data\n",
+ "\n",
+ " Returns:\n",
+ " DataFrame: A DataFrame containing transformed historical stock data with the following columns:\n",
+ " - stock_id (str): The stock symbol\n",
+ " - date (str): The date of the stock data\n",
+ " - open (float): The opening price of the stock\n",
+ " - high (float): The highest price of the stock\n",
+ " - low (float): The lowest price of the stock\n",
+ " - close (float): The closing price of the stock\n",
+ " - volume (int): The volume of the stock\n",
+ " - adjusted_close (float): The adjusted closing price of the stock\n",
+ "\n",
+ " \"\"\"\n",
+ " # Reset the index to turn the MultiIndex into columns\n",
+ " df = df.reset_index()\n",
+ "\n",
+ " # Create a list to store transformed records\n",
+ " records = []\n",
+ "\n",
+ " # Iterate over each row and stock symbol\n",
+ " for index, row in df.iterrows():\n",
+ " date = row[('Date', '')]\n",
+ " for stock in self.symbols:\n",
+ " try:\n",
+ " record = {\n",
+ " column_1_name: stock,\n",
+ " column_2_name: date,\n",
+ " column_3_name: row[('Open', stock)],\n",
+ " column_4_name: row[('High', stock)],\n",
+ " column_5_name: row[('Low', stock)],\n",
+ " column_6_name: row[('Close', stock)],\n",
+ " column_7_name: row[('Volume', stock)]\n",
+ " #column_8_name: row[('Adj Close', stock)]\n",
+ " }\n",
+ " records.append(record)\n",
+ " except KeyError as e:\n",
+ " print(f\"KeyError: {e} for stock: {stock} on date: {date}\")\n",
+ "\n",
+ " # Convert the list of records into a DataFrame\n",
+ " return pd.DataFrame(records)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "7a0cd6a5-3629-42ae-886d-03e872242276",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "[*********************100%%**********************] 498 of 498 completed\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " stock_id date open high low close \\\n",
+ "0 MMM 2014-01-02 115.426422 116.220734 115.058525 115.493309 \n",
+ "1 AOS 2014-01-02 26.965000 26.990000 26.535000 26.660000 \n",
+ "2 ABT 2014-01-02 38.090000 38.400002 38.000000 38.230000 \n",
+ "3 ABBV 2014-01-02 52.119999 52.330002 51.520000 51.980000 \n",
+ "4 ACN 2014-01-02 81.500000 81.919998 81.089996 81.129997 \n",
+ "\n",
+ " volume \n",
+ "0 3650312.0 \n",
+ "1 1297000.0 \n",
+ "2 4967500.0 \n",
+ "3 4569100.0 \n",
+ "4 2405400.0 \n"
+ ]
+ }
+ ],
+ "source": [
+ "transformed_data = YahooFinance(list_of_symbols__, '2014-01-01', datetime.now().strftime('%Y-%m-%d')).results\n",
+ "print(transformed_data.head())"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "e3613f13-de97-4dae-b6c7-2b7408806ec0",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "1311732"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "len(transformed_data)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "id": "69e16637-f9d7-4656-80b6-5f03f6f29c38",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " stock_id | \n",
+ " date | \n",
+ " open | \n",
+ " high | \n",
+ " low | \n",
+ " close | \n",
+ " volume | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 1311581 | \n",
+ " NVR | \n",
+ " 2024-06-20 | \n",
+ " 7507.569824 | \n",
+ " 7562.299805 | \n",
+ " 7422.330078 | \n",
+ " 7514.879883 | \n",
+ " 22500.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311303 | \n",
+ " BKNG | \n",
+ " 2024-06-20 | \n",
+ " 3995.000000 | \n",
+ " 4004.399902 | \n",
+ " 3961.280029 | \n",
+ " 3972.080078 | \n",
+ " 211600.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311337 | \n",
+ " CMG | \n",
+ " 2024-06-20 | \n",
+ " 3445.580078 | \n",
+ " 3445.580078 | \n",
+ " 3188.000000 | \n",
+ " 3214.419922 | \n",
+ " 844100.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311285 | \n",
+ " AZO | \n",
+ " 2024-06-20 | \n",
+ " 2979.469971 | \n",
+ " 3029.879883 | \n",
+ " 2979.469971 | \n",
+ " 3008.229980 | \n",
+ " 287400.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311308 | \n",
+ " AVGO | \n",
+ " 2024-06-20 | \n",
+ " 1803.459961 | \n",
+ " 1804.750000 | \n",
+ " 1722.219971 | \n",
+ " 1734.560059 | \n",
+ " 6595500.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311546 | \n",
+ " MTD | \n",
+ " 2024-06-20 | \n",
+ " 1466.770020 | \n",
+ " 1470.729980 | \n",
+ " 1452.270020 | \n",
+ " 1456.589966 | \n",
+ " 119400.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311424 | \n",
+ " FICO | \n",
+ " 2024-06-20 | \n",
+ " 1428.250000 | \n",
+ " 1428.609985 | \n",
+ " 1401.670044 | \n",
+ " 1412.760010 | \n",
+ " 138300.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311680 | \n",
+ " TDG | \n",
+ " 2024-06-20 | \n",
+ " 1347.869995 | \n",
+ " 1349.000000 | \n",
+ " 1325.260010 | \n",
+ " 1329.670044 | \n",
+ " 208400.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311516 | \n",
+ " LRCX | \n",
+ " 2024-06-20 | \n",
+ " 1091.920044 | \n",
+ " 1093.390015 | \n",
+ " 1050.219971 | \n",
+ " 1061.310059 | \n",
+ " 1461200.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311583 | \n",
+ " ORLY | \n",
+ " 2024-06-20 | \n",
+ " 1059.500000 | \n",
+ " 1083.239990 | \n",
+ " 1059.500000 | \n",
+ " 1080.569946 | \n",
+ " 724300.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311628 | \n",
+ " REGN | \n",
+ " 2024-06-20 | \n",
+ " 1038.439941 | \n",
+ " 1046.290039 | \n",
+ " 1028.000000 | \n",
+ " 1044.390015 | \n",
+ " 590500.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311659 | \n",
+ " SMCI | \n",
+ " 2024-06-20 | \n",
+ " 961.289978 | \n",
+ " 1014.020020 | \n",
+ " 900.320007 | \n",
+ " 917.640015 | \n",
+ " 13347900.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311375 | \n",
+ " DECK | \n",
+ " 2024-06-20 | \n",
+ " 1008.099976 | \n",
+ " 1012.450012 | \n",
+ " 980.000000 | \n",
+ " 989.440002 | \n",
+ " 381700.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311708 | \n",
+ " GWW | \n",
+ " 2024-06-20 | \n",
+ " 921.809998 | \n",
+ " 927.710022 | \n",
+ " 913.630005 | \n",
+ " 915.289978 | \n",
+ " 186400.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311401 | \n",
+ " LLY | \n",
+ " 2024-06-20 | \n",
+ " 893.000000 | \n",
+ " 905.450012 | \n",
+ " 870.130005 | \n",
+ " 885.989990 | \n",
+ " 3357900.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311365 | \n",
+ " COST | \n",
+ " 2024-06-20 | \n",
+ " 871.309998 | \n",
+ " 873.849976 | \n",
+ " 860.559998 | \n",
+ " 862.440002 | \n",
+ " 1941100.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311511 | \n",
+ " KLAC | \n",
+ " 2024-06-20 | \n",
+ " 863.369995 | \n",
+ " 864.190002 | \n",
+ " 826.549988 | \n",
+ " 829.590027 | \n",
+ " 1281900.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311557 | \n",
+ " MPWR | \n",
+ " 2024-06-20 | \n",
+ " 846.000000 | \n",
+ " 848.450012 | \n",
+ " 819.630005 | \n",
+ " 825.330017 | \n",
+ " 649900.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311300 | \n",
+ " BLK | \n",
+ " 2024-06-20 | \n",
+ " 782.020020 | \n",
+ " 784.049988 | \n",
+ " 777.520020 | \n",
+ " 782.830017 | \n",
+ " 496800.0 | \n",
+ "
\n",
+ " \n",
+ " | 1311409 | \n",
+ " EQIX | \n",
+ " 2024-06-20 | \n",
+ " 773.000000 | \n",
+ " 774.809998 | \n",
+ " 762.340027 | \n",
+ " 763.599976 | \n",
+ " 369600.0 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " stock_id date open high low \\\n",
+ "1311581 NVR 2024-06-20 7507.569824 7562.299805 7422.330078 \n",
+ "1311303 BKNG 2024-06-20 3995.000000 4004.399902 3961.280029 \n",
+ "1311337 CMG 2024-06-20 3445.580078 3445.580078 3188.000000 \n",
+ "1311285 AZO 2024-06-20 2979.469971 3029.879883 2979.469971 \n",
+ "1311308 AVGO 2024-06-20 1803.459961 1804.750000 1722.219971 \n",
+ "1311546 MTD 2024-06-20 1466.770020 1470.729980 1452.270020 \n",
+ "1311424 FICO 2024-06-20 1428.250000 1428.609985 1401.670044 \n",
+ "1311680 TDG 2024-06-20 1347.869995 1349.000000 1325.260010 \n",
+ "1311516 LRCX 2024-06-20 1091.920044 1093.390015 1050.219971 \n",
+ "1311583 ORLY 2024-06-20 1059.500000 1083.239990 1059.500000 \n",
+ "1311628 REGN 2024-06-20 1038.439941 1046.290039 1028.000000 \n",
+ "1311659 SMCI 2024-06-20 961.289978 1014.020020 900.320007 \n",
+ "1311375 DECK 2024-06-20 1008.099976 1012.450012 980.000000 \n",
+ "1311708 GWW 2024-06-20 921.809998 927.710022 913.630005 \n",
+ "1311401 LLY 2024-06-20 893.000000 905.450012 870.130005 \n",
+ "1311365 COST 2024-06-20 871.309998 873.849976 860.559998 \n",
+ "1311511 KLAC 2024-06-20 863.369995 864.190002 826.549988 \n",
+ "1311557 MPWR 2024-06-20 846.000000 848.450012 819.630005 \n",
+ "1311300 BLK 2024-06-20 782.020020 784.049988 777.520020 \n",
+ "1311409 EQIX 2024-06-20 773.000000 774.809998 762.340027 \n",
+ "\n",
+ " close volume \n",
+ "1311581 7514.879883 22500.0 \n",
+ "1311303 3972.080078 211600.0 \n",
+ "1311337 3214.419922 844100.0 \n",
+ "1311285 3008.229980 287400.0 \n",
+ "1311308 1734.560059 6595500.0 \n",
+ "1311546 1456.589966 119400.0 \n",
+ "1311424 1412.760010 138300.0 \n",
+ "1311680 1329.670044 208400.0 \n",
+ "1311516 1061.310059 1461200.0 \n",
+ "1311583 1080.569946 724300.0 \n",
+ "1311628 1044.390015 590500.0 \n",
+ "1311659 917.640015 13347900.0 \n",
+ "1311375 989.440002 381700.0 \n",
+ "1311708 915.289978 186400.0 \n",
+ "1311401 885.989990 3357900.0 \n",
+ "1311365 862.440002 1941100.0 \n",
+ "1311511 829.590027 1281900.0 \n",
+ "1311557 825.330017 649900.0 \n",
+ "1311300 782.830017 496800.0 \n",
+ "1311409 763.599976 369600.0 "
+ ]
+ },
+ "execution_count": 19,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "transformed_data_today = transformed_data.sort_values(by=['date', 'high','volume'],ascending=False)\n",
+ "transformed_data_today_highest = transformed_data_today.head(20)\n",
+ "transformed_data_today_highest"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "59c52b0a-1f7f-4ec8-b976-a691e8c49f8f",
+ "metadata": {},
+ "source": [
+ "## Transform Data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "94ecfc50-b102-4561-b691-51d14a717ad4",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "total_data_dict = dict()\n",
+ "fileroute=\"./dataset/\"\n",
+ "fileroute_ticket=\"./dataset/tickets/\"\n",
+ "transformed_data.to_csv(fileroute + \"Summary.csv\", index=False, encoding='utf-8')\n",
+ "\n",
+ "for i in range(len(list_of_symbols__)):\n",
+ " filtered_data = transformed_data[transformed_data['stock_id'] == list_of_symbols__[i]]\n",
+ " filtered_data = filtered_data.reset_index()\n",
+ " total_data_dict[list_of_symbols__[i]] = filtered_data\n",
+ " filtered_data.to_csv(fileroute_ticket + list_of_symbols__[i] + \".csv\", index=False, encoding='utf-8')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "b85ff026-0996-47ca-ab1c-0d1552dd6936",
+ "metadata": {},
+ "source": [
+ "## Checking the missing data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "bd7367a7-8c9f-4a71-832b-26e0b3d469b2",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "unique_dates = pd.DatetimeIndex(transformed_data['date'].unique())"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "1f3edde9-b968-47d2-8ad3-bf08f9f3870e",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "284\n",
+ " missing_dates\n",
+ "264 2024-04-21\n",
+ "265 2024-04-27\n",
+ "266 2024-04-28\n",
+ "267 2024-05-04\n",
+ "268 2024-05-05\n",
+ "269 2024-05-11\n",
+ "270 2024-05-12\n",
+ "271 2024-05-18\n",
+ "272 2024-05-19\n",
+ "273 2024-05-25\n",
+ "274 2024-05-26\n",
+ "275 2024-05-27\n",
+ "276 2024-06-01\n",
+ "277 2024-06-02\n",
+ "278 2024-06-08\n",
+ "279 2024-06-09\n",
+ "280 2024-06-15\n",
+ "281 2024-06-16\n",
+ "282 2024-06-19\n",
+ "283 2024-06-20\n",
+ "902\n"
+ ]
+ }
+ ],
+ "source": [
+ "complete_dates = pd.date_range(start='2022-01-01', end=datetime.now().strftime('%Y-%m-%d'))\n",
+ "\n",
+ "missing_dates = complete_dates.difference(unique_dates)\n",
+ "\n",
+ "# Convert missing dates to a DataFrame for display\n",
+ "missing_dates_df = pd.DataFrame(missing_dates, columns=['missing_dates'])\n",
+ "\n",
+ "print(len(missing_dates_df))\n",
+ "print(missing_dates_df.tail(20))\n",
+ "print(len(complete_dates))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "59f13b03-07db-402f-acdc-24f93047b48d",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.8.0"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/BatchProcess/DataSource/YahooFinance/YahooFinances_Services.py b/BatchProcess/DataSource/YahooFinance/YahooFinances_Services.py
new file mode 100644
index 0000000..1e1f7df
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/YahooFinances_Services.py
@@ -0,0 +1,145 @@
+from pyspark.sql.types import StructType, StructField, StringType
+from dotenv import load_dotenv
+import yfinance as yf
+import pandas as pd
+import os
+
+load_dotenv(override=True)
+
+column_1_name = os.getenv("COLUMN_1")
+column_2_name = os.getenv("COLUMN_2")
+column_3_name = os.getenv("COLUMN_3")
+column_4_name = os.getenv("COLUMN_4")
+column_5_name = os.getenv("COLUMN_5")
+column_6_name = os.getenv("COLUMN_6")
+column_7_name = os.getenv("COLUMN_7")
+column_8_name = os.getenv("COLUMN_8")
+
+
+class YahooFinance:
+ def __init__(self, list_of_symbols, start, end):
+ """
+ Initialize the YahooFinance class
+
+ Args:
+ list_of_symbols (list): A list of stock symbols
+ start (str): The start date for the historical data (datetime string format: 'YYYY-MM-DD')
+ end (str): The end date for the historical data (datetime string format: 'YYYY-MM-DD')
+
+ Attributes:
+ symbols (list): A list of stock symbols
+ interval (str): The interval for the historical data (default is '1d' for daily)
+ start (str): The start date for the historical data
+ end (str): The end date for the historical data
+ results (DataFrame): A DataFrame containing the transformed historical stock data for a call
+ query (None): A placeholder for the query object
+
+ """
+ self.schema = StructType([
+ StructField(column_1_name, StringType(), True),
+ StructField(column_2_name, StringType(), True),
+ StructField(column_3_name, StringType(), True),
+ StructField(column_4_name, StringType(), True),
+ StructField(column_5_name, StringType(), True),
+ StructField(column_6_name, StringType(), True),
+ StructField(column_7_name, StringType(), True)
+ # StructField(column_8_name, StringType(), True)
+ ])
+
+ self.symbols = list_of_symbols
+ self.interval = '1d'
+ self.start = start
+ self.end = end
+ self.results = None
+
+ def process_data(self):
+ """
+ Process the historical stock data for the stock symbols
+ """
+ data = self.get_data()
+ self.results = self.transform_data(data)
+ return self.results
+
+ def get_data(self):
+ """
+ Get historical stock data from Yahoo Finance API using yfinance library
+
+ Returns:
+ DataFrame: A DataFrame containing historical stock data
+ """
+ try:
+ data = yf.download(
+ self.symbols,
+ start=self.start,
+ end=self.end,
+ interval=self.interval,
+ ignore_tz=True,
+ threads=5,
+ timeout=60,
+ progress=True
+ )
+ return data
+ except Exception as e:
+ print(f"Error downloading data: {e}")
+ return None
+
+ def transform_data(self, df):
+ """
+ Transform the historical stock data into a format that can be stored in a database FactPrices table
+
+ Args:
+ df (DataFrame): A DataFrame containing historical stock data
+
+ Returns:
+ DataFrame: A DataFrame containing transformed historical stock data with the following columns:
+ - stock_id (str): The stock symbol
+ - date (str): The date of the stock data
+ - open (float): The opening price of the stock
+ - high (float): The highest price of the stock
+ - low (float): The lowest price of the stock
+ - close (float): The closing price of the stock
+ - volume (int): The volume of the stock
+ - adjusted_close (float): The adjusted closing price of the stock
+
+ """
+ # Convert df into dataframe
+ # df = pd.DataFrame(df)
+
+ # Reset the index to turn the MultiIndex into columns
+ df = df.reset_index()
+
+ # Create a list to store transformed records
+ records = []
+
+ # Iterate over each row and stock symbol
+ for index, row in df.iterrows():
+ date = row[('Date', '')]
+ for stock in self.symbols:
+ try:
+ record = {
+ column_1_name: stock,
+ column_2_name: date,
+ column_3_name: row[('Open', stock)],
+ column_4_name: row[('High', stock)],
+ column_5_name: row[('Low', stock)],
+ column_6_name: row[('Close', stock)],
+ column_7_name: row[('Volume', stock)]
+ # column_8_name: row[('Adj Close', stock)]
+ }
+ records.append(record)
+ except KeyError as e:
+ print(f"KeyError: {e} for stock: {stock} on date: {date}")
+
+ # Convert the list of records into a DataFrame
+ return pd.DataFrame(records)
+
+
+"""
+Usage:
+
+# transformed_data = YahooFinance(['AAPL','MSFT','GOOGL'], '2024-06-01', '2024-06-09').results
+# print(transformed_data.head())
+# list_of_symbols = ListSAndP500().tickers_list
+# print(list_of_symbols)
+
+"""
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/Summary.csv b/BatchProcess/DataSource/YahooFinance/dataset/Summary.csv
new file mode 100644
index 0000000..0447365
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/Summary.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b9fb7696d381398616e7f09d5680e203c35484977b57c4945c81512328dafe0f
+size 133793004
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/A.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/A.csv
new file mode 100644
index 0000000..d951e63
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/A.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:437d6da363d96eb02641cec830895561122df25dfbb880cd66c2133496dd855d
+size 284862
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AAL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AAL.csv
new file mode 100644
index 0000000..d4e992d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AAL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7e49198e049178244f5253981b0b86434c62a2f093660b888658c69b315c7199
+size 292873
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AAPL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AAPL.csv
new file mode 100644
index 0000000..3d9c4d2
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AAPL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a571be416367ce53a2dd344797a9d8b884beda213d7353cb442c959fc97434ed
+size 296595
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ABBV.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ABBV.csv
new file mode 100644
index 0000000..fc6698c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ABBV.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8c0ded422e5c82747a8279d7d246e1204308594f7c99fa80008d4193caf33ec2
+size 290722
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ABNB.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ABNB.csv
new file mode 100644
index 0000000..d023847
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ABNB.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:85a5fcc76de0880d5fa732805feea380d1d1cf23d068702aa85e3d8f2bd169e4
+size 151897
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ABT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ABT.csv
new file mode 100644
index 0000000..ab4e1e8
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ABT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:20b33a081f5f65a35539f4b70c8946c6b34a7864dfc581dafa9744a56fabf2f6
+size 289103
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ACGL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ACGL.csv
new file mode 100644
index 0000000..6ec367b
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ACGL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:71fb66abe5e5f2a52f2539ba5055866f5ab4bcad9b9f9cb036e0735358352f04
+size 292942
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ACN.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ACN.csv
new file mode 100644
index 0000000..ddf1bc3
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ACN.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bdf23662efb7e1a30e9ad4f6f60453c8d3186c764fbefde7d01b7348949c5d2e
+size 288397
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ADBE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ADBE.csv
new file mode 100644
index 0000000..dfe6e99
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ADBE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:af43fe3a8ddcd2e9102159af3f5088cfdac087941db0a1cbad289f0e09b8717a
+size 285794
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ADI.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ADI.csv
new file mode 100644
index 0000000..9bbaffe
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ADI.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d532d8983a0661592f5523531de786c07f781ba0e29429c0c59156c8fcd016b2
+size 290503
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ADM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ADM.csv
new file mode 100644
index 0000000..1197d91
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ADM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3c7075195393c1499ff2b99b22d8efb91f261ab0f2483907b21b7cd319d10b0a
+size 288435
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ADP.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ADP.csv
new file mode 100644
index 0000000..24f75cb
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ADP.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5bc7b0063e4fd840f33b18f672fb49590ace6120fea95d798244b5731ade76f6
+size 291368
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ADSK.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ADSK.csv
new file mode 100644
index 0000000..4252a2a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ADSK.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bfb9589cf1dd21c177119be930bb69dc6824ea80d9f78d6296dec144965be812
+size 290799
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AEE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AEE.csv
new file mode 100644
index 0000000..afbde1f
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AEE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fee55e528e3dc6331bca60a68c28c88ee4925f8262c11074ce887ca2fba3dfef
+size 287136
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AEP.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AEP.csv
new file mode 100644
index 0000000..33dc9c7
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AEP.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c350fd75ba4dc0948b0c9963dcf9dc26a55ceea6c3f956a575bec0d4f9e75cc7
+size 286262
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AES.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AES.csv
new file mode 100644
index 0000000..7363a45
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AES.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:44a6dc4da55084dcac07bfb0f0526c134143efd102e5b7c6ba4ce1a217158d36
+size 294362
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AFL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AFL.csv
new file mode 100644
index 0000000..02af30a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AFL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6bfe9a2e4d4bb2caa2652c2c707f23c79231945df8d565d91d7f580cfe03713c
+size 289744
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AIG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AIG.csv
new file mode 100644
index 0000000..75e3a67
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AIG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9251af7b7c4f6ffaf75395aa9c4d933be3b05d6cd7f131a86fa74ccccdc25fd6
+size 289620
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AIZ.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AIZ.csv
new file mode 100644
index 0000000..32f62c5
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AIZ.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:815c649bd9b776abe974f400ddaca15597d0fa3e6d2bb655f60a6a76435469bb
+size 288193
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AJG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AJG.csv
new file mode 100644
index 0000000..9809b83
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AJG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:aa0a3badbb5bd98cc0e6954cd53f999500718df1f55500e35a7aabe1d3acb63e
+size 288143
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AKAM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AKAM.csv
new file mode 100644
index 0000000..a459645
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AKAM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fb9092a252d0bf76f42721e4b46d17cb4bc08d41547500e860ac176d159af84e
+size 287919
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ALB.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ALB.csv
new file mode 100644
index 0000000..4207c1b
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ALB.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:993a758995c31f85435e2b230ec2d6702c415b4852bd0a51c9a438a1a5835e65
+size 285058
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ALGN.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ALGN.csv
new file mode 100644
index 0000000..ca8c266
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ALGN.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:568d3dcc01c068062bb583f251d3c80eeb32828d446892086a4342f24f55ee45
+size 284961
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ALL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ALL.csv
new file mode 100644
index 0000000..55f7511
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ALL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c7502db9f96ff5594098b7b2d8b9b61d7f6902055bc3c3b1449f2a0585bf4d20
+size 289674
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ALLE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ALLE.csv
new file mode 100644
index 0000000..24ccecf
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ALLE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6104128baebf58354431ab45bd0d7243aa1f6d27856fe33a8007e0d3e7e4b36a
+size 290593
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AMAT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AMAT.csv
new file mode 100644
index 0000000..8e52186
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AMAT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1a911a4fa2e89a292b090685b0932672f94e6a06532cb3cf5b1d2862ace8816f
+size 294586
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AMCR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AMCR.csv
new file mode 100644
index 0000000..46a6502
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AMCR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7aa0a83c9ea624f5f39734a59d4105bf9b32ed034a74686dff048046370778f2
+size 285092
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AMD.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AMD.csv
new file mode 100644
index 0000000..53c9162
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AMD.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3317744e2a045d5490fd9af8917aaa29c8fb5183811bca4ede3ffcb6df7a182b
+size 292725
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AME.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AME.csv
new file mode 100644
index 0000000..fe79362
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AME.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:491bce8993205e863184bc7a6b49ffc4c9c1bb7cfc3f7f1a9db86f4985d6dc88
+size 289234
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AMGN.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AMGN.csv
new file mode 100644
index 0000000..48dfb14
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AMGN.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b19b767a6d4ea703eb8381f371627e90c0f4a8afad3a0586eefa96cf5c280aff
+size 293397
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AMP.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AMP.csv
new file mode 100644
index 0000000..718c13b
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AMP.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a16934edd86b26bf54768da518c4c4cfbae95a96dadf5a90d315550a76d2e6f0
+size 290372
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AMT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AMT.csv
new file mode 100644
index 0000000..0ba4157
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AMT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:69ec00e55505368a10e5d8127d88b8c891f7e64ad4626b379447d2bd455cd996
+size 290361
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AMZN.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AMZN.csv
new file mode 100644
index 0000000..c6aad31
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AMZN.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2b3ffdb973a189f4aa410ae668e92e1067d92f0621a43fbd96ceafcbe5e48d6c
+size 294825
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ANET.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ANET.csv
new file mode 100644
index 0000000..c0de88f
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ANET.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7ba3752720f12ff17eb52e175d9451acf6481cadbdb7e17ade7f27516da33d4b
+size 286714
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ANSS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ANSS.csv
new file mode 100644
index 0000000..043922a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ANSS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4ac985a00de8f8d02b9cee7be9a4a7d43398814bd5df723089c548989cb1af61
+size 287977
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AON.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AON.csv
new file mode 100644
index 0000000..6ddf43c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AON.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ee33c946f2de3f03c7d7cce9c8b2319817b94149a0ca2977cf8454f476694d93
+size 289202
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AOS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AOS.csv
new file mode 100644
index 0000000..670ceef
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AOS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8079fc3925057f56d73d2c75df8388d7d40ae2812c240dae173ed0de9261ba05
+size 287633
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/APA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/APA.csv
new file mode 100644
index 0000000..64a7859
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/APA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dcc853cbd5e7e394354c71d2b4af27033a3fd69484282db7da762e9212b3cbdc
+size 291071
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/APD.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/APD.csv
new file mode 100644
index 0000000..4a74319
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/APD.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:55f5cf84fa84621cd0017d3a9a3a55aa1d78b070aa464197795bb6e55ae7a363
+size 291531
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/APH.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/APH.csv
new file mode 100644
index 0000000..92d7da3
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/APH.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2441b7b75127f5c117f30f26e88f1a43585ec03acaadc71d0939accd3faf2a8c
+size 292813
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/APTV.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/APTV.csv
new file mode 100644
index 0000000..b1f251e
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/APTV.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9837c7c94433726b2ea3af82b431b92fb373d522f3202ccc7a517af3000647e1
+size 289982
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ARE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ARE.csv
new file mode 100644
index 0000000..d430281
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ARE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:260b8afe4ecb1c7e0f14171d7f8e399132589394940d395fcabb0e1c3dfacb46
+size 290545
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ATO.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ATO.csv
new file mode 100644
index 0000000..4283fcd
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ATO.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5fdb8d52c68abae6a8a52aaa5013d1075f65f63c7ca5f715ce5eb9e9c50ff4a3
+size 288249
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AVB.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AVB.csv
new file mode 100644
index 0000000..367f5b1
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AVB.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6f531e1de7d7f678460daa8c490453e9f21155f68ed1aac71c46ade6469da289
+size 291730
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AVGO.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AVGO.csv
new file mode 100644
index 0000000..66acf12
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AVGO.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3a8b4193311dd901875cda534b0035c20b4db484c100c0d0dd458b259ba45fc3
+size 286216
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AVY.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AVY.csv
new file mode 100644
index 0000000..532a589
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AVY.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:014e618e5e0ce5b5846be83ca190cd2b108cfefb2121904eddd95fadcfd17861
+size 289600
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AWK.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AWK.csv
new file mode 100644
index 0000000..6d1b09b
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AWK.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3d847f24f039f57b1f275384bd4ee5c0a75f30481ce9a24d0862160e23c4ad0e
+size 288452
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AXON.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AXON.csv
new file mode 100644
index 0000000..8b60234
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AXON.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:480d5192325fc8dded891b4a037bb4c63e61eabbc410eeddb2e003d6c0ac7521
+size 287791
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AXP.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AXP.csv
new file mode 100644
index 0000000..9685374
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AXP.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9e32e64530be613fe2c8dae0beee086574eb15b2b6ef10926662d5a36c853e18
+size 289172
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/AZO.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AZO.csv
new file mode 100644
index 0000000..26af2e4
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/AZO.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9aa7bc8a1fe96aef14f75bf2639078b1780ec9a31e48fb483586dc54408f5980
+size 275017
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BA.csv
new file mode 100644
index 0000000..7ba520a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:812b3b95a4a2ae36517ac86fe0219a463d5e41f74564c5c3099fc35d59ac5be7
+size 284634
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BAC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BAC.csv
new file mode 100644
index 0000000..3629bcf
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BAC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:542aa12228809ae9b5a36d598d39e38b203d58caa5e0304340dfec3c259617bc
+size 295984
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BALL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BALL.csv
new file mode 100644
index 0000000..dc20ade
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BALL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ea835c15afcfea4fc5db72c3accab1611a033492ddaebde0d47a37bcaabe366b
+size 289960
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BAX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BAX.csv
new file mode 100644
index 0000000..62dd328
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BAX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:85148fb6b81054178c6c6d7c0bec3505c3d7b14a20e8b3d3ae646d09e1654817
+size 287111
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BBWI.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BBWI.csv
new file mode 100644
index 0000000..b6ff44c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BBWI.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a05f6d69feae39e04561bfb9e8ed87ec2beab2c70cd0aac720119153825aa521
+size 297079
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BBY.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BBY.csv
new file mode 100644
index 0000000..63077ee
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BBY.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6fb597a85cddb2c330242f0436115c55d9856d71e93fa6ca17af7a673fb1a999
+size 287250
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BDX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BDX.csv
new file mode 100644
index 0000000..f133046
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BDX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d55cd84471136456752d959031abf44b8874fa3851474d6f1d69b7ecde5696dd
+size 295896
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BEN.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BEN.csv
new file mode 100644
index 0000000..6f31d0c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BEN.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:038d69e4a5a9a4e809512b880230cefd942044d139360b1bb1691888618efcdb
+size 293386
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BG.csv
new file mode 100644
index 0000000..e66970c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:94965026be483391caf0f12d0ca392ca18f7b480c28fa4055607fcadfa61cb9c
+size 283050
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BIIB.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BIIB.csv
new file mode 100644
index 0000000..f462709
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BIIB.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9e2030c0055f4c6e10ae8b3cd3d0da9663e98ed36658279b3252fe81b4358aa0
+size 284866
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BIO.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BIO.csv
new file mode 100644
index 0000000..78af4b5
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BIO.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3fdf0c578b08131ea9afe10c9c39384d86524f61b978b42c70555bc4dfd487fc
+size 283918
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BK.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BK.csv
new file mode 100644
index 0000000..c32b67d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BK.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6ab7f13ec1966273eb210c3c45e141d47e91440ec4ce568ce55369b980132a95
+size 288213
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BKNG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BKNG.csv
new file mode 100644
index 0000000..2f4b727
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BKNG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:de2935606a69edfb100772c2849d37cb6b7b27fea072892a3ce26f16ebd50f69
+size 275644
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BKR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BKR.csv
new file mode 100644
index 0000000..ea9dbff
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BKR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8f4757cd60f38e2b4c151b100fb1fac42737b4e9c89a33d39ba6d35ffb0a1ed3
+size 292638
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BLDR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BLDR.csv
new file mode 100644
index 0000000..06a6a2d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BLDR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:75680e6db23ca4173cbacb90420bd8423fba5cc421add4b7461575d5d34b7a0e
+size 291637
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BLK.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BLK.csv
new file mode 100644
index 0000000..b420163
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BLK.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:aed5b0d34a6568d43f5352c0a8fc1d15ac5b6572bcda1557b551439965d2b1f8
+size 279386
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BMY.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BMY.csv
new file mode 100644
index 0000000..3365785
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BMY.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b0e319a545e4961700b4f65316ef622d70ee3fed0a939c08ac42393de269f67e
+size 288824
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BR.csv
new file mode 100644
index 0000000..6e6e1ee
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:82706c824e8bb0a1f7705fe56d684c2d4039a61b4ca9f83e97d19539da00749c
+size 287429
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BRO.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BRO.csv
new file mode 100644
index 0000000..ce53aca
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BRO.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dbd17b96c850ddf4258e52432cf963e15199d7758528651b452881f004dfb912
+size 290070
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BSX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BSX.csv
new file mode 100644
index 0000000..6a104d4
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BSX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:136e4e4dc545015f831c34a291eb291ae803c29bb0842adb7505695031924e98
+size 291106
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BWA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BWA.csv
new file mode 100644
index 0000000..879ee06
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BWA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8401018dd7fde5346a2ceb0cc05a7742f63dad2c6802aefe55e8bac0ee0b67f3
+size 294353
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BX.csv
new file mode 100644
index 0000000..878f974
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:decee1b2cbad0dc6fb978c57aa9749105978de9e1a4e68290c3fd5724dc6d54c
+size 286054
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/BXP.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BXP.csv
new file mode 100644
index 0000000..53ec403
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/BXP.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:241bf3c8589b4cdf48010f3ddbc5091f60c57dcc9fa305f68883d0ebbd6c51c0
+size 290024
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/C.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/C.csv
new file mode 100644
index 0000000..3193a76
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/C.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:46ff4e1fce65fc54656b2bea2a8f69c383a82daad248ce7b0983ae56e8542646
+size 285804
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CAG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CAG.csv
new file mode 100644
index 0000000..1d74109
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CAG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b124a84812197c0df06dcc8e33d4db70883dbf842307203f6599831e1dffd1d7
+size 293690
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CAH.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CAH.csv
new file mode 100644
index 0000000..4899c05
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CAH.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f2a45342cab65ccf5cf553ed4c5e76b8e1ad7b01ec312c47b1253a6893ea8a36
+size 287391
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CARR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CARR.csv
new file mode 100644
index 0000000..9a4e179
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CARR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4684798bf144188c8d4b3ab7632243d4f630e6a3daea96ff48a99498ccbb7383
+size 170147
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CAT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CAT.csv
new file mode 100644
index 0000000..12b2ec6
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CAT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d611fa792fe7ba9f4c7ad0609d1ae00feb902ccd5735a738a78e82e408c5a99e
+size 288207
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CB.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CB.csv
new file mode 100644
index 0000000..67249a1
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CB.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e1145037967069ef12d2f24a7032b7d107a0df73e05b28d3f4221881de45cbe1
+size 290252
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CBOE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CBOE.csv
new file mode 100644
index 0000000..2d6d6cc
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CBOE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3a989aea726cd09f5af8e84e2207dcddd336e040f5f1693828ba627100ecfc17
+size 292580
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CBRE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CBRE.csv
new file mode 100644
index 0000000..24d68d9
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CBRE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4b1e84f4aaa512156bd59155e3daf90ca98c473e18089db986a4f924579a6744
+size 289610
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CCI.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CCI.csv
new file mode 100644
index 0000000..7bf3e70
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CCI.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e767de05b2b2e86623e0e8fedbb72d1d2999d39c95d939857bfb3454bb380964
+size 289089
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CCL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CCL.csv
new file mode 100644
index 0000000..2e6946a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CCL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5babc9c7aae213d3f279f85baca39672568536e58b1b6a45d58ce338951b4a19
+size 291958
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CDNS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CDNS.csv
new file mode 100644
index 0000000..b2d4e21
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CDNS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7376dbdbbd3c2633ade5c8f1492b6b4ddaae1221aacd70a8ec4ff6f428ca0c58
+size 291473
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CDW.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CDW.csv
new file mode 100644
index 0000000..2ced3f5
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CDW.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d9062d83771bd08f90fa3d8bb3c7780ef9aa234cc324c57754d67c199f469e70
+size 288819
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CE.csv
new file mode 100644
index 0000000..9face48
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2f7637b76a6f2903c57f3342b133d0bfa3573b4c62dc7b44cbf5f0a812abf05d
+size 286777
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CEG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CEG.csv
new file mode 100644
index 0000000..6630a65
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CEG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2e231d25d75b8cc2c12d0de9ce655f0afd03c96b9b91e08ab9a2fa4ed19247f3
+size 124429
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CF.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CF.csv
new file mode 100644
index 0000000..2870fb6
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CF.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b6c2757440f19495141e2627726739374334b4408fcc99d5a69a998ffaccc2c8
+size 286634
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CFG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CFG.csv
new file mode 100644
index 0000000..064a52e
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CFG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8fb775e13863b732628b9159e4b34bff5729fba9fd7ae00456d2bab09236862e
+size 291915
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CHD.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CHD.csv
new file mode 100644
index 0000000..54a97af
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CHD.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:efb178c4e40f49ccf1dd7996ad679c3cc5c3ba1cab9b7796de7361961207340c
+size 286528
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CHRW.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CHRW.csv
new file mode 100644
index 0000000..50d98cb
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CHRW.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9937489c480a5ed9bc90ab2838c360b8c79ab93247f1fd75da9894802c1ada7e
+size 287259
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CHTR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CHTR.csv
new file mode 100644
index 0000000..44e9109
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CHTR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b783f086736ebec4612922239dd7bb6e80feee8f9e2e84e04cc6529561c9f299
+size 285634
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CI.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CI.csv
new file mode 100644
index 0000000..c4b29ee
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CI.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b6f0068ec82e552e188c9a4e0ac9383e96330e40ee7edfd823940c4ae18de1fa
+size 286656
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CINF.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CINF.csv
new file mode 100644
index 0000000..7892e7b
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CINF.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9135c0541f9c0cb18be0882398e9463b455ef4c37dbd25c0d1fe4673ff90cff2
+size 290130
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CL.csv
new file mode 100644
index 0000000..81a69d0
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6e365a1a2c439a8c451156c03e2d357139b21993d5dcb217bef557e9b31f13f1
+size 282114
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CLX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CLX.csv
new file mode 100644
index 0000000..4135d8c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CLX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:900d3c4d952fc2366b0e3f63566709448a8bb142e29eeea7d4be746e8012e175
+size 290893
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CMA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CMA.csv
new file mode 100644
index 0000000..a825537
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CMA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:65afddec2b08493c0f76b2bb1a5adec46255f6ce1457617ee0549a63a94d005a
+size 286744
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CMCSA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CMCSA.csv
new file mode 100644
index 0000000..c167618
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CMCSA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6261994a9bbebd7d3589fd0ffd80714bff78670adf3d6c25c9abf628b654f56b
+size 298198
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CME.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CME.csv
new file mode 100644
index 0000000..97cdfb6
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CME.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:029efa8ce8dd052a4329a49c1f711a80b6b922d951eea19893212a3b2e1c0311
+size 291036
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CMG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CMG.csv
new file mode 100644
index 0000000..482a219
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CMG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4855885ed488197f83b1e6ff4694fa23b5fb044469a705ae71443105e0fe083f
+size 270990
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CMI.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CMI.csv
new file mode 100644
index 0000000..9267c82
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CMI.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7560ce94a3a24479aee72970e606550f73b5015fff1e380e61690311764f87c3
+size 290880
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CMS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CMS.csv
new file mode 100644
index 0000000..ba93000
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CMS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3e576ce03f4a24dd952ef14a0dd3abca341edc6509b182450ab38ce317dac1fc
+size 289945
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CNC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CNC.csv
new file mode 100644
index 0000000..c0c8386
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CNC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c08934f82b86256d9a2a3d47387f1109f406ac2884495f2e09807d428fd04cd3
+size 286101
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CNP.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CNP.csv
new file mode 100644
index 0000000..c0e7c82
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CNP.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e520a50b30676b57ab4102d8d456cf41ccbd7910c811eb9c0ebbeec3456c409f
+size 295010
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/COF.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/COF.csv
new file mode 100644
index 0000000..1a525d5
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/COF.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ffbb2e95a9cf74a9a0718c21f21562a2806f05ddbb0898d19d0a220a342ca4f7
+size 287248
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/COO.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/COO.csv
new file mode 100644
index 0000000..54abb1d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/COO.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:eb355c215853a553bd8adb03bb5a7d5055f60b0074b808d6a3789ef1af3873ab
+size 286021
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/COP.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/COP.csv
new file mode 100644
index 0000000..8b3d790
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/COP.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f9223176affd985354d55c32bc46328a9b2a4d846a40fbe4e57875dc36aed81b
+size 290131
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/COR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/COR.csv
new file mode 100644
index 0000000..98c303a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/COR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bdc6e7fbd302e4420d3afd191fc9495049c8dcf466de520760b0554e16118fcd
+size 287535
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/COST.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/COST.csv
new file mode 100644
index 0000000..6f7f5b9
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/COST.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b74509bf418688932cf6413a576c899ec41f72681e5f32b1e9160e15a63ad2ff
+size 288301
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CPAY.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CPAY.csv
new file mode 100644
index 0000000..5110bf0
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CPAY.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0d2f0c20a51bbb6d8ad13c1d42c3dd1b283bf10ce4b4ed3f0394e6afb251a9ae
+size 290106
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CPB.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CPB.csv
new file mode 100644
index 0000000..7387ae5
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CPB.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1a71be0e26238307926a52fdb533f97cf413bd27462f9a67b3601d5727ea9a50
+size 289993
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CPRT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CPRT.csv
new file mode 100644
index 0000000..a3412e8
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CPRT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b98744e8c5e36d17480b3feca4b23c8ac6d78650f13902269f9b270b4f2716b2
+size 292758
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CPT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CPT.csv
new file mode 100644
index 0000000..68e943c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CPT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:288828a8b65d139cda7770567a41ad336a91142a1a6d534f811a518501f5e227
+size 286854
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CRL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CRL.csv
new file mode 100644
index 0000000..24d9485
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CRL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:92ac8dc2a3f95c54faf3e41e6d79208004b21158907b70f591f6c3c09b52cd26
+size 286336
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CRM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CRM.csv
new file mode 100644
index 0000000..3c261e1
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CRM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:613ebf54a6fac48c0d7f112509bd502ba3ee39554773e389b52a837d659ce8f4
+size 286679
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CSCO.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CSCO.csv
new file mode 100644
index 0000000..6747e7a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CSCO.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5eea95c2df3a402730dbca3f3672bca2435f0cc449ddd3d3e6880f43bf7984ba
+size 296302
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CSGP.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CSGP.csv
new file mode 100644
index 0000000..65ffeec
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CSGP.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c3dd68e9cde9f96b8872e0d8fcc61eb6f85b2389b596d414f7e375e3903d030a
+size 292514
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CSX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CSX.csv
new file mode 100644
index 0000000..d74fc16
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CSX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b30ed91e78a6d538753499da0bf15a366d481ebb673af30ad00b5837f200db5d
+size 297312
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CTAS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CTAS.csv
new file mode 100644
index 0000000..69f3b9b
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CTAS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7709df69e103542dd253955281a495c9c479bcc0a74cc810972a2467a5cc06f1
+size 288117
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CTLT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CTLT.csv
new file mode 100644
index 0000000..890f76b
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CTLT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:26decd8f67ae340ad047b3db0b9434d202f93bb9d5ddaf72e51f7c8c88dfe41b
+size 290609
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CTRA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CTRA.csv
new file mode 100644
index 0000000..cb1e747
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CTRA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6749176d3988ff89db8d041cc3331fd780dd5be5ea522cce37a763c0776470a8
+size 296896
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CTSH.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CTSH.csv
new file mode 100644
index 0000000..a97f2d4
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CTSH.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5c04cee87223b42f0da79ba3ee3ac687e0d5027b9552a28b15fbef61c9c9a4b9
+size 288452
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CTVA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CTVA.csv
new file mode 100644
index 0000000..86eb80b
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CTVA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:abf60a11a62672a2a0d3dbdf7e6f591edcaa16c5b745dbfb2cdaf5e21e1ad2eb
+size 190248
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CVS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CVS.csv
new file mode 100644
index 0000000..7407b06
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CVS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dc5ecd7bfe3cc431232125ce49fda1dfa02726b6a398ffea2c4f1988ec544205
+size 285785
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CVX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CVX.csv
new file mode 100644
index 0000000..e636cd7
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CVX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bd024a32a9ace5e2611b1c23c5cc10a55cb2c74b2fa9e4891e118cd251b57a04
+size 292374
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/CZR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CZR.csv
new file mode 100644
index 0000000..c7ac059
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/CZR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5ace0a9a27bd41e4bcd3924f167a657be0273c3da34eb180233028f078eb96f2
+size 281285
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/D.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/D.csv
new file mode 100644
index 0000000..f880df4
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/D.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9f5af76950952bbb430f5115e4f406fdc18a237ba84a389633844706b244e6cc
+size 280602
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DAL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DAL.csv
new file mode 100644
index 0000000..e1fbb1e
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DAL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f0fc8d153b1061d9488c11ffda6199abd85f098d77840a26371b26039984fbb8
+size 289794
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DAY.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DAY.csv
new file mode 100644
index 0000000..1ac471a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DAY.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ef42e2518bd948de67db36242ba2dc25b6e4e1aaa495c36461656a19b334598e
+size 208559
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DD.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DD.csv
new file mode 100644
index 0000000..61436c0
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DD.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:be5f9d04e81db481f777d378229c4074e82d3ee5beb453d74d265290b5e65257
+size 285911
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DE.csv
new file mode 100644
index 0000000..93a0283
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9d8878d4b105b4f250ff40fb24439cded1d2e12f49d0e22d6a488b89f8d29e93
+size 283902
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DECK.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DECK.csv
new file mode 100644
index 0000000..5cb1f5a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DECK.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:81c452175f0f657c5a45ebce0a5170a0c8a1f4a15c4f33b42086d1e4361a2880
+size 286618
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DFS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DFS.csv
new file mode 100644
index 0000000..c7b8c2c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DFS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3f541510baab3d63ea250333e74c6ee45e84fe750e9a67d254d404ecb370f5b4
+size 288264
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DG.csv
new file mode 100644
index 0000000..f592e86
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:66c2e6054d05a2742850e52150848ead2e015e1b05dd1ed53ec03224b9c24c65
+size 286341
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DGX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DGX.csv
new file mode 100644
index 0000000..fbd30d9
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DGX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:36e9db1f817fa54c02da9bc32455d7da05dd3503eba7206e10fabc33c8ed10a2
+size 289255
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DHI.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DHI.csv
new file mode 100644
index 0000000..3ef61ca
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DHI.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:588ec7834c1fdfe23b9d541f3637e0a5c6f96f3cd6fb4201cd3017685c7b3181
+size 290088
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DHR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DHR.csv
new file mode 100644
index 0000000..d859481
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DHR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9ea5b0ab0a64d5bb665877fbc2e00b32064d34738b51aadc1026430329e189b8
+size 294430
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DIS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DIS.csv
new file mode 100644
index 0000000..699a307
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DIS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e7e2d8c8117377b47fc923a1e16dae3b8f7fa9dd979abaa5f312e900fe754af8
+size 291493
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DLR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DLR.csv
new file mode 100644
index 0000000..5a11d98
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DLR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:997d7a3ea1868c536e16b61fa38aba8b808de320493ae52ecc3b117425479f4e
+size 289435
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DLTR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DLTR.csv
new file mode 100644
index 0000000..66d82ec
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DLTR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:850e482e2e3279ad4789800ab84c4ddf27cb13daa38e02d36f669727a01c7545
+size 289343
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DOC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DOC.csv
new file mode 100644
index 0000000..f0ac683
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DOC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:48172a27960da04290d61a6d11718f63413e3fad8c1be033b49b2cff8368e72c
+size 294582
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DOV.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DOV.csv
new file mode 100644
index 0000000..ff11b92
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DOV.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:883cca39f5a1e0371df3e8104c8e4820cb773d0a924fd343f5176526884f2226
+size 291090
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DOW.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DOW.csv
new file mode 100644
index 0000000..d184a65
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DOW.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9b577b406144bfa401243b02aaf72212b4fbf0a408bf70f814d2d0e916b67623
+size 190723
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DPZ.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DPZ.csv
new file mode 100644
index 0000000..32d68c9
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DPZ.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fa9901c38b79a14bd6b8450b41cd0f143ad89d8ce282814320796116d5577c89
+size 285028
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DRI.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DRI.csv
new file mode 100644
index 0000000..b1dc667
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DRI.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:23ff993d621608b87d5de8bf65702e3d367032eaa8cecb7f209bdc5246c5b54b
+size 290089
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DTE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DTE.csv
new file mode 100644
index 0000000..d54165a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DTE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ae43657fe8305c6a01fd42b055244a0fabd28ed6c9b3852a1fbe4dfdbcc10fd6
+size 292433
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DUK.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DUK.csv
new file mode 100644
index 0000000..ff13ca4
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DUK.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5fbb46eb3863c56f47f6aa676beb3fd2ed053a6c15fe6950b74d3fbae1184887
+size 285004
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DVA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DVA.csv
new file mode 100644
index 0000000..4bded22
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DVA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:449d789c3f76ff23dabc1f731512ddcb45f6b3f0abd1ecd0d6518a4a4b9b2926
+size 284786
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DVN.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DVN.csv
new file mode 100644
index 0000000..92fe208
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DVN.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f33a424e64b21f57242593605aa5994c0bdb0f51f3121acd29ed0bfaf723bcf2
+size 291637
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/DXCM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DXCM.csv
new file mode 100644
index 0000000..0ff8d45
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/DXCM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ee4fef8d661a03c9245775f3bec7334ef09edb3673f32b180043a5ab7a45295d
+size 290704
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/EA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EA.csv
new file mode 100644
index 0000000..0e97787
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:854da4fd7e37a8d2c115fde726af7510a283c70b6189dab7f0e926d3e2474710
+size 287992
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/EBAY.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EBAY.csv
new file mode 100644
index 0000000..b7cdc1c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EBAY.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b732dc37a52c7d4e7a07f820cad8865303eec70b29894a6dfc05d889c541c9f9
+size 294706
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ECL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ECL.csv
new file mode 100644
index 0000000..9b1b20f
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ECL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9c36508bf3aac0d932885e4aa52dd891e1f0294bd45a165555c3bee043cbf149
+size 291919
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ED.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ED.csv
new file mode 100644
index 0000000..65263d1
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ED.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b2ded68f576a614a18675d8cb981993853f6ba0904143c5dd13eb81a728de2f8
+size 282462
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/EFX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EFX.csv
new file mode 100644
index 0000000..6a522a9
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EFX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:98e435e03aab9a734ba856a561a75be283f8483ac66706e821eec70434632147
+size 290787
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/EG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EG.csv
new file mode 100644
index 0000000..2a77a10
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cb8fe0c8764bbfbcd013926f286e256bf402085a9373198e719580fb37e07358
+size 287038
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/EIX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EIX.csv
new file mode 100644
index 0000000..73fe234
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EIX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ea554281e6d79d9a95a4d27875cdea33af7b84ab6261abffa88fc66fb555a2fb
+size 287170
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/EL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EL.csv
new file mode 100644
index 0000000..db64e3d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:97636eba8aaa27758fddde74673a648839aeb193574044d7690d4981cbfc473d
+size 286356
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ELV.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ELV.csv
new file mode 100644
index 0000000..4f474c7
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ELV.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ea45037d2ecc8ffcc8dc7f788e334c5918f540ff61d090fad3482afae98ed113
+size 286956
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/EMN.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EMN.csv
new file mode 100644
index 0000000..2bcebed
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EMN.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ef791b625585208d183bfe044b94a10cfa87fcf788165ce0960cb1996cb95dd2
+size 285752
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/EMR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EMR.csv
new file mode 100644
index 0000000..495c2d7
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EMR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ee2e30c5bb9abb52d307a03d892af75044835540e250ad18709054b93af5246b
+size 287310
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ENPH.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ENPH.csv
new file mode 100644
index 0000000..866fdcf
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ENPH.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ee95975d1a78cedb4045e33f7c1a430e7f82a13d72d6b4fade1428039bf4b35b
+size 290502
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/EOG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EOG.csv
new file mode 100644
index 0000000..d5ccd32
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EOG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1285e93a1f240032a3de13f604758cebcf95b0303f79c4cc0d6a57ca9d6f702a
+size 287677
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/EPAM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EPAM.csv
new file mode 100644
index 0000000..1e8621c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EPAM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ccb7427b199aa6c64121903b4a6f5fee7cf1d9e650c09b53948688e0ed2ef279
+size 283528
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/EQIX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EQIX.csv
new file mode 100644
index 0000000..5747756
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EQIX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3ee91b9e7ec140697203ffa1a0e6f4e476af07e3b2008df79286f38dab353385
+size 282619
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/EQR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EQR.csv
new file mode 100644
index 0000000..743a999
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EQR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d5a8d11ffd9960d22fb2d202901563a11b5d635d77be777c410c77f053618810
+size 286988
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/EQT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EQT.csv
new file mode 100644
index 0000000..de7d3ab
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EQT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3a5e7da405e03cfb9b849b3e60747c032c1e91a29b6324a0bf176bfca3edb57b
+size 294624
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ES.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ES.csv
new file mode 100644
index 0000000..4f73ab3
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ES.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f94112f2871cb565253751b579134979ad92af1a7b1ae2884b00767d15f10d4a
+size 285803
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ESS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ESS.csv
new file mode 100644
index 0000000..25198e5
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ESS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:61e333e62385554a530ab14c242126fc8b97226354a62f56444b6936d1eaf5e1
+size 288980
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ETN.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ETN.csv
new file mode 100644
index 0000000..8ac4f4a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ETN.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3cdc478adeae82a56c7fd7cf8dc7940bf40c82c854fba5f76ff42766db701c53
+size 288528
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ETR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ETR.csv
new file mode 100644
index 0000000..2b80832
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ETR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0fdbcd47fbfbb16f23f625959de2245a961b5d612ec34c67541c8d3eef4790f0
+size 288110
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ETSY.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ETSY.csv
new file mode 100644
index 0000000..8171137
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ETSY.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f7a29d03cef1a550aab9012f5f6929b70de410d00ec82fcdff070403c959e088
+size 283008
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/EVRG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EVRG.csv
new file mode 100644
index 0000000..ab93fa3
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EVRG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:693c51fa9496fb8dc6e2e564258801d4cf0aac4e4b7399b70622bd20cbfdfcdc
+size 291142
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/EW.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EW.csv
new file mode 100644
index 0000000..6d2f9b1
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EW.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3cab506f4bbbb0b9ca4322acd3ec153edba4c1747f4c81a1f51ae958b5a887ed
+size 287282
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/EXC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EXC.csv
new file mode 100644
index 0000000..6ad44a0
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EXC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:56323fde9ff458b2414cdaf5978b710a51ca45613b860545d415e6709a9cfc84
+size 297024
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/EXPD.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EXPD.csv
new file mode 100644
index 0000000..97a62f9
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EXPD.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6148d76c3f4c8e8745ee314d12ee2c10dc54d34ac135c0df3dd7772b57fc1aa9
+size 290944
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/EXPE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EXPE.csv
new file mode 100644
index 0000000..eb0da42
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EXPE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8c688f789ac7287c73d3c824ce1863bb71fb9b6a7319c918da146b74bbdc2cee
+size 292603
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/EXR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EXR.csv
new file mode 100644
index 0000000..9327a04
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/EXR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d973d6c8a202c390293aa6693651b02a8e10e80f1784dfdcee6337676426a38d
+size 287676
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/F.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/F.csv
new file mode 100644
index 0000000..adb43d0
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/F.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b885bd5a993b02b2bd49a26009e7d1dd4561a8fa176bc9d85c3313cf556afc85
+size 289980
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/FANG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FANG.csv
new file mode 100644
index 0000000..198278d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FANG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:71584a65a260d01b1548f020fc17f562aa8a81810104d55dae72e5094e8cdd33
+size 290465
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/FAST.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FAST.csv
new file mode 100644
index 0000000..6a63051
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FAST.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6658c0bfc75f8f84461f69b93041830ef1a97668b98d40bf1d3c55b3fd2c040a
+size 294809
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/FCX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FCX.csv
new file mode 100644
index 0000000..3fcf238
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FCX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9e94c2056ca185f3988d1b78286200be36e7dcecb98f512af75acd29e705fc08
+size 295512
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/FDS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FDS.csv
new file mode 100644
index 0000000..45a2e2f
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FDS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e6efc1529f4546362bf99451bcc249dde938a457ed0c09b5bc985f11c3d1d901
+size 287690
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/FDX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FDX.csv
new file mode 100644
index 0000000..1164476
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FDX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:89b353c51b9d955cb4ebe5d9d86a03eda309f46db14ba772fea3ee22b6bfa320
+size 288706
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/FE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FE.csv
new file mode 100644
index 0000000..4767c9a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dcf27d0daa39727f36aa112e1772a7d0216eb6b64c6c916aa8edfa7e96e5431e
+size 289306
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/FFIV.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FFIV.csv
new file mode 100644
index 0000000..5f3daa6
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FFIV.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9a76926a41e2efde0e4628d07ffd242bf235846a1679ba27b25f6d6c44e2f5c6
+size 292011
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/FI.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FI.csv
new file mode 100644
index 0000000..956a127
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FI.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:10dfdf53bba8a16b1dd8dda9d983c1108e51b9c6e41fcdd7f95e98555db1653c
+size 286875
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/FICO.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FICO.csv
new file mode 100644
index 0000000..3928f49
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FICO.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2262d34267fe642755283d5c8d97d683bc1cbff57940f219f93f6df45fc3aa98
+size 286137
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/FIS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FIS.csv
new file mode 100644
index 0000000..beeb664
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FIS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7996f09656410d207aa2d1b69018fbbb6a55991f01af892fc2e15afa7d387142
+size 288353
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/FITB.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FITB.csv
new file mode 100644
index 0000000..827e24c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FITB.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cae68456dc5c151a1a42a3440e301c5d267017651d24326fbe2157e9ebd8e6e0
+size 296559
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/FMC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FMC.csv
new file mode 100644
index 0000000..a3d0513
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FMC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:efee6e9411cfc9352b4bba75d6123765e899b3aa7eb6f764b031517b8a85c72b
+size 290167
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/FOX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FOX.csv
new file mode 100644
index 0000000..427243d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FOX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b74facd7a2974a2794a9e1ce6e68805a47f6b69a9d6675877815935d443fc43b
+size 193546
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/FOXA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FOXA.csv
new file mode 100644
index 0000000..6846d5e
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FOXA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dba46c774bf78c812f2af7834f907fff9e0f9a7c03732017ba80095c39296f50
+size 195934
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/FRT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FRT.csv
new file mode 100644
index 0000000..d068032
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FRT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9b8a332a0cbe19ef8f38f32d99477565a6f1df2d0b82d3c97d045ed9c1290110
+size 290008
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/FSLR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FSLR.csv
new file mode 100644
index 0000000..ba67f01
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FSLR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:640db2b675d26f17d70e80be6897bddf8548a3ad565cf6dd7d56f387c0da54f3
+size 288271
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/FTNT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FTNT.csv
new file mode 100644
index 0000000..8f11657
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FTNT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:78676ee86071cdbcf9c0043d74fbee05c76123c74665c4b3f16be8117750510a
+size 295787
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/FTV.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FTV.csv
new file mode 100644
index 0000000..17a37a2
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/FTV.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:89cbbeb4cac8dfa7a33e6b70025c7236d984758735670c488690c5bf8e07e9f7
+size 254872
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/GD.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GD.csv
new file mode 100644
index 0000000..c183861
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GD.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5adbf37ba369f1e0f6e02f5fd99706a03580f2a71ead8680a42f0fbe9b69b830
+size 288303
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/GE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GE.csv
new file mode 100644
index 0000000..53daa3c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f7ef24f4dac56a5f189d70e1eda1ffb932d293e69a137465f4813568426d1fee
+size 294308
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/GEHC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GEHC.csv
new file mode 100644
index 0000000..38e2e88
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GEHC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:abe3998f541c628ac6f2ab12a614122eb6a256d9575f7f960615218f1b23974b
+size 104569
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/GEN.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GEN.csv
new file mode 100644
index 0000000..cd14994
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GEN.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:82953fea3394abe66a253f7f19e9392fcccd35facd4f18137db4f7fded50bef2
+size 294798
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/GILD.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GILD.csv
new file mode 100644
index 0000000..2328ff6
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GILD.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:80c31cb5cbab69e3e37a34d8bbfe707c701dcab32d2ab363d4f846ccd706662e
+size 287983
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/GIS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GIS.csv
new file mode 100644
index 0000000..29e005e
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GIS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:508eb2b8c56989c10b4448054cab26596a987bbea39f94d020dba9539cf06c9e
+size 288866
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/GL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GL.csv
new file mode 100644
index 0000000..6c86c47
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:736b92812913bd5ed0ea892eba8c8470c37fd2bca931795ccb0e39cfced82ef4
+size 284091
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/GLW.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GLW.csv
new file mode 100644
index 0000000..78aa72b
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GLW.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:af9927f05446b7101f67ac39aaedab5d6aedc19c6f3cabd062450f0aaeda0d6d
+size 292850
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/GM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GM.csv
new file mode 100644
index 0000000..f2eb297
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:54e56542ca7a06f486c058e04d5cae1adf75626ae4e88441ad496d81ed0bf423
+size 289682
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/GNRC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GNRC.csv
new file mode 100644
index 0000000..3bc1989
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GNRC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d9145151d364a9c7c13e0faf8c5d44047b3793cd05bff9876ff3c6a0fe9e509f
+size 287971
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/GOOG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GOOG.csv
new file mode 100644
index 0000000..5383e79
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GOOG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9472205243d949c4d5474881c7571460412b1cb569829716e16db21db9c54512
+size 297365
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/GOOGL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GOOGL.csv
new file mode 100644
index 0000000..109c4cc
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GOOGL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b22460a7f7cb7f3d598679b9800749d68bebb80a7055abc95d79cc562f3bcf51
+size 299195
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/GPC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GPC.csv
new file mode 100644
index 0000000..1b92563
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GPC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b84f50cf397797eabf68c4548f8d456390fcdf88a468815ca7f6fd3f6cd762f4
+size 286970
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/GPN.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GPN.csv
new file mode 100644
index 0000000..85aacb4
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GPN.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b41efa24e050536cea633425c49e8a03bb7f765312c1c4aa2ee7bc53f7cdfe35
+size 290563
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/GRMN.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GRMN.csv
new file mode 100644
index 0000000..4fbc819
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GRMN.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:48a0a183fcef70e6c39ba3ca3ea6b45b82ad6f6db0e15c00573a7b8efe596d64
+size 290383
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/GS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GS.csv
new file mode 100644
index 0000000..93f3539
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:96408afd4a2f8068ace975328f6e85eb77ce916b25a1738ea772f5a1d45fcd74
+size 284546
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/GWW.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GWW.csv
new file mode 100644
index 0000000..95196e7
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/GWW.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cd15080bd9d2a13d08a5c59ef9783745748d706ea6d3063402905892a9d47b14
+size 285171
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/HAL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HAL.csv
new file mode 100644
index 0000000..a78a863
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HAL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:36f40cef398e89757e3e6667d0a08ccdbcd3f1e4dcff37abd05745d67233af86
+size 292753
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/HAS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HAS.csv
new file mode 100644
index 0000000..87781b9
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HAS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e4962b85f68be2ac09f0235df50075ee6b0a528098926047dbd5eeaef84b13d1
+size 284624
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/HBAN.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HBAN.csv
new file mode 100644
index 0000000..e16f653
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HBAN.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:51865ad12105d8b4d1b037e5ec3cb008c11efd25a592ca0f1be36731d42e17f3
+size 297504
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/HCA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HCA.csv
new file mode 100644
index 0000000..368b47e
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HCA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:aacd44269e83584d008491105239002f87fe0bf7c01406fc7b27b2a3b40a0b21
+size 288274
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/HD.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HD.csv
new file mode 100644
index 0000000..f397ac3
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HD.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:71adbe1cecf642f51d5a4dd477f2d84cbdbab85c95acbc396a1861a440d96bb8
+size 286542
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/HES.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HES.csv
new file mode 100644
index 0000000..4b42aca
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HES.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ab0ffcb1dc2e615098720f8321400f2498fd3b396d2335408ce2d9eda4a14998
+size 289702
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/HIG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HIG.csv
new file mode 100644
index 0000000..e2d8f01
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HIG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f11dad57af34831911af5e4f366455fbd26b31444fc82cbd7d56309d6e36a60f
+size 288872
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/HII.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HII.csv
new file mode 100644
index 0000000..5e9c99c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HII.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:47769d2f275f04adac22c117e77abb70840750da57c8f587560fdd15ef07b0a3
+size 290121
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/HLT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HLT.csv
new file mode 100644
index 0000000..0d75371
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HLT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:abf69a0c7813870c134aca99c5c936a5163149ef332376816271d31154f6b2fd
+size 290617
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/HOLX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HOLX.csv
new file mode 100644
index 0000000..2779149
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HOLX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3acfdb8ff378515abb17c209c9aa52c1faed268d98eed57d2178f2ba352ed726
+size 288477
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/HON.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HON.csv
new file mode 100644
index 0000000..97ec455
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HON.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f6a5c8e0b11cc0d43892991a4cb294df570665bb23f01f565aaf8a98e69b96ac
+size 294326
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/HPE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HPE.csv
new file mode 100644
index 0000000..cf9ac94
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HPE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ae1afd0836c882920d5f39c8a4bfe47dceb18bd73aef297c9fdd645e88d4b76d
+size 277798
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/HPQ.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HPQ.csv
new file mode 100644
index 0000000..9346132
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HPQ.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d28e4fbc6b49c518ad0c1dd02efa2c8f4a3c041f8e2f658d42bbdb8584d5db32
+size 295883
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/HRL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HRL.csv
new file mode 100644
index 0000000..9ce20b6
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HRL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b8fbe9fcbff0f2ea3afc87fa3941eb1ddaf920b7cea6df3cd52ac7778525dc7a
+size 290855
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/HSIC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HSIC.csv
new file mode 100644
index 0000000..13718d1
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HSIC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6bb22cff7c1eacdc06f9487389a5e5b618729d8569084b58e4f43ef4bca3d7ea
+size 289012
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/HST.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HST.csv
new file mode 100644
index 0000000..9e18364
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HST.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d4011c943fb3dac6fcd4de17099f52336fe4ec901a01b2a6d66be2685c1bb73c
+size 296032
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/HSY.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HSY.csv
new file mode 100644
index 0000000..7fc81e6
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HSY.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c6f9edb31814f8cf8ce811de67f9dafe7be59b67d82b3ebd2ee9d8ecaec83d9b
+size 289132
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/HUBB.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HUBB.csv
new file mode 100644
index 0000000..52202a9
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HUBB.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d980e0cae339294e032c47f1baa3476925b5b8f8e235788dd73b558003db9cd2
+size 292809
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/HUM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HUM.csv
new file mode 100644
index 0000000..0e640ec
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HUM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4a43cacf666cc1f75b1cda8c2b9b211177e1c3ec7e128aaae605e20fc58d32ad
+size 284542
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/HWM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HWM.csv
new file mode 100644
index 0000000..f0d7767
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/HWM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:89797db5db0643c014a3fecf5d29d169b3d1a78b3b4c101f3365db9c1103c82c
+size 248438
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/IBM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IBM.csv
new file mode 100644
index 0000000..2f4fc92
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IBM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:39279b75b13a19d9b7a6e1fc7e21c3c87d79a96c89903cb876c3e5a5862d298f
+size 297565
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ICE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ICE.csv
new file mode 100644
index 0000000..d81f3ee
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ICE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fdc9699adb3207873daa45f7b3fc9d0e51e69e651551ad72dba6268b35a9a0bf
+size 290376
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/IDXX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IDXX.csv
new file mode 100644
index 0000000..03aec0c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IDXX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ea5fc7508aae994d487757621b42f9849352d7377f849b500a59c794cba81aec
+size 286684
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/IEX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IEX.csv
new file mode 100644
index 0000000..23c6cea
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IEX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ce93c306fe81c54c6868aab0cce97c7ef4a58d38c5cddf1325f110cad7c711db
+size 289791
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/IFF.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IFF.csv
new file mode 100644
index 0000000..de93370
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IFF.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:27e62df0a15523982c72a5e689ab8aaf06d8592875a4723103f0cc034fa511ca
+size 290527
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ILMN.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ILMN.csv
new file mode 100644
index 0000000..5313ea7
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ILMN.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2c12eb3a1f7b1f98267b05927535eba7e3a0c54b8117d53cff9078b4a39403ce
+size 286846
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/INCY.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/INCY.csv
new file mode 100644
index 0000000..4057c20
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/INCY.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9a3c7b8c3f6b961a19ad746c7732a975d17a4863f9289c7c640da56a15cfec0a
+size 286695
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/INTC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/INTC.csv
new file mode 100644
index 0000000..25eb39e
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/INTC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ecaed7dbae6a53a7937a4134e83860fbd88fba560030c413ba10ecac6b5e7d27
+size 294669
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/INTU.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/INTU.csv
new file mode 100644
index 0000000..6f2098f
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/INTU.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:251d4e151123b4a391765d5b57ea64ccbb913fc88846a002a4c0861f77d24d5e
+size 290086
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/INVH.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/INVH.csv
new file mode 100644
index 0000000..6a05efd
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/INVH.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:76ab4a50d9e429c57c4992bc144d5e0b519a5628ed7745489fbbd2be1e4595e5
+size 246031
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/IP.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IP.csv
new file mode 100644
index 0000000..5c8114d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IP.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f4778b6d32a0659184cdd605a50e3a6ce42bbc51337d900312d00817bdbf62b5
+size 290182
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/IPG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IPG.csv
new file mode 100644
index 0000000..2c2c0d1
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IPG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2c6b17f38ed393e84cbe27089c5c7bb2ec0bfc0b047c2605f2121ceb4ec41a49
+size 294443
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/IQV.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IQV.csv
new file mode 100644
index 0000000..bf132fb
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IQV.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:55ddd1a80aca8d516ee1e3700f6d0e57945eee4be4e107ccfa0d435b61ff093a
+size 287106
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/IR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IR.csv
new file mode 100644
index 0000000..3b877d2
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6b0748801814f39ab8e3ea7d7537ff228b40ccd1a1478d9e22e7336bb5857f03
+size 232402
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/IRM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IRM.csv
new file mode 100644
index 0000000..e963bcb
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IRM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4ef15b8d455f80f656002f06931aeea8769e238757052b55f73609e13f654548
+size 289572
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ISRG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ISRG.csv
new file mode 100644
index 0000000..c9ab262
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ISRG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a51de7278c98ce1054b31674fac4dbecd839fa5706ee4928d80ac41a57455a4c
+size 292808
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/IT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IT.csv
new file mode 100644
index 0000000..8576a74
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cddf588eb609ec6e68688cd22436dff2ca94ebd0d877837e5af7593e61cb1f48
+size 284849
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ITW.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ITW.csv
new file mode 100644
index 0000000..6bc59f6
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ITW.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5cfea1ed63612fa535d5e8ff8d71596335e3c6629b12d53ec751bc4c1fd1ba5e
+size 291692
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/IVZ.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IVZ.csv
new file mode 100644
index 0000000..64c78e1
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/IVZ.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:78394963df109792886ee0513d5eee406da8edf890d2f2ca6764d75fc83fe104
+size 294449
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/J.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/J.csv
new file mode 100644
index 0000000..4fa4924
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/J.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:616922ccb0ec1bdaf7a29c5f6184fa54fcbb3b0c53e0bb9abed24b9a5886ded4
+size 283047
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/JBHT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/JBHT.csv
new file mode 100644
index 0000000..379e7a6
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/JBHT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fba7d3f5808c536e61834e91456753a626fe38d5467efeb3a379a766bd71c3b3
+size 291501
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/JBL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/JBL.csv
new file mode 100644
index 0000000..29502ee
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/JBL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fefaa00ac823521425a11a4ff777f967dc680ccea4bc383a3745ca841dbae090
+size 291181
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/JCI.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/JCI.csv
new file mode 100644
index 0000000..76558c4
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/JCI.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1d0902dd28cac23e092a1b8eccfce211e7a855ec02b1011eca2a28c7e2c9acaf
+size 290993
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/JKHY.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/JKHY.csv
new file mode 100644
index 0000000..7c9db2d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/JKHY.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:42f854b00de33ad5590d01dcab260db3338d36a60dbb5bc00b19eb0475846588
+size 292177
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/JNJ.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/JNJ.csv
new file mode 100644
index 0000000..24c2a52
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/JNJ.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:560bd7a001b3dd2df861ea714ad34c8464766f5ddffba60d0e83ba0e4c470b7e
+size 291904
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/JNPR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/JNPR.csv
new file mode 100644
index 0000000..4ace051
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/JNPR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0c2e35928d0e40f7a4f251dc0f0f15be466097b1871b03f56488d6de7614aad1
+size 296564
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/JPM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/JPM.csv
new file mode 100644
index 0000000..a8dd2c2
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/JPM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:99e3f5f412fc4b36aee47a6c8160f11065c81a8f2084d431a3ad248e9dacf6d9
+size 292657
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/K.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/K.csv
new file mode 100644
index 0000000..a9a2272
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/K.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9b9cf29bf374069dcf9a893d50ffa6aac772f7a1fa14cce2574b0f49131c7230
+size 287967
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/KDP.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KDP.csv
new file mode 100644
index 0000000..d057099
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KDP.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:62ee6204da088700dff468efd67a21c809d93b536198e7a5517ba9ae9e9c0167
+size 290902
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/KEY.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KEY.csv
new file mode 100644
index 0000000..320b507
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KEY.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e3729d9b7e13f6fea7cbd8592d6c793755933e2b512ea247335916f3cc7b657e
+size 296379
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/KEYS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KEYS.csv
new file mode 100644
index 0000000..2fb2fbd
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KEYS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:97e2c507754a2add26a3eaba9c87f3be04fb8a293663b9e1dac9650b1c733f06
+size 289509
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/KHC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KHC.csv
new file mode 100644
index 0000000..d720dd2
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KHC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ccbaf7da715ef08fe6ef05b4adfff255cba77e3b076dc1c00a3a3487b33d1b34
+size 277557
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/KIM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KIM.csv
new file mode 100644
index 0000000..e950c49
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KIM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:64bff1de20b5324535ef212f901fce3ed16cdb5983c1690bc968f853e868fee4
+size 295209
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/KLAC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KLAC.csv
new file mode 100644
index 0000000..0e5e8c2
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KLAC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1926137f6f10a86d500e6aad0a2dd49ccc7385570977ea0507dde9619cd13cb8
+size 289458
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/KMB.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KMB.csv
new file mode 100644
index 0000000..ba0623f
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KMB.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:162f4941e62b6991b60558c1967e8b5050726ba467f85e815af91a4c2dbc5e2e
+size 293642
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/KMI.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KMI.csv
new file mode 100644
index 0000000..a674d2d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KMI.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:74f2a29d2b4a1d8068f2fefce192b6aabbbf276fd7b38eef45dbea16774a3701
+size 296148
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/KMX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KMX.csv
new file mode 100644
index 0000000..0f71937
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KMX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2c7b2406d9bab7d4f1ca01dfc0eb5403bdfcdc2c3554dd9d18362b8615814bf8
+size 285602
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/KO.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KO.csv
new file mode 100644
index 0000000..692ec10
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KO.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4b683ab04edf6e3a5971aecfa70b573afd7080cb6cf97738e9354865c72c3775
+size 289108
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/KR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KR.csv
new file mode 100644
index 0000000..fd40c3b
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3cbb37772662d6495cf5d2b67f8660c1e8dd9b4267b479bee97f1d990625c739
+size 289546
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/KVUE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KVUE.csv
new file mode 100644
index 0000000..694c96d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/KVUE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dd2b937b830aaabf1ac805e836b9eb77852d56e8b27c0f51a11467d2347980ad
+size 98207
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/L.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/L.csv
new file mode 100644
index 0000000..d260b03
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/L.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c561254a0f0aae3523f9a5dcb3b31c87fd9f6513ad2e8eb7ba2ae2a8b5877dcc
+size 284458
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/LDOS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LDOS.csv
new file mode 100644
index 0000000..c05e082
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LDOS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cb0b10ecc77e22b5a8251865c73959d8f64b16194c0930dab80a4db7d512f7c3
+size 289864
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/LEN.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LEN.csv
new file mode 100644
index 0000000..2540556
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LEN.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4df2269e76c973980b04ea918baee14d458e984ad3ebb27ad9ac7509cc8b3dd0
+size 290205
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/LH.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LH.csv
new file mode 100644
index 0000000..919c90c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LH.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b167cd350549c55a0a5e742ecd1675b284a50bfd4a230371f0c2a7e15f5adabc
+size 294337
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/LHX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LHX.csv
new file mode 100644
index 0000000..202ca66
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LHX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e523ada17c8d9da538218a3b9ec62c4310200d96935c0f3be014d2bae2778761
+size 288863
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/LIN.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LIN.csv
new file mode 100644
index 0000000..6e647ed
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LIN.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:46192d300b97b0145c800ed28115c1274b32c6e494261f0b32da165087389d44
+size 290583
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/LKQ.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LKQ.csv
new file mode 100644
index 0000000..d69f386
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LKQ.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c97cff23b4795269a4ec4ed9647325356aa3ca927e3219fc458b591054602ee6
+size 291655
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/LLY.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LLY.csv
new file mode 100644
index 0000000..c66e7e6
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LLY.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:165117d1a27c648ed277f4251719d0143bf0663c231a257ae5e38ca54354753e
+size 285705
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/LMT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LMT.csv
new file mode 100644
index 0000000..91f863e
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LMT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:dab14a596a049afc5a4f60ed33bc58bbcc93b9e3ae3c0e2759bf49eb215c59e0
+size 283019
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/LNT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LNT.csv
new file mode 100644
index 0000000..88c3b99
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LNT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:823804b14205f0a8893a7983b79cda2bb16b146363a7599216dd15b7a6de6d9b
+size 290789
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/LOW.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LOW.csv
new file mode 100644
index 0000000..446543a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LOW.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7214fda4ccea466ba92179384c451a5ae402827a62edc7ba48cc18b13a160b14
+size 288441
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/LRCX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LRCX.csv
new file mode 100644
index 0000000..594cd99
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LRCX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f210b276639863f97ef1c6f6b9ed707883e0fc7f1b0f1d9eee05c1304a34022e
+size 285487
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/LULU.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LULU.csv
new file mode 100644
index 0000000..83766c4
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LULU.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:68bd9b86004fea1c1ba3e312e6e68f40d74868a0229b52275409a04b4575209a
+size 285538
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/LUV.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LUV.csv
new file mode 100644
index 0000000..553dc68
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LUV.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:539e625e19fed91c462124e4531f9b55b2f867a48c2a5ea6996ad9f754feb7fd
+size 290124
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/LVS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LVS.csv
new file mode 100644
index 0000000..0543f69
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LVS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5df05ed6a687643702264d51e8c94da78be0cbb82d96a79d48d4df3738a9448f
+size 287620
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/LW.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LW.csv
new file mode 100644
index 0000000..5e3327d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LW.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1418b67f9cc5bc8314117bbcff920ab707ebbf8a152dc8ca5fa6158d66573681
+size 240520
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/LYB.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LYB.csv
new file mode 100644
index 0000000..c6c0285
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LYB.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e7c137e39779d8b8a540a7bd3c2c602544d78b9ac7a91ec76cbfd9720798577d
+size 285512
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/LYV.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LYV.csv
new file mode 100644
index 0000000..787db00
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/LYV.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:74c6b2cd6e22de487e776cb51ec9a593761d3696ec319ac3ed2403fc9ea3e372
+size 285810
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MA.csv
new file mode 100644
index 0000000..80233a4
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:df28a0647ae831343e0f2f230fea1cdfe302a470d9a33373391f0a92d2a97512
+size 282914
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MAA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MAA.csv
new file mode 100644
index 0000000..099a366
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MAA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b56caf696f5a7f9995f805e56e6982fc7ea9fd93a3811db73321503734aaea9d
+size 289623
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MAR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MAR.csv
new file mode 100644
index 0000000..43b4a9c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MAR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4d218e2356aa59db881a57ce1b9561f446d7255a57e4ac9b728d534e5b832d47
+size 289671
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MAS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MAS.csv
new file mode 100644
index 0000000..393ba16
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MAS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fa1bd6ce32673302d213188c763e1b4c775698743f4d15f3ca982c45142c9e94
+size 291548
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MCD.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MCD.csv
new file mode 100644
index 0000000..22af97b
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MCD.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1cf4ad26fcf26230b7f6ccf6ed58d5488c6632b3d68c97956adac2204959f05a
+size 289491
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MCHP.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MCHP.csv
new file mode 100644
index 0000000..b7f2287
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MCHP.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:82f8dc94d42b5d7c7314c0468eac59210f78ff5e1819cd3115a80aa338390387
+size 291018
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MCK.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MCK.csv
new file mode 100644
index 0000000..8614e1d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MCK.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e23551bcfeff250af00ea31620b41f010dfe388309f6d1fd0f250f4a802e48bf
+size 289256
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MCO.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MCO.csv
new file mode 100644
index 0000000..969003e
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MCO.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:68f186edb4c7984929781b204ec7e6d0aa8f848d8f8011b9fefb53b60b5eb69e
+size 287881
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MDLZ.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MDLZ.csv
new file mode 100644
index 0000000..7c56192
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MDLZ.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d0856a1b516cefb253f73277704ce04e7d73e9bb5dc1b351f8075cd5a6487e50
+size 292085
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MDT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MDT.csv
new file mode 100644
index 0000000..0859bdb
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MDT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6dc48e5e2b2cdea10f0c4c149fc36b602233f7ddbf243b38f5303da79d216512
+size 285838
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MET.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MET.csv
new file mode 100644
index 0000000..713a91f
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MET.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:425b032502f5be09276c80dd5879b0140980f5ae36f33dc6df0d222ad366e530
+size 290954
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/META.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/META.csv
new file mode 100644
index 0000000..00c1b91
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/META.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8cf533a270ef18ff6cae75f64145fa487c4c8b3008d265020079ea6b0d266446
+size 293886
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MGM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MGM.csv
new file mode 100644
index 0000000..959dc83
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MGM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d820e693d9ac619864eff1b529dc569fc4982762a83d1c4391ce8d76e9737533
+size 291927
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MHK.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MHK.csv
new file mode 100644
index 0000000..19bef38
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MHK.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6c2fca65161a1becda2ef61937ae26f51d93736f1bb6844bfb05eb4e3aaa877f
+size 288341
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MKC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MKC.csv
new file mode 100644
index 0000000..3cdbfaf
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MKC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:78e8e44699c57e84a11df6aa5751c56340649572ee4e1a6a065e3234a1fb3c63
+size 286140
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MKTX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MKTX.csv
new file mode 100644
index 0000000..38e0ef0
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MKTX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:520e8ca509488a7bac500519f17df73fb23b09ba37aace9395c8a4f7d645259b
+size 289178
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MLM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MLM.csv
new file mode 100644
index 0000000..07fa995
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MLM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:abc7b7a3e4553cabdd59fd50aa8e46eff90cb2c867fe93bfa7c0c72c9471dbbc
+size 287191
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MMC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MMC.csv
new file mode 100644
index 0000000..83ad1b1
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MMC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:077f67ec9b79c2ccc56110975a018db77cfcf7181364d58254418dc552069002
+size 290282
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MMM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MMM.csv
new file mode 100644
index 0000000..d4dd388
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MMM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2b61cbf5e0a5b25c5d272ac713d2986858ba5149ba0659a4ff5ed6c58e88ad95
+size 297908
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MNST.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MNST.csv
new file mode 100644
index 0000000..da86c5a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MNST.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fc7e92c2f6ae0fe276f10952563c3ed461f83fc37d5f1fafce258cbec2c1cab9
+size 294410
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MO.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MO.csv
new file mode 100644
index 0000000..4a0fe55
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MO.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2a7b29aae47e9b08d528956384b14f302db12c6b4e465796cfc6a7d496090931
+size 286932
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MOH.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MOH.csv
new file mode 100644
index 0000000..f1697e4
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MOH.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:228063e583535c0be04331dccebd765bf2a900a9c27f1be4840bc6eea4871945
+size 284787
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MOS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MOS.csv
new file mode 100644
index 0000000..72d678f
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MOS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b296a2284799d9cd40c90faac5e5bd70a86e83653686d9c1f6a72f7ae5143e59
+size 292248
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MPC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MPC.csv
new file mode 100644
index 0000000..0b39bcc
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MPC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e920a16686ecaa0288cd2aaa411b439fa5a28438fdf0372711e31c253efb7fa8
+size 289571
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MPWR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MPWR.csv
new file mode 100644
index 0000000..9c47db0
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MPWR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b7d7f11690323426ad00e7d23b258b9675eeff51f5d66a3b0009288c1ee50182
+size 288078
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MRK.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MRK.csv
new file mode 100644
index 0000000..9d875ed
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MRK.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ba13aea45b124b12e4e523cc76fde53b8fee5988838b612407a29d4dac424d64
+size 293140
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MRNA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MRNA.csv
new file mode 100644
index 0000000..cd6ae80
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MRNA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:25baa553018ad21ffe5526c571376bdd47fdc6e50dcba192c50987f41238d271
+size 198278
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MRO.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MRO.csv
new file mode 100644
index 0000000..170219a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MRO.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:078fc574003ca660aa294fe64f4d9bd4a78162a2af15589444e73883103a0808
+size 295667
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MS.csv
new file mode 100644
index 0000000..c0f3c16
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:61f7ae2b685550b3a79eceae2d38d0060eaa2f9678cb974ef6358548d4d69b9f
+size 287571
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MSCI.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MSCI.csv
new file mode 100644
index 0000000..ead63a8
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MSCI.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cc6a0943315b29b9c26a659d4c684f626b8df538bd11c82ed1bc9cb96359a310
+size 287079
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MSFT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MSFT.csv
new file mode 100644
index 0000000..2e901eb
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MSFT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d905123b90b8be435d8700951c58645414a1e92a042dce704ec8fd68e1391cec
+size 294210
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MSI.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MSI.csv
new file mode 100644
index 0000000..a32e046
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MSI.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:720bc62efc7e8dae00eea0c8f93e147b263f38328793876260af502c33ef3937
+size 288123
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MTB.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MTB.csv
new file mode 100644
index 0000000..f0f5f69
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MTB.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:df3c07986ca527eadfd1e87e02d38340692e449c41177b6c1c92ff2832932569
+size 291941
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MTCH.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MTCH.csv
new file mode 100644
index 0000000..0ce9c1d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MTCH.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9ec9cc0f8ce638388d429966b5909b0fdec6e6eb0f08e83c330c0fc49f423d53
+size 291440
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MTD.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MTD.csv
new file mode 100644
index 0000000..53a902d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MTD.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d3084390c770a3c29337dff5b7c70fdd88b7761b59a9da2958f77775e93b7506
+size 280501
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/MU.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MU.csv
new file mode 100644
index 0000000..9818939
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/MU.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8fd62dc9ae64eda69ffb640bc4e9de9319f657195466b6496fd73dc28f2c6c85
+size 289013
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/NCLH.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NCLH.csv
new file mode 100644
index 0000000..ede2d4a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NCLH.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2f185f9d6bff464449d88d0ddc7a211158f93d61500102cb7270f3ae67fe371d
+size 293396
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/NDAQ.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NDAQ.csv
new file mode 100644
index 0000000..f6e3dfb
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NDAQ.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f4e4137944026b6f7003b66b332a6aba4f89381a09d7ce925de486b25dc1648f
+size 297506
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/NDSN.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NDSN.csv
new file mode 100644
index 0000000..9de04f7
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NDSN.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e314206a31e4f07a31c83845abfa63444add6f16b14e2048995b7066c00621b5
+size 291884
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/NEE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NEE.csv
new file mode 100644
index 0000000..ca92ea9
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NEE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:07d56786a46ded7ac6ddc93f9f5cbf87a660eca4531974100cd4da4ab8399deb
+size 289103
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/NEM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NEM.csv
new file mode 100644
index 0000000..16f8479
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NEM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3e8a2b1d892e983e9c2cb0323218323ed0e58781095478e3ea9cbf707b90372e
+size 291331
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/NFLX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NFLX.csv
new file mode 100644
index 0000000..60198e5
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NFLX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ec140f31e6a3a231b0b19c90e88f2e05431ea12212232b8362ad869327eaa8f8
+size 284307
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/NI.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NI.csv
new file mode 100644
index 0000000..fa4f6ec
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NI.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:47718704f9952f9b50513376fbe2bbe0436682e36456b46a1e5cf84108dccf63
+size 293004
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/NKE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NKE.csv
new file mode 100644
index 0000000..875e506
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NKE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:832d7bb7476bbb44024fa2ef147003f234f96936730b73d862018b206a2bdd73
+size 288441
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/NOC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NOC.csv
new file mode 100644
index 0000000..e96cdd0
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NOC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:534b0590670ba0b77e8d12a286869ccb903382425f51a3bea68a8dd6897ae9f1
+size 284723
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/NOW.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NOW.csv
new file mode 100644
index 0000000..4477bf1
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NOW.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1b59f4dc8c0e6266bcabf3301a198036a7851dd3fdde734fed4ca04dc205ec17
+size 278931
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/NRG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NRG.csv
new file mode 100644
index 0000000..4a03467
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NRG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:56afd7c9ddea3b71e097a1c2c8d570d311106f4bb1a3e48c15d2c8157c447da0
+size 292059
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/NSC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NSC.csv
new file mode 100644
index 0000000..2ba28a1
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NSC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:35036b8577e497f8a3e2261b9a69af092b678bcd385eba6ceb10a5a8cdc5fa74
+size 290103
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/NTAP.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NTAP.csv
new file mode 100644
index 0000000..8022dbf
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NTAP.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1e6f6e3f05ea86a05cab91b91b68d262e8f573bb6f88699f6ab69e7a12b536d6
+size 290831
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/NTRS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NTRS.csv
new file mode 100644
index 0000000..32bdc1c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NTRS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b53847850ab4f70ebf08394caf75ff18dccf921afab1561edd4f1fefb3202c1c
+size 288651
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/NUE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NUE.csv
new file mode 100644
index 0000000..ab9adac
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NUE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bd7a7af42a967043f1aff88b1c5dd1c9403403819d3626503c37bc873c69f495
+size 289099
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/NVDA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NVDA.csv
new file mode 100644
index 0000000..dbbcd75
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NVDA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:38e484b119721c7557084afa85e261b7158e6138325797316dd3e4af8984ed85
+size 303503
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/NVR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NVR.csv
new file mode 100644
index 0000000..f685ada
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NVR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a11ec8423524c5a3184f0950c06eddc7719d43d390919ad0afe5f266c8ffe944
+size 248906
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/NWS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NWS.csv
new file mode 100644
index 0000000..b369b4e
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NWS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:eec2a690801e6773ab87f4192b0adeec13046c6b074c0a8db9280c3ecd75ffe0
+size 290132
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/NWSA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NWSA.csv
new file mode 100644
index 0000000..58df13d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NWSA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2fd2c302730dde2b991b0d641a66f4ae93f5356fecdf0ac23744f4a49d08ff11
+size 298044
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/NXPI.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NXPI.csv
new file mode 100644
index 0000000..9642f07
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/NXPI.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7085b1bc9bb1b9b7dbfb7615fea411fa2ef591e4473b99da218ed2cbfd62297e
+size 289133
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/O.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/O.csv
new file mode 100644
index 0000000..c3226da
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/O.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4b2275651ca233c769bf5fa511168bf1c9eb20fd69f652b8b0f17ea4242fe77c
+size 286973
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ODFL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ODFL.csv
new file mode 100644
index 0000000..7169718
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ODFL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:49d871ed2d44825c6bed3732165c5fdeef206ba06c79d2c4030616d31b1a2fbc
+size 295484
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/OKE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/OKE.csv
new file mode 100644
index 0000000..2394cd4
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/OKE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9671db7effb1434b7b56c9045bc2f19e9f888de5ca7403ec44311bd60bde60cd
+size 288559
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/OMC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/OMC.csv
new file mode 100644
index 0000000..0022835
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/OMC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0ae5890b1053d56958dca44a7f599a42a65df1bafbf2b757e8e18ec55073c014
+size 284915
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ON.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ON.csv
new file mode 100644
index 0000000..7ddf0ce
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ON.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1851b04f602b0d6c9ce9042293a96dda66a4b0ae6a5b93bf1b237297765b992f
+size 287020
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ORCL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ORCL.csv
new file mode 100644
index 0000000..6b8772f
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ORCL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e77a110e5c888fd7936204fa4cb58cdde4a3f8c84a0159d469916310e25ebe66
+size 292845
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ORLY.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ORLY.csv
new file mode 100644
index 0000000..b72aff3
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ORLY.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e1c110af46db4a442d4cd5168caea2fa3e4282c668ce6501020c4622081419ae
+size 284619
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/OTIS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/OTIS.csv
new file mode 100644
index 0000000..077a6df
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/OTIS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:60a324dfa769442bc2bcf6ee043838f26ca9f879bbda0eab16b41211354700e3
+size 167969
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/OXY.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/OXY.csv
new file mode 100644
index 0000000..bf3098e
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/OXY.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8eda009bff2a2ee0c7a5d4f1fd2df115c34868b5a992dd6f159255f51fa37884
+size 290003
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PANW.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PANW.csv
new file mode 100644
index 0000000..bc7fdb7
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PANW.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:18e3a6558fe5aaadc0ddde7e4ae5ef7be3433db259ac9756fc1f81d797e4caea
+size 292224
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PARA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PARA.csv
new file mode 100644
index 0000000..b84d553
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PARA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:92a7e93f460bfa9a3a2432e38e1e31c0c5e5cba1cea89ae2889fde5292cc0385
+size 293412
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PAYC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PAYC.csv
new file mode 100644
index 0000000..b48394d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PAYC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:15be66816facc1f668a73703fca1575802f282c718f232d3bb58c9e0aa916f63
+size 286953
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PAYX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PAYX.csv
new file mode 100644
index 0000000..9ddd67c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PAYX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:98903bec3b93ad618e5b5a3c9052497be35a61dea17c8f11bbfd1a5506e914f2
+size 292259
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PCAR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PCAR.csv
new file mode 100644
index 0000000..4f3ed6c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PCAR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e4eafa1b5498d1383ab856e0f60f75813b51c4a55a9ffc2611c121add63b38b3
+size 295182
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PCG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PCG.csv
new file mode 100644
index 0000000..2afd5c4
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PCG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:063a229ead81ebfae330ef56860c58935bc0e8a210b99fca2437c296a4628af9
+size 292842
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PEG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PEG.csv
new file mode 100644
index 0000000..087dd44
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PEG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5e7fe4afec7cfb16b16ace3465220ddaff630b1c563c4771931be47ec34bf5c3
+size 290587
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PEP.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PEP.csv
new file mode 100644
index 0000000..a3a5c1c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PEP.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0b8c21a4749c2201607ca851e2a3f1e51550dadf532a7038158b32853395678d
+size 292604
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PFE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PFE.csv
new file mode 100644
index 0000000..de7d0cf
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PFE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e02d3d5ff700df8c48ac501e6485649169a37f9c0b846fbd2d1e4a75f88a69ec
+size 296947
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PFG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PFG.csv
new file mode 100644
index 0000000..c83e611
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PFG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6c38e15ef2a314b98dd5236454b2bf7e4144976ffbe5fa774b7d8dd3bdb60a40
+size 287638
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PG.csv
new file mode 100644
index 0000000..ae23c3e
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fa251bb9089162ac4d4ec45f08abaeccddbb599538d2b956b94a24532dcccbdb
+size 287848
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PGR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PGR.csv
new file mode 100644
index 0000000..9db7ff6
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PGR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:80ec47fa6f7c7c27ee5f7724bb52a1d3904ef238b9708834d2973b1a554d2efe
+size 290029
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PH.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PH.csv
new file mode 100644
index 0000000..5fe9a4e
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PH.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5d30f9592a861bab7bfd551fd860e545eb5f75fa1e2281d46d4c523510a233c6
+size 286684
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PHM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PHM.csv
new file mode 100644
index 0000000..0ecf8df
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PHM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1dcb0fc927f53b40d080d08a2ed0e58d4e1ea428f7fbd8bf77bf31ffc7a585cf
+size 292660
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PKG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PKG.csv
new file mode 100644
index 0000000..cef8bc8
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PKG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5c24b94260bebaf69187092f76e0b543700ebeca47b220f4e7da040582c77230
+size 288918
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PLD.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PLD.csv
new file mode 100644
index 0000000..4b89c71
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PLD.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:157a85e7b36e5a5102659756b193ef8495ba6d91bbd89dcbd95907d2ec49e41e
+size 290628
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PM.csv
new file mode 100644
index 0000000..70154e7
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0533836fe3ccc17105910ce8deb2892931335252b7e5b844832fe6ef2aa554dd
+size 282548
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PNC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PNC.csv
new file mode 100644
index 0000000..2fa3eaa
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PNC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fcc0fb07d62fa897f04e4feab1211402369fddb190b0f424f746095cab537a89
+size 291211
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PNR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PNR.csv
new file mode 100644
index 0000000..14293f7
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PNR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e7df7e9e323b7c692a5bcecbf4f997df8c750ae9e26c9ce0360ec5692eaa94fe
+size 290967
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PNW.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PNW.csv
new file mode 100644
index 0000000..426dcbf
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PNW.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4b9d88d6740eab96b4a6ffe133b938434d8712fd92a7e0b73497e6a090fc99fa
+size 283659
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PODD.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PODD.csv
new file mode 100644
index 0000000..b3f98b9
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PODD.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b95422397063f2f0262160709d3fb4ce666af2edd868e17ee046524e1942b836
+size 287581
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/POOL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/POOL.csv
new file mode 100644
index 0000000..513fc9e
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/POOL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5d493c408f80bfc89583218ad61b8da618f3f73e2e0b69aaa6e3b846cafccb2a
+size 288611
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PPG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PPG.csv
new file mode 100644
index 0000000..06e2f3a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PPG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4d4aff0aee97694e14ff61e2a1da2fc9b9d84e0087e7f1ce73096b585bad690d
+size 292377
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PPL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PPL.csv
new file mode 100644
index 0000000..3a6dc3f
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PPL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4c656e2dd4a1143129c7ec55d50813b57886e88abc9f6abc0e8b791d01c23b75
+size 293558
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PRU.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PRU.csv
new file mode 100644
index 0000000..341a42d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PRU.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b75623014a9d72d423d9c60ecd2650aa268e51734ef237dff39a1863e1861af2
+size 287592
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PSA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PSA.csv
new file mode 100644
index 0000000..6e93362
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PSA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fe7123e6d031a3a2e14a2844271ab501ab1816fcccbbed34edf9c8b4a7b9d119
+size 288762
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PSX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PSX.csv
new file mode 100644
index 0000000..c0966ec
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PSX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:32cd4059855dc3edac52b2c31421bf4e43e34366880f8679350ea1e9d7b04a27
+size 286134
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PTC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PTC.csv
new file mode 100644
index 0000000..02145e0
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PTC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:9441dbd8154e1b766b0ce971ef252958d26d245a93eba736f062f629a0cc9c77
+size 286704
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PWR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PWR.csv
new file mode 100644
index 0000000..a893405
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PWR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:60b27c3ae4e1fd45923e0dc44950e95b5d55013f748a80c223571939ef8913ff
+size 290703
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/PYPL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PYPL.csv
new file mode 100644
index 0000000..afb1c93
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/PYPL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fcd166131c9ea889782ea90f90e581c3c097136a2e197c6af1e22885f7f6e5e0
+size 277898
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/QCOM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/QCOM.csv
new file mode 100644
index 0000000..68aa6b4
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/QCOM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c00c2c45198f9bf70ac2e9f8884078b21527d1ec0f65d03cf4fa791ce2bf5202
+size 292502
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/QRVO.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/QRVO.csv
new file mode 100644
index 0000000..0a682bd
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/QRVO.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d023b1597b4baccf77937fdc616e9f0f98ab44a5704be808dc8eef78ade81ac7
+size 287500
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/RCL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/RCL.csv
new file mode 100644
index 0000000..7299bf0
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/RCL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4f0104a9be0a57963cd8e5acba31e67dc8d72d0a08aaed377f3a685f98c81c68
+size 286244
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/REG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/REG.csv
new file mode 100644
index 0000000..938b63d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/REG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:76614e571c23f99e47075d2723a731b340719416fb7cdb9472a3be35e53688ce
+size 287077
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/REGN.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/REGN.csv
new file mode 100644
index 0000000..7e9c145
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/REGN.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:703d12886de14560c50c3e9ac9bf6cfb128c51e25e60377ab99cc26a4cfc335d
+size 277891
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/RF.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/RF.csv
new file mode 100644
index 0000000..4e1e60f
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/RF.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2593d98814818c917a3709917bec5e1cd157761e24bd646fe8fd620d2a80f209
+size 292373
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/RHI.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/RHI.csv
new file mode 100644
index 0000000..de6f0a3
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/RHI.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2d8d5d354d683b503d80cd430ea63f09fd814ccec3204ae771dc45a468770d1a
+size 287174
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/RJF.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/RJF.csv
new file mode 100644
index 0000000..38c6243
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/RJF.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:47270b2f68061cdcfac7df314a73fc28a8ef94afd242cca455e97cfe33cfcde0
+size 291609
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/RL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/RL.csv
new file mode 100644
index 0000000..de873b9
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/RL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:317bb373a0ff69c7da127f129ca669e3eb6041b02679a64cd98d6e9e0da8f7df
+size 286278
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/RMD.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/RMD.csv
new file mode 100644
index 0000000..e2b6b2e
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/RMD.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:953886262bdf1b902a1c3c56c0a5551e260c6ea122bdf1ab0c3d795bf2b2921b
+size 287782
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ROK.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ROK.csv
new file mode 100644
index 0000000..0864a2f
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ROK.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:91c40a90c99e50de48d8b966a35b84b454fa4a475a112c944fb3fb6d7ed80c05
+size 289767
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ROL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ROL.csv
new file mode 100644
index 0000000..1bd7807
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ROL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:63f480d2adaa10c8b3a2e3a92f0942ae07a805887685893048cf58ff2cba65f7
+size 295404
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ROP.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ROP.csv
new file mode 100644
index 0000000..2a24555
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ROP.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0cb36eebde924f5bec7eec7fdf89fd423bb5d860b5d245a6f713cfbdfb657b3e
+size 286364
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ROST.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ROST.csv
new file mode 100644
index 0000000..4474891
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ROST.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1889c968bdcae47d2abdd6bec263d8ddfbed01bce597ed7b66a0bf6aa738a836
+size 292575
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/RSG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/RSG.csv
new file mode 100644
index 0000000..ca04078
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/RSG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4785b7963100a7aa08a3b9cb62c776de69b4141c200b5d6188739482f6195ddb
+size 289010
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/RTX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/RTX.csv
new file mode 100644
index 0000000..021a1d5
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/RTX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:549a961cf473fb29b7e41c42e30568f41d66a15f63e51ab56336e157aa3a89f3
+size 288957
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/RVTY.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/RVTY.csv
new file mode 100644
index 0000000..0a37a04
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/RVTY.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f7b56731853ef758769ad7412f9de1c60cb014e0ef50857c3c2639ebeba76f15
+size 289652
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/SBAC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SBAC.csv
new file mode 100644
index 0000000..8565045
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SBAC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:207d2d66702dc02185f33ce95add37f977c1fbb65810e8395a42ec29349a7c9f
+size 292441
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/SBUX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SBUX.csv
new file mode 100644
index 0000000..9acaa40
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SBUX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:39f7ff0468ee8bb3c9f4b891d7c2b0c8ea2f959cf40d7384d1b5f6ec93484716
+size 290796
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/SCHW.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SCHW.csv
new file mode 100644
index 0000000..64127b7
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SCHW.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e926b2d0e0a0d0c46313bd1b94e8444f2588ddd74cd26326fb8523f47d26d6d4
+size 291679
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/SHW.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SHW.csv
new file mode 100644
index 0000000..2ba3ab9
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SHW.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f2384987d8f4f10651a15045c59582ad075da028ea80b4c06c110561fc7cef4e
+size 291301
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/SJM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SJM.csv
new file mode 100644
index 0000000..f90edb7
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SJM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d8eb95900212e834e83a08ddbf9e7d031a5e3fbff9094a29d42fde7e29e591af
+size 292472
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/SLB.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SLB.csv
new file mode 100644
index 0000000..79cd47a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SLB.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:483a19cbcb5c2998c1f6948af89ca35deb6da48dd68fe936549306aded46d70c
+size 289430
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/SMCI.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SMCI.csv
new file mode 100644
index 0000000..4526c0a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SMCI.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:538e73f64f32d329f7b459cf7a9499c079545b7e4e1dfcc5a4137f5ba56592f5
+size 281215
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/SNA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SNA.csv
new file mode 100644
index 0000000..946707d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SNA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c78462dd923ac9da7c5aea83c555104839fd87b287e13666774939edcb291312
+size 289809
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/SNPS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SNPS.csv
new file mode 100644
index 0000000..463b14c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SNPS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:62c9c50048d522148f86ed19bc2b5317d2c30b29242422ed4661497c66a82fd8
+size 286623
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/SO.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SO.csv
new file mode 100644
index 0000000..3953465
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SO.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b1939876fbb11081a45258de3544aaa76c1476e5aabe93b095df1c9b35b8febd
+size 286019
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/SPG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SPG.csv
new file mode 100644
index 0000000..705d2d1
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SPG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e023bed69df8fc7ea16ef99b2fba33ee7a4a8f9f3e8ddb55c36dc0a22313a466
+size 291472
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/SPGI.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SPGI.csv
new file mode 100644
index 0000000..549f297
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SPGI.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8a8689ba08db8fc2435f081d15171fd042308b947e1b7687132246399ba0bea1
+size 290765
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/SRE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SRE.csv
new file mode 100644
index 0000000..d0b9fa5
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SRE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5f50e14e193c21824870e0b7ee7a492cc08326f7fa8169e64d0dd1847e9385ff
+size 287690
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/STE.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/STE.csv
new file mode 100644
index 0000000..dcf78f1
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/STE.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:608556a23afddc6332d3ab58b7a612ba7f9dc989d558bee97f00857d0068a3d8
+size 288261
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/STLD.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/STLD.csv
new file mode 100644
index 0000000..7d259e1
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/STLD.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a4e08bc1f61c1dd0c7539b97a547095cb0f2a784cfeab24abb30b6c43ca0166c
+size 294416
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/STT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/STT.csv
new file mode 100644
index 0000000..3e73270
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/STT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:125cd8ae7a2d2dfa78b3b5d64de8371f6d7eb3bf5d2ab735f3c980ed336902f3
+size 285657
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/STX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/STX.csv
new file mode 100644
index 0000000..53068bb
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/STX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c2d91511636cfbc5aef214001869ffd38904b2b4c05877062194a1026733289d
+size 287864
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/STZ.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/STZ.csv
new file mode 100644
index 0000000..0b0308b
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/STZ.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:150a48a037b03f0158b3d54e7231ce30c387137a5e8b37336b7db7c200e9b751
+size 289277
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/SWK.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SWK.csv
new file mode 100644
index 0000000..468a030
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SWK.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:35cc4c3cb203c6f213026cb6627f70804bae61e06dc1d1d7df95e990ecf5ddf7
+size 290193
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/SWKS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SWKS.csv
new file mode 100644
index 0000000..f44c830
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SWKS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:06b3600d3eff6633ef8a53501b3fe3218e00f107339fb4867b5a2af66776ce84
+size 289948
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/SYF.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SYF.csv
new file mode 100644
index 0000000..76c4255
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SYF.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:00770a1b46a4b80b2baa929526f901dc9bbe95c97b94687c2e84afe159fd685e
+size 292108
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/SYK.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SYK.csv
new file mode 100644
index 0000000..19f2bc3
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SYK.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4a4b3e49578f1feec69f47c011879ce27e77f012d9529e565c3fbd5ea3d39c90
+size 288929
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/SYY.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SYY.csv
new file mode 100644
index 0000000..f47e0db
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/SYY.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f3de83f1ae71dc83cdb908341b9b36c004f658e7fd27526d8bb5a3c39075cd57
+size 286637
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/T.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/T.csv
new file mode 100644
index 0000000..ea04373
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/T.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:8ca4cd6cc3ae665c1efbf3a410460ccbe2bcc6506a186b238aaef32ca4c330a3
+size 296427
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TAP.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TAP.csv
new file mode 100644
index 0000000..e77b874
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TAP.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2f841e0670ef036e8f7c8e0b1993c7984d3308f01d5826f6c76c3d289f42273e
+size 287224
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TDG.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TDG.csv
new file mode 100644
index 0000000..d7f1717
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TDG.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:311ada9310efcec4d7259fc955390b70008092d0960b654cf2d8ea81ed87cf5d
+size 281560
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TDY.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TDY.csv
new file mode 100644
index 0000000..3feb102
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TDY.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1b7c9991b5a5e1babf71014aadbae3ffd2ba35071dd595a3694cb1bf28dc34b5
+size 285281
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TECH.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TECH.csv
new file mode 100644
index 0000000..0280b9f
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TECH.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:27009d59e4a9df746937a0be3df702bb14e5836f122ff49968da7e7f8b20a3c9
+size 290901
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TEL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TEL.csv
new file mode 100644
index 0000000..dc9ea65
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TEL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b7a753afa44fe4c978a6378e708f8f756bc2bc97dae40c48ad4d79521c398ec2
+size 288400
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TER.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TER.csv
new file mode 100644
index 0000000..8e533bb
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TER.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:856729d8ce67db92b2da052258da3d12b2e8f33e33f6e7c3d0e871ec201f309c
+size 290676
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TFC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TFC.csv
new file mode 100644
index 0000000..6eda9bb
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TFC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:525f379c4a5021956bdc57e0c0171a347f53f8a49420f22cc314f5e4d01b2b9f
+size 290976
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TFX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TFX.csv
new file mode 100644
index 0000000..8abc578
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TFX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6ca83c0c0a4161a2ba907ef35f295de9e640e91a4eb07ea8da60288af5f6eb79
+size 288702
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TGT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TGT.csv
new file mode 100644
index 0000000..899d203
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TGT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:524db90c0dc8b3d8a33b8cb9891a74ce4cf6d24ffa2cc03b91a223c0a5e4415c
+size 288784
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TJX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TJX.csv
new file mode 100644
index 0000000..a5685cc
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TJX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3e62e991bea884a53e3c1cf453559742a4b5dcc50cb30bd289483e0104b2dd4a
+size 289013
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TMO.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TMO.csv
new file mode 100644
index 0000000..41cc6fc
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TMO.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:49900d905b9e7e387946f3513cc53978e4d3c7f4c517d28aac15fff36df54635
+size 285900
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TMUS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TMUS.csv
new file mode 100644
index 0000000..054f974
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TMUS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ebe949b2ccdcd61650a157b018e829b9bcc0a624f8a208ed89ef05fc8588d822
+size 291723
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TPR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TPR.csv
new file mode 100644
index 0000000..03c6d82
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TPR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:554c4aecdb303825535edf55f7cb64d07b2091f0a27c7421b481606252feb6d8
+size 291539
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TRGP.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TRGP.csv
new file mode 100644
index 0000000..05704aa
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TRGP.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d03545fa89dddc219b908e199afa2f87f4cbb413b917ac6a1e771e7976bf0807
+size 291253
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TRMB.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TRMB.csv
new file mode 100644
index 0000000..a5cc55c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TRMB.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:32a0b0168fb613fe4d13d666436b91cf8b35952b79338cae62135be222d8af43
+size 290455
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TROW.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TROW.csv
new file mode 100644
index 0000000..2e97e99
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TROW.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:88e1a9bda5325c8cc5de565496bdccc77abe513e8ad96afa1767da09666600ba
+size 292100
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TRV.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TRV.csv
new file mode 100644
index 0000000..fe930e4
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TRV.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1c95db4ae64e61e8d516137c1b5e14f1efda51b7f06288e2dabc4771568ae7f1
+size 293165
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TSCO.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TSCO.csv
new file mode 100644
index 0000000..cad3669
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TSCO.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3415b92e77736ce713c8795c57a4cf6ae7462504704bd658c0cf15f74ce859bb
+size 289896
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TSLA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TSLA.csv
new file mode 100644
index 0000000..3a9db0c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TSLA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e1e5c1d9a554ce7ce443d307af31545717328e2a45ab2ff2180481b1c44a7b0a
+size 300654
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TSN.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TSN.csv
new file mode 100644
index 0000000..35c61ca
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TSN.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3bcd98e96eaf3979c7f1ff47bd2808a4f8a33372a7f7987cd1b644da8637deca
+size 286592
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TT.csv
new file mode 100644
index 0000000..3384fe7
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cc0768838ab91f4564b8cc88b0a2f1e35b1f5d6559c4baf79c3124f7692203d2
+size 289629
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TTWO.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TTWO.csv
new file mode 100644
index 0000000..0716dea
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TTWO.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:69c07e98a137c73721a5f4ad240a6333762050034d1a894571b965b65abb3412
+size 292744
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TXN.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TXN.csv
new file mode 100644
index 0000000..d430e2a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TXN.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a5e3cb678118bf17dbd1e68e4e5136c44cfae86a7bf8c3b8749601d751af7f4c
+size 290446
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TXT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TXT.csv
new file mode 100644
index 0000000..002ecc6
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TXT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:96043a8ab9c25438c1f8917789767a65d834a7d81f165a018328ef11b8888221
+size 286375
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/TYL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TYL.csv
new file mode 100644
index 0000000..15d8198
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/TYL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:14b344107922c5b43840f271b4592d4b1fb114d99c0e2e9f74ccdf775c4d562c
+size 285853
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/UAL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/UAL.csv
new file mode 100644
index 0000000..8228ab4
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/UAL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5072a9b6fe41cc4b926321d426a90de737d21159f06853aef1c1b8ede0336685
+size 287290
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/UBER.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/UBER.csv
new file mode 100644
index 0000000..a8e7d64
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/UBER.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f8c64aca651ebc5bd19e6efe79d25dc127612460ea693dd89fb646ad5d9887f9
+size 189481
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/UDR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/UDR.csv
new file mode 100644
index 0000000..3cd53ed
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/UDR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d39685805fa20fefb7ea38a3b9267703b79bd1a6044996c10fbef1b25497f5cf
+size 291821
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/UHS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/UHS.csv
new file mode 100644
index 0000000..24a0619
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/UHS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d77b3e952b0534aa6881fa3a9abc7957c59498ba55a046d2ea12952e2754f961
+size 292128
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ULTA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ULTA.csv
new file mode 100644
index 0000000..1a45890
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ULTA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0c80a4498fc1ca358c261b2b9edc300fb214f01fae47663a2fbde8b0fe9f575e
+size 285975
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/UNH.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/UNH.csv
new file mode 100644
index 0000000..3714b09
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/UNH.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ba20dea898ec8dd64d0f12bec51cd0c2dd961d9371b5343018c48b2588f3562f
+size 286598
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/UNP.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/UNP.csv
new file mode 100644
index 0000000..e0fdb2d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/UNP.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:074739f708c02ad7cf857f0bf82f0a3545e0f2c8a1db9fbc8b59d96222691820
+size 291226
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/UPS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/UPS.csv
new file mode 100644
index 0000000..77ffc56
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/UPS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1803ff609e833a1a391488a6962331a4655e7f9e1f4dccda578cd6d6f0ed7cb1
+size 291627
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/URI.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/URI.csv
new file mode 100644
index 0000000..ef85aa5
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/URI.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5b07f0f2e501372112bdf254255dafa1c50fa593290cf1796fe1e89aeecc8ba6
+size 285990
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/USB.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/USB.csv
new file mode 100644
index 0000000..1679d7a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/USB.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:90f49f4b4c629951682e4408120e858aa8236b172f7f9a860ec86d444aea7954
+size 290992
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/V.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/V.csv
new file mode 100644
index 0000000..f190d14
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/V.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:20c0e1c4950cdfe0ff66a964be493f440d53000a45aadeeae15cd42e2cee76f7
+size 284164
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/VICI.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/VICI.csv
new file mode 100644
index 0000000..2db7c17
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/VICI.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ed955533043ddfc99e9d295e35d5cff8dd8c98b461f514bf85cb78563984dc49
+size 224641
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/VLO.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/VLO.csv
new file mode 100644
index 0000000..11c4af7
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/VLO.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:7f656d054aef1efcd4adf092d03f4e00b2ab56933432f9216262248d779e48ae
+size 288025
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/VMC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/VMC.csv
new file mode 100644
index 0000000..6263c24
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/VMC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:915112e578c4ffd0f8161c46c945f0d97a26854cbbcc2b855967e8b91624ea1b
+size 289788
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/VRSK.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/VRSK.csv
new file mode 100644
index 0000000..6fa3214
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/VRSK.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:28dc649772f5a745b9f0dda0146997bcbfdf5299d7e935fdd93b4189f924150f
+size 291250
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/VRSN.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/VRSN.csv
new file mode 100644
index 0000000..6b9e46c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/VRSN.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3f1a6a5a0cc5ffe647058dca25108eabe9b051ae57e46de7b085d930c20626ad
+size 290756
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/VRTX.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/VRTX.csv
new file mode 100644
index 0000000..7ad5568
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/VRTX.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:fa69acab66b9b25e978e7f4f08b4a7c017ccb8fc1a2af5b753dd1a2e81fb0992
+size 288834
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/VST.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/VST.csv
new file mode 100644
index 0000000..db81fa5
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/VST.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6cbf839e9c9aeefcc5b0c66eb6d7d65956e5b2579e3e36ad612231f340b526ec
+size 250462
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/VTR.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/VTR.csv
new file mode 100644
index 0000000..af18c85
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/VTR.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:4bf0a6381aa74a9c3a29f7cae8528d533191c4164b8d67ab14530ed10c7d15a4
+size 289079
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/VTRS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/VTRS.csv
new file mode 100644
index 0000000..3b2d1d5
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/VTRS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ec1c48a3b8723e955c0305f8d1d0ec39850bcfbc09cba8048d3b442e066c416a
+size 294369
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/VZ.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/VZ.csv
new file mode 100644
index 0000000..c218d34
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/VZ.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e3c2abac27bab01cd77aceb90805fe94be4ecdcc511c01140a9d363db51263f0
+size 289749
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/WAB.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WAB.csv
new file mode 100644
index 0000000..da69e11
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WAB.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:66a09b8463c06e376b1b88539379880e6aa7cd79e79e38ea0126e727c74a7526
+size 283983
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/WAT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WAT.csv
new file mode 100644
index 0000000..3d69183
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WAT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c2e913189d5dd8d007de706795d14e39bd8cd52b9645b51a6e0b6f84beb7c05f
+size 288667
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/WBA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WBA.csv
new file mode 100644
index 0000000..7a33f6c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WBA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ca869fa92394400ebdb960dfe1aeba3f986867840a50117dc11807c0833b826c
+size 288588
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/WBD.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WBD.csv
new file mode 100644
index 0000000..b42a11c
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WBD.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:18a9da6764a1f3ed6aa6b11a502ac5cbf5f6fa7edf2eeffcadc04c595e1a2055
+size 292791
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/WDC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WDC.csv
new file mode 100644
index 0000000..67facb7
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WDC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6e4d029ae072a8ec1e36a4fb71f508d7fb044b4552698734646292852e43feb6
+size 286977
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/WEC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WEC.csv
new file mode 100644
index 0000000..75401fd
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WEC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b4301a9ba70f18ec6ce499d412f9da8cb536738e033d95c449b55d2378aa40dc
+size 287231
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/WELL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WELL.csv
new file mode 100644
index 0000000..9336dc0
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WELL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:93d91883b01485f5b1b44e3a326ca72e6c9e7b9a69af99ef922af3edcc015a30
+size 287827
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/WFC.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WFC.csv
new file mode 100644
index 0000000..c76d810
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WFC.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:da561b933a2d3ae3b644c7e3337c354bebc856b85639bcc46463fbb2c1e3baed
+size 293024
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/WM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WM.csv
new file mode 100644
index 0000000..acca388
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ac1938247b2c3a8497def8e1f6a3f9403b33f6627b61760e9b4a489864d1e7bf
+size 287361
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/WMB.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WMB.csv
new file mode 100644
index 0000000..932f851
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WMB.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c1431e9aafd667767ef8ca3573105451d50c4c9e7f5368b997b92db452029012
+size 294199
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/WMT.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WMT.csv
new file mode 100644
index 0000000..e156f7e
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WMT.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:29fdf7fb81597653ccb1fa7fbeee7b6ab531f6506b3734307b0f7bb12143489e
+size 297500
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/WRB.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WRB.csv
new file mode 100644
index 0000000..086f42a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WRB.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d271a2ba40ed82cd3468cc645561377fe6c825e45035fa54824b86b0dd02e963
+size 292769
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/WRK.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WRK.csv
new file mode 100644
index 0000000..db30b83
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WRK.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:cdaf6a8392955102ce252df9a788406382b3f152ec6a02adefe07325d5b38eb9
+size 279598
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/WST.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WST.csv
new file mode 100644
index 0000000..61d3717
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WST.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d23ff784aa7f9242f9eca5992a8ef552a673e3a767568dd14a5f857eaae48e78
+size 285895
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/WTW.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WTW.csv
new file mode 100644
index 0000000..71e515e
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WTW.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5a53231bbea7b5eaab8f7b9e1a700a8886463d7d2d2e8b3fc97ed5c31429bb6a
+size 291686
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/WY.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WY.csv
new file mode 100644
index 0000000..c1ffd93
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WY.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:204a66443a697af66eb928b9ccdc41c246a8936899c9fb1ba3678162f06ce58b
+size 290228
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/WYNN.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WYNN.csv
new file mode 100644
index 0000000..9330481
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/WYNN.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:84369ad1ffb21c0c258e237f60de75170281c59f4a442044b7cba7ceb82c7752
+size 289071
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/XEL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/XEL.csv
new file mode 100644
index 0000000..f930231
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/XEL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:78a48831ae3cc9692a543a6c212e278aa9b1368573a3b8b329f29e939136c34b
+size 289239
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/XOM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/XOM.csv
new file mode 100644
index 0000000..d499668
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/XOM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b80f9f9638032b18608718d055bbbdfcd35f539b37946bd38ed90d188abf3bce
+size 289779
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/XYL.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/XYL.csv
new file mode 100644
index 0000000..84cd00a
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/XYL.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:534b2f77b3a9b0d8a46d39eebde57ecac7094a17c0ae928f16f168ab2b979cd7
+size 287863
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/YUM.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/YUM.csv
new file mode 100644
index 0000000..4bb9a50
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/YUM.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2cf881750226088d4bde8cf93d08459b28012a46472ef2a0855dd0512f6a9bd8
+size 291203
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ZBH.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ZBH.csv
new file mode 100644
index 0000000..f9ac48d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ZBH.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:248e55b832052b4aa3b5da99c7ebb09ad933efaaf982817be2e2efce6d97b4f5
+size 297242
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ZBRA.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ZBRA.csv
new file mode 100644
index 0000000..a06c6a4
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ZBRA.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2ae6031fd293a9fdbdc311ec3fe9772e2bd46439148905e4047c4fd65a058233
+size 286648
diff --git a/BatchProcess/DataSource/YahooFinance/dataset/tickets/ZTS.csv b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ZTS.csv
new file mode 100644
index 0000000..aa7bd2d
--- /dev/null
+++ b/BatchProcess/DataSource/YahooFinance/dataset/tickets/ZTS.csv
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ba4078234713cfc06ed2d14ded4ea8e606f44cd02721dea1e8f7ccb0ce57e8c3
+size 290197
diff --git a/BatchProcess/DataSource/YahooFinance/yahoo_finance_data.xlsx b/BatchProcess/DataSource/YahooFinance/yahoo_finance_data.xlsx
new file mode 100644
index 0000000..98f4724
Binary files /dev/null and b/BatchProcess/DataSource/YahooFinance/yahoo_finance_data.xlsx differ
diff --git a/Database/.env b/Database/.env
new file mode 100644
index 0000000..8ed62df
--- /dev/null
+++ b/Database/.env
@@ -0,0 +1,12 @@
+DATABASE_SERVER="localhost"
+DATABASE_PORT="5432"
+DATABASE_NAME="postgres"
+DATABASE_USER="postgres"
+DATABASE_PASSWORD="admin"
+CREATE_SCHEMA_QUERY="CREATE SCHEMA IF NOT EXISTS tickets;"
+
+INSERT_QUERY_REDDIT_TABLE="INSERT INTO reddits.stock_reddit_news (id, subreddit, url, title, score, num_comments, downvotes, ups, date_created_utc) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s) ON CONFLICT (id) DO NOTHING;"
+POSTGRE_CONNECTION="dbname=postgres user=postgres host=localhost password=admin"
+CONFIGURE_REDDIT_TABLE = "CREATE INDEX IF NOT EXISTS idx_stock_reddit_news_id ON reddits.stock_reddit_news(id);"
+CREATE_REDDIT_TABLE_QUERY = "CREATE TABLE IF NOT EXISTS reddits.stock_reddit_news (id VARCHAR PRIMARY KEY, subreddit VARCHAR, url VARCHAR, title TEXT, score TEXT, num_comments TEXT, downvotes TEXT, ups TEXT, date_created_utc TEXT);"
+CREATE_REDDIT_SCHEMA_QUERY="CREATE SCHEMA IF NOT EXISTS reddits;"
diff --git a/Database/PostGreSQLInteraction.py b/Database/PostGreSQLInteraction.py
new file mode 100644
index 0000000..ea743ff
--- /dev/null
+++ b/Database/PostGreSQLInteraction.py
@@ -0,0 +1,63 @@
+from Database.tables.RedditNewsDatabaseManager import RedditNewsDatabaseManager
+from Database.tables.TicketDimDatabaseManager import TicketDimDatabaseManager
+from Database.tables.StockDatabaseManager import StockDatabaseManager
+from dotenv import load_dotenv
+import psycopg2
+import os
+
+load_dotenv(override=True)
+
+postgres_server = os.getenv("DATABASE_SERVER")
+postgres_port = os.getenv("DATABASE_PORT")
+postgres_dbname = os.getenv("DATABASE_NAME")
+postgres_user = os.getenv("DATABASE_USER")
+postgres_pass = os.getenv("DATABASE_PASSWORD")
+
+
+class DatabaseManager:
+ def __init__(self):
+ """
+ Initialize the database connection
+ """
+ self.dbname = postgres_dbname
+ self.user = postgres_user
+ self.password = postgres_pass
+ self.host = postgres_server
+ self.port = postgres_port
+ self.conn = self.create_connection()
+ self.StockDatabaseManager = StockDatabaseManager()
+ self.TicketDimDatabaseManager = TicketDimDatabaseManager()
+ self.RedditNewsDatabaseManager = RedditNewsDatabaseManager()
+
+ def create_connection(self):
+ """
+ Create a connection to the database
+ """
+ try:
+ conn = psycopg2.connect(
+ dbname=self.dbname,
+ user=self.user,
+ password=self.password,
+ host=self.host,
+ port=self.port
+ )
+ return conn
+ except Exception as e:
+ print(e)
+ return None
+
+ def delete_schema(self):
+ try:
+ # Fix later
+ cursor = self.StockDatabaseManager.conn.cursor()
+ cursor.execute("DROP SCHEMA IF EXISTS tickets CASCADE;")
+ cursor.execute("DROP SCHEMA IF EXISTS reddits CASCADE;")
+ self.StockDatabaseManager.conn.commit()
+ cursor.close()
+ except Exception as e:
+ print(e)
+
+ def close_connection(self):
+ self.StockDatabaseManager.close_connection()
+ self.TicketDimDatabaseManager.close_connection()
+ self.RedditNewsDatabaseManager.close_connection()
diff --git a/Database/PostGreSQLInteraction_Alchemy.py b/Database/PostGreSQLInteraction_Alchemy.py
new file mode 100644
index 0000000..5ceef96
--- /dev/null
+++ b/Database/PostGreSQLInteraction_Alchemy.py
@@ -0,0 +1,101 @@
+import pandas as pd
+from sqlalchemy import create_engine, MetaData, Table, Column, String
+from sqlalchemy.dialects.postgresql import insert
+from dotenv import load_dotenv
+import os
+
+
+class StockDatabaseManager:
+ def __init__(self):
+ load_dotenv(override=True)
+ self.dbname = os.getenv("DATABASE_NAME")
+ self.user = os.getenv("DATABASE_USER")
+ self.password = os.getenv("DATABASE_PASSWORD")
+ self.host = os.getenv("DATABASE_SERVER")
+ self.port = os.getenv("DATABASE_PORT")
+ self.engine = self.create_engine()
+ self.metadata = MetaData(schema='tickets')
+ self.create_schema_query = os.getenv("CREATE_SCHEMA_QUERY")
+
+ def create_engine(self):
+ db_url = f"postgresql://{self.user}:{self.password}@{self.host}:{self.port}/{self.dbname}"
+ engine = create_engine(db_url)
+ return engine
+
+ def create_schema_and_tables(self, tickers):
+ try:
+ with self.engine.connect() as connection:
+ # Create schema if it doesn't exist
+ connection.execute(self.create_schema_query)
+
+ for ticker in tickers:
+ table = Table(ticker, self.metadata,
+ Column('stock_id', String(
+ 10), primary_key=True),
+ Column('date', String(10), primary_key=True),
+ Column('open', String(50)),
+ Column('high', String(50)),
+ Column('low', String(50)),
+ Column('close', String(50)),
+ Column('volume', String(50))
+ )
+ table.create(self.engine, checkfirst=True)
+ return True
+ except Exception as e:
+ print(f"Error creating schema and tables: {e}")
+ return False
+
+ def insert_data(self, ticker, data):
+ table = Table(ticker, self.metadata, autoload_with=self.engine)
+
+ data = data.astype(str)
+ try:
+ with self.engine.connect() as connection:
+ for index, row in data.iterrows():
+ stmt = insert(table).values(
+ stock_id=row['stock_id'],
+ date=row['date'],
+ open=row['open'],
+ high=row['high'],
+ low=row['low'],
+ close=row['close'],
+ volume=row['volume']
+ ).on_conflict_do_update(
+ index_elements=['stock_id', 'date'],
+ set_=dict(
+ open=row['open'],
+ high=row['high'],
+ low=row['low'],
+ close=row['close'],
+ volume=row['volume']
+ )
+ )
+ connection.execute(stmt)
+ return True
+ except Exception as e:
+ print(f"Error inserting data: {e}")
+ return False
+
+ def get_tables(self):
+ try:
+ inspector = self.engine.inspect(self.engine)
+ tables = inspector.get_table_names(schema='tickets')
+ return tables
+ except Exception as e:
+ print(f"Error getting tables: {e}")
+ return []
+
+ def fetch_all_data(self):
+ try:
+ tables = self.get_tables()
+ all_data = {}
+ for table_name in tables:
+ table = Table(table_name, self.metadata,
+ autoload_with=self.engine)
+ query = table.select()
+ df = pd.read_sql(query, self.engine)
+ all_data[table_name] = df
+ return all_data
+ except Exception as e:
+ print(f"Error fetching data: {e}")
+ return {}
diff --git a/Database/tables/.env b/Database/tables/.env
new file mode 100644
index 0000000..8ed62df
--- /dev/null
+++ b/Database/tables/.env
@@ -0,0 +1,12 @@
+DATABASE_SERVER="localhost"
+DATABASE_PORT="5432"
+DATABASE_NAME="postgres"
+DATABASE_USER="postgres"
+DATABASE_PASSWORD="admin"
+CREATE_SCHEMA_QUERY="CREATE SCHEMA IF NOT EXISTS tickets;"
+
+INSERT_QUERY_REDDIT_TABLE="INSERT INTO reddits.stock_reddit_news (id, subreddit, url, title, score, num_comments, downvotes, ups, date_created_utc) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s) ON CONFLICT (id) DO NOTHING;"
+POSTGRE_CONNECTION="dbname=postgres user=postgres host=localhost password=admin"
+CONFIGURE_REDDIT_TABLE = "CREATE INDEX IF NOT EXISTS idx_stock_reddit_news_id ON reddits.stock_reddit_news(id);"
+CREATE_REDDIT_TABLE_QUERY = "CREATE TABLE IF NOT EXISTS reddits.stock_reddit_news (id VARCHAR PRIMARY KEY, subreddit VARCHAR, url VARCHAR, title TEXT, score TEXT, num_comments TEXT, downvotes TEXT, ups TEXT, date_created_utc TEXT);"
+CREATE_REDDIT_SCHEMA_QUERY="CREATE SCHEMA IF NOT EXISTS reddits;"
diff --git a/Database/tables/RedditNewsDatabaseManager.py b/Database/tables/RedditNewsDatabaseManager.py
new file mode 100644
index 0000000..af1ce2c
--- /dev/null
+++ b/Database/tables/RedditNewsDatabaseManager.py
@@ -0,0 +1,99 @@
+from dotenv import load_dotenv
+import psycopg2
+import os
+
+load_dotenv(override=True)
+postgres_server = os.getenv("DATABASE_SERVER")
+postgres_port = os.getenv("DATABASE_PORT")
+postgres_dbname = os.getenv("DATABASE_NAME")
+postgres_user = os.getenv("DATABASE_USER")
+postgres_pass = os.getenv("DATABASE_PASSWORD")
+CREATE_REDDIT_TABLE_QUERY = os.getenv("CREATE_REDDIT_TABLE_QUERY")
+CONFIGURE_REDDIT_TABLE = os.getenv("CONFIGURE_REDDIT_TABLE")
+INSERT_QUERY_REDDIT_TABLE = os.getenv("INSERT_QUERY_REDDIT_TABLE")
+CREATE_REDDIT_SCHEMA_QUERY = os.getenv("CREATE_REDDIT_SCHEMA_QUERY")
+
+
+class RedditNewsDatabaseManager:
+ def __init__(self):
+ """
+ Initialize the database connection
+ """
+ self.dbname = postgres_dbname
+ self.user = postgres_user
+ self.password = postgres_pass
+ self.host = postgres_server
+ self.port = postgres_port
+ self.conn = self.create_connection()
+
+ def create_connection(self):
+ """
+ Create a connection to the database
+ """
+ try:
+ conn = psycopg2.connect(
+ dbname=self.dbname,
+ user=self.user,
+ password=self.password,
+ host=self.host,
+ port=self.port
+ )
+ return conn
+ except Exception as e:
+ print(e)
+ return None
+
+ def create_schema_and_tables(self):
+ """
+ Create the stock_reddit_news table
+ """
+ try:
+ cursor = self.conn.cursor()
+ cursor.execute(CREATE_REDDIT_SCHEMA_QUERY)
+ cursor.execute(CREATE_REDDIT_TABLE_QUERY)
+ cursor.execute(CONFIGURE_REDDIT_TABLE)
+ self.conn.commit()
+ cursor.close()
+ except Exception as e:
+ print(e)
+
+ def insert_data(self, data):
+ """
+ Insert data into the stock_reddit_news table
+ """
+ try:
+ cursor = self.conn.cursor()
+ insert_query = INSERT_QUERY_REDDIT_TABLE
+
+ for index, row in data.iterrows():
+ cursor.execute(insert_query, (row["id"], row["subreddit"], row["url"], row["title"].replace('\'', ""),
+ row["score"], row["num_comments"], row["downvotes"], row["ups"], row["date_created_utc"]))
+ self.conn.commit()
+ cursor.close()
+ except Exception as e:
+ print(e)
+
+ def get_news_by_ticker(self, ticker):
+ """
+ Get news from the stock_reddit_news table corresponding to a specific ticker
+ """
+ try:
+ cursor = self.conn.cursor()
+ query = """
+ SELECT * FROM reddits.stock_reddit_news
+ WHERE LOWER(title) LIKE %s
+ """
+ cursor.execute(query, ('%' + ticker.lower() + '%',))
+ data = cursor.fetchall()
+ cursor.close()
+ return data
+ except Exception as e:
+ print(e)
+ return None
+
+ def close_connection(self):
+ if self.conn:
+ try:
+ self.conn.close()
+ except Exception as e:
+ print(e)
diff --git a/Database/tables/StockDatabaseManager.py b/Database/tables/StockDatabaseManager.py
new file mode 100644
index 0000000..bcd52f3
--- /dev/null
+++ b/Database/tables/StockDatabaseManager.py
@@ -0,0 +1,160 @@
+from dotenv import load_dotenv
+import pandas as pd
+import psycopg2
+import os
+
+load_dotenv(override=True)
+
+create_schema_query = os.getenv("CREATE_SCHEMA_QUERY")
+postgres_server = os.getenv("DATABASE_SERVER")
+postgres_port = os.getenv("DATABASE_PORT")
+postgres_dbname = os.getenv("DATABASE_NAME")
+postgres_user = os.getenv("DATABASE_USER")
+postgres_pass = os.getenv("DATABASE_PASSWORD")
+
+
+class StockDatabaseManager:
+ def __init__(self):
+ """
+ Initialize the database connection
+ """
+ self.dbname = postgres_dbname
+ self.user = postgres_user
+ self.password = postgres_pass
+ self.host = postgres_server
+ self.port = postgres_port
+ self.conn = self.create_connection()
+
+ def create_connection(self):
+ """
+ Create a connection to the database
+ """
+ try:
+ conn = psycopg2.connect(
+ dbname=self.dbname,
+ user=self.user,
+ password=self.password,
+ host=self.host,
+ port=self.port
+ )
+ return conn
+ except Exception as e:
+ print(e)
+ return None
+
+ def create_schema_and_tables(self, tickers):
+ """
+ Create the schema and tables for the given tickers list
+ """
+ try:
+ cursor = self.conn.cursor()
+
+ # Create schema if it doesn't exist
+ cursor.execute(create_schema_query)
+
+ # Loop through each ticker and create the corresponding table
+ for ticker in tickers:
+ cursor.execute(
+ "CREATE TABLE IF NOT EXISTS tickets." + ticker + " ("
+ "stock_id VARCHAR(10),"
+ "date VARCHAR(10),"
+ "open VARCHAR(50),"
+ "high VARCHAR(50),"
+ "low VARCHAR(50),"
+ "close VARCHAR(50),"
+ "volume VARCHAR(50),"
+ "PRIMARY KEY (stock_id, date))"
+ )
+
+ # Create index on date for faster queries
+ cursor.execute(
+ "CREATE INDEX IF NOT EXISTS " + ticker +
+ "_date_idx ON tickets." + ticker + " (date)"
+ )
+
+ self.conn.commit()
+ cursor.close()
+ except Exception as e:
+ print(e)
+
+ def insert_data(self, ticker, data):
+ """
+ Insert data into the database
+ """
+ try:
+ cursor = self.conn.cursor()
+
+ # Ensure all data is treated as string
+ data = data.astype(str)
+
+ insert_query = (
+ "INSERT INTO tickets." + ticker +
+ " (stock_id, date, open, high, low, close, volume)"
+ " VALUES (%s, %s, %s, %s, %s, %s, %s)"
+ " ON CONFLICT (stock_id, date) DO UPDATE SET"
+ " open = EXCLUDED.open,"
+ " high = EXCLUDED.high,"
+ " low = EXCLUDED.low,"
+ " close = EXCLUDED.close,"
+ " volume = EXCLUDED.volume"
+ )
+
+ for index, row in data.iterrows():
+ cursor.execute(insert_query, (row['stock_id'], row['date'],
+ row['open'], row['high'], row['low'], row['close'], row['volume']))
+ self.conn.commit()
+ cursor.close()
+ except Exception as e:
+ print(e)
+
+ def get_data_by_table(self, table_name):
+ """
+ Get data from the given ticket table
+ """
+ try:
+ query = f"SELECT * FROM tickets.{table_name}"
+ data = pd.read_sql(query, self.conn)
+ return data
+ except Exception as e:
+ print(e)
+ return None
+
+ def get_tables(self, schema='tickets'):
+ """
+ Get all tables in the given schema
+ """
+ try:
+ cursor = self.conn.cursor()
+ cursor.execute(
+ "SELECT table_name FROM information_schema.tables "
+ "WHERE table_schema = %s", (schema,)
+ )
+ tables = cursor.fetchall()
+ cursor.close()
+ return [table[0] for table in tables]
+ except Exception as e:
+ print(e)
+ return None
+
+ def fetch_all_data(self, schema='tickets'):
+ """
+ Fetch all data from the given schema
+ """
+ try:
+ tables = self.get_tables(schema)
+ all_data = {}
+ for table in tables:
+ query = "SELECT * FROM " + schema + "." + table
+ df = pd.read_sql(query, self.conn)
+ all_data[table] = df
+ return all_data
+ except Exception as e:
+ print(e)
+ return None
+
+ def close_connection(self):
+ if self.conn:
+ try:
+ self.conn.close()
+ except Exception as e:
+ print(e)
diff --git a/Database/tables/TicketDimDatabaseManager.py b/Database/tables/TicketDimDatabaseManager.py
new file mode 100644
index 0000000..7968749
--- /dev/null
+++ b/Database/tables/TicketDimDatabaseManager.py
@@ -0,0 +1,149 @@
+from dotenv import load_dotenv
+import pandas as pd
+import psycopg2
+import os
+
+load_dotenv(override=True)
+
+create_schema_query = os.getenv("CREATE_SCHEMA_QUERY")
+postgres_server = os.getenv("DATABASE_SERVER")
+postgres_port = os.getenv("DATABASE_PORT")
+postgres_dbname = os.getenv("DATABASE_NAME")
+postgres_user = os.getenv("DATABASE_USER")
+postgres_pass = os.getenv("DATABASE_PASSWORD")
+
+
+class TicketDimDatabaseManager:
+ def __init__(self):
+ """
+ Initialize the database connection
+ """
+ self.dbname = postgres_dbname
+ self.user = postgres_user
+ self.password = postgres_pass
+ self.host = postgres_server
+ self.port = postgres_port
+ self.conn = self.create_connection()
+
+ def create_connection(self):
+ """
+ Create a connection to the database
+ """
+ try:
+ conn = psycopg2.connect(
+ dbname=self.dbname,
+ user=self.user,
+ password=self.password,
+ host=self.host,
+ port=self.port
+ )
+ return conn
+ except Exception as e:
+ print(e)
+ return None
+
+ def create_table(self):
+ """
+ Create the ticket_dim table
+ """
+ try:
+ cursor = self.conn.cursor()
+
+ # Create schema if it doesn't exist
+ cursor.execute(create_schema_query)
+
+ # Create the ticket_dim table
+ cursor.execute(
+ "CREATE TABLE IF NOT EXISTS tickets.ticket_dim ("
+ "symbol VARCHAR(10) PRIMARY KEY,"
+ "company_name VARCHAR(255) NULL,"
+ "established DATE NULL,"
+ "sector VARCHAR(100) NULL,"
+ "industry VARCHAR(100) NULL,"
+ "exchange VARCHAR(50) NULL"
+ ")"
+ )
+
+ self.conn.commit()
+ cursor.close()
+ except Exception as e:
+ print(e)
+
+ def insert_data(self, data):
+ """
+ Insert data into the ticket_dim table
+ """
+ try:
+ if isinstance(data, list):
+ data = pd.DataFrame(data, columns=['symbol'])
+ data['company_name'] = None
+ data['established'] = None
+ data['sector'] = None
+ data['industry'] = None
+ data['exchange'] = None
+
+ cursor = self.conn.cursor()
+
+ # Ensure all data is treated as string
+ # df_data = pd.DataFrame(data_in)
+ # data = df_data.astype(str)
+
+ insert_query = (
+ "INSERT INTO tickets.ticket_dim (symbol, company_name, established, sector, industry, exchange)"
+ " VALUES (%s, %s, %s, %s, %s, %s)"
+ " ON CONFLICT (symbol) DO UPDATE SET"
+ " company_name = EXCLUDED.company_name,"
+ " established = EXCLUDED.established,"
+ " sector = EXCLUDED.sector,"
+ " industry = EXCLUDED.industry,"
+ " exchange = EXCLUDED.exchange"
+ )
+
+ for index, row in data.iterrows():
+ cursor.execute(insert_query, (row['symbol'], row.get('company_name'),
+ row.get('established'), row.get('sector'), row.get('industry'), row.get('exchange')))
+ self.conn.commit()
+ cursor.close()
+ except Exception as e:
+ print(e)
+
+ def get_data(self):
+ """
+ Get all data from the ticket_dim table
+ """
+ try:
+ cursor = self.conn.cursor()
+ cursor.execute(
+ "SELECT * FROM tickets.ticket_dim"
+ )
+ data = cursor.fetchall()
+ cursor.close()
+ # Convert data to list
+ data = [list(row)[0] for row in data]
+ return data
+ except Exception as e:
+ print(e)
+ return None
+
+ def search_ticker(self, symbol):
+ """
+ Search for a specific ticker by its symbol
+ """
+ try:
+ cursor = self.conn.cursor()
+ cursor.execute(
+ "SELECT * FROM tickets.ticket_dim WHERE symbol = %s", (symbol,)
+ )
+ data = cursor.fetchone()
+ cursor.close()
+ return data
+ except Exception as e:
+ print(e)
+ return None
+
+ def close_connection(self):
+ if self.conn:
+ try:
+ self.conn.close()
+ except Exception as e:
+ print(e)
diff --git a/README.md b/README.md
index 7701d7e..aa913fb 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,161 @@
-# DeepLearning_Quant_Trading
-The primary objective of this project is to develop and implement a Long Short-Term Memory (LSTM) deep learning model for quantitative trading.
+# Deep Learning Quant Trading
+The primary objective of this project is to develop and implement a Long Short-Term Memory (LSTM) deep learning model for quantitative trading. This model aims to leverage historical and real-time financial data to predict stock prices accurately, thereby enabling the execution of profitable trading strategies. The project will focus on integrating multiple data sources, cleaning and processing the data, training the LSTM model, and deploying it in a real-time trading environment.
+
+---
+
+## I. Usage
+### A. Set Up
+
+ 1. Create Virtual Environment (Python 3.8)
+
+* If you want to create a new virtual enviroment, you can use the following command in the terminal of the project directory:
+
+ * In Windows or Linux, you can use the following command:
+
+ ```bash
+ python -m venv venv
+ ```
+
+ * Then, you can activate the virtual enviroment by using the following command:
+
+ ```bash
+ venv\Scripts\activate
+ ```
+
+ * In MacOs, you can use the following command:
+
+ ```bash
+ python3 -m venv venv
+ ```
+
+ * Then, you can activate the virtual enviroment by using the following command:
+
+ ```bash
+ source venv/Scripts/activate
+ ```
+
+* Make sure the virtual environment needed for project is activate with corresponding project directory, you can use the following command:
+
+ * In Windows or Linux, you can use the following command:
+
+ ```bash
+ venv\Scripts\activate
+ ```
+
+ * In MacOs, you can use the following command:
+
+ ```bash
+ source venv/Scripts/activate
+ ```
+
+
+
+
+ 2. Install Dependencies
+
+Install requirements.txt: Automatically installed dependencies that needed for the project:
+
+ ```bash
+ pip install NolanMQuantTradingEnvSetUp
+ ```
+ or
+ ```bash
+ pip install -r requirements.txt
+ ```
+
+
+
+### B. Set Up Documents
+1. Spark: https://medium.com/@ansabiqbal/setting-up-apache-spark-pyspark-on-windows-11-machine-e16b7382624a
+2. Kafka: [https://github.com/NolanMM/Notebook-Practice-NolanM/blob/master/Set Up Tool For Data/Windows11/Kafka/Set Up Kafka Instruction.ipynb](https://github.com/NolanMM/Notebook-Practice-NolanM/blob/master/Set%20Up%20Tool%20For%20Data/Windows11/Kafka/Set%20Up%20Kafka%20Instruction.ipynb)
+3. PostgreSQL: https://medium.com/@Abhisek_Sahu/installing-postgresql-on-windows-for-sql-practices-671212203e9b
+4. PyTorch: https://pytorch.org/get-started/locally/
+
+---
+
+## II. High Level Design
+
+
+ Details
+
+### 1.Data Sources
+
+- **Reddit:** For extracting sentiment data related to stock mentions.
+- **Yahoo Finance API:** For obtaining historical and real-time stock prices and financial data.
+- **Alpha Vantage:** For additional financial data and technical indicators.
+- **Stock News API:** For news articles and headlines related to stocks.
+
+### 2.Data Processing
+
+- **Kafka:** Used as a producer to extract data from various sources.
+- **Apache Spark:** Used for data transformation and processing, both in batch and real-time.
+
+### 3.Data Storage
+
+- **PostgreSQL Database:** Centralized storage for processed data including stock prices, news, Reddit mentions, and predictions.
+
+### 4.Machine Learning
+
+- **PyTorch:** For building, training, and evaluating the LSTM deep learning model.
+
+### 5.Visualization
+
+- **Streamlit:** To visualize model predictions, trading performance, and generate interactive reports.
+
+### 6.Backup and Maintenance (Optional)
+
+- **PostgreSQL Cloud Backup:** For regular data and model backups to ensure data integrity and availability.
+- **System Monitoring:** Continuous monitoring and maintenance of the system to handle issues and improve performance
+
+
+## III. Database Schema
+
+ We applying star schema architecture database include
+
+### Central Fact Table
+
+- **DimStocks**: This is the central fact table containing information about stocks. It includes the following fields:
+ - **stock_id (PK)**: Primary Key, a unique identifier for each stock.
+ - **symbol**: The stock ticker symbol.
+ - **name**: The full name of the stock.
+ - **sector_id (FK)**: Foreign Key, links to the sector dimension.
+ - **industry_id (FK)**: Foreign Key, links to the industry dimension.
+
+### Dimension Tables
+
+1. **FactPrices**: Contains detailed pricing information for each stock.
+ - **price_id (Primary Key)**: Unique identifier for each price entry.
+ - **stock_id (FK - Stocks)**: Foreign Key, links to the central stock table.
+ - **date**: The date of the price record.
+ - **open, high, low, close**: The opening, highest, lowest, and closing prices of the stock.
+ - **volume**: The trading volume of the stock.
+ - **adjusted_close**: The adjusted closing price of the stock.
+2. **FactNews**: Contains news articles and headlines related to stocks.
+ - **news_id (Primary Key)**: Unique identifier for each news entry.
+ - **stock_id (FK - Stocks)**: Foreign Key, links to the central stock table.
+ - **title**: The title of the news article.
+ - **source**: The source of the news article.
+ - **summary**: A summary of the news article.
+ - **published_date**: The publication date of the news article.
+ - **url**: The URL link to the full news article.
+3. **FactRedditMentions**: Contains data from Reddit mentions related to stocks.
+ - **mention_id (Primary Key)**: Unique identifier for each Reddit mention.
+ - **stock_id (FK - Stocks)**: Foreign Key, links to the central stock table.
+ - **post_id**: The ID of the Reddit post.
+ - **timestamp**: The timestamp of the Reddit mention.
+ - **mentions**: The number of times the stock is mentioned in the post.
+ - **upvotes**: The number of upvotes the Reddit post received.
+ - **comments**: The number of comments on the Reddit post.
+4. **FactStocksPredict**: Contains predicted stock prices generated by the LSTM model.
+ - **prediction_id (Primary Key)**: Unique identifier for each prediction entry.
+ - **stock_id (FK - Stocks)**: Foreign Key, links to the central stock table.
+ - **prediction_date**: The date of the prediction.
+ - **predicted_open, predicted_high, predicted_low, predicted_close**: Predicted opening, highest, lowest, and closing prices of the stock.
+ - **prediction_timestamp**: The timestamp when the prediction was made.
+ - **model_version**: The version of the model used for the prediction.
+ - **confidence_level**: The confidence level of the prediction.
+
+### **Note:**
+
+- **Centralized Fact Table**: The DimStocks table is at the center, and all dimension tables are connected to it via foreign keys.
+
diff --git a/RealTimeProcess/Consumer.py b/RealTimeProcess/Consumer.py
new file mode 100644
index 0000000..9a40502
--- /dev/null
+++ b/RealTimeProcess/Consumer.py
@@ -0,0 +1,91 @@
+from pyspark.sql import SparkSession
+from pyspark.sql.functions import from_json, col, to_timestamp
+from pyspark.sql.types import StructType, StructField, StringType
+from dotenv import load_dotenv
+import os
+
+
+class KafkaSparkRedditConsumerStreaming:
+ def __init__(self):
+ load_dotenv(override=True)
+
+ # Load environment variables
+ self.kafka_v = os.getenv("KAFKA_VERSION")
+ self.kafka_server = os.getenv("KAFKA_SERVER")
+
+ self.postgres_v = os.getenv("POSTGRES_VERSION")
+ self.postgres_url = os.getenv("POSTGRES_URL")
+ self.postgres_user = os.getenv("POSTGRES_USER")
+ self.postgres_pass = os.getenv("POSTGRES_PASSWORD")
+ self.format_file = os.getenv("FORMAT_FILE")
+ self._mode = os.getenv("MODE")
+
+ self.config_ = f"{self.kafka_v},{self.postgres_v}"
+
+ # Initialize Spark session with Kafka dependencies and PostgresSQL driver
+ self.spark = SparkSession.builder \
+ .appName("KafkaSpark_Streaming") \
+ .config("spark.jars.packages", self.config_) \
+ .getOrCreate()
+
+ # Define schema for incoming data
+ self.schema = StructType([
+ StructField(self.column_1_name, StringType(), True),
+ StructField(self.column_2_name, StringType(), True),
+ StructField(self.column_3_name, StringType(), True)
+ ])
+
+ self.query = None
+
+ def _write_streaming(self, df_, epoch_id) -> None:
+ df_.write \
+ .mode(self._mode) \
+ .format(self.format_file) \
+ .option("url", f"{self.postgres_url}") \
+ .option("driver", "org.postgresql.Driver") \
+ .option("dbtable", self.postgres_table) \
+ .option("user", self.postgres_user) \
+ .option("password", self.postgres_pass) \
+ .save()
+
+ def start_streaming(self):
+ # Read data from Kafka
+ df = self.spark \
+ .readStream \
+ .format("kafka") \
+ .option("kafka.bootstrap.servers", self.kafka_server) \
+ .option("subscribe", self.kafka_topic) \
+ .load()
+
+ # Parse the value field
+ value_df = df.selectExpr("CAST(value AS STRING)")
+
+ # Convert JSON string to DataFrame
+ json_df = value_df.select(
+ from_json(col("value"), self.schema).alias("data")).select("data.*")
+
+ # Convert event_time to timestamp
+ json_df = json_df.withColumn(
+ self.column_3_name, to_timestamp(col(self.column_3_name)))
+
+ self.query = json_df.writeStream \
+ .foreachBatch(self._write_streaming) \
+ .start()
+
+ self.query.awaitTermination()
+
+ def stop_streaming(self):
+ if self.query is not None:
+ self.query.stop()
+ print("Streaming query stopped successfully.")
+ else:
+ print("No streaming query to stop.")
+
+
+# Create an instance of the class and start/stop streaming
+if __name__ == "__main__":
+ kafka_spark_streaming = KafkaSparkRedditConsumerStreaming()
+ try:
+ kafka_spark_streaming.start_streaming()
+ except KeyboardInterrupt:
+ kafka_spark_streaming.stop_streaming()
diff --git a/RealTimeProcess/Producer.py b/RealTimeProcess/Producer.py
new file mode 100644
index 0000000..ac26cb2
--- /dev/null
+++ b/RealTimeProcess/Producer.py
@@ -0,0 +1,30 @@
+import json
+from kafka import KafkaProducer
+import pandas as pd
+from dotenv import load_dotenv
+import os
+
+
+class KafkaProducerService:
+ def __init__(self):
+ load_dotenv(override=True)
+
+ self.bootstrap_servers = os.getenv('BOOTSTRAP_SERVERS')
+ self.socket_url = os.getenv('SOCKET_URL')
+
+ self.producer = KafkaProducer(
+ bootstrap_servers=self.bootstrap_servers,
+ value_serializer=lambda v: json.dumps(v).encode('utf-8')
+ )
+
+ def send_reddit_dataframe(self, data: pd.DataFrame):
+ try:
+ # Convert DataFrame to a dictionary
+ data_dict = data.to_dict(orient='records')
+ # Send each record in the dictionary
+ for record in data_dict:
+ self.producer.send("reddit-stream", value=record)
+ self.producer.flush()
+ except Exception as e:
+ print(f"Error: {e}")
+ return None
diff --git a/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp.egg-info/PKG-INFO b/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp.egg-info/PKG-INFO
new file mode 100644
index 0000000..8418249
--- /dev/null
+++ b/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp.egg-info/PKG-INFO
@@ -0,0 +1,12 @@
+Metadata-Version: 2.1
+Name: NolanMQuantTradingEnvSetUp
+Version: 2.0
+Requires-Dist: plotly
+Requires-Dist: python-dotenv
+Requires-Dist: streamlit
+Requires-Dist: pandas
+Requires-Dist: pyspark
+Requires-Dist: yfinance
+Requires-Dist: psycopg2
+Requires-Dist: kafka-python
+Requires-Dist: alpha-vantage
diff --git a/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp.egg-info/SOURCES.txt b/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp.egg-info/SOURCES.txt
new file mode 100644
index 0000000..42763b0
--- /dev/null
+++ b/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp.egg-info/SOURCES.txt
@@ -0,0 +1,10 @@
+README.md
+setup.py
+NolanMQuantTradingEnvSetUp/__init__.py
+NolanMQuantTradingEnvSetUp/setup.py
+NolanMQuantTradingEnvSetUp.egg-info/PKG-INFO
+NolanMQuantTradingEnvSetUp.egg-info/SOURCES.txt
+NolanMQuantTradingEnvSetUp.egg-info/dependency_links.txt
+NolanMQuantTradingEnvSetUp.egg-info/entry_points.txt
+NolanMQuantTradingEnvSetUp.egg-info/requires.txt
+NolanMQuantTradingEnvSetUp.egg-info/top_level.txt
\ No newline at end of file
diff --git a/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp.egg-info/dependency_links.txt b/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp.egg-info/dependency_links.txt
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp.egg-info/dependency_links.txt
@@ -0,0 +1 @@
+
diff --git a/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp.egg-info/entry_points.txt b/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp.egg-info/entry_points.txt
new file mode 100644
index 0000000..a18b9e8
--- /dev/null
+++ b/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp.egg-info/entry_points.txt
@@ -0,0 +1,2 @@
+[console_scripts]
+setup-env = NolanMQuantTradingEnvSetUp.setup:main
diff --git a/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp.egg-info/requires.txt b/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp.egg-info/requires.txt
new file mode 100644
index 0000000..8a9257d
--- /dev/null
+++ b/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp.egg-info/requires.txt
@@ -0,0 +1,9 @@
+plotly
+python-dotenv
+streamlit
+pandas
+pyspark
+yfinance
+psycopg2
+kafka-python
+alpha-vantage
diff --git a/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp.egg-info/top_level.txt b/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp.egg-info/top_level.txt
new file mode 100644
index 0000000..d6ab4dd
--- /dev/null
+++ b/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp.egg-info/top_level.txt
@@ -0,0 +1 @@
+NolanMQuantTradingEnvSetUp
diff --git a/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp/__init__.py b/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp/setup.py b/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp/setup.py
new file mode 100644
index 0000000..d030f11
--- /dev/null
+++ b/SetUpEnvironmentPackage/NolanMQuantTradingEnvSetUp/setup.py
@@ -0,0 +1,5 @@
+import subprocess
+
+
+def main():
+ subprocess.check_call(['pip', 'install', '-r', 'requirements.txt'])
diff --git a/SetUpEnvironmentPackage/README.md b/SetUpEnvironmentPackage/README.md
new file mode 100644
index 0000000..74bdf44
--- /dev/null
+++ b/SetUpEnvironmentPackage/README.md
@@ -0,0 +1,84 @@
+# NolanM Quantitative Trading Environment Package Set Up
+
+## Overview
+
+NolanMQuantTradingEnvSetUp is a Python package designed to set up a local virtual environment with all necessary dependencies specified in the `requirements.txt` file. This package is ideal for quickly setting up your development environment for Quantitative Trading Projects.
+
+---
+
+## Installation
+
+To install this package, simply use pip:
+
+```python
+ pip install NolanMQuantTradingEnvSetUp
+```
+
+---
+
+## Update Package
+### A. Prerequisite
+1. Install rustup for updating package only
+```link
+https://rustup.rs/
+```
+
+2. Install neccessary package for updating package only
+
+```sh
+ pip install --upgrade setuptools pip
+ pip install wheel twine
+```
+
+### B. Steps
+#### 1. Update requirements.txt
+Note: Ensure that all required dependencies are listed in requirements.txt. The file should be UTF-8 encoded.
+
+requirement.txt
+
+```plaintext
+ plotly
+ python-dotenv
+ streamlit
+ pandas
+ pyspark
+ yfinance
+ psycopg2
+ kafka-python
+ alpha-vantage
+```
+
+#### 2. Update the Version of package release in setup.py (Not in NolanMQuantTradingEnvSetUp directory)
+Open directory in command line with admintrator permission type
+
+```python
+ setup(
+ name='NolanMQuantTradingEnvSetUp',
+ version='2.0', <---------- Change the Version Here
+ packages=find_packages(),
+ include_package_data=True,
+ install_requires=read_requirements(),
+ entry_points={
+ 'console_scripts': [
+ 'setup-env=NolanMQuantTradingEnvSetUp.setup:main',
+ ],
+ },
+)
+```
+
+
+#### 3. Build the Distribution
+Open directory in command line with admintrator permission type
+
+```sh
+ python setup.py sdist bdist_wheel
+```
+
+#### 4. Upload to PyPI
+Open directory in command line with admintrator permission type
+
+```sh
+ twine upload dist/*
+```
+
+Input the API keys and Enter
\ No newline at end of file
diff --git a/SetUpEnvironmentPackage/requirements.txt b/SetUpEnvironmentPackage/requirements.txt
new file mode 100644
index 0000000..06b4be0
--- /dev/null
+++ b/SetUpEnvironmentPackage/requirements.txt
@@ -0,0 +1,10 @@
+plotly
+python-dotenv
+streamlit
+pandas
+pyspark
+yfinance
+psycopg2
+kafka-python
+alpha-vantage
+notebook
\ No newline at end of file
diff --git a/SetUpEnvironmentPackage/setup.py b/SetUpEnvironmentPackage/setup.py
new file mode 100644
index 0000000..5ee53ec
--- /dev/null
+++ b/SetUpEnvironmentPackage/setup.py
@@ -0,0 +1,20 @@
+from setuptools import setup, find_packages
+
+
+def read_requirements():
+ with open('requirements.txt', 'r', encoding='utf-8') as req_file:
+ return [line.strip() for line in req_file if line.strip()]
+
+
+setup(
+ name='NolanMQuantTradingEnvSetUp',
+ version='2.0',
+ packages=find_packages(),
+ include_package_data=True,
+ install_requires=read_requirements(),
+ entry_points={
+ 'console_scripts': [
+ 'setup-env=NolanMQuantTradingEnvSetUp.setup:main',
+ ],
+ },
+)
diff --git a/assets/High_Level_Design.png b/assets/High_Level_Design.png
new file mode 100644
index 0000000..b3818e0
Binary files /dev/null and b/assets/High_Level_Design.png differ
diff --git a/assets/Star_Schema_NolanM.png b/assets/Star_Schema_NolanM.png
new file mode 100644
index 0000000..f0bab16
Binary files /dev/null and b/assets/Star_Schema_NolanM.png differ
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..4e36ba8
Binary files /dev/null and b/requirements.txt differ
diff --git a/styles/main.css b/styles/main.css
new file mode 100644
index 0000000..25a2952
--- /dev/null
+++ b/styles/main.css
@@ -0,0 +1,43 @@
+@import url('https://fonts.googleapis.com/css2?family=Readex+Pro:wght@300;400;500;600;700&display=swap');
+
+
+* {
+ font-family: 'Readex Pro';
+}
+
+
+a {
+ text-decoration: none;
+ color: black !important;
+ font-weight: 500;
+}
+
+a:hover {
+ color: #d33682 !important;
+ text-decoration: none;
+}
+
+ul {list-style-type: none;}
+
+hr {
+ margin-top: 0px;
+ margin-bottom: 5%;
+}
+
+.st-emotion-cache-asc41u.e1nzilvr2 h1{
+ padding-top: 0px;
+ padding-bottom: 15px;
+}
+
+.st-emotion-cache-13ln4jf.ea3mdgi5
+{
+ padding-top: 20px;
+}
+
+.st-emotion-cache-6qob1r.eczjsme8 {
+ width: 244px;
+}
+
+#MainMenu {visibility: hidden;}
+footer {visibility: hidden;}
+header {visibility: hidden;}
\ No newline at end of file