trading_analysis/Copper/Yahoo_Finance_DL_COPPER_EXCEL.ipynb

373 lines
10 KiB
Plaintext
Raw Normal View History

{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "initial_id",
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"%pip install \"yfinance[optional]\"==\"0.2.37\""
]
},
{
"cell_type": "code",
2024-03-18 09:42:10 +00:00
"execution_count": 7,
"id": "904104edfdda9e89",
"metadata": {
"ExecuteTime": {
2024-03-18 09:42:10 +00:00
"end_time": "2024-03-18T09:32:44.491420Z",
"start_time": "2024-03-18T09:32:44.088451Z"
},
"collapsed": false
},
"outputs": [],
"source": [
"import yfinance as yf\n",
"\n",
"hg_f = yf.Ticker(\"HG=F\")"
]
},
{
"cell_type": "code",
2024-03-18 09:42:10 +00:00
"execution_count": 8,
"id": "f8531df814e529fb",
"metadata": {
"ExecuteTime": {
2024-03-18 09:42:10 +00:00
"end_time": "2024-03-18T09:32:47.062820Z",
"start_time": "2024-03-18T09:32:44.497587Z"
},
"collapsed": false
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"\n",
"# get historical market data\n",
"hist = hg_f.history(period=\"100y\")\n",
"\n",
"# Replace 0 values with NaN in specific columns\n",
"hist.replace({'Volume': {0: pd.NA}, 'Open': {0: pd.NA}}, inplace=True)\n",
"hist.replace(0, np.nan, inplace=True) # Replace 0 with NaN\n",
"\n",
2024-03-18 09:42:10 +00:00
"columns = ['Open', 'High', 'Low', 'Close', 'Volume']"
]
},
{
"cell_type": "code",
2024-03-18 09:42:10 +00:00
"execution_count": 9,
"id": "de2634931db1a5d6",
2024-03-18 09:42:10 +00:00
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-18T09:32:47.077281Z",
"start_time": "2024-03-18T09:32:47.066270Z"
},
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Open</th>\n",
" <th>High</th>\n",
" <th>Low</th>\n",
" <th>Close</th>\n",
" <th>Volume</th>\n",
" <th>Dividends</th>\n",
" <th>Stock Splits</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2000-08-30 00:00:00-04:00</th>\n",
" <td>0.879</td>\n",
" <td>0.887</td>\n",
" <td>0.8770</td>\n",
" <td>0.8850</td>\n",
" <td>2886</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-08-31 00:00:00-04:00</th>\n",
" <td>0.885</td>\n",
" <td>0.888</td>\n",
" <td>0.8800</td>\n",
" <td>0.8850</td>\n",
" <td>1095</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-09-01 00:00:00-04:00</th>\n",
" <td>0.878</td>\n",
" <td>0.889</td>\n",
" <td>0.8780</td>\n",
" <td>0.8890</td>\n",
" <td>3449</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-09-05 00:00:00-04:00</th>\n",
" <td>0.896</td>\n",
" <td>0.907</td>\n",
" <td>0.8950</td>\n",
" <td>0.9060</td>\n",
" <td>1397</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-09-06 00:00:00-04:00</th>\n",
" <td>0.905</td>\n",
" <td>0.906</td>\n",
" <td>0.8975</td>\n",
" <td>0.9015</td>\n",
" <td>1195</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume Dividends \\\n",
"Date \n",
"2000-08-30 00:00:00-04:00 0.879 0.887 0.8770 0.8850 2886 NaN \n",
"2000-08-31 00:00:00-04:00 0.885 0.888 0.8800 0.8850 1095 NaN \n",
"2000-09-01 00:00:00-04:00 0.878 0.889 0.8780 0.8890 3449 NaN \n",
"2000-09-05 00:00:00-04:00 0.896 0.907 0.8950 0.9060 1397 NaN \n",
"2000-09-06 00:00:00-04:00 0.905 0.906 0.8975 0.9015 1195 NaN \n",
"\n",
" Stock Splits \n",
"Date \n",
"2000-08-30 00:00:00-04:00 NaN \n",
"2000-08-31 00:00:00-04:00 NaN \n",
"2000-09-01 00:00:00-04:00 NaN \n",
"2000-09-05 00:00:00-04:00 NaN \n",
"2000-09-06 00:00:00-04:00 NaN "
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"hist.head()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "6da84391ad0032f6",
"metadata": {
"ExecuteTime": {
"end_time": "2024-03-18T09:35:22.674361Z",
"start_time": "2024-03-18T09:35:22.648963Z"
},
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Open</th>\n",
" <th>High</th>\n",
" <th>Low</th>\n",
" <th>Close</th>\n",
" <th>Volume</th>\n",
" <th>Dividends</th>\n",
" <th>Stock Splits</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2000-08-30</th>\n",
" <td>0.879</td>\n",
" <td>0.887</td>\n",
" <td>0.8770</td>\n",
" <td>0.8850</td>\n",
" <td>2886</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-08-31</th>\n",
" <td>0.885</td>\n",
" <td>0.888</td>\n",
" <td>0.8800</td>\n",
" <td>0.8850</td>\n",
" <td>1095</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-09-01</th>\n",
" <td>0.878</td>\n",
" <td>0.889</td>\n",
" <td>0.8780</td>\n",
" <td>0.8890</td>\n",
" <td>3449</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-09-05</th>\n",
" <td>0.896</td>\n",
" <td>0.907</td>\n",
" <td>0.8950</td>\n",
" <td>0.9060</td>\n",
" <td>1397</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2000-09-06</th>\n",
" <td>0.905</td>\n",
" <td>0.906</td>\n",
" <td>0.8975</td>\n",
" <td>0.9015</td>\n",
" <td>1195</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Open High Low Close Volume Dividends Stock Splits\n",
"2000-08-30 0.879 0.887 0.8770 0.8850 2886 NaN NaN\n",
"2000-08-31 0.885 0.888 0.8800 0.8850 1095 NaN NaN\n",
"2000-09-01 0.878 0.889 0.8780 0.8890 3449 NaN NaN\n",
"2000-09-05 0.896 0.907 0.8950 0.9060 1397 NaN NaN\n",
"2000-09-06 0.905 0.906 0.8975 0.9015 1195 NaN NaN"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Convert the index to datetime if it's not already\n",
"hist.index = pd.to_datetime(hist.index)\n",
"\n",
"# Strip the time and timezone, keeping only the date for the index\n",
"hist.index = hist.index.date\n",
"\n",
"hist.head()"
]
},
{
"cell_type": "code",
2024-03-18 11:27:58 +00:00
"execution_count": 16,
2024-03-18 09:42:10 +00:00
"id": "46d35140195ce652",
"metadata": {
"ExecuteTime": {
2024-03-18 11:27:58 +00:00
"end_time": "2024-03-18T11:27:06.711138Z",
"start_time": "2024-03-18T11:27:06.675173Z"
2024-03-18 09:42:10 +00:00
},
"collapsed": false
},
"outputs": [],
"source": [
"from datetime import datetime\n",
"\n",
"# Get the current date in 'YYYY-MM-DD' format\n",
"current_date = datetime.now().strftime('%Y-%m-%d')\n",
"\n",
"# Create the file name with the current date\n",
"file_name = f'./Data_COPPER_{current_date}.csv'\n",
"\n",
"hist = hist.round(3)\n",
"\n",
"# Save the DataFrame to CSV with the dynamic file name\n",
2024-03-18 11:27:58 +00:00
"hist[[\"Open\", \"High\", \"Low\", \"Close\"]].to_csv(file_name)"
2024-03-18 09:42:10 +00:00
]
},
{
"cell_type": "code",
"id": "3f6096fe43e72687",
"metadata": {
"collapsed": false
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}