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
69
70
71
72
73
74
B
?þb-#ã@s"ddlmZmZddlZddlZddlZddlmZ    ddl
Z
ddl Z ddl Z ddl Z ddlZddlZddlmZddlmZe  ¡Zdd„Zdd„Zd    d
„Zd d „Zd d„Zdd„Zdd„ZiZdd„Zdd„Zdd„Z dd„Z!dd„Z"dd„Z#Gdd „d ƒZ$d!d"„Z%d#d$„Z&e'd%kreƒdS)&é)Úprint_functionÚabsolute_importN)Ú L2CodeOperate)Úlogger_juejin_tickcCs0t ¡}| d|¡| d|¡| d|¡dS)Nzjuejin-account-idzjuejin-strategy-idz juejin-token)Ú redisManagerÚgetRedisÚset)Z    accountIdZ
strategyIdÚtokenÚredis©r úD:\workspace\trade\juejin.pyÚsetAccountInfos  r cCs0t ¡}| d¡}| d¡}| d¡}|||fS)Nzjuejin-account-idzjuejin-strategy-idz juejin-token)rrÚget)r
Ú
account_idÚ strategy_idr    r r r ÚgetAccountInfos
 
 
 
rcCs˜tdƒtjtdddtjtdddtjtdddtjtdddtjtdddtƒt ¡}x,|D]$}xtd    d
ƒD]}t     
||¡q|WqlWdS) Nu掘金初始化Ú1dz08:30:00)Z schedule_funcZ    date_ruleZ    time_rulez08:50:00z09:15:00z09:29:00z09:29:35ré) ÚprintÚgmapiÚscheduleÚget_latest_infoÚget_current_infoÚre_subscribe_tickÚ    authorityÚget_l2_clientsÚrangeÚgpcode_managerÚinit_listen_code_by_pos)ÚcontextÚclientsÚclientÚir r r Úinit%s
r#c
Cs´t ¡}x0|D](}x"tddƒD]}t t|ƒ|¡qWqWt ¡}t |¡}xb|D]Z}|d}|d}|     d¡d}t
  t   t|dƒ¡¡}    |dkr¢t ||    ¡qRt |¡qRWdS)NrrÚ    sec_levelÚsymbolÚ.éÚ    pre_close)rrrrrÚintÚ get_gp_listÚ JueJinManagerÚget_gp_latest_infoÚsplitÚtoolÚto_priceÚdecimalÚDecimalÚstrÚ set_price_preÚrm_gp)
rr Úcr"ÚdataÚresultÚitemr$r%r(r r r r<s
 
 
rcCsXt ¡}t |¡}t d|¡x4|D],}|d}|d}| d¡d}t||ƒq$WdS)Nu定时获取:{}Úpricer%r&r')rr*r+Úget_gp_current_inforÚdebugr-Ú accpt_price)r6Úresultsr7r9r%r r r rPs
 
rcCs|g}t|ƒdS)N)Úset_price_pres)ÚcodeÚcodesr r r r3]sr3cCsVt |¡}xF|D]>}|d}| d¡d}t t t|dƒ¡¡}t     ||¡qWdS)Nr%r&r'r()
r+r,r-r.r/r0r1r2rr3)r@r7r8r%r(r r r r>bs 
 
r>c
Cs t ¡dd}d}d}d}d}d}||kr8|ksTn||krN|ksTn|rœ|d}|d    }    | d
¡d }t d  ||    |d ¡¡t||    ƒ|    t|<dS)Ni€Qi€pi0„iä¢ix´iÔFr%r9r&r'z {}   {}    {}Z
created_at)ÚtÚtimer-rÚinfoÚformatr<Ú __prices_now)
rÚtickZrelative_timestampZstart1Zend1Zstart2Zend2Útestr%r9r r r Úon_tickns0
rHcCs¦t ||¡t |¡}|dk    r¢t||d|dƒ}|dkrvt|||ƒt |¡s¢t |¡s¢t ¡s¢t     ¡ 
d|¡n,|dkr¢t |¡r¢t |¡s¢t     ¡ 
d|¡dS)Nédr'éér) rÚ    set_priceÚ get_price_preÚroundrÚ    is_listenÚ
is_operateÚis_listen_fullrÚ get_instanceZ add_operate)r?r9ZpricePreZrater r r r<ˆs 
 r<cCstd|ƒdS)NÚon_bar)r)rZbarsr r r rSšsrScCs6t ¡}d |¡}td|ƒtj|dddddddS)    Nú,u    è®¢é˜…:rFéFZ10sT)ÚsymbolsÚ    frequencyÚcountZ
wait_groupZwait_group_timeoutÚunsubscribe_previous)rÚget_gp_list_with_prefixÚjoinrrÚ    subscribe)Ú gpcode_listÚ    codes_strr r r ržs
 
 
rcCs2t ¡}d |¡}td|ƒtj|dddddS)NrTu    è®¢é˜…:Z60sr'T)rVrWrXrY)rrZr[rrr\)r]r^r r r Úre_subscribe_bar§s
 
 
 
r_cCs(x"| ¡}t|ƒ|dkrtƒqWdS)NÚresub)Úrecvrr)ÚpipeÚvaluer r r Ú recieve_msg¯s
rdc@s<eZdZdd„Zedd„ƒZedd„ƒZdd„Zd    d
„Zd S) r+cs0ˆ|_tj‡fdd„d}| d¡| ¡dS)NcstˆƒS)N)rdr )rbr r Ú<lambda>»óz(JueJinManager.__init__.<locals>.<lambda>)ÚtargetT)rbÚ    threadingÚThreadÚ    setDaemonÚstart)ÚselfrbÚt1r )rbr Ú__init__¸s
zJueJinManager.__init__cCs>tƒ\}}}t |¡}t |¡tjd |¡d}t|ƒ|S)NrT)rV)rrrZrÚ    set_tokenZget_instrumentsr[r)r@rÚs_idr    rVr6r r r r,¿s  
 
z JueJinManager.get_gp_latest_infocCs>tƒ\}}}t |¡}t |¡tjd |¡d}t|ƒ|S)NrT)rV)rrrZrroÚcurrentr[r)r@rrpr    rVr6r r r r:Ès  
 
z!JueJinManager.get_gp_current_infocCs(tƒ\}}}tj|dtjdd|ddS)Nz    juejin.pyz2022-08-18 09:25:00z2022-08-18 10:30:00)rÚfilenameÚmodeZbacktest_start_timeZbacktest_end_timer    )rrÚrunZ    MODE_LIVE)rlrrpr    r r r rkÑs zJueJinManager.startcCs t ¡dS)N)rÚstop)rlr r r ruÛszJueJinManager.stopN)    Ú__name__Ú
__module__Ú __qualname__rnÚ staticmethodr,r:rkrur r r r r+·s
          
r+cCsFtƒ\}}}t |¡t |¡tj||tjtjtjd}t|ƒdS)N)r%ÚvolumeÚsideZ
order_typeZposition_effect)    rrroÚset_account_idZ order_volumeZOrderSide_SellZOrderType_MarketZPositionEffect_Closer)r?rzrrpr    r7r r r Útradeßs  
 
 r}c Csêtj ¡}tjdd}||}tƒ\}}}t |¡t |¡tjt     |¡dd 
|¡dd 
|¡d}i}x||D]t}    |    d  d¡d    }
t |    d
ƒ} d 
|    d ¡} |  |
¡dkrº| | d œ||
<| ||
d krÖ| ||
d <| ||
d<qnW|S)NéZ)Údaysrz {:%Y-%m-%d}zsymbol,volume,eob)r%rWÚ
start_timeÚfieldsÚend_timer%r&r'rzZeob)Ú
max_volumnÚ latest_volumnrƒr„)ÚdatetimeÚnowÚ    timedeltarrror|ÚhistoryrrZrDr-r)r) r@ÚendZcharkrrpr    r=Z_fresultr7r?ZvolumnÚdayr r r Ú get_volumnsès*
 
 
 
  r‹Ú__main__)(Ú
__future__rrr…ÚjsonrBrAZgm.apiZapirrrhr.Ú redis_managerrr0Úl2_code_operaterÚlogrÚ RedisManagerrr rr#rrr3r>rErHr<rSrr_rdr+r}r‹rvr r r r Ú<module>s@            (