项目地址:
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 基金代码列表
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
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财经数据爬虫
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
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 基金查询工具的资料请关注服务器之家其它相关文章!
原文链接:https://github.com/guodongggg/fund