mirror of
https://github.com/AI4Finance-Foundation/FinGPT.git
synced 2024-02-15 23:10:01 +03:00
1190 lines
60 KiB
Plaintext
1190 lines
60 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"pip install akshare --upgrade"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"'/Users/mac/Desktop/FinGPT_Forecasting_Project'"
|
||
]
|
||
},
|
||
"execution_count": 1,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"import os\n",
|
||
"os.getcwd()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import pandas as pd\n",
|
||
"HS300_stock = pd.read_csv(\"HS300Index.csv\", header=None)\n",
|
||
"HS_index = HS300_stock[0].tolist()\n",
|
||
"HS_index = [\"0\"*(6-len(str(i)))+str(i) for i in HS_index]"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 53,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"# with open(\"HS300_Index.txt\", 'w') as f:\n",
|
||
"# write_item = \"\\n\".join(HS_index)\n",
|
||
"# f.write(write_item)\n",
|
||
"# f.close()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 13,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"11pages obtained for symbol: 000063\n",
|
||
"================== symbol000063completed! ==================\n",
|
||
"6pages obtained for symbol: 000069\n",
|
||
"================== symbol000069completed! ==================\n",
|
||
"9pages obtained for symbol: 000100\n",
|
||
"================== symbol000100completed! ==================\n",
|
||
"4pages obtained for symbol: 000157\n",
|
||
"================== symbol000157completed! ==================\n",
|
||
"6pages obtained for symbol: 000166\n",
|
||
"================== symbol000166completed! ==================\n",
|
||
"7pages obtained for symbol: 000301\n",
|
||
"================== symbol000301completed! ==================\n",
|
||
"10pages obtained for symbol: 000333\n",
|
||
"================== symbol000333completed! ==================\n",
|
||
"5pages obtained for symbol: 000338\n",
|
||
"================== symbol000338completed! ==================\n",
|
||
"5pages obtained for symbol: 000408\n",
|
||
"================== symbol000408completed! ==================\n",
|
||
"4pages obtained for symbol: 000425\n",
|
||
"================== symbol000425completed! ==================\n",
|
||
"5pages obtained for symbol: 000538\n",
|
||
"================== symbol000538completed! ==================\n",
|
||
"10pages obtained for symbol: 000568\n",
|
||
"================== symbol000568completed! ==================\n",
|
||
"6pages obtained for symbol: 000596\n",
|
||
"================== symbol000596completed! ==================\n",
|
||
"3pages obtained for symbol: 000617\n",
|
||
"================== symbol000617completed! ==================\n",
|
||
"11pages obtained for symbol: 000625\n",
|
||
"================== symbol000625completed! ==================\n",
|
||
"9pages obtained for symbol: 000651\n",
|
||
"================== symbol000651completed! ==================\n",
|
||
"9pages obtained for symbol: 000661\n",
|
||
"================== symbol000661completed! ==================\n",
|
||
"3pages obtained for symbol: 000708\n",
|
||
"================== symbol000708completed! ==================\n",
|
||
"3pages obtained for symbol: 000723\n",
|
||
"================== symbol000723completed! ==================\n",
|
||
"8pages obtained for symbol: 000725\n",
|
||
"================== symbol000725completed! ==================\n",
|
||
"3pages obtained for symbol: 000733\n",
|
||
"================== symbol000733completed! ==================\n",
|
||
"3pages obtained for symbol: 000768\n",
|
||
"================== symbol000768completed! ==================\n",
|
||
"5pages obtained for symbol: 000776\n",
|
||
"================== symbol000776completed! ==================\n",
|
||
"3pages obtained for symbol: 000786\n",
|
||
"================== symbol000786completed! ==================\n",
|
||
"6pages obtained for symbol: 000792\n",
|
||
"================== symbol000792completed! ==================\n",
|
||
"6pages obtained for symbol: 000800\n",
|
||
"================== symbol000800completed! ==================\n",
|
||
"11pages obtained for symbol: 000858\n",
|
||
"================== symbol000858completed! ==================\n",
|
||
"8pages obtained for symbol: 000876\n",
|
||
"================== symbol000876completed! ==================\n",
|
||
"3pages obtained for symbol: 000877\n",
|
||
"================== symbol000877completed! ==================\n",
|
||
"5pages obtained for symbol: 000895\n",
|
||
"================== symbol000895completed! ==================\n",
|
||
"5pages obtained for symbol: 000938\n",
|
||
"================== symbol000938completed! ==================\n",
|
||
"8pages obtained for symbol: 000963\n",
|
||
"================== symbol000963completed! ==================\n",
|
||
"10pages obtained for symbol: 000977\n",
|
||
"================== symbol000977completed! ==================\n",
|
||
"5pages obtained for symbol: 000983\n",
|
||
"================== symbol000983completed! ==================\n",
|
||
"3pages obtained for symbol: 001289\n",
|
||
"================== symbol001289completed! ==================\n",
|
||
"7pages obtained for symbol: 001979\n",
|
||
"================== symbol001979completed! ==================\n",
|
||
"3pages obtained for symbol: 002001\n",
|
||
"================== symbol002001completed! ==================\n",
|
||
"3pages obtained for symbol: 002007\n",
|
||
"================== symbol002007completed! ==================\n",
|
||
"4pages obtained for symbol: 002027\n",
|
||
"================== symbol002027completed! ==================\n",
|
||
"5pages obtained for symbol: 002049\n",
|
||
"================== symbol002049completed! ==================\n",
|
||
"5pages obtained for symbol: 002050\n",
|
||
"================== symbol002050completed! ==================\n",
|
||
"2pages obtained for symbol: 002064\n",
|
||
"================== symbol002064completed! ==================\n",
|
||
"7pages obtained for symbol: 002074\n",
|
||
"================== symbol002074completed! ==================\n",
|
||
"5pages obtained for symbol: 002120\n",
|
||
"================== symbol002120completed! ==================\n",
|
||
"8pages obtained for symbol: 002129\n",
|
||
"================== symbol002129completed! ==================\n",
|
||
"5pages obtained for symbol: 002142\n",
|
||
"================== symbol002142completed! ==================\n",
|
||
"3pages obtained for symbol: 002179\n",
|
||
"================== symbol002179completed! ==================\n",
|
||
"3pages obtained for symbol: 002180\n",
|
||
"================== symbol002180completed! ==================\n",
|
||
"4pages obtained for symbol: 002202\n",
|
||
"================== symbol002202completed! ==================\n",
|
||
"11pages obtained for symbol: 002230\n",
|
||
"================== symbol002230completed! ==================\n",
|
||
"6pages obtained for symbol: 002236\n",
|
||
"================== symbol002236completed! ==================\n",
|
||
"7pages obtained for symbol: 002241\n",
|
||
"================== symbol002241completed! ==================\n",
|
||
"4pages obtained for symbol: 002252\n",
|
||
"================== symbol002252completed! ==================\n",
|
||
"6pages obtained for symbol: 002271\n",
|
||
"================== symbol002271completed! ==================\n",
|
||
"7pages obtained for symbol: 002304\n",
|
||
"================== symbol002304completed! ==================\n",
|
||
"4pages obtained for symbol: 002311\n",
|
||
"================== symbol002311completed! ==================\n",
|
||
"9pages obtained for symbol: 002352\n",
|
||
"================== symbol002352completed! ==================\n",
|
||
"8pages obtained for symbol: 002371\n",
|
||
"================== symbol002371completed! ==================\n",
|
||
"4pages obtained for symbol: 002410\n",
|
||
"================== symbol002410completed! ==================\n",
|
||
"2pages obtained for symbol: 002414\n",
|
||
"================== symbol002414completed! ==================\n",
|
||
"6pages obtained for symbol: 002415\n",
|
||
"================== symbol002415completed! ==================\n",
|
||
"9pages obtained for symbol: 002459\n",
|
||
"================== symbol002459completed! ==================\n",
|
||
"8pages obtained for symbol: 002460\n",
|
||
"================== symbol002460completed! ==================\n",
|
||
"8pages obtained for symbol: 002466\n",
|
||
"================== symbol002466completed! ==================\n",
|
||
"8pages obtained for symbol: 002475\n",
|
||
"================== symbol002475completed! ==================\n",
|
||
"6pages obtained for symbol: 002493\n",
|
||
"================== symbol002493completed! ==================\n",
|
||
"7pages obtained for symbol: 002555\n",
|
||
"================== symbol002555completed! ==================\n",
|
||
"11pages obtained for symbol: 002594\n",
|
||
"================== symbol002594completed! ==================\n",
|
||
"4pages obtained for symbol: 002601\n",
|
||
"================== symbol002601completed! ==================\n",
|
||
"4pages obtained for symbol: 002648\n",
|
||
"================== symbol002648completed! ==================\n",
|
||
"5pages obtained for symbol: 002709\n",
|
||
"================== symbol002709completed! ==================\n",
|
||
"11pages obtained for symbol: 002714\n",
|
||
"================== symbol002714completed! ==================\n",
|
||
"3pages obtained for symbol: 002736\n",
|
||
"================== symbol002736completed! ==================\n",
|
||
"4pages obtained for symbol: 002756\n",
|
||
"================== symbol002756completed! ==================\n",
|
||
"8pages obtained for symbol: 002812\n",
|
||
"================== symbol002812completed! ==================\n",
|
||
"5pages obtained for symbol: 002821\n",
|
||
"================== symbol002821completed! ==================\n",
|
||
"3pages obtained for symbol: 002841\n",
|
||
"================== symbol002841completed! ==================\n",
|
||
"4pages obtained for symbol: 002916\n",
|
||
"================== symbol002916completed! ==================\n",
|
||
"7pages obtained for symbol: 002920\n",
|
||
"================== symbol002920completed! ==================\n",
|
||
"4pages obtained for symbol: 002938\n",
|
||
"================== symbol002938completed! ==================\n",
|
||
"4pages obtained for symbol: 003816\n",
|
||
"================== symbol003816completed! ==================\n",
|
||
"9pages obtained for symbol: 300014\n",
|
||
"================== symbol300014completed! ==================\n",
|
||
"5pages obtained for symbol: 300015\n",
|
||
"================== symbol300015completed! ==================\n",
|
||
"7pages obtained for symbol: 300033\n",
|
||
"================== symbol300033completed! ==================\n",
|
||
"8pages obtained for symbol: 300059\n",
|
||
"================== symbol300059completed! ==================\n",
|
||
"7pages obtained for symbol: 300122\n",
|
||
"================== symbol300122completed! ==================\n",
|
||
"7pages obtained for symbol: 300124\n",
|
||
"================== symbol300124completed! ==================\n",
|
||
"6pages obtained for symbol: 300142\n",
|
||
"================== symbol300142completed! ==================\n",
|
||
"6pages obtained for symbol: 300207\n",
|
||
"================== symbol300207completed! ==================\n",
|
||
"6pages obtained for symbol: 300223\n",
|
||
"================== symbol300223completed! ==================\n",
|
||
"9pages obtained for symbol: 300274\n",
|
||
"================== symbol300274completed! ==================\n",
|
||
"5pages obtained for symbol: 300316\n",
|
||
"================== symbol300316completed! ==================\n",
|
||
"3pages obtained for symbol: 300347\n",
|
||
"================== symbol300347completed! ==================\n",
|
||
"2pages obtained for symbol: 300408\n",
|
||
"================== symbol300408completed! ==================\n",
|
||
"4pages obtained for symbol: 300413\n",
|
||
"================== symbol300413completed! ==================\n",
|
||
"4pages obtained for symbol: 300433\n",
|
||
"================== symbol300433completed! ==================\n",
|
||
"3pages obtained for symbol: 300450\n",
|
||
"================== symbol300450completed! ==================\n",
|
||
"4pages obtained for symbol: 300454\n",
|
||
"================== symbol300454completed! ==================\n",
|
||
"5pages obtained for symbol: 300496\n",
|
||
"================== symbol300496completed! ==================\n",
|
||
"8pages obtained for symbol: 300498\n",
|
||
"================== symbol300498completed! ==================\n",
|
||
"4pages obtained for symbol: 300601\n",
|
||
"================== symbol300601completed! ==================\n",
|
||
"3pages obtained for symbol: 300628\n",
|
||
"================== symbol300628completed! ==================\n",
|
||
"3pages obtained for symbol: 300661\n",
|
||
"================== symbol300661completed! ==================\n",
|
||
"11pages obtained for symbol: 300750\n",
|
||
"================== symbol300750completed! ==================\n",
|
||
"5pages obtained for symbol: 300751\n",
|
||
"================== symbol300751completed! ==================\n",
|
||
"4pages obtained for symbol: 300759\n",
|
||
"================== symbol300759completed! ==================\n",
|
||
"10pages obtained for symbol: 300760\n",
|
||
"================== symbol300760completed! ==================\n",
|
||
"6pages obtained for symbol: 300763\n",
|
||
"================== symbol300763completed! ==================\n",
|
||
"5pages obtained for symbol: 300769\n",
|
||
"================== symbol300769completed! ==================\n",
|
||
"7pages obtained for symbol: 300782\n",
|
||
"================== symbol300782completed! ==================\n",
|
||
"9pages obtained for symbol: 300896\n",
|
||
"================== symbol300896completed! ==================\n",
|
||
"3pages obtained for symbol: 300919\n",
|
||
"================== symbol300919completed! ==================\n",
|
||
"6pages obtained for symbol: 300957\n",
|
||
"================== symbol300957completed! ==================\n",
|
||
"4pages obtained for symbol: 300979\n",
|
||
"================== symbol300979completed! ==================\n",
|
||
"5pages obtained for symbol: 300999\n",
|
||
"================== symbol300999completed! ==================\n",
|
||
"5pages obtained for symbol: 600000\n",
|
||
"================== symbol600000completed! ==================\n",
|
||
"5pages obtained for symbol: 600009\n",
|
||
"================== symbol600009completed! ==================\n",
|
||
"5pages obtained for symbol: 600010\n",
|
||
"================== symbol600010completed! ==================\n",
|
||
"3pages obtained for symbol: 600011\n",
|
||
"================== symbol600011completed! ==================\n",
|
||
"4pages obtained for symbol: 600015\n",
|
||
"================== symbol600015completed! ==================\n",
|
||
"5pages obtained for symbol: 600016\n",
|
||
"================== symbol600016completed! ==================\n",
|
||
"2pages obtained for symbol: 600018\n",
|
||
"================== symbol600018completed! ==================\n",
|
||
"5pages obtained for symbol: 600019\n",
|
||
"================== symbol600019completed! ==================\n",
|
||
"3pages obtained for symbol: 600025\n",
|
||
"================== symbol600025completed! ==================\n",
|
||
"9pages obtained for symbol: 600028\n",
|
||
"================== symbol600028completed! ==================\n",
|
||
"7pages obtained for symbol: 600029\n",
|
||
"================== symbol600029completed! ==================\n",
|
||
"8pages obtained for symbol: 600030\n",
|
||
"================== symbol600030completed! ==================\n",
|
||
"5pages obtained for symbol: 600031\n",
|
||
"================== symbol600031completed! ==================\n",
|
||
"8pages obtained for symbol: 600036\n",
|
||
"================== symbol600036completed! ==================\n",
|
||
"5pages obtained for symbol: 600039\n",
|
||
"================== symbol600039completed! ==================\n",
|
||
"7pages obtained for symbol: 600048\n",
|
||
"================== symbol600048completed! ==================\n",
|
||
"9pages obtained for symbol: 600050\n",
|
||
"================== symbol600050completed! ==================\n",
|
||
"2pages obtained for symbol: 600061\n",
|
||
"================== symbol600061completed! ==================\n",
|
||
"3pages obtained for symbol: 600085\n",
|
||
"================== symbol600085completed! ==================\n",
|
||
"5pages obtained for symbol: 600089\n",
|
||
"================== symbol600089completed! ==================\n",
|
||
"10pages obtained for symbol: 600104\n",
|
||
"================== symbol600104completed! ==================\n",
|
||
"4pages obtained for symbol: 600111\n",
|
||
"================== symbol600111completed! ==================\n",
|
||
"9pages obtained for symbol: 600115\n",
|
||
"================== symbol600115completed! ==================\n",
|
||
"4pages obtained for symbol: 600132\n",
|
||
"================== symbol600132completed! ==================\n",
|
||
"5pages obtained for symbol: 600150\n",
|
||
"================== symbol600150completed! ==================\n",
|
||
"4pages obtained for symbol: 600176\n",
|
||
"================== symbol600176completed! ==================\n",
|
||
"3pages obtained for symbol: 600183\n",
|
||
"================== symbol600183completed! ==================\n",
|
||
"5pages obtained for symbol: 600188\n",
|
||
"================== symbol600188completed! ==================\n",
|
||
"7pages obtained for symbol: 600196\n",
|
||
"================== symbol600196completed! ==================\n",
|
||
"3pages obtained for symbol: 600219\n",
|
||
"================== symbol600219completed! ==================\n",
|
||
"5pages obtained for symbol: 600233\n",
|
||
"================== symbol600233completed! ==================\n",
|
||
"11pages obtained for symbol: 600276\n",
|
||
"================== symbol600276completed! ==================\n",
|
||
"6pages obtained for symbol: 600309\n",
|
||
"================== symbol600309completed! ==================\n",
|
||
"4pages obtained for symbol: 600332\n",
|
||
"================== symbol600332completed! ==================\n",
|
||
"4pages obtained for symbol: 600346\n",
|
||
"================== symbol600346completed! ==================\n",
|
||
"2pages obtained for symbol: 600362\n",
|
||
"================== symbol600362completed! ==================\n",
|
||
"5pages obtained for symbol: 600383\n",
|
||
"================== symbol600383completed! ==================\n",
|
||
"3pages obtained for symbol: 600406\n",
|
||
"================== symbol600406completed! ==================\n",
|
||
"3pages obtained for symbol: 600426\n",
|
||
"================== symbol600426completed! ==================\n",
|
||
"7pages obtained for symbol: 600436\n",
|
||
"================== symbol600436completed! ==================\n",
|
||
"10pages obtained for symbol: 600438\n",
|
||
"================== symbol600438completed! ==================\n",
|
||
"3pages obtained for symbol: 600460\n",
|
||
"================== symbol600460completed! ==================\n",
|
||
"11pages obtained for symbol: 600519\n",
|
||
"================== symbol600519completed! ==================\n",
|
||
"5pages obtained for symbol: 600547\n",
|
||
"================== symbol600547completed! ==================\n",
|
||
"5pages obtained for symbol: 600570\n",
|
||
"================== symbol600570completed! ==================\n",
|
||
"3pages obtained for symbol: 600584\n",
|
||
"================== symbol600584completed! ==================\n",
|
||
"3pages obtained for symbol: 600585\n",
|
||
"================== symbol600585completed! ==================\n",
|
||
"4pages obtained for symbol: 600588\n",
|
||
"================== symbol600588completed! ==================\n",
|
||
"6pages obtained for symbol: 600600\n",
|
||
"================== symbol600600completed! ==================\n",
|
||
"3pages obtained for symbol: 600606\n",
|
||
"================== symbol600606completed! ==================\n",
|
||
"3pages obtained for symbol: 600660\n",
|
||
"================== symbol600660completed! ==================\n",
|
||
"3pages obtained for symbol: 600674\n",
|
||
"================== symbol600674completed! ==================\n",
|
||
"5pages obtained for symbol: 600690\n",
|
||
"================== symbol600690completed! ==================\n",
|
||
"6pages obtained for symbol: 600732\n",
|
||
"================== symbol600732completed! ==================\n",
|
||
"2pages obtained for symbol: 600741\n",
|
||
"================== symbol600741completed! ==================\n",
|
||
"4pages obtained for symbol: 600745\n",
|
||
"================== symbol600745completed! ==================\n",
|
||
"4pages obtained for symbol: 600754\n",
|
||
"================== symbol600754completed! ==================\n",
|
||
"3pages obtained for symbol: 600760\n",
|
||
"================== symbol600760completed! ==================\n",
|
||
"5pages obtained for symbol: 600763\n",
|
||
"================== symbol600763completed! ==================\n",
|
||
"3pages obtained for symbol: 600795\n",
|
||
"================== symbol600795completed! ==================\n",
|
||
"4pages obtained for symbol: 600803\n",
|
||
"================== symbol600803completed! ==================\n",
|
||
"9pages obtained for symbol: 600809\n",
|
||
"================== symbol600809completed! ==================\n",
|
||
"5pages obtained for symbol: 600837\n",
|
||
"================== symbol600837completed! ==================\n",
|
||
"3pages obtained for symbol: 600845\n",
|
||
"================== symbol600845completed! ==================\n",
|
||
"3pages obtained for symbol: 600875\n",
|
||
"================== symbol600875completed! ==================\n",
|
||
"5pages obtained for symbol: 600884\n",
|
||
"================== symbol600884completed! ==================\n",
|
||
"3pages obtained for symbol: 600886\n",
|
||
"================== symbol600886completed! ==================\n",
|
||
"5pages obtained for symbol: 600887\n",
|
||
"================== symbol600887completed! ==================\n",
|
||
"2pages obtained for symbol: 600893\n",
|
||
"================== symbol600893completed! ==================\n",
|
||
"6pages obtained for symbol: 600900\n",
|
||
"================== symbol600900completed! ==================\n",
|
||
"4pages obtained for symbol: 600905\n",
|
||
"================== symbol600905completed! ==================\n",
|
||
"4pages obtained for symbol: 600918\n",
|
||
"================== symbol600918completed! ==================\n",
|
||
"6pages obtained for symbol: 600919\n",
|
||
"================== symbol600919completed! ==================\n",
|
||
"5pages obtained for symbol: 600926\n",
|
||
"================== symbol600926completed! ==================\n",
|
||
"11pages obtained for symbol: 600941\n",
|
||
"================== symbol600941completed! ==================\n",
|
||
"5pages obtained for symbol: 600958\n",
|
||
"================== symbol600958completed! ==================\n",
|
||
"4pages obtained for symbol: 600989\n",
|
||
"================== symbol600989completed! ==================\n",
|
||
"3pages obtained for symbol: 600999\n",
|
||
"================== symbol600999completed! ==================\n",
|
||
"3pages obtained for symbol: 601006\n",
|
||
"================== symbol601006completed! ==================\n",
|
||
"3pages obtained for symbol: 601009\n",
|
||
"================== symbol601009completed! ==================\n",
|
||
"11pages obtained for symbol: 601012\n",
|
||
"================== symbol601012completed! ==================\n",
|
||
"5pages obtained for symbol: 601021\n",
|
||
"================== symbol601021completed! ==================\n",
|
||
"4pages obtained for symbol: 601066\n",
|
||
"================== symbol601066completed! ==================\n",
|
||
"6pages obtained for symbol: 601088\n",
|
||
"================== symbol601088completed! ==================\n",
|
||
"2pages obtained for symbol: 601100\n",
|
||
"================== symbol601100completed! ==================\n",
|
||
"7pages obtained for symbol: 601111\n",
|
||
"================== symbol601111completed! ==================\n",
|
||
"4pages obtained for symbol: 601117\n",
|
||
"================== symbol601117completed! ==================\n",
|
||
"11pages obtained for symbol: 601138\n",
|
||
"================== symbol601138completed! ==================\n",
|
||
"4pages obtained for symbol: 601155\n",
|
||
"================== symbol601155completed! ==================\n",
|
||
"8pages obtained for symbol: 601166\n",
|
||
"================== symbol601166completed! ==================\n",
|
||
"4pages obtained for symbol: 601169\n",
|
||
"================== symbol601169completed! ==================\n",
|
||
"4pages obtained for symbol: 601186\n",
|
||
"================== symbol601186completed! ==================\n",
|
||
"5pages obtained for symbol: 601211\n",
|
||
"================== symbol601211completed! ==================\n",
|
||
"2pages obtained for symbol: 601216\n",
|
||
"================== symbol601216completed! ==================\n",
|
||
"4pages obtained for symbol: 601225\n",
|
||
"================== symbol601225completed! ==================\n",
|
||
"4pages obtained for symbol: 601229\n",
|
||
"================== symbol601229completed! ==================\n",
|
||
"3pages obtained for symbol: 601236\n",
|
||
"================== symbol601236completed! ==================\n",
|
||
"11pages obtained for symbol: 601238\n",
|
||
"================== symbol601238completed! ==================\n",
|
||
"9pages obtained for symbol: 601288\n",
|
||
"================== symbol601288completed! ==================\n",
|
||
"11pages obtained for symbol: 601318\n",
|
||
"================== symbol601318completed! ==================\n",
|
||
"6pages obtained for symbol: 601319\n",
|
||
"================== symbol601319completed! ==================\n",
|
||
"5pages obtained for symbol: 601328\n",
|
||
"================== symbol601328completed! ==================\n",
|
||
"7pages obtained for symbol: 601336\n",
|
||
"================== symbol601336completed! ==================\n",
|
||
"10pages obtained for symbol: 601360\n",
|
||
"================== symbol601360completed! ==================\n",
|
||
"3pages obtained for symbol: 601377\n",
|
||
"================== symbol601377completed! ==================\n",
|
||
"4pages obtained for symbol: 601390\n",
|
||
"================== symbol601390completed! ==================\n",
|
||
"8pages obtained for symbol: 601398\n",
|
||
"================== symbol601398completed! ==================\n",
|
||
"3pages obtained for symbol: 601600\n",
|
||
"================== symbol601600completed! ==================\n",
|
||
"7pages obtained for symbol: 601601\n",
|
||
"================== symbol601601completed! ==================\n",
|
||
"5pages obtained for symbol: 601607\n",
|
||
"================== symbol601607completed! ==================\n",
|
||
"4pages obtained for symbol: 601615\n",
|
||
"================== symbol601615completed! ==================\n",
|
||
"3pages obtained for symbol: 601618\n",
|
||
"================== symbol601618completed! ==================\n",
|
||
"10pages obtained for symbol: 601628\n",
|
||
"================== symbol601628completed! ==================\n",
|
||
"10pages obtained for symbol: 601633\n",
|
||
"================== symbol601633completed! ==================\n",
|
||
"8pages obtained for symbol: 601658\n",
|
||
"================== symbol601658completed! ==================\n",
|
||
"6pages obtained for symbol: 601668\n",
|
||
"================== symbol601668completed! ==================\n",
|
||
"6pages obtained for symbol: 601669\n",
|
||
"================== symbol601669completed! ==================\n",
|
||
"4pages obtained for symbol: 601688\n",
|
||
"================== symbol601688completed! ==================\n",
|
||
"4pages obtained for symbol: 601689\n",
|
||
"================== symbol601689completed! ==================\n",
|
||
"3pages obtained for symbol: 601698\n",
|
||
"================== symbol601698completed! ==================\n",
|
||
"4pages obtained for symbol: 601699\n",
|
||
"================== symbol601699completed! ==================\n",
|
||
"8pages obtained for symbol: 601728\n",
|
||
"================== symbol601728completed! ==================\n",
|
||
"5pages obtained for symbol: 601766\n",
|
||
"================== symbol601766completed! ==================\n",
|
||
"4pages obtained for symbol: 601788\n",
|
||
"================== symbol601788completed! ==================\n",
|
||
"5pages obtained for symbol: 601799\n",
|
||
"================== symbol601799completed! ==================\n",
|
||
"4pages obtained for symbol: 601800\n",
|
||
"================== symbol601800completed! ==================\n",
|
||
"3pages obtained for symbol: 601808\n",
|
||
"================== symbol601808completed! ==================\n",
|
||
"3pages obtained for symbol: 601816\n",
|
||
"================== symbol601816completed! ==================\n",
|
||
"5pages obtained for symbol: 601818\n",
|
||
"================== symbol601818completed! ==================\n",
|
||
"3pages obtained for symbol: 601838\n",
|
||
"================== symbol601838completed! ==================\n",
|
||
"7pages obtained for symbol: 601857\n",
|
||
"================== symbol601857completed! ==================\n",
|
||
"4pages obtained for symbol: 601865\n",
|
||
"================== symbol601865completed! ==================\n",
|
||
"4pages obtained for symbol: 601868\n",
|
||
"================== symbol601868completed! ==================\n",
|
||
"3pages obtained for symbol: 601872\n",
|
||
"================== symbol601872completed! ==================\n",
|
||
"3pages obtained for symbol: 601877\n",
|
||
"================== symbol601877completed! ==================\n",
|
||
"5pages obtained for symbol: 601878\n",
|
||
"================== symbol601878completed! ==================\n",
|
||
"5pages obtained for symbol: 601881\n",
|
||
"================== symbol601881completed! ==================\n",
|
||
"9pages obtained for symbol: 601888\n",
|
||
"================== symbol601888completed! ==================\n",
|
||
"3pages obtained for symbol: 601898\n",
|
||
"================== symbol601898completed! ==================\n",
|
||
"7pages obtained for symbol: 601899\n",
|
||
"================== symbol601899completed! ==================\n",
|
||
"5pages obtained for symbol: 601901\n",
|
||
"================== symbol601901completed! ==================\n",
|
||
"5pages obtained for symbol: 601919\n",
|
||
"================== symbol601919completed! ==================\n",
|
||
"8pages obtained for symbol: 601939\n",
|
||
"================== symbol601939completed! ==================\n",
|
||
"4pages obtained for symbol: 601985\n",
|
||
"================== symbol601985completed! ==================\n",
|
||
"8pages obtained for symbol: 601988\n",
|
||
"================== symbol601988completed! ==================\n",
|
||
"2pages obtained for symbol: 601989\n",
|
||
"================== symbol601989completed! ==================\n",
|
||
"6pages obtained for symbol: 601995\n",
|
||
"================== symbol601995completed! ==================\n",
|
||
"6pages obtained for symbol: 601998\n",
|
||
"================== symbol601998completed! ==================\n",
|
||
"6pages obtained for symbol: 603019\n",
|
||
"================== symbol603019completed! ==================\n",
|
||
"4pages obtained for symbol: 603185\n",
|
||
"================== symbol603185completed! ==================\n",
|
||
"5pages obtained for symbol: 603195\n",
|
||
"================== symbol603195completed! ==================\n",
|
||
"7pages obtained for symbol: 603259\n",
|
||
"================== symbol603259completed! ==================\n",
|
||
"5pages obtained for symbol: 603260\n",
|
||
"================== symbol603260completed! ==================\n",
|
||
"4pages obtained for symbol: 603288\n",
|
||
"================== symbol603288completed! ==================\n",
|
||
"4pages obtained for symbol: 603290\n",
|
||
"================== symbol603290completed! ==================\n",
|
||
"4pages obtained for symbol: 603369\n",
|
||
"================== symbol603369completed! ==================\n",
|
||
"6pages obtained for symbol: 603392\n",
|
||
"================== symbol603392completed! ==================\n",
|
||
"3pages obtained for symbol: 603486\n",
|
||
"================== symbol603486completed! ==================\n",
|
||
"6pages obtained for symbol: 603501\n",
|
||
"================== symbol603501completed! ==================\n",
|
||
"4pages obtained for symbol: 603659\n",
|
||
"================== symbol603659completed! ==================\n",
|
||
"5pages obtained for symbol: 603799\n",
|
||
"================== symbol603799completed! ==================\n",
|
||
"3pages obtained for symbol: 603806\n",
|
||
"================== symbol603806completed! ==================\n",
|
||
"5pages obtained for symbol: 603833\n",
|
||
"================== symbol603833completed! ==================\n",
|
||
"2pages obtained for symbol: 603899\n",
|
||
"================== symbol603899completed! ==================\n",
|
||
"5pages obtained for symbol: 603986\n",
|
||
"================== symbol603986completed! ==================\n",
|
||
"4pages obtained for symbol: 603993\n",
|
||
"================== symbol603993completed! ==================\n",
|
||
"5pages obtained for symbol: 605117\n",
|
||
"================== symbol605117completed! ==================\n",
|
||
"7pages obtained for symbol: 605499\n",
|
||
"================== symbol605499completed! ==================\n",
|
||
"6pages obtained for symbol: 688005\n",
|
||
"================== symbol688005completed! ==================\n",
|
||
"5pages obtained for symbol: 688008\n",
|
||
"================== symbol688008completed! ==================\n",
|
||
"9pages obtained for symbol: 688012\n",
|
||
"================== symbol688012completed! ==================\n",
|
||
"8pages obtained for symbol: 688036\n",
|
||
"================== symbol688036completed! ==================\n",
|
||
"3pages obtained for symbol: 688065\n",
|
||
"================== symbol688065completed! ==================\n",
|
||
"11pages obtained for symbol: 688111\n",
|
||
"================== symbol688111completed! ==================\n",
|
||
"4pages obtained for symbol: 688126\n",
|
||
"================== symbol688126completed! ==================\n",
|
||
"3pages obtained for symbol: 688187\n",
|
||
"================== symbol688187completed! ==================\n",
|
||
"10pages obtained for symbol: 688223\n",
|
||
"================== symbol688223completed! ==================\n",
|
||
"6pages obtained for symbol: 688303\n",
|
||
"================== symbol688303completed! ==================\n",
|
||
"6pages obtained for symbol: 688363\n",
|
||
"================== symbol688363completed! ==================\n",
|
||
"3pages obtained for symbol: 688396\n",
|
||
"================== symbol688396completed! ==================\n",
|
||
"5pages obtained for symbol: 688561\n",
|
||
"================== symbol688561completed! ==================\n",
|
||
"10pages obtained for symbol: 688599\n",
|
||
"================== symbol688599completed! ==================\n",
|
||
"8pages obtained for symbol: 688981\n",
|
||
"================== symbol688981completed! ==================\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Data Aquisition Pipeline\n",
|
||
"from datetime import date\n",
|
||
"import akshare as ak\n",
|
||
"name_dir = \"HS300_news_data\" + str(date.today().strftime(\"%Y%m%d\"))\n",
|
||
"# os.makedirs(name_dir, exist_ok=True)\n",
|
||
"os.chdir(name_dir)\n",
|
||
"for i in HS_index[2:]:\n",
|
||
" file_name = \"news_data\" + i + \".csv\"\n",
|
||
" df_list = []\n",
|
||
" for j in range(1, 20):\n",
|
||
" try:\n",
|
||
" df_list.append(ak.stock_news_em(symbol=i, page=j))\n",
|
||
" except KeyError:\n",
|
||
" print(str(j) + \"pages obtained for symbol: \" + i)\n",
|
||
" break\n",
|
||
" news_df_i = pd.concat(df_list, ignore_index=True)\n",
|
||
" news_df_i.to_csv(file_name)\n",
|
||
" print(\"================== symbol\"+i+\"completed! ==================\")"
|
||
]
|
||
},
|
||
{
|
||
"attachments": {},
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"# Data Aquisition"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"import akshare as ak\n",
|
||
"import pandas as pd\n",
|
||
"import time\n",
|
||
"import math\n",
|
||
"import json\n",
|
||
"import random\n",
|
||
"start_date = \"20230406\"\n",
|
||
"end_date = \"20230502\""
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"def return_transform(ret):\n",
|
||
" \n",
|
||
" up_down = '涨' if ret >= 0 else '跌'\n",
|
||
" integer = math.ceil(abs(100 * ret))\n",
|
||
" \n",
|
||
" return up_down + (str(integer) if integer <= 5 else '5+')\n",
|
||
"\n",
|
||
"def get_return(symbol, start_date = start_date, end_date = end_date, adjust=\"hfq\"):\n",
|
||
" \"\"\"\n",
|
||
" Get stock return data.\n",
|
||
"\n",
|
||
" Args:\n",
|
||
" symbol: str\n",
|
||
" A-share market stock symbol\n",
|
||
" start_date, end_date: str\n",
|
||
" format: yyyymmdd\n",
|
||
" adjust: str (\"qfq\", \"hfq\")\n",
|
||
" price ajustment\n",
|
||
" default = \"hfq\" 后复权\n",
|
||
" \n",
|
||
" Return:\n",
|
||
" weekly forward filled return data\n",
|
||
" \"\"\"\n",
|
||
" \n",
|
||
" # load data\n",
|
||
" return_data = ak.stock_zh_a_hist(symbol=symbol, period=\"daily\", start_date=start_date, end_date=end_date, adjust=adjust)\n",
|
||
" \n",
|
||
" # process timestamp\n",
|
||
" return_data[\"日期\"] = pd.to_datetime(return_data[\"日期\"])\n",
|
||
" return_data.set_index(\"日期\", inplace=True)\n",
|
||
"\n",
|
||
" # resample and filled with forward data\n",
|
||
" weekly_data = return_data[\"收盘\"].resample(\"W\").ffill()\n",
|
||
" weekly_returns = weekly_data.pct_change()[1:]\n",
|
||
" weekly_start_prices = weekly_data[:-1]\n",
|
||
" weekly_end_prices = weekly_data[1:]\n",
|
||
" weekly_data = pd.DataFrame({\n",
|
||
" '起始日期': weekly_start_prices.index,\n",
|
||
" '起始价': weekly_start_prices.values,\n",
|
||
" '结算日期': weekly_end_prices.index,\n",
|
||
" '结算价': weekly_end_prices.values,\n",
|
||
" '周收益': weekly_returns.values\n",
|
||
" })\n",
|
||
" weekly_data[\"简化周收益\"] = weekly_data[\"周收益\"].map(return_transform)\n",
|
||
" \n",
|
||
" return weekly_data\n",
|
||
"\n",
|
||
"# get basics\n",
|
||
"def get_basic(symbol, data, no_validrange = False):\n",
|
||
" \"\"\"\n",
|
||
" Get and match basic data to news dataframe.\n",
|
||
"\n",
|
||
" Args:\n",
|
||
" symbol: str\n",
|
||
" A-share market stock symbol\n",
|
||
" data: DataFrame\n",
|
||
" dated news data\n",
|
||
" no_validrange: bool\n",
|
||
" False to set range for the valid basic_info.\n",
|
||
" default valid range is 3 weeks after the basic_info reported\n",
|
||
" \n",
|
||
" Return:\n",
|
||
" financial news dataframe with matched basic_financial info\n",
|
||
" \"\"\"\n",
|
||
"\n",
|
||
" # load quarterly basic data\n",
|
||
" basic_quarter_financials = ak.stock_financial_abstract_ths(symbol = symbol, indicator=\"按单季度\")\n",
|
||
"\n",
|
||
" basic_fin_dict = basic_quarter_financials.to_dict(\"index\")\n",
|
||
" basic_fin_list = [dict([(key, val) for key, val in basic_fin_dict[i].items() if val]) for i in range(len(basic_fin_dict))]\n",
|
||
"\n",
|
||
" # match basic financial data to news dataframe\n",
|
||
" matched_basic_fin = []\n",
|
||
" for i, row in data.iterrows():\n",
|
||
"\n",
|
||
" newsweek_enddate = row['结算日期'].strftime(\"%Y-%m-%d\")\n",
|
||
" \n",
|
||
" # set 3 weeks for the valid time of quarterly basic_financial info \n",
|
||
" check_date = start_date if i<2 else data.loc[i-2, '起始日期'].strftime(\"%Y-%m-%d\")\n",
|
||
"\n",
|
||
" matched_basic = {}\n",
|
||
" for basic in basic_fin_list:\n",
|
||
" if (no_validrange and basic[\"报告期\"] < newsweek_enddate) or (check_date <= basic[\"报告期\"] < newsweek_enddate):\n",
|
||
" matched_basic = basic\n",
|
||
" break\n",
|
||
" matched_basic_fin.append(json.dumps(matched_basic, ensure_ascii=False))\n",
|
||
"\n",
|
||
" data['基本面'] = matched_basic_fin\n",
|
||
"\n",
|
||
" return data\n",
|
||
"\n",
|
||
"def raw_financial_data(symbol, with_basics = True):\n",
|
||
" \n",
|
||
" # get return data from API\n",
|
||
" data = get_return(symbol=symbol)\n",
|
||
" \n",
|
||
" # get news data from local\n",
|
||
" file_name = \"news_data\" + symbol + \".csv\"\n",
|
||
" news_df = pd.read_csv(\"HS300_news_data20240118/\"+file_name, index_col=0)\n",
|
||
" news_df[\"发布时间\"] = pd.to_datetime(news_df[\"发布时间\"], exact=False, format=\"%Y-%m-%d\")\n",
|
||
" news_df.sort_values(by=[\"发布时间\"], inplace=True)\n",
|
||
" \n",
|
||
" # match weekly news for return data\n",
|
||
" news_list = []\n",
|
||
" for a, row in data.iterrows():\n",
|
||
" start_date = row['起始日期'].strftime('%Y-%m-%d')\n",
|
||
" end_date = row['结算日期'].strftime('%Y-%m-%d')\n",
|
||
" print(symbol, ': ', start_date, ' - ', end_date)\n",
|
||
" \n",
|
||
" weekly_news = news_df.loc[(news_df[\"发布时间\"]>start_date) & (news_df[\"发布时间\"]<end_date)]\n",
|
||
" weekly_news = [\n",
|
||
" {\n",
|
||
" \"发布时间\": n[\"发布时间\"].strftime('%Y%m%d'),\n",
|
||
" \"新闻标题\": n['新闻标题'],\n",
|
||
" \"新闻内容\": n['新闻内容'],\n",
|
||
" } for a, n in weekly_news.iterrows()\n",
|
||
" ]\n",
|
||
" news_list.append(json.dumps(weekly_news,ensure_ascii=False))\n",
|
||
"\n",
|
||
" data[\"新闻\"] = news_list\n",
|
||
"\n",
|
||
" if with_basics:\n",
|
||
" data = get_basic(symbol=symbol, data=data, no_validrange=True)\n",
|
||
" data.to_csv(symbol+start_date+\"_\"+end_date+\".csv\")\n",
|
||
" else:\n",
|
||
" data['新闻'] = [json.dumps({})] * len(data)\n",
|
||
" data.to_csv(symbol+start_date+\"_\"+end_date+\"_nobasics.csv\")\n",
|
||
" \n",
|
||
" return data"
|
||
]
|
||
},
|
||
{
|
||
"attachments": {},
|
||
"cell_type": "markdown",
|
||
"metadata": {},
|
||
"source": [
|
||
"# Prompt Generation"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"def get_company_prompt(symbol):\n",
|
||
" \"\"\"\n",
|
||
" Get company information from API\n",
|
||
" \"\"\"\n",
|
||
" company_profile = dict(ak.stock_individual_info_em(symbol).values)\n",
|
||
" company_profile[\"上市时间\"] = pd.to_datetime(company_profile[\"上市时间\"]).strftime(\"%Y年%m月%d日\")\n",
|
||
"\n",
|
||
" template = \"[公司介绍]:\\n\\n{股票简称}是一家在{行业}行业的领先实体。自{上市时间}成立并公开交易以来,该公司已确立其作为市场主要参与者之一的声誉。截止今天,{股票简称}的总市值为{总市值}人民币,总股本数为{总股本},流通市值为{流通市值}人民币,流通股数为{流通股}。\" \\\n",
|
||
" \"\\n\\n{股票简称}主要在中国运营,以股票代码{股票代码}在交易所进行交易。作为在{行业}行业的一个主导力量,该公司持续创新,不断推动行业进步。\"\n",
|
||
" \n",
|
||
" formatted_profile = template.format(**company_profile)\n",
|
||
"\n",
|
||
" return formatted_profile\n",
|
||
"\n",
|
||
"def map_return_label(return_lb):\n",
|
||
" \"\"\"\n",
|
||
" Map abbrev in the raw data\n",
|
||
" Example:\n",
|
||
" 涨1 -- 上涨1%\n",
|
||
" 跌2 -- 下跌2%\n",
|
||
" \"\"\"\n",
|
||
" \n",
|
||
" lb = return_lb.replace('涨', '上涨')\n",
|
||
" lb = lb.replace('跌', '下跌')\n",
|
||
" lb = lb.replace('1', '0-1%')\n",
|
||
" lb = lb.replace('2', '1-2%')\n",
|
||
" lb = lb.replace('3', '2-3%')\n",
|
||
" lb = lb.replace('4', '3-4%')\n",
|
||
" if lb.endswith('+'):\n",
|
||
" lb = lb.replace('5+', '超过5%')\n",
|
||
" else:\n",
|
||
" lb = lb.replace('5', '4-5%')\n",
|
||
" \n",
|
||
" return lb\n",
|
||
"\n",
|
||
"def get_prompt_by_row(symbol, row):\n",
|
||
" \"\"\"\n",
|
||
" Generate prompt for each row in the raw data DF\n",
|
||
" Args:\n",
|
||
" symbol: str\n",
|
||
" stock ticker\n",
|
||
" row: pandas.Series\n",
|
||
" Return:\n",
|
||
" head: heading prompt\n",
|
||
" news: news info\n",
|
||
" basics: basic financial info\n",
|
||
" \"\"\"\n",
|
||
"\n",
|
||
" start_date = row['起始日期'] if isinstance(row['起始日期'], str) else row['起始日期'].strftime('%Y-%m-%d')\n",
|
||
" end_date = row['结算日期'] if isinstance(row['结算日期'], str) else row['结算日期'].strftime('%Y-%m-%d')\n",
|
||
" term = '上涨' if row['结算价'] > row['起始价'] else '下跌'\n",
|
||
" head = \"自{}至{},{}的股票价格由{:.2f}{}至{:.2f}。在此期间的公司新闻如下所列:\\n\\n\".format(\n",
|
||
" start_date, end_date, symbol, row['起始价'], term, row['结算价'])\n",
|
||
"\n",
|
||
" news = json.loads(row[\"新闻\"])\n",
|
||
" news = [\"[新闻标题]:{}\\n[新闻内容]:{}\\n\".format(\n",
|
||
" n['新闻标题'], n['新闻内容']) for n in news if n['发布时间'][:8] <= end_date.replace('-', '')]\n",
|
||
"\n",
|
||
" basics = json.loads(row['基本面'])\n",
|
||
" if basics:\n",
|
||
" basics = \"如下所列为{}近期的一些金融基本面信息,记录时间为{}:\\n\\n[金融基本面]:\\n\\n\".format(\n",
|
||
" symbol, basics['报告期']) + \"\\n\".join(f\"{k}: {v}\" for k, v in basics.items() if k != 'period')\n",
|
||
" else:\n",
|
||
" basics = \"[金融基本面]:\\n\\n 无金融基本面记录\"\n",
|
||
"\n",
|
||
" return head, news, basics\n",
|
||
"\n",
|
||
"def sample_news(news, k=5):\n",
|
||
" \"\"\"\n",
|
||
" Ramdomly select past news.\n",
|
||
"\n",
|
||
" Args:\n",
|
||
" news:\n",
|
||
" newslist in the timerange\n",
|
||
" k: int\n",
|
||
" the number of selected news\n",
|
||
" \"\"\"\n",
|
||
" return [news[i] for i in sorted(random.sample(range(len(news)), k))]\n",
|
||
"\n",
|
||
"def get_all_prompts(symbol, min_past_week=1, max_past_weeks=3, with_basics=True):\n",
|
||
" \"\"\"\n",
|
||
" Generate prompt\n",
|
||
" Args:\n",
|
||
" symbol: str\n",
|
||
" stock ticker\n",
|
||
" min_past_week: int\n",
|
||
" max_past_week: int\n",
|
||
" with_basics: bool\n",
|
||
" If true, add basic infomation to the prompt\n",
|
||
" Return:\n",
|
||
" Prompts for the daterange\n",
|
||
" \"\"\"\n",
|
||
"\n",
|
||
" # Load Data\n",
|
||
" df = raw_financial_data(symbol, with_basics)\n",
|
||
" \n",
|
||
" company_prompt = get_company_prompt(symbol)\n",
|
||
"\n",
|
||
" prev_rows = []\n",
|
||
" all_prompts = []\n",
|
||
"\n",
|
||
" for row_idx, row in df.iterrows():\n",
|
||
"\n",
|
||
" prompt = \"\"\n",
|
||
"\n",
|
||
" # judge for available history news \n",
|
||
" if len(prev_rows) >= min_past_week:\n",
|
||
"\n",
|
||
" # randomly set retrieve weeks\n",
|
||
" idx = min(random.choice(range(min_past_week, max_past_weeks+1)), len(prev_rows))\n",
|
||
" for i in range(-idx, 0):\n",
|
||
" # Add Head\n",
|
||
" prompt += \"\\n\" + prev_rows[i][0]\n",
|
||
" # Add History News (with numbers constraint)\n",
|
||
" sampled_news = sample_news(\n",
|
||
" prev_rows[i][1],\n",
|
||
" min(5, len(prev_rows[i][1]))\n",
|
||
" )\n",
|
||
" if sampled_news:\n",
|
||
" prompt += \"\\n\".join(sampled_news)\n",
|
||
" else:\n",
|
||
" prompt += \"无有关新闻报告\"\n",
|
||
" \n",
|
||
" head, news, basics = get_prompt_by_row(symbol, row)\n",
|
||
" \n",
|
||
" prev_rows.append((head, news, basics))\n",
|
||
"\n",
|
||
" if len(prev_rows) > max_past_weeks:\n",
|
||
" prev_rows.pop(0)\n",
|
||
" \n",
|
||
" # set this to make sure there is history news for each considered date\n",
|
||
" if not prompt:\n",
|
||
" continue\n",
|
||
"\n",
|
||
" prediction = map_return_label(row['简化周收益'])\n",
|
||
"\n",
|
||
" prompt = company_prompt + '\\n' + prompt + '\\n' + basics\n",
|
||
" prompt += f\"\\n\\n基于在{row['起始日期']}之前的所有信息,让我们首先分析{symbol}的积极发展和潜在担忧。保持陈述的简洁,分别提出2-4个最重要的因素。大部分所提及的因素应该从公司的相关新闻中推断出来。\" \\\n",
|
||
" f\"那么让我们假设你对于下一周({row['起始日期']}至{row['结算日期']})的预测是{prediction}。提供一个总结分析来支持你的预测。预测结果需要从你最后的分析中推断出来,因此不作为你分析的基础因素。\"\n",
|
||
"\n",
|
||
" all_prompts.append(prompt.strip())\n",
|
||
"\n",
|
||
" return all_prompts"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"000001 : 2023-04-09 - 2023-04-16\n",
|
||
"000001 : 2023-04-16 - 2023-04-23\n",
|
||
"000001 : 2023-04-23 - 2023-04-30\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"text/plain": [
|
||
"['[公司介绍]:\\n\\n平安银行是一家在银行行业的领先实体。自1970年01月01日成立并公开交易以来,该公司已确立其作为市场主要参与者之一的声誉。截止今天,平安银行的总市值为178534447421.59998人民币,总股本数为19405918198.0,流通市值为178531031940.0人民币,流通股数为19405546950.0。\\n\\n平安银行主要在中国运营,以股票代码000001在交易所进行交易。作为在银行行业的一个主导力量,该公司持续创新,不断推动行业进步。\\n\\n自2023-04-09至2023-04-16,000001的股票价格由2257.00上涨至2268.38。在此期间的公司新闻如下所列:\\n\\n[新闻标题]:金融业高薪招聘AI训练师 有AI产品负责人年薪超百万\\n[新闻内容]:优先考虑具有拥有虚拟偶像、数字人相关产品工作经验者等。 BOSS直聘官网截图 也有一些相对“平易近人”的工作岗位。 如平安银行000001.SZ)网金及财富管理事业部招聘AI业务策略训练师,薪资待遇为1万-1.5万元/月。 平安银行介绍称,该岗位负责业务策略训练,将业务策略在智慧经营平台做落地实施,将策略与各触达方式做串联部署\\n\\n[新闻标题]:平安银行王蓉晖:矩阵式产品服务实现“真小微 真信用 真普惠”\\n[新闻内容]:就业多则经济活。 今年3月,在平安银行开放日上,平安银行董事长谢永林表示,全新的开放银行不仅是支持零售转型战略的新打法,而且通过服务平台上的海量小微客户,平安银行在服务小微,践行普惠金融方面也探索出了新举措。 平安银行财报显示,截至2022年末,平安银行普惠型小微企业贷款累计户数105\\n\\n[新闻标题]:20股特大单净流入资金超2亿元\\n[新闻内容]:491.562.30建筑装饰300120经纬辉开8.7819.952.28电子002051中工国际12.5010.042.25建筑装饰000001平安银行12.691.042.24银行601138工业富联18.072.322.09电子300014亿纬锂能68.904.242.07电力设备 特大单净流出资金排名\\n\\n如下所列为000001近期的一些金融基本面信息,记录时间为2023-03-31:\\n\\n[金融基本面]:\\n\\n报告期: 2023-03-31\\n净利润: 146.02亿\\n净利润同比增长率: 13.63%\\n扣非净利润: 144.69亿\\n扣非净利润同比增长率: 12.40%\\n营业总收入: 450.98亿\\n营业总收入同比增长率: -2.40%\\n基本每股收益: 0.6500\\n每股净资产: 19.42\\n每股资本公积金: 4.16\\n每股未分配利润: 10.25\\n每股经营现金流: 5.62\\n销售净利率: 32.38%\\n净资产收益率: 3.39%\\n净资产收益率-摊薄: 3.27%\\n产权比率: 11.21\\n资产负债率: 91.81%\\n\\n基于在2023-04-16 00:00:00之前的所有信息,让我们首先分析000001的积极发展和潜在担忧。保持陈述的简洁,分别提出2-4个最重要的因素。大部分所提及的因素应该从公司的相关新闻中推断出来。那么让我们假设你对于下一周(2023-04-16 00:00:00至2023-04-23 00:00:00)的预测是下跌1-2%。提供一个总结分析来支持你的预测。预测结果需要从你最后的分析中推断出来,因此不作为你分析的基础因素。',\n",
|
||
" '[公司介绍]:\\n\\n平安银行是一家在银行行业的领先实体。自1970年01月01日成立并公开交易以来,该公司已确立其作为市场主要参与者之一的声誉。截止今天,平安银行的总市值为178534447421.59998人民币,总股本数为19405918198.0,流通市值为178531031940.0人民币,流通股数为19405546950.0。\\n\\n平安银行主要在中国运营,以股票代码000001在交易所进行交易。作为在银行行业的一个主导力量,该公司持续创新,不断推动行业进步。\\n\\n自2023-04-16至2023-04-23,000001的股票价格由2268.38下跌至2237.50。在此期间的公司新闻如下所列:\\n\\n[新闻标题]:北向资金昨日净买入22.64亿元,光伏设备增持超10亿元(名单)\\n[新闻内容]:北向资金净卖出昆仑万维(300418.SZ)、金山办公(688111.SH)、平安银行000001.SZ)、华友钴业(603799.SH)、天齐锂业(002466.SZ)居前,其中,昆仑万维被净卖出4.30亿元,金山办公被净卖出3.65亿元,平安银行被净卖出3.60亿元,华友钴业被净卖出2.76亿元,天齐锂业被净卖出2\\n\\n如下所列为000001近期的一些金融基本面信息,记录时间为2023-03-31:\\n\\n[金融基本面]:\\n\\n报告期: 2023-03-31\\n净利润: 146.02亿\\n净利润同比增长率: 13.63%\\n扣非净利润: 144.69亿\\n扣非净利润同比增长率: 12.40%\\n营业总收入: 450.98亿\\n营业总收入同比增长率: -2.40%\\n基本每股收益: 0.6500\\n每股净资产: 19.42\\n每股资本公积金: 4.16\\n每股未分配利润: 10.25\\n每股经营现金流: 5.62\\n销售净利率: 32.38%\\n净资产收益率: 3.39%\\n净资产收益率-摊薄: 3.27%\\n产权比率: 11.21\\n资产负债率: 91.81%\\n\\n基于在2023-04-23 00:00:00之前的所有信息,让我们首先分析000001的积极发展和潜在担忧。保持陈述的简洁,分别提出2-4个最重要的因素。大部分所提及的因素应该从公司的相关新闻中推断出来。那么让我们假设你对于下一周(2023-04-23 00:00:00至2023-04-30 00:00:00)的预测是上涨0-1%。提供一个总结分析来支持你的预测。预测结果需要从你最后的分析中推断出来,因此不作为你分析的基础因素。']"
|
||
]
|
||
},
|
||
"execution_count": 4,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"get_all_prompts(\"000001\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"你是一个经验丰富的股票市场分析师。你的任务是根据过去几周的相关新闻和基本财务状况,列出公司的积极发展和潜在担忧,然后对公司未来一周的股价走势提供分析和预测。你的回答格式应该如下:\n",
|
||
"\n",
|
||
"[积极发展]:\n",
|
||
"1. ...\n",
|
||
"\n",
|
||
"[潜在担忧]:\n",
|
||
"1. ...\n",
|
||
"\n",
|
||
"[预测和分析]:\n",
|
||
"...\n",
|
||
"\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"SYSTEM_PROMPT = \"你是一个经验丰富的股票市场分析师。你的任务是根据过去几周的相关新闻和基本财务状况,列出公司的积极发展和潜在担忧,然后对公司未来一周的股价走势提供分析和预测。\" \\\n",
|
||
" \"你的回答格式应该如下:\\n\\n[积极发展]:\\n1. ...\\n\\n[潜在担忧]:\\n1. ...\\n\\n[预测和分析]:\\n...\\n\"\n",
|
||
"print(SYSTEM_PROMPT)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"000001 : 2023-04-09 - 2023-04-16\n",
|
||
"000001 : 2023-04-16 - 2023-04-23\n",
|
||
"000001 : 2023-04-23 - 2023-04-30\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"pmt = get_all_prompts(\"000001\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": [
|
||
"from openai import OpenAI\n",
|
||
"client = OpenAI(api_key = '')\n",
|
||
"completion = client.chat.completions.create(\n",
|
||
" model = \"gpt-3.5-turbo\",\n",
|
||
" messages=[\n",
|
||
" {\"role\": \"system\", \"content\":SYSTEM_PROMPT},\n",
|
||
" {\"role\": \"user\", \"content\": pmt[1]}\n",
|
||
" ]\n",
|
||
")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"metadata": {},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"请求失败,状态码: 429\n",
|
||
"请求失败,body: {\"error\":{\"code\":\"insufficient_quota\",\"param\":null,\"type\":\"insufficient_quota\",\"message\":\"You exceeded your current quota, please check your plan and billing details.\"}}\n",
|
||
"请求失败,X-BC-Request-Id: cfcdb74d-9416-47e4-98d2-b6149fa1765f\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"import requests\n",
|
||
"import json\n",
|
||
"\n",
|
||
"def do_request():\n",
|
||
" url = \"https://api.baichuan-ai.com/v1/chat/completions\"\n",
|
||
" api_key = \"sk-7c765c13dddfc800953163c1b98b9304\"\n",
|
||
"\n",
|
||
" data = {\n",
|
||
" \"model\": \"Baichuan2-Turbo\",\n",
|
||
" \"messages\": [\n",
|
||
" {\n",
|
||
" \"role\": \"user\",\n",
|
||
" \"content\": \"世界第一高峰是\"\n",
|
||
" }\n",
|
||
" ],\n",
|
||
" \"stream\": True\n",
|
||
" }\n",
|
||
"\n",
|
||
" json_data = json.dumps(data)\n",
|
||
"\n",
|
||
" headers = {\n",
|
||
" \"Content-Type\": \"application/json\",\n",
|
||
" \"Authorization\": \"Bearer \" + api_key\n",
|
||
" }\n",
|
||
"\n",
|
||
" response = requests.post(url, data=json_data, headers=headers, timeout=60)\n",
|
||
"\n",
|
||
" if response.status_code == 200:\n",
|
||
" print(\"请求成功!\")\n",
|
||
" print(\"响应body:\", response.text)\n",
|
||
" print(\"请求成功,X-BC-Request-Id:\", response.headers.get(\"X-BC-Request-Id\"))\n",
|
||
" else:\n",
|
||
" print(\"请求失败,状态码:\", response.status_code)\n",
|
||
" print(\"请求失败,body:\", response.text)\n",
|
||
" print(\"请求失败,X-BC-Request-Id:\", response.headers.get(\"X-BC-Request-Id\"))\n",
|
||
"\n",
|
||
"if __name__ == \"__main__\":\n",
|
||
" do_request()\n",
|
||
"\n",
|
||
" "
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": null,
|
||
"metadata": {},
|
||
"outputs": [],
|
||
"source": []
|
||
}
|
||
],
|
||
"metadata": {
|
||
"kernelspec": {
|
||
"display_name": "python310",
|
||
"language": "python",
|
||
"name": "python3"
|
||
},
|
||
"language_info": {
|
||
"codemirror_mode": {
|
||
"name": "ipython",
|
||
"version": 3
|
||
},
|
||
"file_extension": ".py",
|
||
"mimetype": "text/x-python",
|
||
"name": "python",
|
||
"nbconvert_exporter": "python",
|
||
"pygments_lexer": "ipython3",
|
||
"version": "3.10.13"
|
||
},
|
||
"orig_nbformat": 4
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 2
|
||
}
|