admin
2023-08-14 21fd3adb464a8a3032e7951e0c5d345e45c66873
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
B
XÔÕd\ ã@sždZddlZddlZddlZddlZddlZddlmZddlm    Z    ddl
m Z Gdd„dƒZ Gdd    „d    ƒZ Gd
d „d eƒZed kršd e_ee dd¡ƒdS)u
历史K线服务
éN)Ú
RedisUtils)Útool)Ú redis_managerc@speZdZdZedd„ƒZedd„ƒZedd„ƒZedd    „ƒZed
d „ƒZ    ed d „ƒZ
edd„ƒZ edd„ƒZ dS)Ú JueJinHttpApizhttp://193.112.35.168:10009/c CsÎdd„}d}|j›|›}tj||d}|j}t |¡}|ddkrL|d}|rÆt|ƒtkr˜xd|D]0}    t|    ƒtkrtqbx|    D]}
||    |
ƒ|    |
<qzWqbWn*t|ƒtkrÂx|D]}
|||
ƒ||
<qªW|SdSdS)NcSsFt|ƒtkrB| d¡dkrB| d¡dkrB| d¡dkrBtj |¡S|S)NÚTéÿÿÿÿú:ú+)ÚtypeÚstrÚfindÚdatetimeÚ fromisoformat)Úval©rú=D:\workspace\GP\gp_middle_server\utils\history_k_data_util.pyÚ deformat_dates,
 z.JueJinHttpApi.__request.<locals>.deformat_date)ÚjsonÚcoderÚdata)    Ú_JueJinHttpApi__BASE_URLÚrequestsZpostÚtextrÚloadsr
ÚlistÚdict) ÚclsÚpath_strÚ    data_jsonrÚfdataÚurlÚresponseÚresultZ
resultJsonÚdÚkrrrÚ    __requests(
 
 
 
zJueJinHttpApi.__requestcCs| d||dœ¡S)NÚget_instruments)ÚsymbolsÚfields)Ú_JueJinHttpApi__request)rr'r(rrrr&1szJueJinHttpApi.get_instrumentsc    Cs| d|||||dœ¡S)NÚ    history_n)ÚsymbolÚ    frequencyÚcountÚadjustr()r))rr+r,r-r.r(rrrr*5szJueJinHttpApi.history_ncCs| d||dœ¡S)NÚcurrent)r'r()r))rr'r(rrrr/:szJueJinHttpApi.currentc    Cs| d|||||dœ¡S)Nr&)Ú    exchangesÚ    sec_typesÚskip_suspendedÚskip_str()r))rr0r1r2r3r(rrrÚget_exchanges_codes>sz!JueJinHttpApi.get_exchanges_codescCs| d||dœ¡S)NÚget_previous_trading_date)ÚexchangeÚdate)r))rr6r7rrrr5Dsz'JueJinHttpApi.get_previous_trading_datecCs| d||dœ¡S)NÚget_next_trading_date)r6r7)r))rr6r7rrrr8Hsz#JueJinHttpApi.get_next_trading_datecCs| d|||dœ¡S)NÚget_trading_dates)r6Ú
start_dateÚend_date)r))rr6r:r;rrrr9LszJueJinHttpApi.get_trading_datesN) Ú__name__Ú
__module__Ú __qualname__rÚ classmethodr)r&r*r/r4r5r8r9rrrrrs       rc@s†eZdZe d¡Zedd„ƒZedd„ƒZeddd„ƒZ    edd    d
„ƒZ
ed d „ƒZ ed d„ƒZ edd„ƒZ edd„ƒZedd„ƒZdS)Ú    JueJinApirc    CsV|j ¡}z:tj|ddd}tj|ddd}tj|ddd}|||fSt |¡XdS)Nzjuejin-account-idF)Ú    auto_freezjuejin-strategy-idz juejin-token)Ú_JueJinApi__redisManagerÚgetRedisrÚgetÚrealse)rÚredisZ
account_idZ strategy_idÚtokenrrrÚgetJueJinAccountInfoVs
 
zJueJinApi.getJueJinAccountInfocCsXg}xN|D]F}|dd…dkr0| d |¡¡q
|dd…dkr
| d |¡¡q
W|S)NréÚ00zSZSE.{}Z60zSHSE.{})ÚappendÚformat)rÚcodesrr#rrrÚ get_juejin_code_list_with_prefixas
z*JueJinApi.get_juejin_code_list_with_prefixNcCs&|sgS| |¡}tjd |¡|dS)Nú,)r'r()rNrr&Újoin)rrMr(r'rrrÚget_gp_latest_infoks
zJueJinApi.get_gp_latest_infocCs(| |g¡}tj|dd|d|d}|S)NrZ1dé)r+r,r-r.r()rNrr*)rrr-r(r'ÚresultsrrrÚget_history_tick_nrs zJueJinApi.get_history_tick_ncCs*|sgS| |¡}tjd |¡dd}|S)NrOÚ)r'r()rNrr/rP)rrMr'rrrrÚget_gp_current_infoxs
 
zJueJinApi.get_gp_current_infocCstj|dgddddS)NrRTzLsymbol,sec_type,sec_id,sec_name,listed_date,sec_level,is_suspended,pre_close)r0r1r2r3r()rr4)rr0rrrr4ƒs zJueJinApi.get_exchanges_codescCs t d|¡S)NÚSHSE)rr5)rr7rrrr5‰sz#JueJinApi.get_previous_trading_datecCs t d|¡S)NrW)rr8)rr7rrrr8ŽszJueJinApi.get_next_trading_datecCst d||¡S)NrW)rr9)rr:r;rrrr9“szJueJinApi.get_trading_dates)N)N)r<r=r>rÚ RedisManagerrBr?rHrNrQrTrVr4r5r8r9rrrrr@Rs
 
     r@c@sˆeZdZeddd„ƒZeddd„ƒZedd„ƒZedd    „ƒZed
d „ƒZed d „ƒZ    edd„ƒZ
edd„ƒZ edd„ƒZ edd„ƒZ dS)ÚHistoryKDatasUtilsNcCs t ||¡S)N)r@rQ)rrMr(rrrrQšsz%HistoryKDatasUtils.get_gp_latest_infocCst |||¡S)N)r@rT)rrr-r(rrrrTžsz%HistoryKDatasUtils.get_history_tick_ncCs
t |¡S)N)r@rV)rrMrrrrV¢sz&HistoryKDatasUtils.get_gp_current_infocCs
t |¡S)N)r@r5)rr7rrrr5§sz,HistoryKDatasUtils.get_previous_trading_datecCs
t |¡S)N)r@r8)rr7rrrr8¬sz(HistoryKDatasUtils.get_next_trading_datecCs t ||¡S)N)r@r9)rr:r;rrrr9°sz$HistoryKDatasUtils.get_trading_datescCsH| |¡}g}x4|D],}|d d¡d}|d}| ||f¡qW|S)Nr+Ú.rRÚprice)rVÚsplitrK)rrMrÚpricesÚitemrr[rrrÚ get_now_price´s
 
z HistoryKDatasUtils.get_now_pricec Cs¾| |¡}i}x4|D],}|d}t t t|dƒ¡¡}|||<qW| |¡}g}xN|D]F}|d}|d}    t| |¡ƒ}
t    |    |
d|
dƒ} | 
|| f¡qXW|j dd„d    |  ¡|S)
NZsec_idÚ    pre_closerrRédrIcSs|dS)NrRr)ÚtuprrrÚ<lambda>Ðóz9HistoryKDatasUtils.get_codes_limit_rate.<locals>.<lambda>)Úkey) rQrÚto_priceÚdecimalÚDecimalr r_ÚfloatrDÚroundrKÚsortÚreverse) rrMÚdatasZpre_price_dictrrr`Z
now_pricesZ    f_resultsr[Z    pre_priceZraterrrÚget_codes_limit_rate¿s"
 
 
 
z'HistoryKDatasUtils.get_codes_limit_ratecCsN| ||¡}|dd}x |D]}||dkr|d}qW|dd||S)NrÚcloser)rT)rrr-rmZ    low_pricerrrrÚget_lowest_price_rateÔs   
  z(HistoryKDatasUtils.get_lowest_price_ratecCsB| |¡}i}x.|D]&}|d d¡d}|d}|||<qW|S)Nr+rZrRZsec_name)rQr\)rrMrmrSrrZ    code_namerrrÚget_gp_codes_namesÝs
 
 z%HistoryKDatasUtils.get_gp_codes_names)N)N)r<r=r>r?rQrTrVr5r8r9r_rnrprqrrrrrY˜s            rYÚ__main__FZ000725é)Ú__doc__r rgrrÚconstantÚdb.redis_managerrÚutilsrÚdbrrr@ÚobjectrYr<ZJUEJIN_LOCAL_APIÚprintrprrrrÚ<module>s   BFP