unknown
2022-08-18 bc6204f30deb7518b6f4738e3c842598cd040545
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
B
3    þbÝ"ã@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 ¡|¡xh|D]`}|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Ú    trade_numÚ_idÚdayièÚ create_timezths-trade-success-recordé)ÚdatetimeÚnowÚstrftimer
r rrrrr%ÚtÚtimeÚ
mongo_dataÚcountÚsave_one)Údatasr+rÚtime_strÚdatar4rrrÚsave_trade_success_dataLs
 r9cCsÆ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{}-{}-{}rr2r*r+ièr,zths-trade-delegate-recordr-ztrade-delegate-latestztrade-delegate-latest-time)r.r/r0r rr%r1r2r3r4r5r
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.r/r0r3Úfindr )rr+rrrÚget_trade_success_datalsr>cCs>t ¡}| d¡}| d¡}|dkr,g|fSt |¡|fSdS)Nztrade-delegate-latestztrade-delegate-latest-time)r
r r r:Úloads)rr'r7rrrÚget_trade_delegate_datass 
 
r@cCsHd}t ¡}| |¡}|dkr(| |¡| |d¡| |t ¡¡dS)Nzforbidden-trade-codesrÚ000000)r
r ÚscardÚdeleteÚsaddÚexpirerr)rrr4rrrÚinit_forbidden_trade_codes~s
 
 rFcCsd}t ¡}| ||¡dS)Nzforbidden-trade-codes)r
r Úsrem)rrrrrrÚ!remove_from_forbidden_trade_codes‰srHcCs,d}t ¡}| ||¡| |t ¡¡dS)Nzforbidden-trade-codes)r
r rDrErr)rrrrrrÚadd_to_forbidden_trade_codess rIcCs&t|ƒt |¡tj ¡ |¡dS)N)rIÚl2_data_managerÚremove_from_l2_fixed_codesÚl2_code_operateÚ L2CodeOperateÚ get_instanceÚremove_l2_listen)rrrrÚforbidden_trade˜s
rPcCsd}t ¡}| ||¡S)Nzforbidden-trade-codes)r
r Ú    sismember)rrrrrrÚis_in_forbidden_trade_codesŸsrRc
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{}买入异常{})rRÚ    ExceptionrrÚTRADE_STATE_BUY_CANCEL_SUCCESSr(Úgpcode_managerÚget_limit_up_priceÚprintÚ logger_tradeÚinfor rÚTRADE_STATE_BUY_PLACE_ORDERÚguiTradeZbuyrJÚadd_to_l2_fixed_codesÚerrorÚstr)rÚ trade_stater#ÚpriceÚerrrÚ    start_buy¦s4
 
 
 
rcFc
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_DELEGATEDrYrZr rÚTRADE_STATE_BUY_CANCEL_INGr\Z
cancel_buyrJrKrTr^r_)rÚforcer`rbrrrÚstart_cancel_buyÈs 
 
 
 
rhcCs@|dkr dSx.|D]&}|d}|dk    rt|tƒt|ƒqWdS)Nr)rrdrP)r6r8rrrrÚprocess_trade_success_dataÞs
 
ricCsœ|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[rrer rfrhrUrJrK)r6rr8rr`Z    ing_codesrrrÚprocess_trade_delegate_dataés"
 
 
 
rjcCs¨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 rCr r)rZredis_l2rÚkZ redis_traderrrÚ __clear_datas
rnÚ__main__Z000503)F)(r.rLr3rÚ    trade_guirr2r1rJÚlogrkrlr
rr[rerfrUrdr\rrr r$r(r9r<r>r@rFrHrIrPrRrcrhrirjrnÚ__name__rrrrÚ<module>sL 
           "