1
0
Files
finance/材料准备/ta-lib.ipynb

588 lines
20 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"cells": [
{
"cell_type": "code",
"id": "initial_id",
"metadata": {
"collapsed": true,
"ExecuteTime": {
"end_time": "2025-02-11T06:31:19.433336Z",
"start_time": "2025-02-11T06:31:18.884130Z"
}
},
"source": [
"import pandas as pd\n",
"\n",
"# source_df = \\\n",
"# pd.read_csv(\"C:\\\\Users\\\\lanyuanxiaoyao\\\\SynologyDrive\\\\data\\\\Tushare\\\\日线行情 1990-2024\\\\分组行情\\\\000001.SZ.csv\") \\\n",
"source_df = pd.read_csv(\"/Users/lanyuanxiaoyao/SynologyDrive/data/Tushare/日线行情 1990-2024/分组行情/600519.SH.csv\") \\\n",
" [[\"trade_date\", \"vol\", \"open_qfq\", \"close_qfq\", \"high_qfq\", \"low_qfq\", \"macd\", \"macd_dif\", \"macd_dea\"]]\n",
"df = pd.DataFrame()\n",
"df[[\"date\", \"volume\", \"open\", \"close\", \"high\", \"low\", \"macd\", \"macd_dif\", \"macd_dea\"]] = \\\n",
" source_df[[\"trade_date\", \"vol\", \"open_qfq\", \"close_qfq\", \"high_qfq\", \"low_qfq\", \"macd\", \"macd_dif\", \"macd_dea\"]]\n",
"df[\"datetime\"] = pd.to_datetime(df[\"date\"], format=\"%Y%m%d\")\n",
"df[\"datetime_text\"] = df[\"datetime\"].apply(lambda x: x.strftime(\"%Y%m%d\"))\n",
"df.sort_values(by='datetime', inplace=True)\n",
"df"
],
"outputs": [
{
"data": {
"text/plain": [
" date volume open close high low \\\n",
"2187 20010827 406318.00 4.23675 4.36443 4.63820 4.03295 \n",
"2188 20010828 129647.79 4.29568 4.52525 4.54244 4.24902 \n",
"2189 20010829 53252.75 4.53999 4.46632 4.54244 4.43195 \n",
"2190 20010830 48013.06 4.45405 4.55472 4.60505 4.41967 \n",
"2191 20010831 23231.48 4.56086 4.54367 4.61856 4.51789 \n",
"... ... ... ... ... ... ... \n",
"2182 20241225 17123.39 1538.80000 1530.00000 1538.80000 1526.10000 \n",
"2183 20241226 18286.51 1534.00000 1527.79000 1538.78000 1523.00000 \n",
"2184 20241227 20759.32 1528.90000 1528.97000 1536.00000 1519.50000 \n",
"2185 20241230 25129.82 1533.97000 1525.00000 1543.96000 1525.00000 \n",
"2186 20241231 39354.45 1525.40000 1524.00000 1545.00000 1522.01000 \n",
"\n",
" macd macd_dif macd_dea datetime datetime_text \n",
"2187 0.000 0.000 0.000 2001-08-27 20010827 \n",
"2188 0.021 0.013 0.003 2001-08-28 20010828 \n",
"2189 0.025 0.018 0.006 2001-08-29 20010829 \n",
"2190 0.037 0.029 0.010 2001-08-30 20010830 \n",
"2191 0.042 0.036 0.016 2001-08-31 20010831 \n",
"... ... ... ... ... ... \n",
"2182 5.430 5.063 2.348 2024-12-25 20241225 \n",
"2183 4.192 4.968 2.872 2024-12-26 20241226 \n",
"2184 3.295 4.931 3.283 2024-12-27 20241227 \n",
"2185 1.993 4.529 3.533 2024-12-30 20241230 \n",
"2186 0.880 4.083 3.643 2024-12-31 20241231 \n",
"\n",
"[5591 rows x 11 columns]"
],
"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>date</th>\n",
" <th>volume</th>\n",
" <th>open</th>\n",
" <th>close</th>\n",
" <th>high</th>\n",
" <th>low</th>\n",
" <th>macd</th>\n",
" <th>macd_dif</th>\n",
" <th>macd_dea</th>\n",
" <th>datetime</th>\n",
" <th>datetime_text</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2187</th>\n",
" <td>20010827</td>\n",
" <td>406318.00</td>\n",
" <td>4.23675</td>\n",
" <td>4.36443</td>\n",
" <td>4.63820</td>\n",
" <td>4.03295</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>2001-08-27</td>\n",
" <td>20010827</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2188</th>\n",
" <td>20010828</td>\n",
" <td>129647.79</td>\n",
" <td>4.29568</td>\n",
" <td>4.52525</td>\n",
" <td>4.54244</td>\n",
" <td>4.24902</td>\n",
" <td>0.021</td>\n",
" <td>0.013</td>\n",
" <td>0.003</td>\n",
" <td>2001-08-28</td>\n",
" <td>20010828</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2189</th>\n",
" <td>20010829</td>\n",
" <td>53252.75</td>\n",
" <td>4.53999</td>\n",
" <td>4.46632</td>\n",
" <td>4.54244</td>\n",
" <td>4.43195</td>\n",
" <td>0.025</td>\n",
" <td>0.018</td>\n",
" <td>0.006</td>\n",
" <td>2001-08-29</td>\n",
" <td>20010829</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2190</th>\n",
" <td>20010830</td>\n",
" <td>48013.06</td>\n",
" <td>4.45405</td>\n",
" <td>4.55472</td>\n",
" <td>4.60505</td>\n",
" <td>4.41967</td>\n",
" <td>0.037</td>\n",
" <td>0.029</td>\n",
" <td>0.010</td>\n",
" <td>2001-08-30</td>\n",
" <td>20010830</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2191</th>\n",
" <td>20010831</td>\n",
" <td>23231.48</td>\n",
" <td>4.56086</td>\n",
" <td>4.54367</td>\n",
" <td>4.61856</td>\n",
" <td>4.51789</td>\n",
" <td>0.042</td>\n",
" <td>0.036</td>\n",
" <td>0.016</td>\n",
" <td>2001-08-31</td>\n",
" <td>20010831</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2182</th>\n",
" <td>20241225</td>\n",
" <td>17123.39</td>\n",
" <td>1538.80000</td>\n",
" <td>1530.00000</td>\n",
" <td>1538.80000</td>\n",
" <td>1526.10000</td>\n",
" <td>5.430</td>\n",
" <td>5.063</td>\n",
" <td>2.348</td>\n",
" <td>2024-12-25</td>\n",
" <td>20241225</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2183</th>\n",
" <td>20241226</td>\n",
" <td>18286.51</td>\n",
" <td>1534.00000</td>\n",
" <td>1527.79000</td>\n",
" <td>1538.78000</td>\n",
" <td>1523.00000</td>\n",
" <td>4.192</td>\n",
" <td>4.968</td>\n",
" <td>2.872</td>\n",
" <td>2024-12-26</td>\n",
" <td>20241226</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2184</th>\n",
" <td>20241227</td>\n",
" <td>20759.32</td>\n",
" <td>1528.90000</td>\n",
" <td>1528.97000</td>\n",
" <td>1536.00000</td>\n",
" <td>1519.50000</td>\n",
" <td>3.295</td>\n",
" <td>4.931</td>\n",
" <td>3.283</td>\n",
" <td>2024-12-27</td>\n",
" <td>20241227</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2185</th>\n",
" <td>20241230</td>\n",
" <td>25129.82</td>\n",
" <td>1533.97000</td>\n",
" <td>1525.00000</td>\n",
" <td>1543.96000</td>\n",
" <td>1525.00000</td>\n",
" <td>1.993</td>\n",
" <td>4.529</td>\n",
" <td>3.533</td>\n",
" <td>2024-12-30</td>\n",
" <td>20241230</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2186</th>\n",
" <td>20241231</td>\n",
" <td>39354.45</td>\n",
" <td>1525.40000</td>\n",
" <td>1524.00000</td>\n",
" <td>1545.00000</td>\n",
" <td>1522.01000</td>\n",
" <td>0.880</td>\n",
" <td>4.083</td>\n",
" <td>3.643</td>\n",
" <td>2024-12-31</td>\n",
" <td>20241231</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5591 rows × 11 columns</p>\n",
"</div>"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 2
},
{
"metadata": {
"ExecuteTime": {
"end_time": "2025-02-11T06:33:12.365001Z",
"start_time": "2025-02-11T06:33:12.329227Z"
}
},
"cell_type": "code",
"source": [
"import talib\n",
"\n",
"dif, dea, hist = talib.MACD(df[\"close\"], fastperiod=12, slowperiod=26, signalperiod=9)\n",
"\n",
"# 将结果添加到数据框\n",
"df['DIF'] = dif\n",
"df['DEA'] = dea\n",
"df['MACD'] = hist\n",
"\n",
"#根据close列计算macd值\n",
"talib.SMA(df[\"close\"], timeperiod=26, step=10)\n",
"\n",
"df"
],
"id": "72b1c0c3f57e8b8e",
"outputs": [
{
"data": {
"text/plain": [
" date volume open close high low \\\n",
"2187 20010827 406318.00 4.23675 4.36443 4.63820 4.03295 \n",
"2188 20010828 129647.79 4.29568 4.52525 4.54244 4.24902 \n",
"2189 20010829 53252.75 4.53999 4.46632 4.54244 4.43195 \n",
"2190 20010830 48013.06 4.45405 4.55472 4.60505 4.41967 \n",
"2191 20010831 23231.48 4.56086 4.54367 4.61856 4.51789 \n",
"... ... ... ... ... ... ... \n",
"2182 20241225 17123.39 1538.80000 1530.00000 1538.80000 1526.10000 \n",
"2183 20241226 18286.51 1534.00000 1527.79000 1538.78000 1523.00000 \n",
"2184 20241227 20759.32 1528.90000 1528.97000 1536.00000 1519.50000 \n",
"2185 20241230 25129.82 1533.97000 1525.00000 1543.96000 1525.00000 \n",
"2186 20241231 39354.45 1525.40000 1524.00000 1545.00000 1522.01000 \n",
"\n",
" macd macd_dif macd_dea datetime datetime_text DIF DEA \\\n",
"2187 0.000 0.000 0.000 2001-08-27 20010827 NaN NaN \n",
"2188 0.021 0.013 0.003 2001-08-28 20010828 NaN NaN \n",
"2189 0.025 0.018 0.006 2001-08-29 20010829 NaN NaN \n",
"2190 0.037 0.029 0.010 2001-08-30 20010830 NaN NaN \n",
"2191 0.042 0.036 0.016 2001-08-31 20010831 NaN NaN \n",
"... ... ... ... ... ... ... ... \n",
"2182 5.430 5.063 2.348 2024-12-25 20241225 5.062711 2.347629 \n",
"2183 4.192 4.968 2.872 2024-12-26 20241226 4.967756 2.871654 \n",
"2184 3.295 4.931 3.283 2024-12-27 20241227 4.930880 3.283499 \n",
"2185 1.993 4.529 3.533 2024-12-30 20241230 4.529101 3.532620 \n",
"2186 0.880 4.083 3.643 2024-12-31 20241231 4.082931 3.642682 \n",
"\n",
" MACD \n",
"2187 NaN \n",
"2188 NaN \n",
"2189 NaN \n",
"2190 NaN \n",
"2191 NaN \n",
"... ... \n",
"2182 2.715082 \n",
"2183 2.096102 \n",
"2184 1.647381 \n",
"2185 0.996481 \n",
"2186 0.440249 \n",
"\n",
"[5591 rows x 14 columns]"
],
"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>date</th>\n",
" <th>volume</th>\n",
" <th>open</th>\n",
" <th>close</th>\n",
" <th>high</th>\n",
" <th>low</th>\n",
" <th>macd</th>\n",
" <th>macd_dif</th>\n",
" <th>macd_dea</th>\n",
" <th>datetime</th>\n",
" <th>datetime_text</th>\n",
" <th>DIF</th>\n",
" <th>DEA</th>\n",
" <th>MACD</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2187</th>\n",
" <td>20010827</td>\n",
" <td>406318.00</td>\n",
" <td>4.23675</td>\n",
" <td>4.36443</td>\n",
" <td>4.63820</td>\n",
" <td>4.03295</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>0.000</td>\n",
" <td>2001-08-27</td>\n",
" <td>20010827</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2188</th>\n",
" <td>20010828</td>\n",
" <td>129647.79</td>\n",
" <td>4.29568</td>\n",
" <td>4.52525</td>\n",
" <td>4.54244</td>\n",
" <td>4.24902</td>\n",
" <td>0.021</td>\n",
" <td>0.013</td>\n",
" <td>0.003</td>\n",
" <td>2001-08-28</td>\n",
" <td>20010828</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2189</th>\n",
" <td>20010829</td>\n",
" <td>53252.75</td>\n",
" <td>4.53999</td>\n",
" <td>4.46632</td>\n",
" <td>4.54244</td>\n",
" <td>4.43195</td>\n",
" <td>0.025</td>\n",
" <td>0.018</td>\n",
" <td>0.006</td>\n",
" <td>2001-08-29</td>\n",
" <td>20010829</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2190</th>\n",
" <td>20010830</td>\n",
" <td>48013.06</td>\n",
" <td>4.45405</td>\n",
" <td>4.55472</td>\n",
" <td>4.60505</td>\n",
" <td>4.41967</td>\n",
" <td>0.037</td>\n",
" <td>0.029</td>\n",
" <td>0.010</td>\n",
" <td>2001-08-30</td>\n",
" <td>20010830</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2191</th>\n",
" <td>20010831</td>\n",
" <td>23231.48</td>\n",
" <td>4.56086</td>\n",
" <td>4.54367</td>\n",
" <td>4.61856</td>\n",
" <td>4.51789</td>\n",
" <td>0.042</td>\n",
" <td>0.036</td>\n",
" <td>0.016</td>\n",
" <td>2001-08-31</td>\n",
" <td>20010831</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2182</th>\n",
" <td>20241225</td>\n",
" <td>17123.39</td>\n",
" <td>1538.80000</td>\n",
" <td>1530.00000</td>\n",
" <td>1538.80000</td>\n",
" <td>1526.10000</td>\n",
" <td>5.430</td>\n",
" <td>5.063</td>\n",
" <td>2.348</td>\n",
" <td>2024-12-25</td>\n",
" <td>20241225</td>\n",
" <td>5.062711</td>\n",
" <td>2.347629</td>\n",
" <td>2.715082</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2183</th>\n",
" <td>20241226</td>\n",
" <td>18286.51</td>\n",
" <td>1534.00000</td>\n",
" <td>1527.79000</td>\n",
" <td>1538.78000</td>\n",
" <td>1523.00000</td>\n",
" <td>4.192</td>\n",
" <td>4.968</td>\n",
" <td>2.872</td>\n",
" <td>2024-12-26</td>\n",
" <td>20241226</td>\n",
" <td>4.967756</td>\n",
" <td>2.871654</td>\n",
" <td>2.096102</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2184</th>\n",
" <td>20241227</td>\n",
" <td>20759.32</td>\n",
" <td>1528.90000</td>\n",
" <td>1528.97000</td>\n",
" <td>1536.00000</td>\n",
" <td>1519.50000</td>\n",
" <td>3.295</td>\n",
" <td>4.931</td>\n",
" <td>3.283</td>\n",
" <td>2024-12-27</td>\n",
" <td>20241227</td>\n",
" <td>4.930880</td>\n",
" <td>3.283499</td>\n",
" <td>1.647381</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2185</th>\n",
" <td>20241230</td>\n",
" <td>25129.82</td>\n",
" <td>1533.97000</td>\n",
" <td>1525.00000</td>\n",
" <td>1543.96000</td>\n",
" <td>1525.00000</td>\n",
" <td>1.993</td>\n",
" <td>4.529</td>\n",
" <td>3.533</td>\n",
" <td>2024-12-30</td>\n",
" <td>20241230</td>\n",
" <td>4.529101</td>\n",
" <td>3.532620</td>\n",
" <td>0.996481</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2186</th>\n",
" <td>20241231</td>\n",
" <td>39354.45</td>\n",
" <td>1525.40000</td>\n",
" <td>1524.00000</td>\n",
" <td>1545.00000</td>\n",
" <td>1522.01000</td>\n",
" <td>0.880</td>\n",
" <td>4.083</td>\n",
" <td>3.643</td>\n",
" <td>2024-12-31</td>\n",
" <td>20241231</td>\n",
" <td>4.082931</td>\n",
" <td>3.642682</td>\n",
" <td>0.440249</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>5591 rows × 14 columns</p>\n",
"</div>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"execution_count": 3
}
],
"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
}