admin
2025-01-15 f84dcf456dbfa318f490d6cf878be5d5d5262718
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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
B
6S‡g•ã@sPdZddlZddlZddlZddlZddlmZddlmZddlm    Z    ddl
m Z e    ƒZ e ¡Z ede ›ƒdZd    Zd
Zd Zd Zd d„Zdd„Zd>dd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Zd$d%„Zd&d'„Z d(d)„Z!d*d+„Z"d,d-„Z#d.d/„Z$Gd0d1„d1ƒZ%d2d3„Z&d4d5„Z'd6d7„Z(d8d9„Z)d:d;„Z*d<d=„Z+dS)?u
kpl API数据获取与处理
éN)Ú
data_cache)Ú basic_methods)Ú
get_logger)Úhx_qc_value_utilukpl_api开始运行--ééééécCs:dddœ}tj|||dddœd}|jdkr4tdƒ‚|jS)Nz0application/x-www-form-urlencoded; charset=UTF-8z7Dalvik / 2.1.0(Linux;U;Android 6.0.1;MuMu Build/V417IR))z Content-Typez
User-Agent)ZhttpZhttps)ÚdataÚheadersZproxieséÈu 请求出错)ÚrequestsZpostZ status_codeÚ    ExceptionÚtext)Úurlr r Úresponse©rõ2D:\量化低吸\low_suction_hx\strategy\kpl_api.pyÚ__base_request#s 
rcCsd|›d}td|d}|S)NzŒOrder=1&a=DaBanList&st=100&c=HomeDingPan&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&Index=0&Is_st=1&PidType=zF&apiv=w32&Type=4&FilterMotherboard=0&Filter=0&FilterTIB=0&FilterGem=0 z,https://apphq.longhuvip.com/w1/api/index.php)r )r)ÚpidTyper ÚresultrrrÚ    daBanList0s  rTcCs$d|r
dnd›d}td|d}|S)NzOrder=rrz•&a=RealRankingInfo&st=20&apiv=w32&Type=5&c=ZhiShuRanking&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&Index=0&ZSType=4&z,https://apphq.longhuvip.com/w1/api/index.php)r )r)ZorderJingE_DESCr rrrrÚ getMarketIndustryRealRankingInfo9srcCsd}td|d}|S)Nz·Order=1&a=RealRankingInfo&st=20&a=RealRankingInfo&apiv=w35&Type=1&Index=0&c=ZhiShuRanking&VerSion=5.13.0.0&Order=1&PhoneOSNew=1&ZSType=7&DeviceID=d6f20ce9-fa08-31c9-a493-536ebb8e9773&z,https://apphq.longhuvip.com/w1/api/index.php)r )r)r rrrrÚ getMarketJingXuanRealRankingInfoMsrcCsNd|›d}td|d}t |¡}t|dƒdkr6dS|drF|dS|dS)    Nz5a=GetStockIDPlate_New&apiv=w32&c=StockL2Data&StockID=z]&PhoneOSNew=1&UserID=0&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&Token=0&z,https://apphq.longhuvip.com/w1/api/index.php)r ÚerrcoderÚListJXÚList)rÚjsonÚloadsÚint)Úcoder rrrrÚgetStockIDPlateUs   
r"cCs,d|›d}td|d}t |¡}| d¡S)Nz8a=GetStockIDPlate&apiv=w32&Type=2&c=StockL2Data&StockID=z]&PhoneOSNew=1&UserID=0&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&Token=0&z,https://apphq.longhuvip.com/w1/api/index.php)r r)rrrÚget)r!r rrrrÚgetCodeJingXuanBlockscs  
r$cCsd|›d}td|dS)NzÈOrder=1&a=ZhiShuStockList_W8&st=30&c=ZhiShuRanking&PhoneOSNew=1&old=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&IsZZ=0&Token=0&Index=0&apiv=w32&Type=6&IsKZZType=0&UserID=0&PlateID=ú&z,https://apphq.longhuvip.com/w1/api/index.php)r )r)Ú
plate_coder rrrÚgetCodesByPlateks r'cCsd|›d}td|dS)Nz|a=SonPlate_Info&apiv=w32&c=ZhiShuRanking&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&VerSion=5.8.0.2&PlateID=r%z,https://apphq.longhuvip.com/w1/api/index.php)r )r)r&r rrrÚ getSonPlaters r(cCs<d|›d}td|d}t |¡}d|kr8|d d¡SdS)NzŠa=GetStockPanKou_Narrow&apiv=w32&c=StockL2Data&VerSion=5.8.0.2&State=1&PhoneOSNew=1&DeviceID=a38adabd-99ef-3116-8bb9-6d893c846e23&StockID=r%z,https://apphq.longhuvip.com/w1/api/index.php)r ÚrealZactualcirculation_value)rrrr#)r!r rrrrÚ getZYLTAmount…s   
r*cCs0d|›d|d|›d|›d}td|d}|S)Nz#Order=0&a=DailyLimitPerformance&st=zq&apiv=w35&Type=4&c=HomeDingPan&PhoneOSNew=1&DeviceID=a38adabb-99ef-3116-8bb9-6d893c846e24&VerSion=5.13.0.0&Index=rz    &PidType=r%z,https://apphq.longhuvip.com/w1/api/index.php)r )r)rZpageZpageSizer rrrrÚ__getLimitUpInfos  r+cCs¼dddddg}g}x˜|D]}g}xRtdƒD]F}t|d|dd    ƒ}t |¡}|d
d}| |¡t|ƒd    kr*Pq*Wx(|D] }|d sz|drz|d|d <qzW| |¡qWt d|d œ¡S) N)ru首板)ru2连板)r    u3连板)éu4连板)r
Úé
rréÚinfoé)rÚlist)Úranger+rrÚextendÚlenÚdumps)ZpidsÚfresultsZpid_infoÚresultsÚirÚdatasÚrrrrÚgetLimitUpInfoNew–s 
 
 
 
r<c
 
Cstƒ}t |¡}t d|d›¡t d|dd›¡i}d|krŒx.|dD] }|d}|dkstd|krVt|dƒ}t |¡}g}xÆ|dD]º}|ddkr˜|d d    ¡dkr˜|d d
¡dkr˜|d  d ¡dkr˜|d  d ¡dkr˜|d d¡s|d d¡r˜|ddkr˜|d|d|d|d|d|d|dg}| |¡q˜Wt    |ƒdkrV|d|i}    | 
|    ¡qVWt d|›¡|S)Nzmarket_sift_plate['list']======r2z$market_sift_plate['list'][0]  ======rr) u    ç§‘创板u    åŒ—交所u    æ¬¡æ–°è‚¡u无uST板块uST摘帽u 并购重组u 国企改革u超跌u    å£³èµ„源u 股权转让u 送转填权u增长éÚSTZXDéu板éÚ60Ú00é    r,ré(u(精选板块股票强度数据更新 == ) rrrÚloggerr0r'ÚfindÚ
startswithÚappendr5Úupdate)
r Zmarket_sift_plateÚmarket_sift_plate_stock_dictr9Z
plate_nameZ    its_stockZstock_power_listÚsÚits_stock_powerZstock_power_itemrrrÚ%get_market_sift_plate_its_stock_powerÒs.
 
 
J4.  rMc
Csbx\zJytƒ}||ƒWn2tk
rH}zt d|›¡Wdd}~XYnXWdt d¡XqWdS)Nu4开盘啦板块强度线程报错An error occurred: r)rMrrEÚerrorÚtimeÚsleep)ÚcallbackrLÚerrrÚ-get_market_sift_plate_its_stock_power_process    s &rScCst tƒ¡d}|S)Nr2)rrr<)Ú limit_up_inforrrÚget_limit_up_infosrUcCs$tddƒ}t |¡}t|ddƒS)u)
    èŽ·å–å¸‚åœºå¼ºåº¦
    :return:
    z.https://apphwhq.longhuvip.com/w1/api/index.phpzpa=DiskReview&apiv=w35&c=HomeDingPan&VerSion=5.13.0.0&PhoneOSNew=1&DeviceID=d6f20ce9-fa08-31c9-a493-536ebb8e9773&r0Zstrong)rrrr )rr rrrÚget_market_strongs
rVc    Cs†tƒ}tƒt_g}tj ¡ d¡}x|D]}| |d¡q(W|tjkr‚t     |¡}t
|ƒdkr‚t dddd}|  |¡WdQRX|S)Nz%H:%M:%Sr
rz,local_storage_data/limit_up_block_names.jsonÚwzutf-8)Úencoding) rUrrTÚdatetimeÚnowÚstrftimerHÚafter_closing_timerr6r5ÚopenÚwrite)rTÚlimit_up_block_namesÚnow_timer9Ú    json_dataÚfrrrÚget_limit_up_block_names-s
    
 
 rcc
Csbx\zJytƒ}||ƒWn2tk
rH}zt d|›¡Wdd}~XYnXWdt d¡XqWdS)Nu:开盘啦涨停板块概念线程报错An error occurred: gø?)rcrrErNrOrP)rQr_rRrrrÚkpl_limit_up_processOs &rdc@s.eZdZd dd„Zdd„Zdd„Zdd    „Zd
S) ÚDailyLimitUpInfoStorageManagerú1local_storage_data/limit_up_block_date_data.jsonlcCs
||_dS)N)Ú    file_path)ÚselfrgrrrÚ__init__esz'DailyLimitUpInfoStorageManager.__init__c
CsØt|jddd¾}tj ¡ d¡}dd„|Dƒ}|rŽ|d |¡dkr„tj||idd    d
}t|jd dd}| |¡WdQRXqÊt    d ƒn<tj||idd    d
}t|jd dd}| |¡WdQRXWdQRXdS) Nr;zutf-8)rXz%Y-%m-%dcSs"g|]}| ¡rt | ¡¡‘qSr)Ústriprr)Ú.0Úlinerrrú
<listcomp>oszFDailyLimitUpInfoStorageManager.append_data_to_file.<locals>.<listcomp>éÿÿÿÿF)Ú ensure_asciiÚ
ÚauQ(当日日期已存在于文件的最后一行了,不再重复追加写入))
r]rgrYrZr[r#rr6r^Úprint)rhZdata_to_appendÚfileÚ current_dateÚlinesZ    json_linerrrÚappend_data_to_fileis
z2DailyLimitUpInfoStorageManager.append_data_to_filec    CsŠt|jddd}dd„|Dƒ}WdQRXt|ƒ|kr†|| d…}t|jddd,}x$|D]}| tj|ddd    ¡q\WWdQRXdS)
Nr;zutf-8)rXcSs"g|]}| ¡rt | ¡¡‘qSr)rjrr)rkrlrrrrm…szPDailyLimitUpInfoStorageManager.check_and_remove_oldest_entry.<locals>.<listcomp>rWF)rorp)r]rgr5r^rr6)rhÚ max_entriesrsruÚobjrrrÚcheck_and_remove_oldest_entry‚s 
z<DailyLimitUpInfoStorageManager.check_and_remove_oldest_entryc    Csxi}t|jdddZ}xR|D]J}| d¡}t |¡}t|tƒrt|ƒdkrt|     ¡ƒd\}}|||<qWWdQRX|S)Nr;zutf-8)rXrprr)
r]rgÚrstriprrÚ
isinstanceÚdictr5r2Úitems)rhZ
limit_inforsrlr0Údater rrrÚarrange_limit_up_info’s
 
 
z4DailyLimitUpInfoStorageManager.arrange_limit_up_infoN)rf)Ú__name__Ú
__module__Ú __qualname__rirvryrrrrrrecs
recCs"tƒ}| tƒ¡|jdddS)Niè)rw)rervrUry)ÚmanagerrrrÚget_arrange_limit_up_info£s r„cCsptƒ}| ¡t_ttjƒ}g}t ¡j}x@t|ƒD]4}t     |¡}d}t
j
  ||¡  d¡}|  |¡|}q2Wg}x|tj ¡D]n\}    }
xd|D]\}|    |krˆg} x.|
D]&} | d| di} | | krž|   | ¡qžWt| dd„dd}|  |¡qˆWqzWdd    „}tj t ¡j¡}|dk    rlg}x*|D]"}t |d
¡}|}|  |¡qW|t_t d ttjƒ›¡t d |›¡dS) Nz%Y-%m-%dr
r/cSst| ¡ƒdS)Nr)r2Úvalues)ÚxrrrÚ<lambda>Úóz,get_handling_limit_up_info.<locals>.<lambda>T)ÚkeyÚreversecSsˆi}xH|D]@}x:|D]2}x,|D]$}||kr2d||<||d7<qWqWq
Wx4| ¡D](\}}|dkrXt d|›d|›d¡qXWdS)Nrrú'u' è¿žç»­å‡ºçް u æ¬¡)r}rEr0)Zlist_of_dicts_listsZ
key_countsZsublistZ    dict_itemr‰ÚcountrrrÚcount_key_occurrencesäs
 
 
z9get_handling_limit_up_info.<locals>.count_key_occurrencesru昨日涨停股票数量==u昨日涨停代码列表==)rerrÚdaily_limit_up_infor5Ú    DataCacheÚ
today_dater3rÚget_previous_trading_daterYÚstrptimer[rHr}Úsortedr#Úpre_trading_dayrÚformat_stock_symbolÚyesterday_limit_up_code_listrEr0)Zhistory_limit_up_infoZdaily_limit_up_info_lenZ historical_transaction_date_listZdate_of_the_dayr9Zpre_dateZ date_formatZ target_dateZ!history_sorted_plate_ranking_listr‰ÚvalueZplate_ranking_listÚvZplate_limit_up_num_dictZsorted_plate_ranking_listrZpre_trading_day_limit_up_infor–Z symbol_codeZ limit_up_coderrrÚget_handling_limit_up_info«sB
 
 
 
 
 
 
 
 
r™c CsÚi}xˆ|D]€}zxyB| d¡d}t|ƒ}t|ƒ}dd„|Dƒ}||dœ}|||<Wn0tk
r‚}ztd|›ƒWdd}~XYnXWdXq
Wt |¡}    tddd    d
}
|
 |    ¡WdQRXt    j     
¡} t   d | ›¡dS) NÚ.rcSsg|] }|d‘qS)rr)rkÚblockrrrrmUsz-get_all_stocks_plate_dict.<locals>.<listcomp>)Úfree_market_valueÚplateuA获取全部个股的板块并存储的函数 An error occurred: z-local_storage_data/all_stocks_plate_dict.jsonrWzutf-8)rXu)写入所有个股板块文件完成!::) Úsplitr*r"rrrrr6r]r^rYrZrEr0) Z stocks_listÚall_stocks_plate_dictr9r!rœÚselected_blocksZselected_plate_listZ
block_datarRrarbr`rrrÚget_all_stocks_plate_dictIs$
 $
 
r¡cCs†d}g}xVtj ¡D]H\}}t|dƒdkr|d7}t |¡}tj |¡}|dk    r| |¡qWt     
d|›d¡t     
d|›¡dS)Nrrru有u只股票概念为空u+个股有历史K线但概念为空的有:) rrŸr}r5rr•Ú#all_stocks_all_K_line_property_dictr#rHrEr0)Zhave_no_plate_numZplate_are_null_listÚkr˜ÚsymbolÚsec_namerrrÚget_have_no_plate_numqs
 r¦c CsÖg}x†|D]~}yF| d¡d}t|ƒ}t|ƒ}dd„|Dƒ}|||dœ}| |¡Wq
tk
r†}zt d|›¡Wdd}~XYq
Xq
Wt |¡}    t    ddd    d
}
|
 
|    ¡WdQRXt j   ¡} t d | ›ƒdS) NršrcSsg|] }|d‘qS)rr)rkr›rrrrm•sz/stocks_list_selected_blocks.<locals>.<listcomp>)r!rœZselected_blockuG获取全部个股的精选板块并存储的函数 An error occurred: z2local_storage_data/stocks_selected_block_data.jsonrWzutf-8)rXu#写入精选板块文件完成!::)ržr*r$rHrrErNrr6r]r^rYrZrr) Ú
min_stocksZstocks_selected_block_datar9r!rœr Zselected_block_listZstocks_selected_block_dictrRrarbr`rrrÚstocks_list_selected_blocks‰s$
&
 
r¨c
Cs4x,zyÞtjdkräi}tj ¡}tƒt_t dtj›d¡tjdkrVdt_dt_    nŽdtjkrldkr~nndt_dt_    nfdtjkr”dkr¦nnd    t_d    t_    n>d
tjkr¼dkrÎnnd t_d t_    ntjd
kräd t_d t_    Wn4t
k
r}zt  d |›¡Wdd}~XYnXWdt   d¡XqWdS)NTu*大盘行情情绪综合强度 [分数]===u分éFi0ué<i Né2i'éi¸ ièuA获取实时大盘行情情绪综合强度[分数] å‡½æ•°æŠ¥é”™: r    )rÚ$position_automatic_management_switchrYrZrVÚreal_time_market_strongrEr0Úhave_plate_buy_moneyÚhave_strength_buy_moneyrrNrOrP)Útime_sharing_market_strong_dirtrZrNrrrÚget_real_time_market_strong°s2
 
 
 
 
&r²)T),Ú__doc__rrOrYrÚstrategyrrÚstrategy.logging_configrÚutilsrrErZrrZDABAN_TYPE_BIDDINGZDABAN_TYPE_LIMIT_UPZDABAN_TYPE_OPEN_LIMIT_UPZDABAN_TYPE_LIMIT_DOWNZDABAN_TYPE_EVER_LIMIT_DOWNrrrrr"r$r'r(r*r+r<rMrSrUrVrcrdrer„r™r¡r¦r¨r²rrrrÚ<module>sR         
 
<7"@('