原油线上配置更改

This commit is contained in:
workpc 2025-05-15 14:33:49 +08:00
parent 29304bcd03
commit 448f2989d4
15 changed files with 510 additions and 428 deletions

View File

@ -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",

View File

@ -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)"
]
},
{

View File

@ -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 # 是否使用时间特征

View File

@ -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个模型

View File

@ -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 # 是否上传预测值到市场信息平台

View File

@ -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,

View File

@ -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

View File

@ -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)

View File

@ -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()

View File

@ -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()

View File

@ -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