python flask開發的簡單基金查詢工具
項目地址:
https://github.com/guodongggg/fund
1) 啟動方法
(非必須)修改new.csv,參照test.csv,首行為基金代碼,其次為每支基金在指定日期內的操作,正值為買入金額,負值為贖回份額。具體項目參照x_alpha項目
修改code_list.json文件的prodect為你自己的基金代碼,修改count為每支基金的金額,執行同級目錄下的update_code_list.py,自動更新持倉百分比
執行python run.py
ps:初始化比較麻煩,我也暫時沒優化,後面再說吧
2) web查看方法
打開瀏覽器,訪問本地地址:http://127.0.0.1:8090
在線示例:http://106.12.49.205
3) 功能說明:
- 大盤指數實時情況查看
- 單支基金實時、近一周、近一月、近三月的漲跌情況
- 總持倉實際漲幅、預估漲幅
- 持倉成本圖、餅狀圖、收益詳情圖(需修改new.csv)
- 線性回歸圖例
- 外鏈天天基金頁面
- 外鏈頭條大V號
- 外鏈微博大V號
- 外鏈比特幣
- 外鏈薅羊毛頁面
4) 展示:
代碼
涉及代碼過多,不便全部放出,請自行下載項目查看,放出部分代碼,僅供參考。
update_over_json.py 基金代碼列表
import average_growth import json import common import choose_api from pathlib import Path def over_time(detail, board): """ 判斷當日持倉的所有基金的合計漲幅是否超過滬深300 :param code_list: list 基金代碼列表 :return: json文件,格式如下,HS300漲幅、持倉合計漲幅、持倉漲幅是否超過滬深300 { "2020-12-31": { "HS300": "1.91", "my_position": "1.35", "over_take": false }, "2021-01-04": { "HS300": "1.08", "my_position": "1.33", "over_take": true } } ...... """ # 獲取日期 try: date = detail[0]['netWorthDate'] except: date = detail[1]['netWorthDate'] hs300 = '' for i in board: if i['name'] == '滬深300': hs300 = i['changePercent'] # 判斷文件是否存在,不存在則創建 json_file_name = 'file/bj.json' file = Path(json_file_name) file.touch(exist_ok=True) # 此時更新的準確凈值漲幅的平均值 avg = average_growth.average_growth(detail)['average_dayGrowth'] print('hs300:', hs300) print('avg:', avg) # 寫入文件 with open("file/bj.json", 'r+') as f: try: data = json.load(f) f.seek(0, 0) f.truncate() except Exception as e: print(e) data = {} finally: print(f'獲取數據: {data}') data[date] = { 'HS300': hs300, 'my_position': str(avg), 'over_take': True if float(avg) > float(hs300) else False } print(f'更新數據: {date}:{data[date]}') f.write(json.dumps(data, sort_keys=True, indent=4, separators=(',', ': '))) print(f'{json_file_name} 已更新!') if __name__ == '__main__': code_list = common.get_codelist('product') data = choose_api.choose_api(code_list) detail = data['detail'] board = data['board'] over_time(detail, board)
nasdaq.py sina財經數據爬蟲
import requests def nasdaq(): """ 爬取sina財經nasdaq基礎數據 :return: 構建的標準返回格式,隻包含當日的數據,無歷史數據 """ url = "http://hq.sinajs.cn/?rn=1609213839262&list=gb_$ndx" r = requests.get(url) response = r.text if r.status_code == 200: data = response.split('=')[1].split(',') nasdaq_data = {'name': data[0].strip('"'), 'code': '040046', 'price': data[1], 'priceChange': data[4], 'expectGrowth': data[2], 'dayGrowth': data[2], 'lastWeekGrowth': '-', 'lastMonthGrowth': '-', 'lastThreeMonthsGrowth': '-', 'date': ''} return nasdaq_data else: print(f'nasdaq return error: \n {response}') if __name__ == '__main__': nasdaq_data = nasdaq() for k, v in nasdaq_data.items(): print(f'{k}: {v}')
以上就是python flask開發的簡單基金查詢工具的詳細內容,更多關於python 基金查詢工具的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- Python爬蟲學習之requests的使用教程
- 教你如何利用python3爬蟲爬取漫畫島-非人哉漫畫
- 寫一個Python腳本自動爬取Bilibili小視頻
- Python爬蟲之requests庫基本介紹
- python接口自動化使用requests庫發送http請求