Administrator
2025-06-09 de70aedd22263814caddd6be760d3200bb451415
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
B
ŽªcÀ#ã@s,ddlZddlZddlZddlZddlmZddlZddlTddlZddl    Tddl
Z
e
  d¡Z dZ dZdZdZdZd    ZeƒZd
d „Zd d „Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zd d!„Zd"d#„Z d$d%„Z!d&d'„Z"d3d)d*„Z#d+d,„Z$d-d.„Z%d/d0„Z&e'd1kr(e&d2ƒdS)4éN)Ú THSGuiTrade)Ú*éé
é é éé cCs,t ¡}| d |¡¡}|dkr$tSt|ƒS)Nztrade-state-{})Ú__redis_managerÚgetRedisÚgetÚformatÚTRADE_STATE_NOT_TRADEÚint)ÚcodeÚredisÚstate©rú#D:\workspace\trade\trade_manager.pyÚget_trade_state#s
rcCs$t ¡}| d |¡t ¡|¡dS)Nztrade-state-{})r
r Úsetexr ÚtoolÚ
get_expire)rrrrrrÚset_trade_state,srcCsTt ¡}| d¡}g}|dk    rPx0|D](}t| |¡ƒ|kr$| | dd¡¡q$W|S)Nz trade-state-*z trade-state-Ú)r
r Úkeysrr ÚappendÚreplace)rrrÚcodesÚkeyrrrÚget_codes_by_trade_state1s
 
r cCst ¡}| d|¡dS)Nztrade-account-canuse-money)r
r Úset)Ú    client_idÚmoneyrrrrÚset_available_money=sr$cCs,t ¡}| d¡}|dkrdStt|ƒdƒS)Nztrade-account-canuse-moneyr)r
r r ÚroundÚfloat)rÚresultrrrÚget_available_moneyCs
 
r(cCsºtj ¡ d¡}t ¡}tj ¡ d¡}| dt ¡|¡xz|D]r}|d}|dkrVq@|d|d<||d<tt    t
  ¡d    ƒƒ|d
<t   d d|di¡}|dks¦|d kr@t  d |¡q@WdS) Nz%Y%m%dz%H:%M:%Sztrade-success-latest-timeÚtimez00:00:00Ú    trade_numÚ_idÚdayièÚ create_timezths-trade-success-recordé)ÚdatetimeÚnowÚstrftimer
r rrrrr%Útr)Ú
mongo_dataÚcountÚsave_one)Údatasr,rÚtime_strÚdataÚ_timer4rrrÚsave_trade_success_dataLs
 r:cCsÆtj ¡ d¡}tj ¡ d¡}xn|D]f}d ||d|d¡|d<||d<ttt ¡dƒƒ|d    <t     d
d|di¡}|d kr&t 
d
|¡q&Wt   ¡}|  d t ¡t |¡¡|  d t ¡|¡dS)Nz%Y%m%dz%H:%M:%Sz{}-{}-{}rr)r+r,ièr-zths-trade-delegate-recordr.ztrade-delegate-latestztrade-delegate-latest-time)r/r0r1r rr%r2r)r3r4r5r
r rrrÚjsonÚdumps)r6r,r7r8r4rrrrÚsave_trade_delegate_data_s
r=cCs2t ¡}tj ¡ d¡}t dd|i¡| d¡fS)Nz%Y%m%dzths-trade-success-recordr,ztrade-success-latest-time)r
r r/r0r1r3Úfindr )rr,rrrÚget_trade_success_datapsr?cCs>t ¡}| d¡}| d¡}|dkr,g|fSt |¡|fSdS)Nztrade-delegate-latestztrade-delegate-latest-time)r
r r r;Úloads)rr'r7rrrÚget_trade_delegate_dataws 
 
rAcCsHd}t ¡}| |¡}|dkr(| |¡| |d¡| |t ¡¡dS)Nzforbidden-trade-codesrÚ000000)r
r ÚscardÚdeleteÚsaddÚexpirerr)rrr4rrrÚinit_forbidden_trade_codes‚s
 
 rGcCsd}t ¡}| ||¡dS)Nzforbidden-trade-codes)r
r Úsrem)rrrrrrÚ!remove_from_forbidden_trade_codessrIcCs,d}t ¡}| ||¡| |t ¡¡dS)Nzforbidden-trade-codes)r
r rErFrr)rrrrrrÚadd_to_forbidden_trade_codes”s rJcCs&t|ƒt |¡tj ¡ |¡dS)N)rJÚl2_data_managerÚremove_from_l2_fixed_codesÚl2_code_operateÚ L2CodeOperateÚ get_instanceÚremove_l2_listen)rrrrÚforbidden_tradeœs
rQcCsd}t ¡}| ||¡S)Nzforbidden-trade-codes)r
r Ú    sismember)rrrrrrÚis_in_forbidden_trade_codes£srSc
Cst|ƒrtdƒ‚t|ƒ}|tkr0|tkr0tdƒ‚tƒ}|dkrFtdƒ‚t |¡}|dkr`tdƒ‚|d|krttdƒ‚yTtdƒt     
d  |¡¡t |t ƒt ||¡t |¡td    ƒt     
d
  |¡¡WnPtk
r}z0td ƒt     d   |t|ƒ¡¡t ||ƒ|‚Wdd}~XYnXdS) Nu 禁止交易u代码处于不可交易状态u未获取到账户可用资金u尚未获取到涨停价édu账户可用资金不足u 开始买入u{}开始买入u 买入结束u{}买入成功u 买入异常u{}买入异常{})rSÚ    ExceptionrrÚTRADE_STATE_BUY_CANCEL_SUCCESSr(Úgpcode_managerÚget_limit_up_priceÚprintÚ logger_tradeÚinfor rÚTRADE_STATE_BUY_PLACE_ORDERÚguiTradeZbuyrKÚadd_to_l2_fixed_codesÚerrorÚstr)rÚ trade_stater#ÚpriceÚerrrÚ    start_buyªs4
 
 
 
rdFc
Csºt|ƒ}|tkrdS|s,|tkr,|tkr,dSyBt d |¡¡t|tƒt     
|¡t   |¡t d |¡¡WnFt k
r´}z(t||ƒt d |t|ƒ¡¡|‚Wdd}~XYnXdS)Nu{}开始撤单u{}撤单成功u{}撤单异常:{})rÚTRADE_STATE_BUY_SUCCESSr\ÚTRADE_STATE_BUY_DELEGATEDrZr[r rÚTRADE_STATE_BUY_CANCEL_INGr]Z
cancel_buyrKrLrUr_r`)rÚforcerarcrrrÚstart_cancel_buyÌs 
 
 
 
ricCsb|dkr dSxP|D]H}|d}|d}|dkr0q|dk    rt|dƒdkrt|ƒt|tƒqWdS)Nrr)z00:00:00Útyper)rrQrre)r6r8rr9rrrÚprocess_trade_success_dataâs
rkcCsœ|dkr dSg}x@|D]8}|d}|dk    r| |¡t|ƒ}|tkrt|tƒqWttƒ}|dk    r˜x4|D],}||kr€t|dƒqht|tƒt     
|¡qhWdS)NrT) rrr\rrfr rgrirVrKrL)r6rr8rraZ    ing_codesrrrÚprocess_trade_delegate_dataðs"
 
 
 
rlcCs¨t d¡ ¡}| d |¡¡| d |¡¡| d |¡¡}x|D]}| |¡qDW| d |¡¡| d |¡¡| d |¡¡t d¡ ¡}| d     |¡¡dS)
Nr.zbuy_compute_index-{}zbuy_compute_num-{}zl2-{}-*zl2-data-latest-{}zl2-maxindex-{}zlatest-l2-count-{}rztrade-state-{})Ú redis_managerÚ RedisManagerr rDr r)rZredis_l2rÚkZ redis_traderrrÚ __clear_datas
rpÚ__main__Z000503)F)(r/rMr3rÚ    trade_guirr)r2rKÚlogrmrnr
rr\rfrgrVrer]rrr r$r(r:r=r?rArGrIrJrQrSrdrirkrlrpÚ__name__rrrrÚ<module>sL 
           "