MCPcopy
hub / github.com/shidenggui/easyquotation / funda

Method funda

easyquotation/jsl.py:131–160  ·  view source on GitHub ↗

以字典形式返回分级A数据 :param fields:利率范围,形如['+3.0%', '6.0%'] :param min_volume:最小交易量,单位万元 :param min_discount:最小折价率, 单位% :param ignore_nodown:是否忽略无下折品种,默认 False :param forever: 是否选择永续品种,默认 False

(self, fields=[], min_volume=0, min_discount=0, ignore_nodown=False, forever=False)

Source from the content-addressed store, hash-verified

129 return float(per.strip('%')) / 100.
130
131 def funda(self, fields=[], min_volume=0, min_discount=0, ignore_nodown=False, forever=False):
132 """以字典形式返回分级A数据
133 :param fields:利率范围,形如['+3.0%', '6.0%']
134 :param min_volume:最小交易量,单位万元
135 :param min_discount:最小折价率, 单位%
136 :param ignore_nodown:是否忽略无下折品种,默认 False
137 :param forever: 是否选择永续品种,默认 False
138 """
139 # 添加当前的ctime
140 self.__funda_url = self.__funda_url.format(ctime=int(time.time()))
141 # 请求数据
142 rep = requests.get(self.__funda_url)
143 # 获取返回的json字符串
144 fundajson = json.loads(rep.text)
145 # 格式化返回的json字符串
146 data = self.formatfundajson(fundajson)
147 # 过滤小于指定交易量的数据
148 if min_volume:
149 data = {k: data[k] for k in data if float(data[k]['funda_volume']) > min_volume}
150 if len(fields):
151 data = {k: data[k] for k in data if data[k]['coupon_descr_s'] in ''.join(fields)}
152 if ignore_nodown:
153 data = {k: data[k] for k in data if data[k]['fund_descr'].find('无下折') == -1}
154 if forever:
155 data = {k: data[k] for k in data if data[k]['funda_left_year'].find('永续') != -1}
156 if min_discount:
157 data = {k: data[k] for k in data if float(data[k]['funda_discount_rt'][:-1]) > min_discount}
158
159 self.__funda = data
160 return self.__funda
161
162 def fundm(self):
163 """以字典形式返回分级母基数据

Callers

nothing calls this directly

Calls 1

formatfundajsonMethod · 0.95

Tested by

no test coverage detected