chinadata 0.0.1__py3-none-any.whl → 0.0.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
chinadata/ca_data.py ADDED
@@ -0,0 +1,770 @@
1
+ import requests
2
+ import pandas as pd
3
+ import time
4
+
5
+
6
+
7
+
8
+ class pro_api:
9
+ def __init__(self, token):
10
+ self.token = token # 实例变量 name
11
+ set_token(token)
12
+
13
+ def query(self,api_name, fields='', **kwargs):
14
+ """
15
+ Fetch stock data from a given URL with specified parameters.
16
+
17
+ Parameters:
18
+
19
+ ts_code (str): The stock code to fetch data for.
20
+ start_date (str): The start date for fetching data (in 'YYYY-MM-DD HH:MM:SS' format).
21
+ end_date (str): The end date for fetching data (in 'YYYY-MM-DD HH:MM:SS' format).
22
+ freq (str): The frequency of the data (e.g., '1min', '5min','15min', '30min', '60min').
23
+ token (str): The access token for the data source. Default is provided.
24
+ offset (str, 可选): 数据偏移量,用于分页获取数据,默认为'0'。当需要获取更多数据时,可以增大此值。
25
+ freq (str, 可选): 数据频率,指定返回数据的时间间隔,例如'1min'(1分钟)、'5min'(5分钟)、'15min'(15分钟)、
26
+ '30min'(30分钟)、'60min'(60分钟,即1小时)等。默认为'60min'。
27
+
28
+ Returns:
29
+ pd.DataFrame: A DataFrame containing the fetched stock data.
30
+ """
31
+ # url="http://127.0.0.1:9002/tq"
32
+ url = "http://152.136.171.135:9002/tq"
33
+
34
+ params = {
35
+ 'token': get_token(),
36
+ 'api_name': api_name,
37
+ 'params': kwargs,
38
+ 'fields': fields,
39
+ }
40
+
41
+ response = requests.post(url, json=params)
42
+
43
+ if response.status_code == 200:
44
+ try:
45
+ data = response.json()
46
+ # print(data)
47
+ if data == 'token无效或已超期,请重新购买':
48
+ return data
49
+ else:
50
+ df = pd.DataFrame(data)
51
+ return df
52
+ except ValueError as e:
53
+ print("Error parsing JSON response:", e)
54
+ return None
55
+ else:
56
+ print(f"Failed to fetch data. Status code: {response.status_code}")
57
+ print(response.text)
58
+ return None
59
+
60
+
61
+
62
+ def fund_basic(self, api_name='fund_basic', **kwargs):
63
+ return self.query(token=self.token, api_name=api_name, **kwargs)
64
+
65
+ def stock_basic(self, api_name='stock_basic', **kwargs):
66
+ return self.query(token=self.token, api_name=api_name, **kwargs)
67
+
68
+ def trade_cal(self, api_name='trade_cal', **kwargs):
69
+ return self.query(token=self.token, api_name=api_name, **kwargs)
70
+
71
+ def daily(self, api_name='daily', **kwargs):
72
+ return self.query(token=self.token, api_name=api_name, **kwargs)
73
+
74
+ def adj_factor(self, api_name='adj_factor', **kwargs):
75
+ return self.query(token=self.token, api_name=api_name, **kwargs)
76
+
77
+ def daily_basic(self, api_name='daily_basic', **kwargs):
78
+ return self.query(token=self.token, api_name=api_name, **kwargs)
79
+
80
+ def income(self, api_name='income', **kwargs):
81
+ return self.query(token=self.token, api_name=api_name, **kwargs)
82
+
83
+ def balancesheet(self, api_name='balancesheet', **kwargs):
84
+ return self.query(token=self.token, api_name=api_name, **kwargs)
85
+
86
+ def cashflow(self, api_name='cashflow', **kwargs):
87
+ return self.query(token=self.token, api_name=api_name, **kwargs)
88
+
89
+ def forecast(self, api_name='forecast', **kwargs):
90
+ return self.query(token=self.token, api_name=api_name, **kwargs)
91
+
92
+ def express(self, api_name='express', **kwargs):
93
+ return self.query(token=self.token, api_name=api_name, **kwargs)
94
+
95
+ def moneyflow_hsgt(self, api_name='moneyflow_hsgt', **kwargs):
96
+ return self.query(token=self.token, api_name=api_name, **kwargs)
97
+
98
+ def hsgt_top10(self, api_name='hsgt_top10', **kwargs):
99
+ return self.query(token=self.token, api_name=api_name, **kwargs)
100
+
101
+ def ggt_top10(self, api_name='ggt_top10', **kwargs):
102
+ return self.query(token=self.token, api_name=api_name, **kwargs)
103
+
104
+ def coinpair(self, api_name='coinpair', **kwargs):
105
+ return self.query(token=self.token, api_name=api_name, **kwargs)
106
+
107
+ def coinlist(self, api_name='coinlist', **kwargs):
108
+ return self.query(token=self.token, api_name=api_name, **kwargs)
109
+
110
+ def coincap(self, api_name='coincap', **kwargs):
111
+ return self.query(token=self.token, api_name=api_name, **kwargs)
112
+
113
+ def margin(self, api_name='margin', **kwargs):
114
+ return self.query(token=self.token, api_name=api_name, **kwargs)
115
+
116
+ def margin_detail(self, api_name='margin_detail', **kwargs):
117
+ return self.query(token=self.token, api_name=api_name, **kwargs)
118
+
119
+ def top10_holders(self, api_name='top10_holders', **kwargs):
120
+ return self.query(token=self.token, api_name=api_name, **kwargs)
121
+
122
+ def top10_floatholders(self, api_name='top10_floatholders', **kwargs):
123
+ return self.query(token=self.token, api_name=api_name, **kwargs)
124
+
125
+ def coinfees(self, api_name='coinfees', **kwargs):
126
+ return self.query(token=self.token, api_name=api_name, **kwargs)
127
+
128
+ def coinexchanges(self, api_name='coinexchanges', **kwargs):
129
+ return self.query(token=self.token, api_name=api_name, **kwargs)
130
+
131
+ def jinse(self, api_name='jinse', **kwargs):
132
+ return self.query(token=self.token, api_name=api_name, **kwargs)
133
+
134
+ def btc8(self, api_name='btc8', **kwargs):
135
+ return self.query(token=self.token, api_name=api_name, **kwargs)
136
+
137
+ def bishijie(self, api_name='bishijie', **kwargs):
138
+ return self.query(token=self.token, api_name=api_name, **kwargs)
139
+
140
+ def exchange_ann(self, api_name='exchange_ann', **kwargs):
141
+ return self.query(token=self.token, api_name=api_name, **kwargs)
142
+
143
+ def btc_marketcap(self, api_name='btc_marketcap', **kwargs):
144
+ return self.query(token=self.token, api_name=api_name, **kwargs)
145
+
146
+ def btc_pricevol(self, api_name='btc_pricevol', **kwargs):
147
+ return self.query(token=self.token, api_name=api_name, **kwargs)
148
+
149
+ def fina_indicator(self, api_name='fina_indicator', **kwargs):
150
+ return self.query(token=self.token, api_name=api_name, **kwargs)
151
+
152
+ def fina_audit(self, api_name='fina_audit', **kwargs):
153
+ return self.query(token=self.token, api_name=api_name, **kwargs)
154
+
155
+ def fina_mainbz(self, api_name='fina_mainbz', **kwargs):
156
+ return self.query(token=self.token, api_name=api_name, **kwargs)
157
+
158
+ def tmt_twincomedetail(self, api_name='tmt_twincomedetail', **kwargs):
159
+ return self.query(token=self.token, api_name=api_name, **kwargs)
160
+
161
+ def tmt_twincome(self, api_name='tmt_twincome', **kwargs):
162
+ return self.query(token=self.token, api_name=api_name, **kwargs)
163
+
164
+ def exchange_twitter(self, api_name='exchange_twitter', **kwargs):
165
+ return self.query(token=self.token, api_name=api_name, **kwargs)
166
+
167
+ def index_basic(self, api_name='index_basic', **kwargs):
168
+ return self.query(token=self.token, api_name=api_name, **kwargs)
169
+
170
+ def index_daily(self, api_name='index_daily', **kwargs):
171
+ return self.query(token=self.token, api_name=api_name, **kwargs)
172
+
173
+ def index_weight(self, api_name='index_weight', **kwargs):
174
+ return self.query(token=self.token, api_name=api_name, **kwargs)
175
+
176
+ def namechange(self, api_name='namechange', **kwargs):
177
+ return self.query(token=self.token, api_name=api_name, **kwargs)
178
+
179
+ def dividend(self, api_name='dividend', **kwargs):
180
+ return self.query(token=self.token, api_name=api_name, **kwargs)
181
+
182
+ def hs_const(self, api_name='hs_const', **kwargs):
183
+ return self.query(token=self.token, api_name=api_name, **kwargs)
184
+
185
+ def twitter_kol(self, api_name='twitter_kol', **kwargs):
186
+ return self.query(token=self.token, api_name=api_name, **kwargs)
187
+
188
+ def top_list(self, api_name='top_list', **kwargs):
189
+ return self.query(token=self.token, api_name=api_name, **kwargs)
190
+
191
+ def top_inst(self, api_name='top_inst', **kwargs):
192
+ return self.query(token=self.token, api_name=api_name, **kwargs)
193
+
194
+ def pledge_stat(self, api_name='pledge_stat', **kwargs):
195
+ return self.query(token=self.token, api_name=api_name, **kwargs)
196
+
197
+ def pledge_detail(self, api_name='pledge_detail', **kwargs):
198
+ return self.query(token=self.token, api_name=api_name, **kwargs)
199
+
200
+ def stock_company(self, api_name='stock_company', **kwargs):
201
+ return self.query(token=self.token, api_name=api_name, **kwargs)
202
+
203
+ def bo_monthly(self, api_name='bo_monthly', **kwargs):
204
+ return self.query(token=self.token, api_name=api_name, **kwargs)
205
+
206
+ def bo_weekly(self, api_name='bo_weekly', **kwargs):
207
+ return self.query(token=self.token, api_name=api_name, **kwargs)
208
+
209
+ def bo_daily(self, api_name='bo_daily', **kwargs):
210
+ return self.query(token=self.token, api_name=api_name, **kwargs)
211
+
212
+ def bo_cinema(self, api_name='bo_cinema', **kwargs):
213
+ return self.query(token=self.token, api_name=api_name, **kwargs)
214
+
215
+ def fund_company(self, api_name='fund_company', **kwargs):
216
+ return self.query(token=self.token, api_name=api_name, **kwargs)
217
+
218
+ def fund_nav(self, api_name='fund_nav', **kwargs):
219
+ return self.query(token=self.token, api_name=api_name, **kwargs)
220
+
221
+ def fund_div(self, api_name='fund_div', **kwargs):
222
+ return self.query(token=self.token, api_name=api_name, **kwargs)
223
+
224
+ def fund_portfolio(self, api_name='fund_portfolio', **kwargs):
225
+ return self.query(token=self.token, api_name=api_name, **kwargs)
226
+
227
+ def new_share(self, api_name='new_share', **kwargs):
228
+ return self.query(token=self.token, api_name=api_name, **kwargs)
229
+
230
+ def repurchase(self, api_name='repurchase', **kwargs):
231
+ return self.query(token=self.token, api_name=api_name, **kwargs)
232
+
233
+ def concept(self, api_name='concept', **kwargs):
234
+ return self.query(token=self.token, api_name=api_name, **kwargs)
235
+
236
+ def concept_detail(self, api_name='concept_detail', **kwargs):
237
+ return self.query(token=self.token, api_name=api_name, **kwargs)
238
+
239
+ def fund_daily(self, api_name='fund_daily', **kwargs):
240
+ return self.query(token=self.token, api_name=api_name, **kwargs)
241
+
242
+ def index_dailybasic(self, api_name='index_dailybasic', **kwargs):
243
+ return self.query(token=self.token, api_name=api_name, **kwargs)
244
+
245
+ def fut_basic(self, api_name='fut_basic', **kwargs):
246
+ return self.query(token=self.token, api_name=api_name, **kwargs)
247
+
248
+ def trade_cal(self, api_name='trade_cal', **kwargs):
249
+ return self.query(token=self.token, api_name=api_name, **kwargs)
250
+
251
+ def fut_daily(self, api_name='fut_daily', **kwargs):
252
+ return self.query(token=self.token, api_name=api_name, **kwargs)
253
+
254
+ def fut_holding(self, api_name='fut_holding', **kwargs):
255
+ return self.query(token=self.token, api_name=api_name, **kwargs)
256
+
257
+ def fut_wsr(self, api_name='fut_wsr', **kwargs):
258
+ return self.query(token=self.token, api_name=api_name, **kwargs)
259
+
260
+ def fut_settle(self, api_name='fut_settle', **kwargs):
261
+ return self.query(token=self.token, api_name=api_name, **kwargs)
262
+
263
+ def news(self, api_name='news', **kwargs):
264
+ return self.query(token=self.token, api_name=api_name, **kwargs)
265
+
266
+ def weekly(self, api_name='weekly', **kwargs):
267
+ return self.query(token=self.token, api_name=api_name, **kwargs)
268
+
269
+ def monthly(self, api_name='monthly', **kwargs):
270
+ return self.query(token=self.token, api_name=api_name, **kwargs)
271
+
272
+ def shibor(self, api_name='shibor', **kwargs):
273
+ return self.query(token=self.token, api_name=api_name, **kwargs)
274
+
275
+ def shibor_quote(self, api_name='shibor_quote', **kwargs):
276
+ return self.query(token=self.token, api_name=api_name, **kwargs)
277
+
278
+ def shibor_lpr(self, api_name='shibor_lpr', **kwargs):
279
+ return self.query(token=self.token, api_name=api_name, **kwargs)
280
+
281
+ def libor(self, api_name='libor', **kwargs):
282
+ return self.query(token=self.token, api_name=api_name, **kwargs)
283
+
284
+ def hibor(self, api_name='hibor', **kwargs):
285
+ return self.query(token=self.token, api_name=api_name, **kwargs)
286
+
287
+ def cctv_news(self, api_name='cctv_news', **kwargs):
288
+ return self.query(token=self.token, api_name=api_name, **kwargs)
289
+
290
+ def index_daily(self, api_name='index_daily', **kwargs):
291
+ return self.query(token=self.token, api_name=api_name, **kwargs)
292
+
293
+ def film_record(self, api_name='film_record', **kwargs):
294
+ return self.query(token=self.token, api_name=api_name, **kwargs)
295
+
296
+ def opt_basic(self, api_name='opt_basic', **kwargs):
297
+ return self.query(token=self.token, api_name=api_name, **kwargs)
298
+
299
+ def opt_daily(self, api_name='opt_daily', **kwargs):
300
+ return self.query(token=self.token, api_name=api_name, **kwargs)
301
+
302
+ def share_float(self, api_name='share_float', **kwargs):
303
+ return self.query(token=self.token, api_name=api_name, **kwargs)
304
+
305
+ def block_trade(self, api_name='block_trade', **kwargs):
306
+ return self.query(token=self.token, api_name=api_name, **kwargs)
307
+
308
+ def disclosure_date(self, api_name='disclosure_date', **kwargs):
309
+ return self.query(token=self.token, api_name=api_name, **kwargs)
310
+
311
+ def stk_account(self, api_name='stk_account', **kwargs):
312
+ return self.query(token=self.token, api_name=api_name, **kwargs)
313
+
314
+ def stk_account_old(self, api_name='stk_account_old', **kwargs):
315
+ return self.query(token=self.token, api_name=api_name, **kwargs)
316
+
317
+ def stk_holdernumber(self, api_name='stk_holdernumber', **kwargs):
318
+ return self.query(token=self.token, api_name=api_name, **kwargs)
319
+
320
+ def moneyflow(self, api_name='moneyflow', **kwargs):
321
+ return self.query(token=self.token, api_name=api_name, **kwargs)
322
+
323
+ def index_weekly(self, api_name='index_weekly', **kwargs):
324
+ return self.query(token=self.token, api_name=api_name, **kwargs)
325
+
326
+ def index_monthly(self, api_name='index_monthly', **kwargs):
327
+ return self.query(token=self.token, api_name=api_name, **kwargs)
328
+
329
+ def wz_index(self, api_name='wz_index', **kwargs):
330
+ return self.query(token=self.token, api_name=api_name, **kwargs)
331
+
332
+ def gz_index(self, api_name='gz_index', **kwargs):
333
+ return self.query(token=self.token, api_name=api_name, **kwargs)
334
+
335
+ def stk_holdertrade(self, api_name='stk_holdertrade', **kwargs):
336
+ return self.query(token=self.token, api_name=api_name, **kwargs)
337
+
338
+ def anns_d(self, api_name='anns_d', **kwargs):
339
+ return self.query(token=self.token, api_name=api_name, **kwargs)
340
+
341
+ def fx_obasic(self, api_name='fx_obasic', **kwargs):
342
+ return self.query(token=self.token, api_name=api_name, **kwargs)
343
+
344
+ def fx_daily(self, api_name='fx_daily', **kwargs):
345
+ return self.query(token=self.token, api_name=api_name, **kwargs)
346
+
347
+ def teleplay_record(self, api_name='teleplay_record', **kwargs):
348
+ return self.query(token=self.token, api_name=api_name, **kwargs)
349
+
350
+ def index_classify(self, api_name='index_classify', **kwargs):
351
+ return self.query(token=self.token, api_name=api_name, **kwargs)
352
+
353
+ def stk_limit(self, api_name='stk_limit', **kwargs):
354
+ return self.query(token=self.token, api_name=api_name, **kwargs)
355
+
356
+ def cb_basic(self, api_name='cb_basic', **kwargs):
357
+ return self.query(token=self.token, api_name=api_name, **kwargs)
358
+
359
+ def cb_issue(self, api_name='cb_issue', **kwargs):
360
+ return self.query(token=self.token, api_name=api_name, **kwargs)
361
+
362
+ def cb_daily(self, api_name='cb_daily', **kwargs):
363
+ return self.query(token=self.token, api_name=api_name, **kwargs)
364
+
365
+ def hk_hold(self, api_name='hk_hold', **kwargs):
366
+ return self.query(token=self.token, api_name=api_name, **kwargs)
367
+
368
+ def fut_mapping(self, api_name='fut_mapping', **kwargs):
369
+ return self.query(token=self.token, api_name=api_name, **kwargs)
370
+
371
+ def hk_basic(self, api_name='hk_basic', **kwargs):
372
+ return self.query(token=self.token, api_name=api_name, **kwargs)
373
+
374
+ def hk_daily(self, api_name='hk_daily', **kwargs):
375
+ return self.query(token=self.token, api_name=api_name, **kwargs)
376
+
377
+ def stk_managers(self, api_name='stk_managers', **kwargs):
378
+ return self.query(token=self.token, api_name=api_name, **kwargs)
379
+
380
+ def stk_rewards(self, api_name='stk_rewards', **kwargs):
381
+ return self.query(token=self.token, api_name=api_name, **kwargs)
382
+
383
+ def major_news(self, api_name='major_news', **kwargs):
384
+ return self.query(token=self.token, api_name=api_name, **kwargs)
385
+
386
+ def ggt_daily(self, api_name='ggt_daily', **kwargs):
387
+ return self.query(token=self.token, api_name=api_name, **kwargs)
388
+
389
+ def ggt_monthly(self, api_name='ggt_monthly', **kwargs):
390
+ return self.query(token=self.token, api_name=api_name, **kwargs)
391
+
392
+ def fund_adj(self, api_name='fund_adj', **kwargs):
393
+ return self.query(token=self.token, api_name=api_name, **kwargs)
394
+
395
+ def yc_cb(self, api_name='yc_cb', **kwargs):
396
+ return self.query(token=self.token, api_name=api_name, **kwargs)
397
+
398
+ def ncov_num(self, api_name='ncov_num', **kwargs):
399
+ return self.query(token=self.token, api_name=api_name, **kwargs)
400
+
401
+ def fund_share(self, api_name='fund_share', **kwargs):
402
+ return self.query(token=self.token, api_name=api_name, **kwargs)
403
+
404
+ def fund_manager(self, api_name='fund_manager', **kwargs):
405
+ return self.query(token=self.token, api_name=api_name, **kwargs)
406
+
407
+ def index_global(self, api_name='index_global', **kwargs):
408
+ return self.query(token=self.token, api_name=api_name, **kwargs)
409
+
410
+ def ncov_global(self, api_name='ncov_global', **kwargs):
411
+ return self.query(token=self.token, api_name=api_name, **kwargs)
412
+
413
+ def suspend_d(self, api_name='suspend_d', **kwargs):
414
+ return self.query(token=self.token, api_name=api_name, **kwargs)
415
+
416
+ def daily_info(self, api_name='daily_info', **kwargs):
417
+ return self.query(token=self.token, api_name=api_name, **kwargs)
418
+
419
+ def fut_weekly_detail(self, api_name='fut_weekly_detail', **kwargs):
420
+ return self.query(token=self.token, api_name=api_name, **kwargs)
421
+
422
+ def us_tycr(self, api_name='us_tycr', **kwargs):
423
+ return self.query(token=self.token, api_name=api_name, **kwargs)
424
+
425
+ def us_trycr(self, api_name='us_trycr', **kwargs):
426
+ return self.query(token=self.token, api_name=api_name, **kwargs)
427
+
428
+ def us_tbr(self, api_name='us_tbr', **kwargs):
429
+ return self.query(token=self.token, api_name=api_name, **kwargs)
430
+
431
+ def us_tltr(self, api_name='us_tltr', **kwargs):
432
+ return self.query(token=self.token, api_name=api_name, **kwargs)
433
+
434
+ def us_trltr(self, api_name='us_trltr', **kwargs):
435
+ return self.query(token=self.token, api_name=api_name, **kwargs)
436
+
437
+ def cn_gdp(self, api_name='cn_gdp', **kwargs):
438
+ return self.query(token=self.token, api_name=api_name, **kwargs)
439
+
440
+ def cn_cpi(self, api_name='cn_cpi', **kwargs):
441
+ return self.query(token=self.token, api_name=api_name, **kwargs)
442
+
443
+ def eco_cal(self, api_name='eco_cal', **kwargs):
444
+ return self.query(token=self.token, api_name=api_name, **kwargs)
445
+
446
+ def coin_bar(self, api_name='coin_bar', **kwargs):
447
+ return self.query(token=self.token, api_name=api_name, **kwargs)
448
+
449
+ def cn_m(self, api_name='cn_m', **kwargs):
450
+ return self.query(token=self.token, api_name=api_name, **kwargs)
451
+
452
+ def cn_ppi(self, api_name='cn_ppi', **kwargs):
453
+ return self.query(token=self.token, api_name=api_name, **kwargs)
454
+
455
+ def cb_price_chg(self, api_name='cb_price_chg', **kwargs):
456
+ return self.query(token=self.token, api_name=api_name, **kwargs)
457
+
458
+ def cb_share(self, api_name='cb_share', **kwargs):
459
+ return self.query(token=self.token, api_name=api_name, **kwargs)
460
+
461
+ def hk_tradecal(self, api_name='hk_tradecal', **kwargs):
462
+ return self.query(token=self.token, api_name=api_name, **kwargs)
463
+
464
+ def us_basic(self, api_name='us_basic', **kwargs):
465
+ return self.query(token=self.token, api_name=api_name, **kwargs)
466
+
467
+ def us_tradecal(self, api_name='us_tradecal', **kwargs):
468
+ return self.query(token=self.token, api_name=api_name, **kwargs)
469
+
470
+ def us_daily(self, api_name='us_daily', **kwargs):
471
+ return self.query(token=self.token, api_name=api_name, **kwargs)
472
+
473
+ def bak_daily(self, api_name='bak_daily', **kwargs):
474
+ return self.query(token=self.token, api_name=api_name, **kwargs)
475
+
476
+ def repo_daily(self, api_name='repo_daily', **kwargs):
477
+ return self.query(token=self.token, api_name=api_name, **kwargs)
478
+
479
+ def coin_pair(self, api_name='coin_pair', **kwargs):
480
+ return self.query(token=self.token, api_name=api_name, **kwargs)
481
+
482
+ def ths_index(self, api_name='ths_index', **kwargs):
483
+ return self.query(token=self.token, api_name=api_name, **kwargs)
484
+
485
+ def ths_daily(self, api_name='ths_daily', **kwargs):
486
+ return self.query(token=self.token, api_name=api_name, **kwargs)
487
+
488
+ def ths_member(self, api_name='ths_member', **kwargs):
489
+ return self.query(token=self.token, api_name=api_name, **kwargs)
490
+
491
+ def bak_basic(self, api_name='bak_basic', **kwargs):
492
+ return self.query(token=self.token, api_name=api_name, **kwargs)
493
+
494
+ def fund_sales_ratio(self, api_name='fund_sales_ratio', **kwargs):
495
+ return self.query(token=self.token, api_name=api_name, **kwargs)
496
+
497
+ def fund_sales_vol(self, api_name='fund_sales_vol', **kwargs):
498
+ return self.query(token=self.token, api_name=api_name, **kwargs)
499
+
500
+ def broker_recommend(self, api_name='broker_recommend', **kwargs):
501
+ return self.query(token=self.token, api_name=api_name, **kwargs)
502
+
503
+ def sz_daily_info(self, api_name='sz_daily_info', **kwargs):
504
+ return self.query(token=self.token, api_name=api_name, **kwargs)
505
+
506
+ def cb_call(self, api_name='cb_call', **kwargs):
507
+ return self.query(token=self.token, api_name=api_name, **kwargs)
508
+
509
+ def bond_blk(self, api_name='bond_blk', **kwargs):
510
+ return self.query(token=self.token, api_name=api_name, **kwargs)
511
+
512
+ def bond_blk_detail(self, api_name='bond_blk_detail', **kwargs):
513
+ return self.query(token=self.token, api_name=api_name, **kwargs)
514
+
515
+ def ccass_hold_detail(self, api_name='ccass_hold_detail', **kwargs):
516
+ return self.query(token=self.token, api_name=api_name, **kwargs)
517
+
518
+ def stk_surv(self, api_name='stk_surv', **kwargs):
519
+ return self.query(token=self.token, api_name=api_name, **kwargs)
520
+
521
+ def sge_basic(self, api_name='sge_basic', **kwargs):
522
+ return self.query(token=self.token, api_name=api_name, **kwargs)
523
+
524
+ def sge_daily(self, api_name='sge_daily', **kwargs):
525
+ return self.query(token=self.token, api_name=api_name, **kwargs)
526
+
527
+ def report_rc(self, api_name='report_rc', **kwargs):
528
+ return self.query(token=self.token, api_name=api_name, **kwargs)
529
+
530
+ def cyq_perf(self, api_name='cyq_perf', **kwargs):
531
+ return self.query(token=self.token, api_name=api_name, **kwargs)
532
+
533
+ def cyq_chips(self, api_name='cyq_chips', **kwargs):
534
+ return self.query(token=self.token, api_name=api_name, **kwargs)
535
+
536
+ def ccass_hold(self, api_name='ccass_hold', **kwargs):
537
+ return self.query(token=self.token, api_name=api_name, **kwargs)
538
+
539
+ def stk_factor(self, api_name='stk_factor', **kwargs):
540
+ return self.query(token=self.token, api_name=api_name, **kwargs)
541
+
542
+ def limit_list_d(self, api_name='limit_list_d', **kwargs):
543
+ return self.query(token=self.token, api_name=api_name, **kwargs)
544
+
545
+ def stock_mx(self, api_name='stock_mx', **kwargs):
546
+ return self.query(token=self.token, api_name=api_name, **kwargs)
547
+
548
+ def stock_vx(self, api_name='stock_vx', **kwargs):
549
+ return self.query(token=self.token, api_name=api_name, **kwargs)
550
+
551
+ def hk_mins(self, api_name='hk_mins', **kwargs):
552
+ return self.query(token=self.token, api_name=api_name, **kwargs)
553
+
554
+ def cb_rate(self, api_name='cb_rate', **kwargs):
555
+ return self.query(token=self.token, api_name=api_name, **kwargs)
556
+
557
+ def ci_daily(self, api_name='ci_daily', **kwargs):
558
+ return self.query(token=self.token, api_name=api_name, **kwargs)
559
+
560
+ def sf_month(self, api_name='sf_month', **kwargs):
561
+ return self.query(token=self.token, api_name=api_name, **kwargs)
562
+
563
+ def hm_list(self, api_name='hm_list', **kwargs):
564
+ return self.query(token=self.token, api_name=api_name, **kwargs)
565
+
566
+ def hm_detail(self, api_name='hm_detail', **kwargs):
567
+ return self.query(token=self.token, api_name=api_name, **kwargs)
568
+
569
+ def ft_mins(self, api_name='ft_mins', **kwargs):
570
+ return self.query(token=self.token, api_name=api_name, **kwargs)
571
+
572
+ def realtime_quote(self, api_name='realtime_quote', **kwargs):
573
+ return self.query(token=self.token, api_name=api_name, **kwargs)
574
+
575
+ def realtime_tick(self, api_name='realtime_tick', **kwargs):
576
+ return self.query(token=self.token, api_name=api_name, **kwargs)
577
+
578
+ def realtime_list(self, api_name='realtime_list', **kwargs):
579
+ return self.query(token=self.token, api_name=api_name, **kwargs)
580
+
581
+ def ths_hot(self, api_name='ths_hot', **kwargs):
582
+ return self.query(token=self.token, api_name=api_name, **kwargs)
583
+
584
+ def dc_hot(self, api_name='dc_hot', **kwargs):
585
+ return self.query(token=self.token, api_name=api_name, **kwargs)
586
+
587
+ def bc_otcqt(self, api_name='bc_otcqt', **kwargs):
588
+ return self.query(token=self.token, api_name=api_name, **kwargs)
589
+
590
+ def bc_bestotcqt(self, api_name='bc_bestotcqt', **kwargs):
591
+ return self.query(token=self.token, api_name=api_name, **kwargs)
592
+
593
+ def cn_pmi(self, api_name='cn_pmi', **kwargs):
594
+ return self.query(token=self.token, api_name=api_name, **kwargs)
595
+
596
+ def margin_secs(self, api_name='margin_secs', **kwargs):
597
+ return self.query(token=self.token, api_name=api_name, **kwargs)
598
+
599
+ def sw_daily(self, api_name='sw_daily', **kwargs):
600
+ return self.query(token=self.token, api_name=api_name, **kwargs)
601
+
602
+ def stk_factor_pro(self, api_name='stk_factor_pro', **kwargs):
603
+ return self.query(token=self.token, api_name=api_name, **kwargs)
604
+
605
+ def stk_premarket(self, api_name='stk_premarket', **kwargs):
606
+ return self.query(token=self.token, api_name=api_name, **kwargs)
607
+
608
+ def slb_len(self, api_name='slb_len', **kwargs):
609
+ return self.query(token=self.token, api_name=api_name, **kwargs)
610
+
611
+ def slb_sec(self, api_name='slb_sec', **kwargs):
612
+ return self.query(token=self.token, api_name=api_name, **kwargs)
613
+
614
+ def slb_sec_detail(self, api_name='slb_sec_detail', **kwargs):
615
+ return self.query(token=self.token, api_name=api_name, **kwargs)
616
+
617
+ def slb_len_mm(self, api_name='slb_len_mm', **kwargs):
618
+ return self.query(token=self.token, api_name=api_name, **kwargs)
619
+
620
+ def index_member_all(self, api_name='index_member_all', **kwargs):
621
+ return self.query(token=self.token, api_name=api_name, **kwargs)
622
+
623
+ def stk_weekly_monthly(self, api_name='stk_weekly_monthly', **kwargs):
624
+ return self.query(token=self.token, api_name=api_name, **kwargs)
625
+
626
+ def fut_weekly_monthly(self, api_name='fut_weekly_monthly', **kwargs):
627
+ return self.query(token=self.token, api_name=api_name, **kwargs)
628
+
629
+ def us_daily_adj(self, api_name='us_daily_adj', **kwargs):
630
+ return self.query(token=self.token, api_name=api_name, **kwargs)
631
+
632
+ def hk_daily_adj(self, api_name='hk_daily_adj', **kwargs):
633
+ return self.query(token=self.token, api_name=api_name, **kwargs)
634
+
635
+ def rt_fut_min(self, api_name='rt_fut_min', **kwargs):
636
+ return self.query(token=self.token, api_name=api_name, **kwargs)
637
+
638
+ def opt_mins(self, api_name='opt_mins', **kwargs):
639
+ return self.query(token=self.token, api_name=api_name, **kwargs)
640
+
641
+ def moneyflow_ind_ths(self, api_name='moneyflow_ind_ths', **kwargs):
642
+ return self.query(token=self.token, api_name=api_name, **kwargs)
643
+
644
+ def moneyflow_ind_dc(self, api_name='moneyflow_ind_dc', **kwargs):
645
+ return self.query(token=self.token, api_name=api_name, **kwargs)
646
+
647
+ def moneyflow_mkt_dc(self, api_name='moneyflow_mkt_dc', **kwargs):
648
+ return self.query(token=self.token, api_name=api_name, **kwargs)
649
+
650
+ def kpl_list(self, api_name='kpl_list', **kwargs):
651
+ return self.query(token=self.token, api_name=api_name, **kwargs)
652
+
653
+ def moneyflow_ths(self, api_name='moneyflow_ths', **kwargs):
654
+ return self.query(token=self.token, api_name=api_name, **kwargs)
655
+
656
+ def moneyflow_dc(self, api_name='moneyflow_dc', **kwargs):
657
+ return self.query(token=self.token, api_name=api_name, **kwargs)
658
+
659
+ def kpl_concept(self, api_name='kpl_concept', **kwargs):
660
+ return self.query(token=self.token, api_name=api_name, **kwargs)
661
+
662
+ def kpl_concept_cons(self, api_name='kpl_concept_cons', **kwargs):
663
+ return self.query(token=self.token, api_name=api_name, **kwargs)
664
+
665
+ def stk_auction_o(self, api_name='stk_auction_o', **kwargs):
666
+ return self.query(token=self.token, api_name=api_name, **kwargs)
667
+
668
+ def stk_auction_c(self, api_name='stk_auction_c', **kwargs):
669
+ return self.query(token=self.token, api_name=api_name, **kwargs)
670
+
671
+ def limit_list_ths(self, api_name='limit_list_ths', **kwargs):
672
+ return self.query(token=self.token, api_name=api_name, **kwargs)
673
+
674
+ def limit_step(self, api_name='limit_step', **kwargs):
675
+ return self.query(token=self.token, api_name=api_name, **kwargs)
676
+
677
+ def limit_cpt_list(self, api_name='limit_cpt_list', **kwargs):
678
+ return self.query(token=self.token, api_name=api_name, **kwargs)
679
+
680
+
681
+ import pandas as pd
682
+ import os
683
+
684
+ BK = 'bk'
685
+
686
+ def set_token(token):
687
+ df = pd.DataFrame([token], columns=['token'])
688
+ user_home = os.path.expanduser('~')
689
+ fp = os.path.join(user_home, 'c_t.csv')
690
+ df.to_csv(fp, index=False)
691
+
692
+
693
+ def get_token():
694
+ user_home = os.path.expanduser('~')
695
+ fp = os.path.join(user_home, 'c_t.csv')
696
+ if os.path.exists(fp):
697
+
698
+ df = pd.read_csv(fp)
699
+
700
+
701
+ return str(df.loc[0]['token'])
702
+ else:
703
+ print("请设置token")
704
+ return None
705
+
706
+
707
+
708
+
709
+
710
+ import warnings
711
+ warnings.simplefilter(action='ignore', category=FutureWarning)#消除告警
712
+
713
+ import requests
714
+
715
+
716
+
717
+ #
718
+ #
719
+ def pro_bar(ts_code='', api=None, start_date='', end_date='', freq='D', asset='E',
720
+ exchange='',
721
+ adj = None,
722
+ ma = [],
723
+ factors = None,
724
+ adjfactor = False,
725
+ offset = None,
726
+ limit = None,
727
+ fields = '',
728
+ contract_type = ''):
729
+ """
730
+
731
+ """
732
+ # url = "http://127.0.0.1:9002/tp"
733
+ url = "http://152.136.171.135:9002/tp"
734
+ params = {
735
+ 'token':get_token(),
736
+ 'ts_code':ts_code,
737
+ 'api':api,
738
+ 'start_date':start_date,
739
+ 'end_date':end_date,
740
+ 'freq':freq,
741
+ 'asset':asset,
742
+ 'exchange':exchange,
743
+ 'adj' :adj,
744
+ 'ma' :ma,
745
+ "factors" : factors,
746
+ "adjfactor" : adjfactor,
747
+ "offset" : offset,
748
+ "limit" :limit,
749
+ "fields" : fields,
750
+ "contract_type" : contract_type
751
+ }
752
+
753
+ response = requests.post(url, json=params,)
754
+
755
+ if response.status_code == 200:
756
+ try:
757
+ data = response.json()
758
+ # print(data)
759
+ if data == 'token无效或已超期,请重新购买':
760
+ return data
761
+ else:
762
+ df = pd.DataFrame(data)
763
+ return df
764
+ except ValueError as e:
765
+ print("Error parsing JSON response:", e)
766
+ return None
767
+ else:
768
+ print(f"Failed to fetch data. Status code: {response.status_code}")
769
+ print(response.text)
770
+ return None
chinadata/example.py CHANGED
@@ -1,10 +1,19 @@
1
- #1# pip install chinadata
2
- from chinadata.pp import get_stock_data
1
+ #
2
+ """
3
+ 1、安装对应库
4
+ pip install chinadata
3
5
 
4
- df = get_stock_data(token='41aed146ecf59f5b7628bc6fcacf675104',ts_code='150018.SZ', start_date='20180101', end_date='20181029',asset='FD')
5
- print(df)
6
+ """
7
+ #2、
8
+ import chinadata.ca_data as ts
9
+ pro = ts.pro_api('9e84ed87f29cf43fc70b5198b1e4cd4093')
10
+
11
+ #查询当前所有正常上市交易的股票列表
12
+ data = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
13
+ print(data)
14
+ #查询基金列表,
15
+ ts.set_token('9e84ed87f29cf43fc70b5198b1e4cd4093')
16
+ data = (pro.fund_basic( fields='ts_code,symbol,name,area,industry,list_date'))
17
+ print(data)
6
18
 
7
- from chinadata.qq import fetch_stock_data
8
19
 
9
- df = fetch_stock_data(token='41aed146ecf59f5b7628bc6fcacf675104',api_name='stock_basic',fields='ts_code,symbol,name,area,industry,list_date',exchange='', list_status='L', )
10
- print(df)
chinadata/pp.py CHANGED
@@ -6,7 +6,7 @@ warnings.simplefilter(action='ignore', category=FutureWarning)#消除告警
6
6
  import requests
7
7
  import pandas as pd
8
8
 
9
- def get_stock_data(token,ts_code='', api=None, start_date='', end_date='', freq='D', asset='E',
9
+ def get_bar_data(token,ts_code='', api=None, start_date='', end_date='', freq='D', asset='E',
10
10
  exchange='',
11
11
  adj = None,
12
12
  ma = [],
@@ -19,7 +19,7 @@ def get_stock_data(token,ts_code='', api=None, start_date='', end_date='', freq=
19
19
  """
20
20
 
21
21
  """
22
- # url = "http://127.0.01:9002/tp"
22
+ # url = "http://127.0.0.1:9002/tp"
23
23
  url = "http://152.136.171.135:9002/tp"
24
24
  params = {
25
25
  'token':token,
chinadata/qq.py CHANGED
@@ -3,7 +3,7 @@ import pandas as pd
3
3
  import time
4
4
 
5
5
 
6
- def fetch_stock_data(token,api_name,fields='',**kwargs):
6
+ def get_query_data(token,api_name,fields='',**kwargs):
7
7
  """
8
8
  Fetch stock data from a given URL with specified parameters.
9
9
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: chinadata
3
- Version: 0.0.1
3
+ Version: 0.0.3
4
4
  Author: xc
5
5
  Author-email: utyu@gmail.com
6
6
  Platform: any
@@ -0,0 +1,9 @@
1
+ chinadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ chinadata/ca_data.py,sha256=NAMzejFHQj63aCTpx26ABFlaIczUGcCH6f-qL54EegQ,32435
3
+ chinadata/example.py,sha256=pTJJbXJwfIdfOHmmch49USeMfHEArhZcyW1FVQCgYtc,505
4
+ chinadata/pp.py,sha256=bOQk0M3MVJuFi8nS6j-YKOFL4-ye4xXZgGT1aQMbR9Y,1662
5
+ chinadata/qq.py,sha256=JVrJYdgln2GEWx0s86rK89hQrSmq2Afjuddu3j-X-pQ,1952
6
+ chinadata-0.0.3.dist-info/METADATA,sha256=FzFzVL--ptsjcYaAXg-p9x1YMWm9V6IOesQQrIqCBUY,163
7
+ chinadata-0.0.3.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
8
+ chinadata-0.0.3.dist-info/top_level.txt,sha256=Ptxvu9uzRHP4kVGRf413KuwSvsY2mk_KgQJ6ssWwisU,10
9
+ chinadata-0.0.3.dist-info/RECORD,,
@@ -1,8 +0,0 @@
1
- chinadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- chinadata/example.py,sha256=ebiZrMrz3eCln1FHamHERnd-ZoBjTlCInNNTLQpI11A,453
3
- chinadata/pp.py,sha256=BYvI9cMFXPl3PyfBWJXMAuiW_g1MXvhYE50oUyf7CNY,1663
4
- chinadata/qq.py,sha256=rVAlpYx_6YxPq2X60EhJBeWKjPmJWBYRTQR12V6Bi9Y,1954
5
- chinadata-0.0.1.dist-info/METADATA,sha256=16jbxy5vNdFZ2PrTPEj3RF6yDW_E3pFUz_Pl7jL8Ktg,163
6
- chinadata-0.0.1.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
7
- chinadata-0.0.1.dist-info/top_level.txt,sha256=Ptxvu9uzRHP4kVGRf413KuwSvsY2mk_KgQJ6ssWwisU,10
8
- chinadata-0.0.1.dist-info/RECORD,,