Files
big-qmt/py-client/strategy/zt/__pycache__/state.cpython-311.pyc

77 lines
11 KiB
Plaintext
Raw Normal View History

2026-08-31 13:00:22 +08:00
<EFBFBD>
2026-09-07 14:04:26 +08:00
㓝j<E3939D><00><01><><00>dZddlmZddlZddlmZddlmZddlmZddl m
2026-08-31 13:00:22 +08:00
Z
2026-09-07 14:04:26 +08:00
m Z ddl m Z d \ZZZed
<EFBFBD> <0B><00>Gd <0C>d <0A><00><00><00>ZGd<0E>d<0F><00>ZdS)u9做 T 策略的持仓状态和逐笔实际成交记录。<E5BD95>)<01> annotationsN)<01> dataclass)<01>datetime)<01>Path)<02>DealItem<65> PositionItem)<01> OrderBook)<03>READY<44>SOLD<4C>DONET)<01>slotsc<01><><00>eZdZUded<dZded<dZded<d Zded
<eZded <dZ ded <dZ
ded <dZ ded<dZ ded<dZ ded<d Zded<d Zded<dZded<dZded<dZded<dS)<17>
2026-08-31 13:00:22 +08:00
TStateItem<EFBFBD>str<74>coder<00>int<6E>base_qty<74><00>float<61> base_cost<73><00>
2026-09-07 14:04:26 +08:00
trade_date<EFBFBD>phase<73>sell_qty<74>
sell_price<EFBFBD>buy_qty<74>buy_cost<73>id<69> base_order_id<69>added_order_id<69> added_num<75> added_qty<74>
added_costN)<13>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__annotations__rrrr
rrrrrrrr r!r"r#<00><00><00>4D:\work\quant\big-qmt\py-client\strategy\zt\state.pyrrs<00><00><00><00><00><00><00> <0A>I<EFBFBD>I<EFBFBD>I<EFBFBD><15>H<EFBFBD><15><15><15><15><1A>I<EFBFBD><1A><1A><1A><1A><18>J<EFBFBD><18><18><18><18><16>E<EFBFBD><16><16><16><16><15>H<EFBFBD><15><15><15><15><1B>J<EFBFBD><1B><1B><1B><1B><14>G<EFBFBD><14><14><14><14><19>H<EFBFBD><19><19><19><19><0F>B<EFBFBD>K<EFBFBD>K<EFBFBD>K<EFBFBD>K<EFBFBD><1B>M<EFBFBD><1B><1B><1B><1B><1C>N<EFBFBD><1C><1C><1C><1C><16>I<EFBFBD><16><16><16><16><16>I<EFBFBD><16><16><16><16><1B>J<EFBFBD><1B><1B><1B><1B><1B>r)rc<01>z<00>eZdZdZdd<06>Zedd
<EFBFBD><04><00>Zedd<0F><04><00>Zedd<11><04><00>Z dd<16>Z
dd<17>Z dd<18>Z dS) <20>TStatezLApply actual executions immediately, atomically with their position changes.<2E>path<74>
str | Path<74>return<72>Nonec<01>x<00>t|<01><00>|_|jj|_|<00><00><00>dS)N)r <00>_storer-<00>_load)<02>selfr-s r*<00>__init__zTState.__init__&s,<00><00><1F><04>o<EFBFBD>o<EFBFBD><04> <0B><18>K<EFBFBD>$<24><04> <09> <0C>
<EFBFBD>
<EFBFBD> <0C> <0C> <0C> <0C> r)<00>dealr<00>boolc<01><><00>|jdko|j<00>d<02><00>p$|jdko|j<00>d<04><00>S)N<>BUY)<02>zt-base-z zt-t-buy-<2D>SELLz
zt-t-sell-)<03>side<64>local_order_id<69>
startswith)r6s r*<00> _is_zt_dealzTState._is_zt_deal+sQ<00><00> <11>I<EFBFBD><15> <1E> \<5C>4<EFBFBD>#6<>#A<>#A<>B[<5B>#\<5C>#\<5C>
<EFBFBD> <11>I<EFBFBD><16> <1F> P<>D<EFBFBD>$7<>$B<>$B<><<3C>$P<>$P<>
r)<00>itemr<00>daterc<01><><00>|jtkr=|j|kr2tdc|_|_dx|_|_dx|_|_dSdS)NrrrTF)rr rr
rrrr)r@rAs r*<00>_resetz TState._reset3sQ<00><00> <0F>:<3A><14> <1D> <1D>$<24>/<2F>T<EFBFBD>"9<>"9<>*/<2F><12> '<27>D<EFBFBD>J<EFBFBD><04><0F>+,<2C> ,<2C>D<EFBFBD>M<EFBFBD>D<EFBFBD>L<EFBFBD>.1<EFBFBD> 1<>D<EFBFBD>O<EFBFBD>d<EFBFBD>m<EFBFBD><17>4<EFBFBD><14>ur)<00>dictc<01><><00>|<00>||d<00><00>|d|d}}|ddkr8|j|z}|j|jz|z|z |_||_t|_nI|j|z}|j|jz|z|z |_||_||jkrtnt|_|d|_dS)u?实时入账与重启恢复共用同一套做 T 轮次计算。<E7AE97> insert_date<74> traded_volume<6D> trade_amountr<r;N) rCrrr rrrr r)<06>clsr@r6<00>qty<74>amount<6E>totals r*<00> _apply_t_dealzTState._apply_t_deal<s<><00><00> <0C>
<EFBFBD>
<EFBFBD>4<EFBFBD><14>m<EFBFBD>,<2C>-<2D>-<2D>-<2D><1A>?<3F>+<2B>T<EFBFBD>.<2E>-A<>V<EFBFBD><03> <0F><06><<3C>6<EFBFBD> !<21> !<21><18>M<EFBFBD>C<EFBFBD>'<27>E<EFBFBD>#<23>}<7D>t<EFBFBD><EFBFBD>><3E><16>G<>5<EFBFBD>P<>D<EFBFBD>O<EFBFBD>!<21>D<EFBFBD>M<EFBFBD><1D>D<EFBFBD>J<EFBFBD>J<EFBFBD><18>L<EFBFBD>3<EFBFBD>&<26>E<EFBFBD>!<21>\<5C>D<EFBFBD>M<EFBFBD>9<>F<EFBFBD>B<>e<EFBFBD>K<>D<EFBFBD>M<EFBFBD> <20>D<EFBFBD>L<EFBFBD>!&<26>$<24>-<2D>!7<>!7<><14><14>T<EFBFBD>D<EFBFBD>J<EFBFBD><1E>}<7D>-<2D><04><0F><0F>r)<00> positions<6E>list[PositionItem]<5D>deals<6C>list[DealItem]c <01><><00>tj<00><00><00><00><00><00><00><00>}d<01>|jD<00><00>}g}|D]|}|<00>|<06><00>r |j|vr<01>! |j<00>|<06><00>}n#t$rY<00>IwxYw|<05>
|<07><00>|<04> |j<00><00><00>}|<05> d<02><00><03><00>d} i} |D]E}| <09> |dd<06><00>|ddkr|d n|d  z| |d<<00>F|D]<5D>}
|
j} | |jvs |
jdkr<01>t#j|
j<00><00>r |
jdkr<01>Ct)d|
j| <09> | d<06><00>z
<00><00>} t+| | | r|
jnd
<EFBFBD><00>|j| <d }<08><>| <09><00><00>D]-\} } | |jvr| dkrt+| | <00><00>|j| <<00>.|D]<5D>}|j<00>|dt+|d<00><00><00><00>}|<00>||d <00><00>|d |d }} |d<00>d<0F><00>r9|j| z}|j|jz|z|z |_||_|d|_n|<00>||<07><00>|j<00>
|<07><00>d }<08><>|j<00><00><00>D]}|<00>||<03><00>p|}<08>|r|<00><00><00>dSdS#t>$r|<00> <00><00><00>wxYw)zFDeduplicate each fill; partial fills do not wait for order completion.c<01><00>h|]
}|d<00><02> S)<01> sys_order_idr()<02>.0<EFBFBD>rows r*<00> <setcomp>z#TState.reconcile.<locals>.<setcomp>Rs<00><00>:<3A>:<3A>:<3A><03><03>N<EFBFBD>#<23>:<3A>:<3A>:r)c<01>"<00>|d|dfS)NrF<00> insert_timer()<01>rs r*<00><lambda>z"TState.reconcile.<locals>.<lambda>]s<00><00><11>=<3D>!1<>1<EFBFBD>]<5D>3C<33> D<>r))<01>keyFrrr<r9rGrTrFrHr=r:N)!r<00>nowrA<00> isoformatrPr?rTr2<00> deal_record<72>
ValueError<EFBFBD>append<6E>add<64>sort<72>get<65>
stock_code<EFBFBD>items<6D>volume<6D>math<74>isfinite<74>
open_price<EFBFBD>maxr<00>
setdefaultrCr>rrrrM<00>values<65>save<76> Exceptionr3)r4rNrP<00>today<61>seen<65>rowsr6rV<00>modified<65>net<65>positionrrJ<00>deltar@rKrLs r*<00> reconcilezTState.reconcileMs<><00><00><19> <0C><0E><0E>#<23>#<23>%<25>%<25>/<2F>/<2F>1<>1<><05>:<3A>:<3A>t<EFBFBD>z<EFBFBD>:<3A>:<3A>:<3A><04><11><04><19> (<28> (<28>D<EFBFBD><17>#<23>#<23>D<EFBFBD>)<29>)<29> <19>T<EFBFBD>-><3E>$<24>-F<>-F<><18> <19><1A>k<EFBFBD>-<2D>-<2D>d<EFBFBD>3<>3<><03><03><><1D> <19> <19> <19><18><08> <19><><EFBFBD><EFBFBD> <10>K<EFBFBD>K<EFBFBD><03> <1C> <1C> <1C> <10>H<EFBFBD>H<EFBFBD>T<EFBFBD>&<26> '<27> '<27> '<27> '<27> <0C> <09> <09>D<>D<> <09>E<>E<>E<><18><08>* <12><14>C<EFBFBD><1B> <12> <12><03>#&<26>7<EFBFBD>7<EFBFBD>3<EFBFBD>v<EFBFBD>;<3B><01>#:<3A>#:<3A>,/<2F><06>K<EFBFBD>5<EFBFBD>,@<40>,@<40>C<EFBFBD><0F>(<28>(<28>s<EFBFBD>?<3F>G[<5B>F[<5B>$<12><03>C<EFBFBD><06>K<EFBFBD> <20> <20>&<26> <20> <20><08><1F>*<2A><04><17>4<EFBFBD>:<3A>%<25>%<25><18><1F>A<EFBFBD>)=<3D>)=<3D><1C><1B>}<7D>X<EFBFBD>%8<>9<>9<><1D>X<EFBFBD>=P<>TU<54>=U<>=U<><1C><19>!<21>X<EFBFBD>_<EFBFBD>s<EFBFBD>w<EFBFBD>w<EFBFBD>t<EFBFBD>Q<EFBFBD>/?<3F>/?<3F>?<3F>@<40>@<40><03>#-<2D>d<EFBFBD>C<EFBFBD>PS<50>9\<5C><18>9L<39>9L<39>Y\<5C>#]<5D>#]<5D><04>
<EFBFBD>4<EFBFBD> <20><1F><08><08> #<23>y<EFBFBD>y<EFBFBD>{<7B>{<7B> @<01> @<01> <0B><04>e<EFBFBD><17>t<EFBFBD>z<EFBFBD>)<29>)<29>e<EFBFBD>a<EFBFBD>i<EFBFBD>i<EFBFBD>'1<>$<24><15><06>'?<3F>'?<3F>D<EFBFBD>J<EFBFBD>t<EFBFBD>$<24><><1B> <20> <20><03><1B>z<EFBFBD>,<2C>,<2C>S<EFBFBD><16>[<5B>*<2A>S<EFBFBD><16>[<5B>:Q<>:Q<>R<>R<><04><14> <0B> <0B>D<EFBFBD>#<23>m<EFBFBD>"4<>5<>5<>5<>!<21>/<2F>2<>C<EFBFBD><0E>4G<34>V<EFBFBD><03><16>'<27>(<28>3<>3<>J<EFBFBD>?<3F>?<3F>2<> <20>M<EFBFBD>C<EFBFBD>/<2F>E<EFBFBD>&*<2A>m<EFBFBD>d<EFBFBD>n<EFBFBD>&D<>v<EFBFBD>&M<>QV<51>%V<>D<EFBFBD>N<EFBFBD>$)<29>D<EFBFBD>M<EFBFBD>),<2C>-=<3D>)><3E>D<EFBFBD>&<26>&<26><18>&<26>&<26>t<EFBFBD>S<EFBFBD>1<>1<>1<><14>
<EFBFBD>!<21>!<21>#<23>&<26>&<26>&<26><1F><08><08><1C>
<EFBFBD>)<29>)<29>+<2B>+<2B> @<01> @<01><04><1F>;<3B>;<3B>t<EFBFBD>U<EFBFBD>3<>3<>?<3F>x<EFBFBD><08><08><17> <1C><14> <09> <09> <0B> <0B> <0B> <0B> <0B> <1C> <1C><><18> <12> <12> <12> <10>J<EFBFBD>J<EFBFBD>L<EFBFBD>L<EFBFBD>L<EFBFBD> <11> <12><><EFBFBD>s<00>/B
<02>
B<05>B<05>$IL?<00>? Mc<01><><00> |j<00>d<01>|j<00><00><00>D<00><00>|j<00><00>dS#t$r|<00><00><00><00>wxYw)Nc <01><><00>i|]?\}}||j|j|j|j|j|j|j|j|jd<00> <09><02>@S)) rrrrr r!r"r#<00>status) rrrrr r!r"r#r)rUrr@s r*<00>
<dictcomp>zTState.save.<locals>.<dictcomp><3E>sg<00><00> <12> <12> <12>#<23><04>d<EFBFBD><19> $<24> <09>)-<2D>);<3B>$(<28>M<EFBFBD>%)<29>^<5E>*.<2E>*=<3D>%)<29>^<5E>%)<29>^<5E>&*<2A>o<EFBFBD>"&<26>*<2A>
<16>
<16> <12> <12> r))r2rnrfrPror3)r4s r*rnz TState.save<76>s<><00><00> <12> <10>K<EFBFBD> <1C> <1C> <12> <12>'+<2B>j<EFBFBD>&6<>&6<>&8<>&8<> <12> <12> <12><15>
<EFBFBD> <0E> <0E> <0E> <0E> <0E><>"<19> <12> <12> <12> <10>J<EFBFBD>J<EFBFBD>L<EFBFBD>L<EFBFBD>L<EFBFBD> <11> <12><><EFBFBD>s <00>AA<00> A%c<01><><00>|j<00><00><00>i|_|jj<00><00><00>D]@\}}t |<02><00>}|<02>d<01><00>|d<t d
i|<02><01>|j|<<00>Ad<03>|jj<00><00><00>D<00><00>|_|jD]S}|d<00> d<05><00>s6|d|jvr'|<00>
|j|d|<03><00><00>T|j<00><00><00>D]V\}}|jj|dtkr0tdc|_ |_ dx|_|_d x|_|_<00>WdS) Nrzrc<01>J<00>g|] }d<00>|<01><00><00>D<00><00><00><02>!S)c<01>&<00>i|]\}}|dk<00> ||<02><02>S)rr()rUr\<00>values r*r{z+TState._load.<locals>.<listcomp>.<dictcomp><3E>s#<00><00> F<> F<> F<>J<EFBFBD>C<EFBFBD><15>#<23><14>+<2B>+<2B>S<EFBFBD>%<25>+<2B>+<2B>+r))rf)rUr6s r*<00>
<listcomp>z TState._load.<locals>.<listcomp><3E>s?<00><00>
<EFBFBD>
<EFBFBD>
<EFBFBD><14> G<01> F<>$<24>*<2A>*<2A>,<2C>,<2C> F<> F<> F<>
<EFBFBD>
<EFBFBD>
r)r=r:rrrrr()r2<00>loadrfrNrD<00>poprrPrmr>rMr
rrrrrr)r4rrur6r@s r*r3z TState._load<61>s<><00><00> <0C> <0B><18><18><1A><1A><1A><17><04>
<EFBFBD>"<22>k<EFBFBD>3<>9<>9<>;<3B>;<3B> 6<> 6<>N<EFBFBD>D<EFBFBD>(<28><1B>H<EFBFBD>~<7E>~<7E>H<EFBFBD> (<28> <0C> <0C>X<EFBFBD> 6<> 6<>H<EFBFBD>W<EFBFBD> <1D>)<29>5<>5<>H<EFBFBD>5<>5<>D<EFBFBD>J<EFBFBD>t<EFBFBD> <1C> <1C>
<EFBFBD>
<EFBFBD><1C> <0B>)<29>0<>0<>2<>2<>
<EFBFBD>
<EFBFBD>
<EFBFBD><04>
<EFBFBD>
<19>J<EFBFBD> C<01> C<01>D<EFBFBD><17>(<28>)<29>4<>4<>Z<EFBFBD>@<40>@<40> C<01>T<EFBFBD>&<26>\<5C>UY<55>U_<55>E_<45>E_<45><14>"<22>"<22>4<EFBFBD>:<3A>d<EFBFBD>6<EFBFBD>l<EFBFBD>#;<3B>T<EFBFBD>B<>B<>B<><42><1E>*<2A>*<2A>*<2A>,<2C>,<2C> 6<> 6<>J<EFBFBD>D<EFBFBD>$<24><13>{<7B>$<24>T<EFBFBD>*<2A>8<EFBFBD>4<><05>=<3D>=<3D>.3<EFBFBD>R<EFBFBD>+<2B><04>
<EFBFBD>D<EFBFBD>O<EFBFBD>/0<>0<><04> <0A><04> <0C>25<32>5<><04><0F>$<24>-<2D><>  6<> 6r)N)r-r.r/r0)r6rr/r7)r@rrArr/r7)r@rr6rDr/r0)rNrOrPrQr/r0)r/r0) r$r%r&<00>__doc__r5<00> staticmethodr?rC<00> classmethodrMrwrnr3r(r)r*r,r,#s<><00><00><00><00><00><00>V<>V<><15><15><15><15>
<12>
<EFBFBD>
<EFBFBD>
<EFBFBD><12>\<5C>
<EFBFBD><12><15><15><15><12>\<5C><15><11>.<2E>.<2E>.<2E><11>[<5B>.<2E> <<12><<12><<12><<12>|<12><12><12><12>.6<>6<>6<>6<>6<>6r)r,)r<><00>
__future__rrh<00> dataclassesrr<00>pathlibr<00>sdkrr<00>libs.orderbookr r
r r rr,r(r)r*<00><module>r<>s<00><01>?<3F>?<3F>"<22>"<22>"<22>"<22>"<22>"<22> <0B> <0B> <0B> <0B>!<21>!<21>!<21>!<21>!<21>!<21><1D><1D><1D><1D><1D><1D><18><18><18><18><18><18>&<26>&<26>&<26>&<26>&<26>&<26>&<26>&<26>$<24>$<24>$<24>$<24>$<24>$<24>+<2B><11><05>t<EFBFBD>T<EFBFBD> <0B><19><14><16><16><16><1C><1C><1C><1C><1C><1C><1C><17><16><1C>$R6<>R6<>R6<>R6<>R6<>R6<>R6<>R6<>R6<>R6r)