原油线上配置更改
This commit is contained in:
parent
29304bcd03
commit
448f2989d4
Binary file not shown.
@ -2,9 +2,17 @@
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 12,
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"WARNING:tensorflow:From C:\\Users\\EDY\\AppData\\Roaming\\Python\\Python311\\site-packages\\keras\\src\\losses.py:2976: The name tf.losses.sparse_softmax_cross_entropy is deprecated. Please use tf.compat.v1.losses.sparse_softmax_cross_entropy instead.\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
@ -681,7 +689,7 @@
|
||||
" # 更新当日数据\n",
|
||||
" start(date)\n",
|
||||
" # 训练模型\n",
|
||||
" # optimize_Model()\n",
|
||||
" optimize_Model()\n",
|
||||
" # 预测&上传预测结果\n",
|
||||
" upload_data_to_system(token_push,start_date)\n",
|
||||
"\n"
|
||||
@ -735,14 +743,14 @@
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"获取的token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhcGlfZGV2IiwidGgiOiI4YTQ1NzdkYmQ5MTk2NzU3NThkNTc5OTlhMWU4OTFmZSIsImx0IjoiYXBpIiwiaXNzIjoiIiwidG0iOiJQQyIsImV4cCI6MTc0NjY0NTcwMCwianRpIjoiODRhODFmYmZjYTUxNGM4ZGIzOGFiZTVlM2U0ZWFhYmUifQ.Vu5gbh0s1TMd3NE6T89l0h67TQaf3r_TDHvO_lZsIcs\n"
|
||||
"获取的token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhcGlfZGV2IiwidGgiOiI4YTQ1NzdkYmQ5MTk2NzU3NThkNTc5OTlhMWU4OTFmZSIsImx0IjoiYXBpIiwiaXNzIjoiIiwidG0iOiJQQyIsImV4cCI6MTc0NzMwNzgyMCwianRpIjoiMzkyNmRlYjI3YWJkNDIyNjk2MDFmMGE4MTFjZWM4YzgifQ.N0sWMfEvZe0Jh7xPyBlLWnYqYLOLQdiRB3JASMSd0vw\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_2516\\268695125.py:602: DeprecationWarning:\n",
|
||||
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_25852\\3372978512.py:602: DeprecationWarning:\n",
|
||||
"\n",
|
||||
"The truth value of an empty array is ambiguous. Returning False, but in future this will result in an error. Use `array.size > 0` to check that an array is not empty.\n",
|
||||
"\n"
|
||||
@ -753,14 +761,14 @@
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"当月数据更新完成\n",
|
||||
"20250507\n"
|
||||
"20250514\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_2516\\268695125.py:602: DeprecationWarning:\n",
|
||||
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_25852\\3372978512.py:602: DeprecationWarning:\n",
|
||||
"\n",
|
||||
"The truth value of an empty array is ambiguous. Returning False, but in future this will result in an error. Use `array.size > 0` to check that an array is not empty.\n",
|
||||
"\n"
|
||||
@ -772,31 +780,60 @@
|
||||
"text": [
|
||||
"当月数据更新完成\n",
|
||||
"获取到的数据项ID['YHQMXBB|C01100008|STRIKE_PRICE', 'C01100008|CORTED_VALUE', 'C01100008|AUCTION_MAX_PRICE', 'C01100008|AMOUNT', 'C01100008|YEDAY_AMOUNT', '100028046|LISTING_PRICE', 'ICE_CL0_LAST_YEDAY_PRICE', '91370200163576944B|C01100008|STRIKE_PRICE', '9137078672073757X8|C01100008|STRIKE_PRICE', '91370500674526498A|C01100008|STRIKE_PRICE', '91370305773165341A|C01100008|STRIKE_PRICE', '91370521164880008P|C01100008|STRIKE_PRICE', '91370321164425136B|C01100008|STRIKE_PRICE', 'SD|GC|ZDW|LIST_PRICE', '370500|ISOBUTANE|LIST_PRICE', 'SD|YT|SG|LIST_PRICE', '91110000710926094P|C01100008|SUPPLY_MERE', '91110000710932515R|C01100008|SUPPLY_MERE', '91370500674526498A|C01100008|SUPPLY_MERE', '91370321164425136B|C01100008|SUPPLY_MERE', 'C01100008|OTHER|SUPPLY_MERE', 'SD|WJH|DEMANDS', 'C01100008|SUY_DED_DAP', 'C01100008|EFFECTIVE_STOCK', '912102117169477344|C01100008|STRIKE_PRICE', '91110304102767480H|C01100008|STRIKE_PRICE', '91130193670310403L|C01100008|STRIKE_PRICE', 'HD|LPG|IMPORT_PRICE', 'SD|WJH|SALES_PRICE']\n",
|
||||
"获取的token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhcGlfZGV2IiwidGgiOiI4YTQ1NzdkYmQ5MTk2NzU3NThkNTc5OTlhMWU4OTFmZSIsImx0IjoiYXBpIiwiaXNzIjoiIiwidG0iOiJQQyIsImV4cCI6MTc0NjY0NTcwOCwianRpIjoiNDFjODI0ZjQ0MDIzNDZlZmI5NjY5NTcwZGE3MmZiYmYifQ.OUIHg0JlPstctzFKJ__8Qqo7oZuxedssnRJlUYXujtc\n",
|
||||
"获取20250507数据\n",
|
||||
"获取的token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhcGlfZGV2IiwidGgiOiI4YTQ1NzdkYmQ5MTk2NzU3NThkNTc5OTlhMWU4OTFmZSIsImx0IjoiYXBpIiwiaXNzIjoiIiwidG0iOiJQQyIsImV4cCI6MTc0NzMwNzgyMywianRpIjoiZGZhZjM2ZjcyNWRhNDJmMThjYThmZWE0Y2VkNjQ1MjcifQ.IRHbVrERfphVjgcVRZvnpUN6GBMIH4uCQ9SIcS5U3fA\n",
|
||||
"获取20250514数据\n",
|
||||
"数据项查询参数search_data:\n",
|
||||
"{'data': {'date': '20250507', 'dataItemNoList': ['YHQMXBB|C01100008|STRIKE_PRICE', 'C01100008|CORTED_VALUE', 'C01100008|AUCTION_MAX_PRICE', 'C01100008|AMOUNT', 'C01100008|YEDAY_AMOUNT', '100028046|LISTING_PRICE', 'ICE_CL0_LAST_YEDAY_PRICE', '91370200163576944B|C01100008|STRIKE_PRICE', '9137078672073757X8|C01100008|STRIKE_PRICE', '91370500674526498A|C01100008|STRIKE_PRICE', '91370305773165341A|C01100008|STRIKE_PRICE', '91370521164880008P|C01100008|STRIKE_PRICE', '91370321164425136B|C01100008|STRIKE_PRICE', 'SD|GC|ZDW|LIST_PRICE', '370500|ISOBUTANE|LIST_PRICE', 'SD|YT|SG|LIST_PRICE', '91110000710926094P|C01100008|SUPPLY_MERE', '91110000710932515R|C01100008|SUPPLY_MERE', '91370500674526498A|C01100008|SUPPLY_MERE', '91370321164425136B|C01100008|SUPPLY_MERE', 'C01100008|OTHER|SUPPLY_MERE', 'SD|WJH|DEMANDS', 'C01100008|SUY_DED_DAP', 'C01100008|EFFECTIVE_STOCK', '912102117169477344|C01100008|STRIKE_PRICE', '91110304102767480H|C01100008|STRIKE_PRICE', '91130193670310403L|C01100008|STRIKE_PRICE', 'HD|LPG|IMPORT_PRICE', 'SD|WJH|SALES_PRICE']}, 'funcModule': '数据项', 'funcOperation': '查询'}\n",
|
||||
"{'data': {'date': '20250514', 'dataItemNoList': ['YHQMXBB|C01100008|STRIKE_PRICE', 'C01100008|CORTED_VALUE', 'C01100008|AUCTION_MAX_PRICE', 'C01100008|AMOUNT', 'C01100008|YEDAY_AMOUNT', '100028046|LISTING_PRICE', 'ICE_CL0_LAST_YEDAY_PRICE', '91370200163576944B|C01100008|STRIKE_PRICE', '9137078672073757X8|C01100008|STRIKE_PRICE', '91370500674526498A|C01100008|STRIKE_PRICE', '91370305773165341A|C01100008|STRIKE_PRICE', '91370521164880008P|C01100008|STRIKE_PRICE', '91370321164425136B|C01100008|STRIKE_PRICE', 'SD|GC|ZDW|LIST_PRICE', '370500|ISOBUTANE|LIST_PRICE', 'SD|YT|SG|LIST_PRICE', '91110000710926094P|C01100008|SUPPLY_MERE', '91110000710932515R|C01100008|SUPPLY_MERE', '91370500674526498A|C01100008|SUPPLY_MERE', '91370321164425136B|C01100008|SUPPLY_MERE', 'C01100008|OTHER|SUPPLY_MERE', 'SD|WJH|DEMANDS', 'C01100008|SUY_DED_DAP', 'C01100008|EFFECTIVE_STOCK', '912102117169477344|C01100008|STRIKE_PRICE', '91110304102767480H|C01100008|STRIKE_PRICE', '91130193670310403L|C01100008|STRIKE_PRICE', 'HD|LPG|IMPORT_PRICE', 'SD|WJH|SALES_PRICE']}, 'funcModule': '数据项', 'funcOperation': '查询'}\n",
|
||||
"数据项查询结果search_res:\n",
|
||||
"{\"confirmFlg\":false,\"data\":[{\"dataDate\":\"20250507\",\"dataItemNo\":\"91110000710926094P|C01100008|SUPPLY_MERE\",\"dataValue\":1300.00000000},{\"dataDate\":\"20250507\",\"dataItemNo\":\"91110000710932515R|C01100008|SUPPLY_MERE\"},{\"dataDate\":\"20250507\",\"dataItemNo\":\"91370321164425136B|C01100008|STRIKE_PRICE\",\"dataValue\":4750.00000000},{\"dataDate\":\"20250507\",\"dataItemNo\":\"91370321164425136B|C01100008|SUPPLY_MERE\",\"dataValue\":300.00000000},{\"dataDate\":\"20250507\",\"dataItemNo\":\"91370500674526498A|C01100008|SUPPLY_MERE\",\"dataValue\":175.00000000},{\"dataDate\":\"20250507\",\"dataItemNo\":\"91370521164880008P|C01100008|STRIKE_PRICE\",\"dataValue\":4805.00000000},{\"dataDate\":\"20250507\",\"dataItemNo\":\"C01100008|AUCTION_MAX_PRICE\",\"dataValue\":4770.00000000},{\"dataDate\":\"20250507\",\"dataItemNo\":\"C01100008|CORTED_VALUE\",\"dataValue\":4770.00000000},{\"dataDate\":\"20250507\",\"dataItemNo\":\"C01100008|OTHER|SUPPLY_MERE\",\"dataValue\":5000.00000000},{\"dataDate\":\"20250507\",\"dataItemNo\":\"C01100008|SUY_DED_DAP\",\"dataValue\":-50.00000000},{\"dataDate\":\"20250507\",\"dataItemNo\":\"ICE_CL0_LAST_YEDAY_PRICE\",\"dataValue\":62.04000000},{\"dataDate\":\"20250507\",\"dataItemNo\":\"SD|WJH|DEMANDS\",\"dataValue\":8500.00000000},{\"dataDate\":\"20250507\",\"dataItemNo\":\"SD|WJH|SALES_PRICE\",\"dataValue\":7830.00000000},{\"dataDate\":\"20250507\",\"dataItemNo\":\"YHQMXBB|C01100008|STRIKE_PRICE\",\"dataValue\":4770.00000000}],\"status\":true}\n",
|
||||
"数据项查询结果: [{'dataDate': '20250507', 'dataItemNo': '91110000710926094P|C01100008|SUPPLY_MERE', 'dataValue': 1300.0}, {'dataDate': '20250507', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}, {'dataDate': '20250507', 'dataItemNo': '91370321164425136B|C01100008|STRIKE_PRICE', 'dataValue': 4750.0}, {'dataDate': '20250507', 'dataItemNo': '91370321164425136B|C01100008|SUPPLY_MERE', 'dataValue': 300.0}, {'dataDate': '20250507', 'dataItemNo': '91370500674526498A|C01100008|SUPPLY_MERE', 'dataValue': 175.0}, {'dataDate': '20250507', 'dataItemNo': '91370521164880008P|C01100008|STRIKE_PRICE', 'dataValue': 4805.0}, {'dataDate': '20250507', 'dataItemNo': 'C01100008|AUCTION_MAX_PRICE', 'dataValue': 4770.0}, {'dataDate': '20250507', 'dataItemNo': 'C01100008|CORTED_VALUE', 'dataValue': 4770.0}, {'dataDate': '20250507', 'dataItemNo': 'C01100008|OTHER|SUPPLY_MERE', 'dataValue': 5000.0}, {'dataDate': '20250507', 'dataItemNo': 'C01100008|SUY_DED_DAP', 'dataValue': -50.0}, {'dataDate': '20250507', 'dataItemNo': 'ICE_CL0_LAST_YEDAY_PRICE', 'dataValue': 62.04}, {'dataDate': '20250507', 'dataItemNo': 'SD|WJH|DEMANDS', 'dataValue': 8500.0}, {'dataDate': '20250507', 'dataItemNo': 'SD|WJH|SALES_PRICE', 'dataValue': 7830.0}, {'dataDate': '20250507', 'dataItemNo': 'YHQMXBB|C01100008|STRIKE_PRICE', 'dataValue': 4770.0}]\n",
|
||||
"{'dataDate': '20250507', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n",
|
||||
"添加的行: ['2025-05-07', 4770.0, 4770.0, 4770.0, '', '', '', 62.04, '', '', '', '', 4805.0, 4750.0, '', '', '', 1300.0, '', 175.0, 300.0, 5000.0, 8500.0, -50.0, '', '', '', '', '', 7830.0]\n",
|
||||
"更新 2025-05-07 数据\n"
|
||||
"{\"confirmFlg\":false,\"data\":[{\"dataDate\":\"20250514\",\"dataItemNo\":\"100028046|LISTING_PRICE\",\"dataValue\":7613.00000000},{\"dataDate\":\"20250514\",\"dataItemNo\":\"91110000710926094P|C01100008|SUPPLY_MERE\",\"dataValue\":1300.00000000},{\"dataDate\":\"20250514\",\"dataItemNo\":\"91110000710932515R|C01100008|SUPPLY_MERE\"},{\"dataDate\":\"20250514\",\"dataItemNo\":\"91370321164425136B|C01100008|STRIKE_PRICE\",\"dataValue\":4650.00000000},{\"dataDate\":\"20250514\",\"dataItemNo\":\"91370321164425136B|C01100008|SUPPLY_MERE\",\"dataValue\":300.00000000},{\"dataDate\":\"20250514\",\"dataItemNo\":\"91370500674526498A|C01100008|SUPPLY_MERE\",\"dataValue\":175.00000000},{\"dataDate\":\"20250514\",\"dataItemNo\":\"91370521164880008P|C01100008|STRIKE_PRICE\",\"dataValue\":4705.00000000},{\"dataDate\":\"20250514\",\"dataItemNo\":\"C01100008|AUCTION_MAX_PRICE\",\"dataValue\":4650.00000000},{\"dataDate\":\"20250514\",\"dataItemNo\":\"C01100008|CORTED_VALUE\",\"dataValue\":4650.00000000},{\"dataDate\":\"20250514\",\"dataItemNo\":\"C01100008|OTHER|SUPPLY_MERE\",\"dataValue\":5000.00000000},{\"dataDate\":\"20250514\",\"dataItemNo\":\"C01100008|SUY_DED_DAP\",\"dataValue\":-50.00000000},{\"dataDate\":\"20250514\",\"dataItemNo\":\"ICE_CL0_LAST_YEDAY_PRICE\",\"dataValue\":66.60000000},{\"dataDate\":\"20250514\",\"dataItemNo\":\"SD|WJH|DEMANDS\",\"dataValue\":8500.00000000},{\"dataDate\":\"20250514\",\"dataItemNo\":\"SD|WJH|SALES_PRICE\",\"dataValue\":7900.00000000},{\"dataDate\":\"20250514\",\"dataItemNo\":\"YHQMXBB|C01100008|STRIKE_PRICE\",\"dataValue\":4650.00000000}],\"status\":true}\n",
|
||||
"数据项查询结果: [{'dataDate': '20250514', 'dataItemNo': '100028046|LISTING_PRICE', 'dataValue': 7613.0}, {'dataDate': '20250514', 'dataItemNo': '91110000710926094P|C01100008|SUPPLY_MERE', 'dataValue': 1300.0}, {'dataDate': '20250514', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}, {'dataDate': '20250514', 'dataItemNo': '91370321164425136B|C01100008|STRIKE_PRICE', 'dataValue': 4650.0}, {'dataDate': '20250514', 'dataItemNo': '91370321164425136B|C01100008|SUPPLY_MERE', 'dataValue': 300.0}, {'dataDate': '20250514', 'dataItemNo': '91370500674526498A|C01100008|SUPPLY_MERE', 'dataValue': 175.0}, {'dataDate': '20250514', 'dataItemNo': '91370521164880008P|C01100008|STRIKE_PRICE', 'dataValue': 4705.0}, {'dataDate': '20250514', 'dataItemNo': 'C01100008|AUCTION_MAX_PRICE', 'dataValue': 4650.0}, {'dataDate': '20250514', 'dataItemNo': 'C01100008|CORTED_VALUE', 'dataValue': 4650.0}, {'dataDate': '20250514', 'dataItemNo': 'C01100008|OTHER|SUPPLY_MERE', 'dataValue': 5000.0}, {'dataDate': '20250514', 'dataItemNo': 'C01100008|SUY_DED_DAP', 'dataValue': -50.0}, {'dataDate': '20250514', 'dataItemNo': 'ICE_CL0_LAST_YEDAY_PRICE', 'dataValue': 66.6}, {'dataDate': '20250514', 'dataItemNo': 'SD|WJH|DEMANDS', 'dataValue': 8500.0}, {'dataDate': '20250514', 'dataItemNo': 'SD|WJH|SALES_PRICE', 'dataValue': 7900.0}, {'dataDate': '20250514', 'dataItemNo': 'YHQMXBB|C01100008|STRIKE_PRICE', 'dataValue': 4650.0}]\n",
|
||||
"{'dataDate': '20250514', 'dataItemNo': '91110000710932515R|C01100008|SUPPLY_MERE'}\n",
|
||||
"添加的行: ['2025-05-14', 4650.0, 4650.0, 4650.0, '', '', 7613.0, 66.6, '', '', '', '', 4705.0, 4650.0, '', '', '', 1300.0, '', 175.0, 300.0, 5000.0, 8500.0, -50.0, '', '', '', '', '', 7900.0]\n",
|
||||
"更新 2025-05-14 数据\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_2516\\268695125.py:186: UserWarning:\n",
|
||||
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_25852\\3372978512.py:238: UserWarning:\n",
|
||||
"\n",
|
||||
"The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n",
|
||||
"\n",
|
||||
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_2516\\268695125.py:188: UserWarning:\n",
|
||||
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_25852\\3372978512.py:240: UserWarning:\n",
|
||||
"\n",
|
||||
"The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Using matplotlib backend: <object object at 0x0000024A7FD2F310>\n",
|
||||
"%pylab is deprecated, use %matplotlib inline and import the required libraries.\n",
|
||||
"Populating the interactive namespace from numpy and matplotlib\n",
|
||||
"Fitting 3 folds for each of 180 candidates, totalling 540 fits\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\IPython\\core\\magics\\pylab.py:162: UserWarning:\n",
|
||||
"\n",
|
||||
"pylab import has clobbered these variables: ['random', 'plot', '__version__', 'datetime']\n",
|
||||
"`%matplotlib` prevents importing * from pylab and numpy\n",
|
||||
"\n",
|
||||
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_25852\\3372978512.py:186: UserWarning:\n",
|
||||
"\n",
|
||||
"The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n",
|
||||
"\n",
|
||||
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_2516\\268695125.py:220: FutureWarning:\n",
|
||||
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_25852\\3372978512.py:188: UserWarning:\n",
|
||||
"\n",
|
||||
"The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n",
|
||||
"\n",
|
||||
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_25852\\3372978512.py:220: FutureWarning:\n",
|
||||
"\n",
|
||||
"Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
|
||||
"\n"
|
||||
@ -807,16 +844,15 @@
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Date\n",
|
||||
"2025-05-07 4769.817871\n",
|
||||
"2025-05-14 4646.130371\n",
|
||||
"Name: 日度预测价格, dtype: float32\n",
|
||||
"{\"confirmFlg\":false,\"status\":true}\n",
|
||||
"预测值: 4769.82\n"
|
||||
"预测值: 4646.13\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"# start_date = datetime(2025, 5, 7)\n",
|
||||
"# end_date = datetime(2025, 5, 8)\n",
|
||||
"# start_date = datetime(2025, 5, 14)\n",
|
||||
"# end_date = datetime(2025, 5, 15)\n",
|
||||
"# token = get_head_auth()\n",
|
||||
"\n",
|
||||
"# while start_date < end_date:\n",
|
||||
|
Binary file not shown.
Binary file not shown.
@ -2,9 +2,17 @@
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"execution_count": 3,
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"WARNING:tensorflow:From C:\\Users\\EDY\\AppData\\Roaming\\Python\\Python311\\site-packages\\keras\\src\\losses.py:2976: The name tf.losses.sparse_softmax_cross_entropy is deprecated. Please use tf.compat.v1.losses.sparse_softmax_cross_entropy instead.\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
@ -28,112 +36,6 @@
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"运行中ing\n",
|
||||
"执行定时任务\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_22664\\2912906777.py:771: DeprecationWarning:\n",
|
||||
"\n",
|
||||
"The truth value of an empty array is ambiguous. Returning False, but in future this will result in an error. Use `array.size > 0` to check that an array is not empty.\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"获取到的数据项ID['数据项编码', 'C01100047|STRIKE_PRICE', 'Brentspj', '913716251671540959|EXCHANGE_RATE', 'C01100010|LIST_PRICE01', '250326561|STRIKE_PRICE', 'C01100047|LIST_PRICE', 'C01100047|LIST_PRICE-1', 'C01100047|LIST_PRICE-01', 'OIL_CHEM|guonei|6097|PRICE', '91370500674526498A|C01100008|STRIKE_PRICE', '91370783724809024G|BEN|PRICE', '91370500737223620X|BEN|PRICE', '91370503706169019D|BEN|PRICE', '91370503164840647R|BEN|PRICE', 'C01100047|TURNOVER', '913705221649223519|C01100047|EXW', 'C01100047|CAPACITY']\n",
|
||||
"获取到的数据项ID['C01100047|STRIKE_PRICE', 'Brentspj', '913716251671540959|EXCHANGE_RATE', 'C01100010|LIST_PRICE01', '250326561|STRIKE_PRICE', 'C01100047|LIST_PRICE', 'C01100047|LIST_PRICE-1', 'C01100047|LIST_PRICE-01', 'OIL_CHEM|guonei|6097|PRICE', '91370500674526498A|C01100008|STRIKE_PRICE', '91370783724809024G|BEN|PRICE', '91370500737223620X|BEN|PRICE', '91370503706169019D|BEN|PRICE', '91370503164840647R|BEN|PRICE', 'C01100047|TURNOVER', '913705221649223519|C01100047|EXW', 'C01100047|CAPACITY']\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_22664\\2912906777.py:771: DeprecationWarning:\n",
|
||||
"\n",
|
||||
"The truth value of an empty array is ambiguous. Returning False, but in future this will result in an error. Use `array.size > 0` to check that an array is not empty.\n",
|
||||
"\n",
|
||||
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_22664\\2912906777.py:320: UserWarning:\n",
|
||||
"\n",
|
||||
"The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n",
|
||||
"\n",
|
||||
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:631: ConvergenceWarning:\n",
|
||||
"\n",
|
||||
"Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 6.681e+05, tolerance: 4.960e+04\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Using matplotlib backend: QtAgg\n",
|
||||
"%pylab is deprecated, use %matplotlib inline and import the required libraries.\n",
|
||||
"Populating the interactive namespace from numpy and matplotlib\n",
|
||||
"Fitting 3 folds for each of 180 candidates, totalling 540 fits\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\IPython\\core\\magics\\pylab.py:162: UserWarning:\n",
|
||||
"\n",
|
||||
"pylab import has clobbered these variables: ['__version__', 'datetime', 'plot', 'random']\n",
|
||||
"`%matplotlib` prevents importing * from pylab and numpy\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Date\n",
|
||||
"2025-05-07 5427.172363\n",
|
||||
"Name: 日度预测价格, dtype: float32\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_22664\\2912906777.py:273: UserWarning:\n",
|
||||
"\n",
|
||||
"The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n",
|
||||
"\n",
|
||||
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_22664\\2912906777.py:303: FutureWarning:\n",
|
||||
"\n",
|
||||
"Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"{'funcModule': '数据表信息列表', 'funcOperation': '新增', 'data': [{'dataItemNo': 'C01100047|FORECAST_PRICE', 'dataDate': '20250507', 'dataStatus': 'add', 'dataValue': 5427.17}]}\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"ename": "KeyboardInterrupt",
|
||||
"evalue": "",
|
||||
"output_type": "error",
|
||||
"traceback": [
|
||||
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
|
||||
"\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
|
||||
"Cell \u001b[1;32mIn[3], line 834\u001b[0m\n\u001b[0;32m 832\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m更新数据\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m 833\u001b[0m start_1()\n\u001b[1;32m--> 834\u001b[0m time\u001b[38;5;241m.\u001b[39msleep(\u001b[38;5;241m1\u001b[39m)\n",
|
||||
"\u001b[1;31mKeyboardInterrupt\u001b[0m: "
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
@ -380,9 +282,9 @@
|
||||
" ]\n",
|
||||
" }\n",
|
||||
" print(data)\n",
|
||||
" headers = {\"Authorization\": token_push}\n",
|
||||
" res = requests.post(url=upload_url, headers=headers, json=data, timeout=(3, 5))\n",
|
||||
" print(res.text)\n",
|
||||
" # headers = {\"Authorization\": token_push}\n",
|
||||
" # res = requests.post(url=upload_url, headers=headers, json=data, timeout=(3, 5))\n",
|
||||
" # print(res.text)\n",
|
||||
"\n",
|
||||
" \n",
|
||||
" \n",
|
||||
@ -928,30 +830,27 @@
|
||||
" save_queryDataListItemNos_xls(data_df,dataItemNoList)\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"if __name__ == \"__main__\":\n",
|
||||
" print('运行中ing')\n",
|
||||
"# if __name__ == \"__main__\":\n",
|
||||
"# print('运行中ing')\n",
|
||||
"\n",
|
||||
" # 每天定时12点运行\n",
|
||||
" while True:\n",
|
||||
" # 获取当前时间\n",
|
||||
" current_time = time.strftime(\"%H:%M:%S\", time.localtime())\n",
|
||||
" current_time_1 = time.strftime(\"%H:%M:%S\", time.localtime())\n",
|
||||
"# # 每天定时12点运行\n",
|
||||
"# while True:\n",
|
||||
"# # 获取当前时间\n",
|
||||
"# current_time = time.strftime(\"%H:%M:%S\", time.localtime())\n",
|
||||
"# current_time_1 = time.strftime(\"%H:%M:%S\", time.localtime())\n",
|
||||
" \n",
|
||||
"\n",
|
||||
"\n",
|
||||
" # 判断当前时间是否为执行任务的时间点\n",
|
||||
" if current_time == \"09:15:00\":\n",
|
||||
" print(\"执行定时任务\")\n",
|
||||
" queryDataListItemNos()\n",
|
||||
" start()\n",
|
||||
"\n",
|
||||
" # 休眠1秒钟,避免过多占用CPU资源\n",
|
||||
" time.sleep(1)\n",
|
||||
"# # 判断当前时间是否为执行任务的时间点\n",
|
||||
"# if current_time == \"09:15:00\":\n",
|
||||
"# print(\"执行定时任务\")\n",
|
||||
"# queryDataListItemNos()\n",
|
||||
"# start()\n",
|
||||
" \n",
|
||||
" elif current_time_1 == \"20:00:00\":\n",
|
||||
" print(\"更新数据\")\n",
|
||||
" start_1()\n",
|
||||
" time.sleep(1)\n",
|
||||
"# # elif current_time_1 == \"20:00:00\":\n",
|
||||
"# # print(\"更新数据\")\n",
|
||||
"# # start_1()\n",
|
||||
"# time.sleep(1)\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"# # 检测数据准确性, 需要检测放开\n",
|
||||
@ -961,23 +860,90 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"execution_count": 4,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"20250514\n",
|
||||
"获取到的数据项ID['数据项编码', 'C01100047|STRIKE_PRICE', 'Brentspj', '913716251671540959|EXCHANGE_RATE', 'C01100010|LIST_PRICE01', '250326561|STRIKE_PRICE', 'C01100047|LIST_PRICE', 'C01100047|LIST_PRICE-1', 'C01100047|LIST_PRICE-01', 'OIL_CHEM|guonei|6097|PRICE', '91370500674526498A|C01100008|STRIKE_PRICE', '91370783724809024G|BEN|PRICE', '91370500737223620X|BEN|PRICE', '91370503706169019D|BEN|PRICE', '91370503164840647R|BEN|PRICE', 'C01100047|TURNOVER', '913705221649223519|C01100047|EXW', 'C01100047|CAPACITY']\n",
|
||||
"获取到的数据项ID['C01100047|STRIKE_PRICE', 'Brentspj', '913716251671540959|EXCHANGE_RATE', 'C01100010|LIST_PRICE01', '250326561|STRIKE_PRICE', 'C01100047|LIST_PRICE', 'C01100047|LIST_PRICE-1', 'C01100047|LIST_PRICE-01', 'OIL_CHEM|guonei|6097|PRICE', '91370500674526498A|C01100008|STRIKE_PRICE', '91370783724809024G|BEN|PRICE', '91370500737223620X|BEN|PRICE', '91370503706169019D|BEN|PRICE', '91370503164840647R|BEN|PRICE', 'C01100047|TURNOVER', '913705221649223519|C01100047|EXW', 'C01100047|CAPACITY']\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_13740\\2721280480.py:753: DeprecationWarning:\n",
|
||||
"\n",
|
||||
"The truth value of an empty array is ambiguous. Returning False, but in future this will result in an error. Use `array.size > 0` to check that an array is not empty.\n",
|
||||
"\n",
|
||||
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_13740\\2721280480.py:302: UserWarning:\n",
|
||||
"\n",
|
||||
"The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n",
|
||||
"\n",
|
||||
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\sklearn\\linear_model\\_coordinate_descent.py:631: ConvergenceWarning:\n",
|
||||
"\n",
|
||||
"Objective did not converge. You might want to increase the number of iterations, check the scale of the features or consider increasing regularisation. Duality gap: 7.765e+05, tolerance: 5.324e+04\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Using matplotlib backend: <object object at 0x000002AB0D800550>\n",
|
||||
"%pylab is deprecated, use %matplotlib inline and import the required libraries.\n",
|
||||
"Populating the interactive namespace from numpy and matplotlib\n",
|
||||
"Fitting 3 folds for each of 180 candidates, totalling 540 fits\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stderr",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"d:\\ProgramData\\anaconda3\\Lib\\site-packages\\IPython\\core\\magics\\pylab.py:162: UserWarning:\n",
|
||||
"\n",
|
||||
"pylab import has clobbered these variables: ['random', 'datetime', 'plot', '__version__']\n",
|
||||
"`%matplotlib` prevents importing * from pylab and numpy\n",
|
||||
"\n",
|
||||
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_13740\\2721280480.py:255: UserWarning:\n",
|
||||
"\n",
|
||||
"The argument 'infer_datetime_format' is deprecated and will be removed in a future version. A strict version of it is now the default, see https://pandas.pydata.org/pdeps/0004-consistent-to-datetime-parsing.html. You can safely remove this argument.\n",
|
||||
"\n",
|
||||
"C:\\Users\\EDY\\AppData\\Local\\Temp\\ipykernel_13740\\2721280480.py:285: FutureWarning:\n",
|
||||
"\n",
|
||||
"Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Date\n",
|
||||
"2025-05-15 6119.335449\n",
|
||||
"Name: 日度预测价格, dtype: float32\n",
|
||||
"{'funcModule': '数据表信息列表', 'funcOperation': '新增', 'data': [{'dataItemNo': 'C01100047|FORECAST_PRICE', 'dataDate': datetime.datetime(2025, 5, 14, 0, 0), 'dataStatus': 'add', 'dataValue': 6119.34}]}\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"# # # 自定义日期执行预测\n",
|
||||
"# # 自定义日期执行预测\n",
|
||||
"\n",
|
||||
"# start_date = datetime(2025, 5, 1)\n",
|
||||
"# end_date = datetime(2025, 5, 7)\n",
|
||||
"start_date = datetime(2025, 5, 14)\n",
|
||||
"end_date = datetime(2025, 5, 15)\n",
|
||||
"\n",
|
||||
"# token = get_head_auth()\n",
|
||||
"# token_push = get_head_push_auth()\n",
|
||||
"# while start_date < end_date:\n",
|
||||
"# print(start_date.strftime('%Y%m%d'))\n",
|
||||
"# start(start_date,token,token_push)\n",
|
||||
"# time.sleep(2)\n",
|
||||
"# # start_1(start_date)\n",
|
||||
"# start_date += timedelta(days=1)"
|
||||
"token = get_head_auth()\n",
|
||||
"token_push = get_head_push_auth()\n",
|
||||
"while start_date < end_date:\n",
|
||||
" print(start_date.strftime('%Y%m%d'))\n",
|
||||
" start(start_date,token,token_push)\n",
|
||||
" time.sleep(2)\n",
|
||||
" # start_1(start_date)\n",
|
||||
" start_date += timedelta(days=1)"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
Binary file not shown.
@ -40,7 +40,10 @@ edbnamelist = [
|
||||
|
||||
|
||||
# eta自有数据指标编码
|
||||
modelsindex = {
|
||||
bdwdname = [
|
||||
'次日'
|
||||
]
|
||||
modelsindex = [{
|
||||
'NHITS': 'SELF0000001',
|
||||
'Informer': 'SELF0000057',
|
||||
'LSTM': 'SELF0000058',
|
||||
@ -62,12 +65,12 @@ modelsindex = {
|
||||
'MLPMultivariate': 'SELF0000074',
|
||||
'TiDE': 'SELF0000075',
|
||||
'DeepNPTS': 'SELF0000076'
|
||||
}
|
||||
}]
|
||||
|
||||
# eta 上传预测结果的请求体,后面发起请求的时候更改 model datalist 数据
|
||||
data = {
|
||||
"IndexCode": "",
|
||||
"IndexName": "价格预测模型",
|
||||
"IndexName": "价格预测xx模型",
|
||||
"Unit": "无",
|
||||
"Frequency": "日度",
|
||||
"SourceName": f"价格预测",
|
||||
@ -97,7 +100,12 @@ ClassifyId = 1214
|
||||
# query_data_list_item_nos_url = f"http://{server_host}/jingbo-api/api/warehouse/dwDataItem/queryDataListItemNos"
|
||||
# # 上传数据项值
|
||||
# push_data_value_list_url = f"http://{server_host}/jingbo-api/api/dw/dataValue/pushDataValueList"
|
||||
# 上传停更数据到市场信息平台
|
||||
# push_waring_data_value_list_url = f"http://{server_host}:8080/jingbo-dev/api/basicBuiness/crudeOilWarning/crudeSaveOrupdate"
|
||||
# 获取预警数据中取消订阅指标ID
|
||||
# get_waring_data_value_list_url = f"http://{server_host}:8080/jingbo-dev/api/basicBuiness/crudeOilWarning/dataList"
|
||||
|
||||
#
|
||||
# login_data = {
|
||||
# "data": {
|
||||
# "account": "api_dev",
|
||||
@ -170,6 +178,32 @@ ClassifyId = 1214
|
||||
# }
|
||||
# ]
|
||||
# }
|
||||
|
||||
|
||||
# push_waring_data_value_list_data = {
|
||||
# "data": {
|
||||
# "crudeOilWarningDtoList": [
|
||||
# {
|
||||
# "lastUpdateDate": "20240501",
|
||||
# "updateSuspensionCycle": 1,
|
||||
# "dataSource": "8",
|
||||
# "frequency": "1",
|
||||
# "indicatorName": "美元指数",
|
||||
# "indicatorId": "myzs001",
|
||||
# "warningDate": "2024-05-13"
|
||||
# }
|
||||
# ],
|
||||
# "dataSource": "8"
|
||||
# },
|
||||
# "funcModule": "商品数据同步",
|
||||
# "funcOperation": "同步"
|
||||
# }
|
||||
|
||||
|
||||
# get_waring_data_value_list_data = {
|
||||
# "data": "8", "funcModule": "商品数据同步", "funcOperation": "同步"}
|
||||
|
||||
|
||||
# # 八大维度数据项编码
|
||||
# bdwd_items = {
|
||||
# 'ciri': '原油大数据预测|FORECAST|PRICE|T',
|
||||
@ -329,8 +363,8 @@ table_name = 'v_tbl_crude_oil_warning'
|
||||
|
||||
|
||||
# 开关
|
||||
is_train = True # 是否训练
|
||||
is_debug = False # 是否调试
|
||||
is_train = False # 是否训练
|
||||
is_debug = True # 是否调试
|
||||
is_eta = False # 是否使用eta接口
|
||||
is_market = True # 是否通过市场信息平台获取特征 ,在is_eta 为true 的情况下生效
|
||||
is_timefurture = True # 是否使用时间特征
|
||||
|
@ -39,35 +39,116 @@ edbnamelist = [
|
||||
]
|
||||
|
||||
|
||||
# eta自有数据指标编码 次月
|
||||
modelsindex = {
|
||||
'NHITS': 'SELF0000143',
|
||||
'Informer': 'SELF0000144',
|
||||
'LSTM': 'SELF0000145',
|
||||
'iTransformer': 'SELF0000146',
|
||||
'TSMixer': 'SELF0000147',
|
||||
'TSMixerx': 'SELF0000148',
|
||||
'PatchTST': 'SELF0000149',
|
||||
'RNN': 'SELF0000150',
|
||||
'GRU': 'SELF0000151',
|
||||
'TCN': 'SELF0000152',
|
||||
'BiTCN': 'SELF0000153',
|
||||
'DilatedRNN': 'SELF0000154',
|
||||
'MLP': 'SELF0000155',
|
||||
'DLinear': 'SELF0000156',
|
||||
'NLinear': 'SELF0000157',
|
||||
'TFT': 'SELF0000158',
|
||||
'FEDformer': 'SELF0000159',
|
||||
'StemGNN': 'SELF0000160',
|
||||
'MLPMultivariate': 'SELF0000161',
|
||||
'TiDE': 'SELF0000162',
|
||||
'DeepNPTS': 'SELF0000163',
|
||||
}
|
||||
# eta自有数据指标编码 次月,次二月,次三月,次四月
|
||||
bdwdname = [
|
||||
'次月',
|
||||
'次二月',
|
||||
'次三月',
|
||||
'次四月',
|
||||
]
|
||||
modelsindex = [
|
||||
{
|
||||
"NHITS": "SELF0000143",
|
||||
"Informer": "SELF0000144",
|
||||
"LSTM": "SELF0000145",
|
||||
"iTransformer": "SELF0000146",
|
||||
"TSMixer": "SELF0000147",
|
||||
"TSMixerx": "SELF0000148",
|
||||
"PatchTST": "SELF0000149",
|
||||
"RNN": "SELF0000150",
|
||||
"GRU": "SELF0000151",
|
||||
"TCN": "SELF0000152",
|
||||
"BiTCN": "SELF0000153",
|
||||
"DilatedRNN": "SELF0000154",
|
||||
"MLP": "SELF0000155",
|
||||
"DLinear": "SELF0000156",
|
||||
"NLinear": "SELF0000157",
|
||||
"TFT": "SELF0000158",
|
||||
"FEDformer": "SELF0000159",
|
||||
"StemGNN": "SELF0000160",
|
||||
"MLPMultivariate": "SELF0000161",
|
||||
"TiDE": "SELF0000162",
|
||||
"DeepNPTS": "SELF0000163",
|
||||
"NBEATS": "SELF0000164"
|
||||
},
|
||||
{
|
||||
"NHITS": "SELF0000165",
|
||||
"Informer": "SELF0000166",
|
||||
"LSTM": "SELF0000167",
|
||||
"iTransformer": "SELF0000168",
|
||||
"TSMixer": "SELF0000169",
|
||||
"TSMixerx": "SELF0000170",
|
||||
"PatchTST": "SELF0000171",
|
||||
"RNN": "SELF0000172",
|
||||
"GRU": "SELF0000173",
|
||||
"TCN": "SELF0000174",
|
||||
"BiTCN": "SELF0000175",
|
||||
"DilatedRNN": "SELF0000176",
|
||||
"MLP": "SELF0000177",
|
||||
"DLinear": "SELF0000178",
|
||||
"NLinear": "SELF0000179",
|
||||
"TFT": "SELF0000180",
|
||||
"FEDformer": "SELF0000181",
|
||||
"StemGNN": "SELF0000182",
|
||||
"MLPMultivariate": "SELF0000183",
|
||||
"TiDE": "SELF0000184",
|
||||
"DeepNPTS": "SELF0000185",
|
||||
"NBEATS": "SELF0000186"
|
||||
},
|
||||
{
|
||||
"NHITS": "SELF0000187",
|
||||
"Informer": "SELF0000188",
|
||||
"LSTM": "SELF0000189",
|
||||
"iTransformer": "SELF0000190",
|
||||
"TSMixer": "SELF0000191",
|
||||
"TSMixerx": "SELF0000192",
|
||||
"PatchTST": "SELF0000193",
|
||||
"RNN": "SELF0000194",
|
||||
"GRU": "SELF0000195",
|
||||
"TCN": "SELF0000196",
|
||||
"BiTCN": "SELF0000197",
|
||||
"DilatedRNN": "SELF0000198",
|
||||
"MLP": "SELF0000199",
|
||||
"DLinear": "SELF0000200",
|
||||
"NLinear": "SELF0000201",
|
||||
"TFT": "SELF0000202",
|
||||
"FEDformer": "SELF0000203",
|
||||
"StemGNN": "SELF0000204",
|
||||
"MLPMultivariate": "SELF0000205",
|
||||
"TiDE": "SELF0000206",
|
||||
"DeepNPTS": "SELF0000207",
|
||||
"NBEATS": "SELF0000208"
|
||||
},
|
||||
{
|
||||
"NHITS": "SELF0000209",
|
||||
"Informer": "SELF0000210",
|
||||
"LSTM": "SELF0000211",
|
||||
"iTransformer": "SELF0000212",
|
||||
"TSMixer": "SELF0000213",
|
||||
"TSMixerx": "SELF0000214",
|
||||
"PatchTST": "SELF0000215",
|
||||
"RNN": "SELF0000216",
|
||||
"GRU": "SELF0000217",
|
||||
"TCN": "SELF0000218",
|
||||
"BiTCN": "SELF0000219",
|
||||
"DilatedRNN": "SELF0000220",
|
||||
"MLP": "SELF0000221",
|
||||
"DLinear": "SELF0000222",
|
||||
"NLinear": "SELF0000223",
|
||||
"TFT": "SELF0000224",
|
||||
"FEDformer": "SELF0000225",
|
||||
"StemGNN": "SELF0000226",
|
||||
"MLPMultivariate": "SELF0000227",
|
||||
"TiDE": "SELF0000228",
|
||||
"DeepNPTS": "SELF0000229",
|
||||
"NBEATS": "SELF0000230"
|
||||
}
|
||||
]
|
||||
|
||||
# eta 上传预测结果的请求体,后面发起请求的时候更改 model datalist 数据
|
||||
data = {
|
||||
"IndexCode": "",
|
||||
"IndexName": "价格预测xx模型-次月",
|
||||
"IndexName": "价格预测xx模型-yy",
|
||||
"Unit": "无",
|
||||
"Frequency": "日度",
|
||||
"SourceName": f"价格预测",
|
||||
@ -297,9 +378,9 @@ table_name = 'v_tbl_crude_oil_warning'
|
||||
|
||||
|
||||
# 开关
|
||||
is_train = True # 是否训练
|
||||
is_debug = False # 是否调试
|
||||
is_eta = True # 是否使用eta接口
|
||||
is_train = False # 是否训练
|
||||
is_debug = True # 是否调试
|
||||
is_eta = False # 是否使用eta接口
|
||||
is_market = True # 是否通过市场信息平台获取特征 ,在is_eta 为true 的情况下生效
|
||||
is_timefurture = True # 是否使用时间特征
|
||||
is_fivemodels = False # 是否使用之前保存的最佳的5个模型
|
||||
|
@ -39,35 +39,64 @@ edbnamelist = [
|
||||
]
|
||||
|
||||
|
||||
# eta自有数据指标编码 次周
|
||||
modelsindex = {
|
||||
'NHITS': 'SELF0000099',
|
||||
'Informer': 'SELF0000100',
|
||||
'LSTM': 'SELF0000101',
|
||||
'iTransformer': 'SELF0000102',
|
||||
'TSMixer': 'SELF0000103',
|
||||
'TSMixerx': 'SELF0000104',
|
||||
'PatchTST': 'SELF0000105',
|
||||
'RNN': 'SELF0000106',
|
||||
'GRU': 'SELF0000107',
|
||||
'TCN': 'SELF0000108',
|
||||
'BiTCN': 'SELF0000109',
|
||||
'DilatedRNN': 'SELF0000110',
|
||||
'MLP': 'SELF0000111',
|
||||
'DLinear': 'SELF0000112',
|
||||
'NLinear': 'SELF0000113',
|
||||
'TFT': 'SELF0000114',
|
||||
'FEDformer': 'SELF0000115',
|
||||
'StemGNN': 'SELF0000116',
|
||||
'MLPMultivariate': 'SELF0000117',
|
||||
'TiDE': 'SELF0000118',
|
||||
'DeepNPTS': 'SELF0000119',
|
||||
}
|
||||
# eta自有数据指标编码 次周,隔周
|
||||
bdwdname = [
|
||||
'次周',
|
||||
'隔周',
|
||||
]
|
||||
modelsindex = [{
|
||||
"NHITS": "SELF0000099",
|
||||
"Informer": "SELF0000100",
|
||||
"LSTM": "SELF0000101",
|
||||
"iTransformer": "SELF0000102",
|
||||
"TSMixer": "SELF0000103",
|
||||
"TSMixerx": "SELF0000104",
|
||||
"PatchTST": "SELF0000105",
|
||||
"RNN": "SELF0000106",
|
||||
"GRU": "SELF0000107",
|
||||
"TCN": "SELF0000108",
|
||||
"BiTCN": "SELF0000109",
|
||||
"DilatedRNN": "SELF0000110",
|
||||
"MLP": "SELF0000111",
|
||||
"DLinear": "SELF0000112",
|
||||
"NLinear": "SELF0000113",
|
||||
"TFT": "SELF0000114",
|
||||
"FEDformer": "SELF0000115",
|
||||
"StemGNN": "SELF0000116",
|
||||
"MLPMultivariate": "SELF0000117",
|
||||
"TiDE": "SELF0000118",
|
||||
"DeepNPTS": "SELF0000119",
|
||||
"NBEATS": "SELF0000120"
|
||||
},
|
||||
{
|
||||
"NHITS": "SELF0000121",
|
||||
"Informer": "SELF0000122",
|
||||
"LSTM": "SELF0000123",
|
||||
"iTransformer": "SELF0000124",
|
||||
"TSMixer": "SELF0000125",
|
||||
"TSMixerx": "SELF0000126",
|
||||
"PatchTST": "SELF0000127",
|
||||
"RNN": "SELF0000128",
|
||||
"GRU": "SELF0000129",
|
||||
"TCN": "SELF0000130",
|
||||
"BiTCN": "SELF0000131",
|
||||
"DilatedRNN": "SELF0000132",
|
||||
"MLP": "SELF0000133",
|
||||
"DLinear": "SELF0000134",
|
||||
"NLinear": "SELF0000135",
|
||||
"TFT": "SELF0000136",
|
||||
"FEDformer": "SELF0000137",
|
||||
"StemGNN": "SELF0000138",
|
||||
"MLPMultivariate": "SELF0000139",
|
||||
"TiDE": "SELF0000140",
|
||||
"DeepNPTS": "SELF0000141",
|
||||
"NBEATS": "SELF0000142"
|
||||
}]
|
||||
|
||||
# eta 上传预测结果的请求体,后面发起请求的时候更改 model datalist 数据
|
||||
data = {
|
||||
"IndexCode": "",
|
||||
"IndexName": "价格预测模型",
|
||||
"IndexName": "价格预测xx模型-yy",
|
||||
"Unit": "无",
|
||||
"Frequency": "日度",
|
||||
"SourceName": f"价格预测",
|
||||
@ -297,14 +326,14 @@ table_name = 'v_tbl_crude_oil_warning'
|
||||
|
||||
# 开关
|
||||
is_train = True # 是否训练
|
||||
is_debug = False # 是否调试
|
||||
is_eta = False # 是否使用eta接口
|
||||
is_debug = True # 是否调试
|
||||
is_eta = True # 是否使用eta接口
|
||||
is_market = True # 是否通过市场信息平台获取特征 ,在is_eta 为true 的情况下生效
|
||||
is_timefurture = True # 是否使用时间特征
|
||||
is_fivemodels = False # 是否使用之前保存的最佳的5个模型
|
||||
is_edbcode = False # 特征使用edbcoding列表中的
|
||||
is_edbnamelist = False # 自定义特征,对应上面的edbnamelist
|
||||
is_update_eta = False # 预测结果上传到eta
|
||||
is_update_eta = True # 预测结果上传到eta
|
||||
is_update_report = True # 是否上传报告
|
||||
is_update_warning_data = False # 是否上传预警数据
|
||||
is_update_predict_value = True # 是否上传预测值到市场信息平台
|
||||
|
11
eta数据调试.py
11
eta数据调试.py
@ -3,17 +3,6 @@
|
||||
from config_jingbo import *
|
||||
from lib.dataread import *
|
||||
|
||||
signature = BinanceAPI(APPID, SECRET)
|
||||
etadata = EtaReader(signature=signature,
|
||||
classifylisturl=classifylisturl,
|
||||
classifyidlisturl=classifyidlisturl,
|
||||
edbcodedataurl=edbcodedataurl,
|
||||
edbcodelist=edbcodelist,
|
||||
edbdatapushurl=edbdatapushurl,
|
||||
edbdeleteurl=edbdeleteurl,
|
||||
edbbusinessurl=edbbusinessurl
|
||||
)
|
||||
|
||||
logger.info('从eta获取数据...')
|
||||
signature = BinanceAPI(APPID, SECRET)
|
||||
etadata = EtaReader(signature=signature,
|
||||
|
@ -49,6 +49,8 @@ global_config = {
|
||||
'is_fivemodels': None,
|
||||
'weight_dict': None,
|
||||
'baicangidnamedict': None, # 百川id名称映射
|
||||
'modelsindex': None, # 模型索引
|
||||
'bdwdname': None,
|
||||
|
||||
# 模型参数
|
||||
'data_set': None, # 数据集名称
|
||||
@ -1143,6 +1145,8 @@ class Config:
|
||||
def is_update_report(self): return global_config['is_update_report']
|
||||
@property
|
||||
def weight_dict(self): return global_config['weight_dict']
|
||||
@property
|
||||
def bdwdnames(self): return global_config['bdwdname']
|
||||
|
||||
# 模型参数
|
||||
@property
|
||||
|
155
main_yuanyou.py
155
main_yuanyou.py
@ -3,7 +3,7 @@
|
||||
from lib.dataread import *
|
||||
from config_jingbo import *
|
||||
from lib.tools import SendMail, exception_logger
|
||||
from models.nerulforcastmodels import ex_Model, model_losss, model_losss_juxiting, brent_export_pdf, tansuanli_export_pdf, pp_export_pdf, model_losss_juxiting
|
||||
from models.nerulforcastmodels import ex_Model, model_losss, brent_export_pdf
|
||||
import datetime
|
||||
import torch
|
||||
torch.set_float32_matmul_precision("high")
|
||||
@ -19,6 +19,7 @@ global_config.update({
|
||||
'is_update_report': is_update_report,
|
||||
'settings': settings,
|
||||
'weight_dict': weight_dict,
|
||||
'bdwdname': bdwdname,
|
||||
|
||||
|
||||
# 模型参数
|
||||
@ -88,6 +89,7 @@ global_config.update({
|
||||
# 数据库配置
|
||||
'sqlitedb': sqlitedb,
|
||||
'bdwd_items': bdwd_items,
|
||||
'is_bdwd': is_bdwd,
|
||||
})
|
||||
|
||||
|
||||
@ -380,90 +382,91 @@ def predict_main():
|
||||
# except:
|
||||
# logger.info('上传预警信息到数据库失败')
|
||||
|
||||
# try:
|
||||
# if is_weekday:
|
||||
if True:
|
||||
logger.info('发送特征预警')
|
||||
# 获取取消订阅的指标ID
|
||||
quxiaodingyueidlist = get_waring_data()
|
||||
# 上传预警信息到数据库
|
||||
warning_data_df = df_zhibiaoliebiao.copy()
|
||||
warning_data_df = warning_data_df[warning_data_df['停更周期'] > 3][[
|
||||
'指标名称', '指标id', '频度', '更新周期', '指标来源', '最后更新时间', '停更周期']]
|
||||
# 重命名列名
|
||||
warning_data_df = warning_data_df.rename(columns={'指标名称': 'indicatorName', '指标id': 'indicatorId', '频度': 'frequency',
|
||||
'更新周期': 'UPDATE_FREQUENCY', '指标来源': 'DATA_SOURCE', '最后更新时间': 'LAST_UPDATE_DATE', '停更周期': 'updateSuspensionCycle'})
|
||||
try:
|
||||
# if is_weekday:
|
||||
if True:
|
||||
logger.info('发送特征预警')
|
||||
# 获取取消订阅的指标ID
|
||||
quxiaodingyueidlist = get_waring_data()
|
||||
# 上传预警信息到数据库
|
||||
warning_data_df = df_zhibiaoliebiao.copy()
|
||||
warning_data_df = warning_data_df[warning_data_df['停更周期'] > 3][[
|
||||
'指标名称', '指标id', '频度', '更新周期', '指标来源', '最后更新时间', '停更周期']]
|
||||
# 重命名列名
|
||||
warning_data_df = warning_data_df.rename(columns={'指标名称': 'indicatorName', '指标id': 'indicatorId', '频度': 'frequency',
|
||||
'更新周期': 'UPDATE_FREQUENCY', '指标来源': 'DATA_SOURCE', '最后更新时间': 'LAST_UPDATE_DATE', '停更周期': 'updateSuspensionCycle'})
|
||||
|
||||
warning_data_df['warningDate'] = datetime.date.today().strftime(
|
||||
"%Y-%m-%d %H:%M:%S")
|
||||
warning_data_df['dataSource'] = 8
|
||||
# 去掉取消订阅的指标
|
||||
print(warning_data_df.shape)
|
||||
warning_data_df = warning_data_df[~warning_data_df['indicatorId'].isin(
|
||||
quxiaodingyueidlist)]
|
||||
print(warning_data_df.shape)
|
||||
data = warning_data_df.to_json(orient='records', force_ascii=False)
|
||||
data = data.replace('日度', '1')
|
||||
data = data.replace('周度', '2')
|
||||
data = data.replace('月度', '3')
|
||||
data = json.loads(data)
|
||||
push_waring_market_data(data)
|
||||
# if is_update_warning_data:
|
||||
# upload_warning_info(len(warning_data_df))
|
||||
# except:
|
||||
# logger.info('上传预警信息到数据库失败')
|
||||
warning_data_df['warningDate'] = datetime.date.today().strftime(
|
||||
"%Y-%m-%d %H:%M:%S")
|
||||
warning_data_df['dataSource'] = 8
|
||||
# 去掉取消订阅的指标
|
||||
print(warning_data_df.shape)
|
||||
warning_data_df = warning_data_df[~warning_data_df['indicatorId'].isin(
|
||||
quxiaodingyueidlist)]
|
||||
print(warning_data_df.shape)
|
||||
warning_data = warning_data_df.to_json(
|
||||
orient='records', force_ascii=False)
|
||||
warning_data = warning_data.replace('日度', '1')
|
||||
warning_data = warning_data.replace('周度', '2')
|
||||
warning_data = warning_data.replace('月度', '3')
|
||||
warning_data = json.loads(warning_data)
|
||||
push_waring_market_data(warning_data)
|
||||
# if is_update_warning_data:
|
||||
# upload_warning_info(len(warning_data_df))
|
||||
except:
|
||||
logger.info('上传预警信息到数据库失败')
|
||||
|
||||
# if is_corr:
|
||||
# df = corr_feature(df=df)
|
||||
if is_corr:
|
||||
df = corr_feature(df=df)
|
||||
|
||||
# df1 = df.copy() # 备份一下,后面特征筛选完之后加入ds y 列用
|
||||
# logger.info(f"开始训练模型...")
|
||||
# row, col = df.shape
|
||||
df1 = df.copy() # 备份一下,后面特征筛选完之后加入ds y 列用
|
||||
logger.info(f"开始训练模型...")
|
||||
row, col = df.shape
|
||||
|
||||
# now = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
|
||||
# ex_Model(df,
|
||||
# horizon=global_config['horizon'],
|
||||
# input_size=global_config['input_size'],
|
||||
# train_steps=global_config['train_steps'],
|
||||
# val_check_steps=global_config['val_check_steps'],
|
||||
# early_stop_patience_steps=global_config['early_stop_patience_steps'],
|
||||
# is_debug=global_config['is_debug'],
|
||||
# dataset=global_config['dataset'],
|
||||
# is_train=global_config['is_train'],
|
||||
# is_fivemodels=global_config['is_fivemodels'],
|
||||
# val_size=global_config['val_size'],
|
||||
# test_size=global_config['test_size'],
|
||||
# settings=global_config['settings'],
|
||||
# now=now,
|
||||
# etadata=etadata,
|
||||
# modelsindex=global_config['modelsindex'],
|
||||
# data=data,
|
||||
# is_eta=global_config['is_eta'],
|
||||
# end_time=global_config['end_time'],
|
||||
# )
|
||||
now = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
|
||||
ex_Model(df,
|
||||
horizon=global_config['horizon'],
|
||||
input_size=global_config['input_size'],
|
||||
train_steps=global_config['train_steps'],
|
||||
val_check_steps=global_config['val_check_steps'],
|
||||
early_stop_patience_steps=global_config['early_stop_patience_steps'],
|
||||
is_debug=global_config['is_debug'],
|
||||
dataset=global_config['dataset'],
|
||||
is_train=global_config['is_train'],
|
||||
is_fivemodels=global_config['is_fivemodels'],
|
||||
val_size=global_config['val_size'],
|
||||
test_size=global_config['test_size'],
|
||||
settings=global_config['settings'],
|
||||
now=now,
|
||||
etadata=etadata,
|
||||
modelsindex=global_config['modelsindex'],
|
||||
data=data,
|
||||
is_eta=global_config['is_eta'],
|
||||
end_time=global_config['end_time'],
|
||||
)
|
||||
|
||||
# logger.info('模型训练完成')
|
||||
logger.info('模型训练完成')
|
||||
|
||||
# logger.info('训练数据绘图ing')
|
||||
# model_results3 = model_losss(sqlitedb, end_time=end_time)
|
||||
# logger.info('训练数据绘图end')
|
||||
logger.info('训练数据绘图ing')
|
||||
model_results3 = model_losss(sqlitedb, end_time=end_time)
|
||||
logger.info('训练数据绘图end')
|
||||
|
||||
# # 模型报告
|
||||
# logger.info('制作报告ing')
|
||||
# title = f'{settings}--{end_time}-预测报告' # 报告标题
|
||||
# reportname = f'Brent原油大模型日度预测--{end_time}.pdf' # 报告文件名
|
||||
# reportname = reportname.replace(':', '-') # 替换冒号
|
||||
# brent_export_pdf(dataset=dataset,
|
||||
# num_models=5 if is_fivemodels else 22, time=end_time,
|
||||
# reportname=reportname,
|
||||
# inputsize=global_config['horizon'],
|
||||
# sqlitedb=sqlitedb
|
||||
# ),
|
||||
# 模型报告
|
||||
logger.info('制作报告ing')
|
||||
title = f'{settings}--{end_time}-预测报告' # 报告标题
|
||||
reportname = f'Brent原油大模型日度预测--{end_time}.pdf' # 报告文件名
|
||||
reportname = reportname.replace(':', '-') # 替换冒号
|
||||
brent_export_pdf(dataset=dataset,
|
||||
num_models=5 if is_fivemodels else 22, time=end_time,
|
||||
reportname=reportname,
|
||||
inputsize=global_config['horizon'],
|
||||
sqlitedb=sqlitedb
|
||||
),
|
||||
|
||||
# logger.info('制作报告end')
|
||||
# logger.info('模型训练完成')
|
||||
logger.info('制作报告end')
|
||||
logger.info('模型训练完成')
|
||||
|
||||
# push_market_value()
|
||||
push_market_value()
|
||||
|
||||
# # LSTM 单变量模型
|
||||
# ex_Lstm(df,input_seq_len=input_size,output_seq_len=horizon,is_debug=is_debug,dataset=dataset)
|
||||
|
@ -18,6 +18,7 @@ global_config.update({
|
||||
'is_fivemodels': is_fivemodels,
|
||||
'is_update_report': is_update_report,
|
||||
'settings': settings,
|
||||
'bdwdname': bdwdname,
|
||||
|
||||
|
||||
# 模型参数
|
||||
@ -349,42 +350,7 @@ def predict_main():
|
||||
sqlitedb.insert_data('most_model', (datetime.datetime.now().strftime(
|
||||
'%Y-%m-%d %H:%M:%S'), most_common_model,), columns=('ds', 'most_common_model',))
|
||||
|
||||
try:
|
||||
if is_weekday:
|
||||
# if True:
|
||||
logger.info('今天是周一,发送特征预警')
|
||||
# 上传预警信息到数据库
|
||||
warning_data_df = df_zhibiaoliebiao.copy()
|
||||
warning_data_df = warning_data_df[warning_data_df['停更周期'] > 3][[
|
||||
'指标名称', '指标id', '频度', '更新周期', '指标来源', '最后更新时间', '停更周期']]
|
||||
# 重命名列名
|
||||
warning_data_df = warning_data_df.rename(columns={'指标名称': 'INDICATOR_NAME', '指标id': 'INDICATOR_ID', '频度': 'FREQUENCY',
|
||||
'更新周期': 'UPDATE_FREQUENCY', '指标来源': 'DATA_SOURCE', '最后更新时间': 'LAST_UPDATE_DATE', '停更周期': 'UPDATE_SUSPENSION_CYCLE'})
|
||||
from sqlalchemy import create_engine
|
||||
import urllib
|
||||
global password
|
||||
if '@' in password:
|
||||
password = urllib.parse.quote_plus(password)
|
||||
|
||||
engine = create_engine(
|
||||
f'mysql+pymysql://{dbusername}:{password}@{host}:{port}/{dbname}')
|
||||
warning_data_df['WARNING_DATE'] = datetime.date.today().strftime(
|
||||
"%Y-%m-%d %H:%M:%S")
|
||||
warning_data_df['TENANT_CODE'] = 'T0004'
|
||||
# 插入数据之前查询表数据然后新增id列
|
||||
existing_data = pd.read_sql(f"SELECT * FROM {table_name}", engine)
|
||||
if not existing_data.empty:
|
||||
max_id = existing_data['ID'].astype(int).max()
|
||||
warning_data_df['ID'] = range(
|
||||
max_id + 1, max_id + 1 + len(warning_data_df))
|
||||
else:
|
||||
warning_data_df['ID'] = range(1, 1 + len(warning_data_df))
|
||||
warning_data_df.to_sql(
|
||||
table_name, con=engine, if_exists='append', index=False)
|
||||
if is_update_warning_data:
|
||||
upload_warning_info(len(warning_data_df))
|
||||
except:
|
||||
logger.info('上传预警信息到数据库失败')
|
||||
|
||||
if is_corr:
|
||||
df = corr_feature(df=df)
|
||||
@ -415,7 +381,7 @@ def predict_main():
|
||||
end_time=global_config['end_time'],
|
||||
)
|
||||
|
||||
# logger.info('模型训练完成')
|
||||
logger.info('模型训练完成')
|
||||
|
||||
logger.info('训练数据绘图ing')
|
||||
model_results3 = model_losss(sqlitedb, end_time=end_time)
|
||||
@ -423,19 +389,19 @@ def predict_main():
|
||||
|
||||
push_market_value()
|
||||
|
||||
# # 模型报告
|
||||
# logger.info('制作报告ing')
|
||||
# title = f'{settings}--{end_time}-预测报告' # 报告标题
|
||||
# reportname = f'Brent原油大模型月度预测--{end_time}.pdf' # 报告文件名
|
||||
# reportname = reportname.replace(':', '-') # 替换冒号
|
||||
# brent_export_pdf(dataset=dataset, num_models=5 if is_fivemodels else 22, time=end_time,
|
||||
# reportname=reportname,
|
||||
# inputsize = global_config['horizon'],
|
||||
# sqlitedb=sqlitedb
|
||||
# ),
|
||||
# 模型报告
|
||||
logger.info('制作报告ing')
|
||||
title = f'{settings}--{end_time}-预测报告' # 报告标题
|
||||
reportname = f'Brent原油大模型月度预测--{end_time}.pdf' # 报告文件名
|
||||
reportname = reportname.replace(':', '-') # 替换冒号
|
||||
brent_export_pdf(dataset=dataset, num_models=5 if is_fivemodels else 22, time=end_time,
|
||||
reportname=reportname,
|
||||
inputsize=global_config['horizon'],
|
||||
sqlitedb=sqlitedb
|
||||
),
|
||||
|
||||
# logger.info('制作报告end')
|
||||
# logger.info('模型训练完成')
|
||||
logger.info('制作报告end')
|
||||
logger.info('模型训练完成')
|
||||
|
||||
# # LSTM 单变量模型
|
||||
# ex_Lstm(df,input_seq_len=input_size,output_seq_len=horizon,is_debug=is_debug,dataset=dataset)
|
||||
@ -462,12 +428,12 @@ def predict_main():
|
||||
if __name__ == '__main__':
|
||||
# global end_time
|
||||
# 遍历2024-11-25 到 2024-12-3 之间的工作日日期
|
||||
for i_time in pd.date_range('2025-3-13', '2025-3-31', freq='B'):
|
||||
try:
|
||||
global_config['end_time'] = i_time.strftime('%Y-%m-%d')
|
||||
predict_main()
|
||||
except Exception as e:
|
||||
logger.info(f'预测失败:{e}')
|
||||
continue
|
||||
# for i_time in pd.date_range('2025-3-13', '2025-3-31', freq='B'):
|
||||
# try:
|
||||
# global_config['end_time'] = i_time.strftime('%Y-%m-%d')
|
||||
# predict_main()
|
||||
# except Exception as e:
|
||||
# logger.info(f'预测失败:{e}')
|
||||
# continue
|
||||
|
||||
# predict_main()
|
||||
predict_main()
|
||||
|
@ -3,7 +3,7 @@
|
||||
from lib.dataread import *
|
||||
from config_jingbo_zhoudu import *
|
||||
from lib.tools import SendMail, exception_logger
|
||||
from models.nerulforcastmodels import ex_Model, model_losss, model_losss_juxiting, brent_export_pdf, tansuanli_export_pdf, pp_export_pdf, model_losss_juxiting
|
||||
from models.nerulforcastmodels import ex_Model, model_losss, brent_export_pdf
|
||||
import datetime
|
||||
import torch
|
||||
torch.set_float32_matmul_precision("high")
|
||||
@ -18,6 +18,7 @@ global_config.update({
|
||||
'is_fivemodels': is_fivemodels,
|
||||
'is_update_report': is_update_report,
|
||||
'settings': settings,
|
||||
'bdwdname': bdwdname,
|
||||
|
||||
|
||||
# 模型参数
|
||||
@ -78,6 +79,7 @@ global_config.update({
|
||||
|
||||
# 数据库配置
|
||||
'sqlitedb': sqlitedb,
|
||||
'is_bdwd': is_bdwd,
|
||||
})
|
||||
|
||||
|
||||
@ -333,42 +335,6 @@ def predict_main():
|
||||
sqlitedb.insert_data('most_model', (datetime.datetime.now().strftime(
|
||||
'%Y-%m-%d %H:%M:%S'), most_common_model,), columns=('ds', 'most_common_model',))
|
||||
|
||||
try:
|
||||
if is_weekday:
|
||||
# if True:
|
||||
logger.info('今天是周一,发送特征预警')
|
||||
# 上传预警信息到数据库
|
||||
warning_data_df = df_zhibiaoliebiao.copy()
|
||||
warning_data_df = warning_data_df[warning_data_df['停更周期'] > 3][[
|
||||
'指标名称', '指标id', '频度', '更新周期', '指标来源', '最后更新时间', '停更周期']]
|
||||
# 重命名列名
|
||||
warning_data_df = warning_data_df.rename(columns={'指标名称': 'INDICATOR_NAME', '指标id': 'INDICATOR_ID', '频度': 'FREQUENCY',
|
||||
'更新周期': 'UPDATE_FREQUENCY', '指标来源': 'DATA_SOURCE', '最后更新时间': 'LAST_UPDATE_DATE', '停更周期': 'UPDATE_SUSPENSION_CYCLE'})
|
||||
from sqlalchemy import create_engine
|
||||
import urllib
|
||||
global password
|
||||
if '@' in password:
|
||||
password = urllib.parse.quote_plus(password)
|
||||
|
||||
engine = create_engine(
|
||||
f'mysql+pymysql://{dbusername}:{password}@{host}:{port}/{dbname}')
|
||||
warning_data_df['WARNING_DATE'] = datetime.date.today().strftime(
|
||||
"%Y-%m-%d %H:%M:%S")
|
||||
warning_data_df['TENANT_CODE'] = 'T0004'
|
||||
# 插入数据之前查询表数据然后新增id列
|
||||
existing_data = pd.read_sql(f"SELECT * FROM {table_name}", engine)
|
||||
if not existing_data.empty:
|
||||
max_id = existing_data['ID'].astype(int).max()
|
||||
warning_data_df['ID'] = range(
|
||||
max_id + 1, max_id + 1 + len(warning_data_df))
|
||||
else:
|
||||
warning_data_df['ID'] = range(1, 1 + len(warning_data_df))
|
||||
warning_data_df.to_sql(
|
||||
table_name, con=engine, if_exists='append', index=False)
|
||||
if is_update_warning_data:
|
||||
upload_warning_info(len(warning_data_df))
|
||||
except:
|
||||
logger.info('上传预警信息到数据库失败')
|
||||
|
||||
if is_corr:
|
||||
df = corr_feature(df=df)
|
||||
@ -439,12 +405,12 @@ def predict_main():
|
||||
if __name__ == '__main__':
|
||||
# global end_time
|
||||
# 遍历2024-11-25 到 2024-12-3 之间的工作日日期
|
||||
for i_time in pd.date_range('2025-2-1', '2025-3-31', freq='B'):
|
||||
try:
|
||||
global_config['end_time'] = i_time.strftime('%Y-%m-%d')
|
||||
predict_main()
|
||||
except Exception as e:
|
||||
logger.info(f'预测失败:{e}')
|
||||
continue
|
||||
# for i_time in pd.date_range('2025-2-1', '2025-3-31', freq='B'):
|
||||
# try:
|
||||
# global_config['end_time'] = i_time.strftime('%Y-%m-%d')
|
||||
# predict_main()
|
||||
# except Exception as e:
|
||||
# logger.info(f'预测失败:{e}')
|
||||
# continue
|
||||
|
||||
# predict_main()
|
||||
predict_main()
|
||||
|
@ -240,22 +240,30 @@ def ex_Model(df, horizon, input_size, train_steps, val_check_steps, early_stop_p
|
||||
# 把预测值上传到eta
|
||||
if config.is_update_eta:
|
||||
df_predict['ds'] = pd.to_datetime(df_predict['ds'])
|
||||
dates = df_predict['ds'].dt.strftime('%Y-%m-%d')
|
||||
|
||||
for m in modelsindex.keys():
|
||||
if m == 'FEDformer':
|
||||
continue
|
||||
list = []
|
||||
for date, value in zip(dates, df_predict[m].round(2)):
|
||||
list.append({'Date': date, 'Value': value})
|
||||
data['DataList'] = list
|
||||
data['IndexCode'] = modelsindex[m]
|
||||
# data['IndexName'] = f'价格预测{m}模型'
|
||||
data['IndexName'] = data['IndexName'].replece('xx', m)
|
||||
data['Remark'] = m
|
||||
etadata.push_data(data)
|
||||
|
||||
# return nf_test_preds
|
||||
# 按行遍历df_predict
|
||||
IndexName = data['IndexName']
|
||||
for index, row in df_predict.iterrows():
|
||||
try:
|
||||
yy = config.bdwdnames[index]
|
||||
except IndexError as e:
|
||||
break
|
||||
for m in modelsindex[index].keys():
|
||||
if m not in df_predict.columns:
|
||||
continue
|
||||
if m == 'FEDformer':
|
||||
continue
|
||||
list = [{'Date': config.end_time, 'Value': round(row[m], 2)}]
|
||||
data['DataList'] = list
|
||||
data['IndexCode'] = modelsindex[index][m]
|
||||
# data['IndexName'] = f'价格预测{m}模型'
|
||||
data['IndexName'] = data['IndexName'].replace('xx', m)
|
||||
data['IndexName'] = data['IndexName'].replace('yy', yy)
|
||||
data['Remark'] = m
|
||||
print('预测数据上传到eta:')
|
||||
etadata.push_data(data)
|
||||
# print(data)
|
||||
data['IndexName'] = IndexName
|
||||
return
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user