Administrator
2025-08-15 994c98a8780e25f62cc5d4945bb5e1d23470753d
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
B
ånhfÅ.ã@s¾dZddlZddlZddlZddlZddlZddlZddlmZddl    m
Z
m Z ddl m Z mZddlmZGdd„dƒZGd    d
„d
ƒZGd d „d eƒZed krºe eddhƒ¡Ze eƒdS)u
历史K线服务
éN)Ú
RedisUtils)Úlogger_request_apiÚprintlog)ÚtoolÚmiddle_api_protocol)Úredis_manager_delegatec@speZdZdZedd„ƒZedd„ƒZedd„ƒZedd    „ƒZed
d „ƒZ    ed d „ƒZ
edd„ƒZ edd„ƒZ dS)Ú JueJinHttpApizhttp://193.112.35.168:10009/c Cs2dd„}d}d}|rjt ||¡}t ¡}zt |¡}Wdt ¡|}|dkrft d|›dt|ƒ›¡Xn@|j›|›}tj    ||d}    |    j
}
t   |
¡} | dd    krª| d
}|r*t |ƒtkrøxh|D]0} t | ƒtkrÔqÂx| D]} || | ƒ| | <qÚWqÂWn.t |ƒtkr&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\trade_sell\code_atrribute\history_k_data_util.pyÚ deformat_dates,
 z.JueJinHttpApi.__request.<locals>.deformat_dateTéu掘金API请求时间:ú-)ÚjsonÚcoderÚdata)rÚ load_juejinÚtimeÚrequestrÚinfoÚintÚ_JueJinHttpApi__BASE_URLÚrequestsÚpostÚtextrÚloadsr ÚlistÚdict)ÚclsÚpath_strÚ    data_jsonrZDELEGATEÚfdataZ_JueJinHttpApi__start_timeZ_JueJinHttpApi__use_timeÚurlÚresponseÚresultZ
resultJsonÚdÚkrrrZ    __requests:  
 
 
 
zJueJinHttpApi.__requestcCs| d||dœ¡S)NÚget_instruments)ÚsymbolsÚfields)Ú_JueJinHttpApi__request)r'r1r2rrrr0BszJueJinHttpApi.get_instrumentsc    Cs| d|||||dœ¡S)NÚ    history_n)ÚsymbolÚ    frequencyÚcountÚadjustr2)r3)r'r5r6r7r8r2rrrr4FszJueJinHttpApi.history_ncCs| d||dœ¡S)NÚcurrent)r1r2)r3)r'r1r2rrrr9KszJueJinHttpApi.currentc    Cs| d|||||dœ¡S)Nr0)Ú    exchangesÚ    sec_typesÚskip_suspendedÚskip_str2)r3)r'r:r;r<r=r2rrrÚget_exchanges_codesOsz!JueJinHttpApi.get_exchanges_codescCs| d||dœ¡S)NÚget_previous_trading_date)ÚexchangeÚdate)r3)r'r@rArrrr?Usz'JueJinHttpApi.get_previous_trading_datecCs| d||dœ¡S)NÚget_next_trading_date)r@rA)r3)r'r@rArrrrBYsz#JueJinHttpApi.get_next_trading_datecCs| d|||dœ¡S)NÚget_trading_dates)r@Ú
start_dateÚend_date)r3)r'r@rDrErrrrC]szJueJinHttpApi.get_trading_datesN) Ú__name__Ú
__module__Ú __qualname__r Ú classmethodr3r0r4r9r>r?rBrCrrrrrs *      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)Z    auto_freezjuejin-strategy-idz juejin-token)Ú_JueJinApi__redisManagerÚgetRedisrÚgetZrealse)r'ÚredisÚ
account_idZ strategy_idÚtokenrrrÚgetJueJinAccountInfogs
 
zJueJinApi.getJueJinAccountInfocCsLg}xB|D]:}t |¡r*| d |¡¡q
t |¡r
| d |¡¡q
W|S)NzSZSE.{}zSHSE.{})rÚ
is_sz_codeÚappendÚformatÚ
is_sh_code)r'Úcodesr%r.rrrÚ get_juejin_code_list_with_prefixrs
 
 
z*JueJinApi.get_juejin_code_list_with_prefixNcCs`|sgS| |¡}tjrH| ¡\}}}t |¡tjd |¡|d}|Stjd |¡|dSdS)Nú,)r1r2)    rWÚconstantÚJUEJIN_LOCAL_APIrQÚgmapiÚ    set_tokenr0Újoinr)r'rVr2r1rOÚs_idrPrrrrÚget_gp_latest_info|s
 
zJueJinApi.get_gp_latest_infoc    Csf| |g¡}tjrF| ¡\}}}t |¡tj|dd|d|d}|Stj|dd|d|d}|SdS)NrZ1dé)r5r6r7r8r2)rWrYrZrQr[r\r4r)    r'rr7r2r1rOr^rPÚresultsrrrÚget_history_tick_n‰s 
zJueJinApi.get_history_tick_ncCsb|sgS| |¡}tjrF| ¡\}}}t |¡tjd |¡d}|Stjd |¡dd}|SdS)NrX)r1Ú)r1r2)    rWrYrZrQr[r\r9r]r)r'rVr1rOr^rPrrrrÚget_gp_current_info–s
 
zJueJinApi.get_gp_current_infocCsNtjr4| ¡\}}}t |¡tj|dgddddStj|dgddddSdS)Nr`TzLsymbol,sec_type,sec_id,sec_name,listed_date,sec_level,is_suspended,pre_close)r:r;r<r=r2)rYrZrQr[r\r0rr>)r'r:rOr^rPrrrr>¦s
 zJueJinApi.get_exchanges_codescCs:tjr*| ¡\}}}t |¡t d|¡St d|¡SdS)NÚSHSE)rYrZrQr[r\r?r)r'rArOr^rPrrrr?²s
 
 z#JueJinApi.get_previous_trading_datecCs:tjr*| ¡\}}}t |¡t d|¡St d|¡SdS)Nre)rYrZrQr[r\rBr)r'rArOr^rPrrrrB¼s
 
 zJueJinApi.get_next_trading_datecCs>tjr,| ¡\}}}t |¡t d||¡St d||¡SdS)Nre)rYrZrQr[r\rCr)r'rDrErOr^rPrrrrCÅs
 
zJueJinApi.get_trading_dates)N)N)rFrGrHÚ redis_managerÚ RedisManagerrKrIrQrWr_rbrdr>r?rBrCrrrrrJcs
 
 
    rJc@s´eZdZiZiZeddd„ƒZeddd„ƒZedd„ƒZedd    „ƒZ    ed
d „ƒZ
ed d „ƒZ edd„ƒZ edd„ƒZ edd„ƒZedd„ƒZedd„ƒZedd„ƒZedd„ƒZdS)ÚHistoryKDatasUtilsNcCs t ||¡S)N)rJr_)r'rVr2rrrr_Ósz%HistoryKDatasUtils.get_gp_latest_infocCst |||¡S)N)rJrb)r'rr7r2rrrrb×sz%HistoryKDatasUtils.get_history_tick_ncCs
t |¡S)N)rJrd)r'rVrrrrdÛsz&HistoryKDatasUtils.get_gp_current_infocCs
t |¡S)N)rJr?)r'rArrrr?àsz,HistoryKDatasUtils.get_previous_trading_datecCs2||jkr|j |¡S| |¡}|r.||j|<|S)N)Ú0_HistoryKDatasUtils__previous_trading_date_cacherMr?)r'rAr*rrrÚget_previous_trading_date_cacheäs 
 
 
z2HistoryKDatasUtils.get_previous_trading_date_cachecCs:t ¡}g}x(t|ƒD]}| |¡}| |¡|}qW|S)N)rÚget_now_date_strÚrangerjrS)r'Ú    day_countZnow_dayÚdaysÚiZpdayrrrÚget_latest_trading_dateîs
 
z*HistoryKDatasUtils.get_latest_trading_datecCs>t ¡›d|›}||jkr&|j|S| |¡}||j|<|S)Nr)rrkÚ._HistoryKDatasUtils__latest_trading_date_cacherp)r'rmÚkeyrnrrrÚget_latest_trading_date_cacheøs 
 
 
 
z0HistoryKDatasUtils.get_latest_trading_date_cachecCs
t |¡S)N)rJrB)r'rArrrrBsz(HistoryKDatasUtils.get_next_trading_datecCs t ||¡S)N)rJrC)r'rDrErrrrCsz$HistoryKDatasUtils.get_trading_datescCsH| |¡}g}x4|D],}|d d¡d}|d}| ||f¡qW|S)Nr5Ú.r`Úprice)rdÚsplitrS)r'rVrZpricesÚitemrrurrrÚ 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)
NÚsec_idÚ    pre_closerr`édécSs|dS)Nr`r)ÚtuprrrÚ<lambda>&óz9HistoryKDatasUtils.get_codes_limit_rate.<locals>.<lambda>)rr) r_rÚto_priceÚdecimalÚDecimalrrxÚfloatrMÚroundrSÚsortÚreverse) r'rVÚdatasZpre_price_dictrrrzZ
now_pricesZ    f_resultsruZ    pre_priceÚraterrrÚget_codes_limit_rates"
 
 
 
z'HistoryKDatasUtils.get_codes_limit_ratecCsN| ||¡}|dd}x |D]}||dkr|d}qW|dd||S)NrÚcloser
)rb)r'rr7r‡Z    low_pricerrrrÚget_lowest_price_rate*s   
  z(HistoryKDatasUtils.get_lowest_price_ratecCsB| |¡}i}x.|D]&}|d d¡d}|d}|||<qW|S)Nr5rtr`Úsec_name)r_rv)r'rVr‡rarrÚ    code_namerrrÚget_gp_codes_names3s
 
 z%HistoryKDatasUtils.get_gp_codes_names)N)N)rFrGrHrirqrIr_rbrdr?rjrprsrBrCrxr‰r‹rŽrrrrrhÏs"    
 
 
       rhÚ__main__Z000422Z600610)Ú__doc__rrrrr!rYÚdb.redis_manager_delegaterÚlog_module.logrrÚutilsrrÚdbrrfrrJÚobjectrhrFr‰r%rarrrrÚ<module>s   Nlo