-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathqa.py
executable file
·89 lines (74 loc) · 2.38 KB
/
qa.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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
from os import linesep
import sys
import my_fig
import matplotlib.pyplot as plt
import matplotlib
import state_line_abs
import avg_line
import valuation_line
import ma_line
import sys
import json
from matplotlib.pyplot import MultipleLocator
def draw_ma(fig, code):
# code = "000905"
print("draw_ma:{}".format(code))
title = fund_codes[code]
# 加载原数据
with open("./db_{}.json".format(code), "rb")as f:
text = f.read()
origin = json.loads(text)
# 在fig中添加一个子画板
plot = fig.add_sub_plot()
# 在子画板上画净值曲线
plot.add_line(valuation_line.Valuation(origin, title))
# 在子画板上画MA20曲线
plot.add_line(ma_line.MA(origin, 20, "green"))
# # 在子画板上画MA60曲线
# plot.add_line(ma_line.MA(origin, 60, "gold"))
# # 在子画板上画MA120曲线
# plot.add_line(ma_line.MA(origin, 120, "black"))
def draw_avg(fig, code):
print("draw_ma:{}".format(code))
title = fund_codes[code]
# 加载原数据
with open("./db_{}.json".format(code), "rb")as f:
text = f.read()
origin = json.loads(text)
# 在fig中添加一个子画板
plot = fig.add_sub_plot()
# 在子画板上画净值曲线
plot.add_line(valuation_line.Valuation(origin, title))
# 在子画板上画历年平均值线
plot.add_line(avg_line.AvgLine(origin))
fund_codes = {
"502000": "西部利得中证500指数增强A",
# "002979": "广发中证全指金融地产联接C",
"005918": "天弘沪深300",
"006341": "中金msci",
"003567": "华夏行业景气混合",
"000968": "广发养老指数A",
}
if __name__ == "__main__":
matplotlib.rcParams['font.family'] = 'Arial Unicode MS'
target = ""
real_fund_codes = fund_codes
qi_type = "ma"
if len(sys.argv) > 1:
qi_type = sys.argv[1]
if len(sys.argv) > 2:
target = sys.argv[2]
real_fund_codes = {k: v for k, v in fund_codes.items() if k == target}
print(real_fund_codes)
if len(real_fund_codes) == 0:
raise Exception("没有找到 {}".format(target))
# 创建一个figure
fig = my_fig.Fig(len(real_fund_codes))
for code in real_fund_codes:
if qi_type == "ma":
draw_ma(fig, code)
elif qi_type == "avg":
draw_avg(fig, code)
plt.xticks(rotation=315)
plt.grid(True)
plt.show()