python flask开发的简单基金查询工具

作者:guodongggg 时间:2023-10-29 21:35:42 

目录
  • 项目地址:

  • 1) 启动方法

  • 2) web查看方法

  • 3) 功能说明:

  • 4) 展示:

  • 代码

项目地址:

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) 展示:

python flask开发的简单基金查询工具

python flask开发的简单基金查询工具

代码

涉及代码过多,不便全部放出,请自行下载项目查看,放出部分代码,仅供参考。

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}')

来源:https://github.com/guodongggg/fund

标签:python,flask,基金查询
0
投稿

猜你喜欢

  • Access命令行参数

    2007-08-23 15:35:00
  • Python Pandas如何获取和修改任意位置的值(at,iat,loc,iloc)

    2024-01-01 23:16:43
  • python编程通过蒙特卡洛法计算定积分详解

    2022-05-31 10:45:01
  • 盘点30个经典常用的JavaScript知识点

    2024-05-13 09:36:06
  • MySQL索引底层数据结构详情

    2024-01-23 09:47:53
  • 在select语句中使用top的一些小技巧

    2009-03-12 12:21:00
  • 银行账号输入格式化, 支持部分浏缆器

    2007-09-26 18:27:00
  • python中fastapi设置查询参数可选或必选

    2021-11-04 12:25:18
  • 在Golang中使用Redis的方法示例

    2024-04-28 09:16:01
  • PyQt 线程类 QThread使用详解

    2021-09-18 05:51:37
  • 什么是python类属性

    2021-07-31 20:27:16
  • 基于Python OpenCV和 dlib实现眨眼检测

    2021-05-28 18:50:28
  • 在Go程序中实现服务器重启的方法

    2024-04-26 17:34:54
  • SQLServer 日期函数大全(小结)

    2024-01-13 05:36:32
  • 对python中大文件的导入与导出方法详解

    2021-02-11 12:32:47
  • PyQt5每天必学之日历控件QCalendarWidget

    2023-05-30 12:12:48
  • 最新CSS兼容方案

    2008-08-13 13:20:00
  • 日期垂直排列的两种技巧

    2009-08-28 12:38:00
  • Python如何存储和读取ASCII码形式的byte数据

    2021-05-18 04:31:39
  • Redis数据库基础与ASP.NET Core缓存实现

    2024-01-26 18:19:09
  • asp之家 网络编程 m.aspxhome.com