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

62 lines
8.7 KiB
Plaintext
Raw Normal View History

2026-08-31 13:00:22 +08:00
<EFBFBD>
]<5D><>j<EFBFBD><00><01><><00>dZddlmZddlZddlmZmZddlmZddl m
Z
ddl m Z ddl mZmZd Zd
Zd Zd Zd Zed<0E><0F><00>Gd<10>d<11><00><00><00>ZGd<12>d<13><00>Zdd<18>ZdS)u-做 T 策略的底仓与日内轮次状态。<E68081>)<01> annotationsN)<02>asdict<63> dataclass<73><01>Path)<01>Lock)<01>Iterable)<02> OrderItem<65> PositionItem<65>READY<44>SELLING<4E>SOLD<4C>BUYING<4E>DONET)<01>slotsc<01><><00>eZdZUded<dZded<dZded<d Zded
<eZded <d Z ded <dZ
ded <dZ ded<d Z ded<dS)<11>
TStateItem<EFBFBD>str<74>coder<00>int<6E>base_qty<74><00>float<61> base_cost<73><00>
trade_date<EFBFBD>phase<73> sell_order_id<69>sell_qty<74>
sell_price<EFBFBD> buy_order_idN) <0A>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__annotations__rrrr rrrr r!<00><00><00>.\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><1B>M<EFBFBD><1B><1B><1B><1B><15>H<EFBFBD><15><15><15><15><1B>J<EFBFBD><1B><1B><1B><1B><1A>L<EFBFBD><1A><1A><1A><1A><1A>r'rc<01>Z<00>eZdZdZdd<06>Zedd <0C><04><00>Zdd<0F>Zdd<11>Zd d<17>Z d!d<18>Z
d"d<1A>Z dS)#<23>TStateuA持久化 dcm 底仓和每只证券每日一次的做 T 进度。<E5BAA6>path<74>
str | Path<74>return<72>Nonec<01><><00>t|<01><00>|_t<00><00>|_|<00><00><00>|_dS<00>N)rr+r<00>lock<63>_load<61>items)<02>selfr+s r(<00>__init__zTState.__init__$s-<00><00><18><14>J<EFBFBD>J<EFBFBD><04> <09><18>F<EFBFBD>F<EFBFBD><04> <09><19>Z<EFBFBD>Z<EFBFBD>\<5C>\<5C><04>
<EFBFBD>
<EFBFBD>
r'<00>data_dir<69>strategyr<00>
account_id<EFBFBD>'TState'c<01>D<00>|t|<01><00>|<02>d|<03>d<02>z <00><00>S)N<>_z _state.jsonr)<04>clsr6r7r8s r(<00> for_strategyzTState.for_strategy)s.<00><00><12>s<EFBFBD>4<EFBFBD><08>><3E>><3E>x<EFBFBD>$I<>$I<>*<2A>$I<>$I<>$I<>I<>J<>J<>Jr'rrc<01>^<00>|j5|j|cddd<00><00>S#1swxYwYdSr0)r1r3)r4rs r(<00>getz
TState.get-sx<00><00> <11>Y<EFBFBD> $<24> $<24><17>:<3A>d<EFBFBD>#<23> $<24> $<24> $<24> $<24> $<24> $<24> $<24> $<24> $<24> $<24> $<24> $<24><><EFBFBD><EFBFBD> $<24> $<24> $<24> $<24> $<24> $s <00> "<03>&<07>&<07>itemc<01>d<00>|j5||j|j<ddd<00><00>dS#1swxYwYdSr0)r1r3r)r4r@s r(<00>setz
TState.set1s|<00><00> <11>Y<EFBFBD> )<29> )<29>$(<28>D<EFBFBD>J<EFBFBD>t<EFBFBD>y<EFBFBD> !<21> )<29> )<29> )<29> )<29> )<29> )<29> )<29> )<29> )<29> )<29> )<29> )<29><><EFBFBD><EFBFBD> )<29> )<29> )<29> )<29> )<29> )s <00>%<03>)<07>)<07> positions<6E>Iterable[PositionItem]<5D>orders<72>list[OrderItem]<5D>todayc<01>8<00>d<01>|D<00><00>}d<02>|D<00><00>}i}|D]7}|jr.|<06>|jg<00><00><00>|<07><00><00>8|D]N}|j|jvr>|jdkr3|<00>t|j|j|j<00><00><00><00><00>Ot|j<00><00>D<00>]J} |<00>
| <09><00>}
| |vr;|j 5|j<00> | d<00><00>ddd<00><00>n #1swxYwY<00>W|
j rP|
j |krE|
jtt hvr0dt c|
_ |
_dx|
_|
_d|
_d|
_|
jt*kr4t-|<06>
|
j<00><00><00><00>r t.|
_nC|
jt0kr3t-|<06>
|
j<00><00><00><00>r t|
_|<00>|
<EFBFBD><00><00><01>L|<00><00><00>dS)Nc<01>6<00>g|]}|j<00> |jdk<00>|<01><02>S)r)<02>
stock_code<EFBFBD>volume<6D><02>.0r@s r(<00>
<listcomp>z$TState.reconcile.<locals>.<listcomp>6s'<00><00>[<5B>[<5B>[<5B>$<24>t<EFBFBD><EFBFBD>[<5B>4<EFBFBD>;<3B>YZ<59>?<3F>?<3F><14>?<3F>?<3F>?r'c<01><00>h|] }|j<00><02>
Sr&)rJrLs r(<00> <setcomp>z#TState.reconcile.<locals>.<setcomp>7s<00><00>D<>D<>D<>d<EFBFBD>$<24>/<2F>D<>D<>Dr'rrr)<1A>local_order_id<69>
setdefault<EFBFBD>appendrJr3<00>
open_pricerBrrK<00>listr?r1<00>poprrrr rr!rr r <00>
_completedrr<00>save) r4rCrErG<00> position_list<73>position_codes<65> by_local_id<69>order<65>positionrr@s r(<00> reconcilezTState.reconcile5sI<00><00>[<5B>[<5B>)<29>[<5B>[<5B>[<5B> <0A>D<>D<>m<EFBFBD>D<>D<>D<><0E>24<32> <0B><1B> O<01> O<01>E<EFBFBD><14>#<23> O<01><1B>&<26>&<26>u<EFBFBD>';<3B>R<EFBFBD>@<40>@<40>G<>G<><05>N<>N<>N<><4E>%<25> `<01> `<01>H<EFBFBD><17>"<22>$<24>*<2A>4<>4<><18>9L<39>q<EFBFBD>9P<39>9P<39><14><08><08><1A>H<EFBFBD>$7<><18><1F>(<28>J]<5D>^<5E>^<5E>_<>_<>_<><5F><18><14><1A>$<24>$<24> <1B> <1B>D<EFBFBD><17>8<EFBFBD>8<EFBFBD>D<EFBFBD>><3E>><3E>D<EFBFBD><13>><3E>)<29>)<29><19>Y<EFBFBD>/<2F>/<2F><18>J<EFBFBD>N<EFBFBD>N<EFBFBD>4<EFBFBD><14>.<2E>.<2E>.<2E>/<2F>/<2F>/<2F>/<2F>/<2F>/<2F>/<2F>/<2F>/<2F>/<2F>/<2F><><EFBFBD><EFBFBD>/<2F>/<2F>/<2F>/<2F><18><13><EFBFBD> &<26>4<EFBFBD>?<3F>e<EFBFBD>#;<3B>#;<3B><04>
<EFBFBD>t<EFBFBD>UZ<EFBFBD>m<EFBFBD>@[<5B>@[<5B>.0<EFBFBD>%<25>+<2B><04><0F><14><1A>9;<3B>;<3B><04>"<22>T<EFBFBD>%6<> !<21><04> <0A>"%<25><04><0F><13>z<EFBFBD>W<EFBFBD>$<24>$<24><1A>K<EFBFBD>O<EFBFBD>O<EFBFBD>D<EFBFBD>DV<44>4W<34>4W<34>)X<>)X<>$<24>!<21><04>
<EFBFBD>
<EFBFBD><15><1A>v<EFBFBD>%<25>%<25>*<2A>[<5B>_<EFBFBD>_<EFBFBD>T<EFBFBD>EV<45>5W<35>5W<35>*X<>*X<>%<25>!<21><04>
<EFBFBD> <10>H<EFBFBD>H<EFBFBD>T<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD> <0C> <09> <09> <0B> <0B> <0B> <0B> s<00>D<05>D <09> D c<01><><00>|j5|jj<00>dd<01><02><00>|j<00>|jjdz<00><00>}|<01>tjd<04>|j <00> <00><00>D<00><00>dd<06><07><00>dzd <09>
<EFBFBD><00>|<01>
|j<00><00>ddd<00><00>dS#1swxYwYdS) NT)<02>parents<74>exist_okz.tmpc<01>4<00>i|]\}}|t|<02><00><00><02>Sr&)r)rM<00>key<65>values r(<00>
<dictcomp>zTState.save.<locals>.<dictcomp>Ws$<00><00>,e<>,e<>,e<>J<EFBFBD>C<EFBFBD><15>S<EFBFBD>&<26><15>-<2D>-<2D>,e<>,e<>,er'F<>)<02> ensure_ascii<69>indent<6E>
<EFBFBD>utf-8<><01>encoding) r1r+<00>parent<6E>mkdir<69> with_suffix<69>suffix<69>
write_text<EFBFBD>json<6F>dumpsr3<00>replace)r4<00> temporarys r(rXz TState.saveSs4<00><00> <11>Y<EFBFBD> )<29> )<29> <10>I<EFBFBD> <1C> "<22> "<22>4<EFBFBD>$<24> "<22> ?<3F> ?<3F> ?<3F><1C> <09>-<2D>-<2D>d<EFBFBD>i<EFBFBD>.><3E><16>.G<>H<>H<>I<EFBFBD> <15> <20> <20><14><1A>,e<>,e<>RV<52>R\<5C>Rb<52>Rb<52>Rd<52>Rd<52>,e<>,e<>,e<>ty<74>CD<02>"E<02>"E<02>"E<02>HL<02>"L<02>W^<02> <20> _<02> _<02> _<02> <15> <1D> <1D>d<EFBFBD>i<EFBFBD> (<28> (<28> (<28>  )<29> )<29> )<29> )<29> )<29> )<29> )<29> )<29> )<29> )<29> )<29> )<29><><EFBFBD><EFBFBD> )<29> )<29> )<29> )<29> )<29> )s<00>B3C<03>C <07>C <07>dict[str, TStateItem]c<01>`<00> tj|j<00>d<01><02><00><00><00>}n>#t$ricYSt
tjf$r}td|<02><00><02><00>|<02>d}~wwxYwt|t<00><00>std<04><00><00>d<05>|<01>
<00><00>D<00><00>S)Nrjrku[ZT 状态] 读取失败: u$[ZT 状态] 根节点必须是对象c<01>.<00>i|]\}}|tdi|<02><01><01><02>S)r&)r)rMrrds r(rez TState._load.<locals>.<dictcomp>cs,<00><00>I<>I<>I<>k<EFBFBD>d<EFBFBD>E<EFBFBD><04>j<EFBFBD>)<29>)<29>5<EFBFBD>)<29>)<29>I<>I<>Ir') rr<00>loadsr+<00> read_text<78>FileNotFoundError<6F>OSError<6F>JSONDecodeError<6F>
ValueError<EFBFBD>
isinstance<EFBFBD>dictr3)r4<00>raw<61>excs r(r2z TState._loadZs<><00><00> J<01><16>*<2A>T<EFBFBD>Y<EFBFBD>0<>0<>'<27>0<>B<>B<>C<>C<>C<EFBFBD>C<EFBFBD><43> <20> <16> <16> <16><15>I<EFBFBD>I<EFBFBD>I<EFBFBD><17><14>-<2D>.<2E> J<01> J<01> J<01><1C>?<3F>#<23>?<3F>?<3F>@<40>@<40>c<EFBFBD> I<><49><EFBFBD><EFBFBD><EFBFBD> J<01><><EFBFBD><EFBFBD><19>#<23>t<EFBFBD>$<24>$<24> E<01><1C>C<>D<>D<> D<>I<>I<>S<EFBFBD>Y<EFBFBD>Y<EFBFBD>[<5B>[<5B>I<>I<>I<>Is<00>-0<00> A+<03>A+<03>A&<03>&A+N)r+r,r-r.)r6r,r7rr8rr-r9)rrr-r)r@rr-r.)rCrDrErFrGrr-r.)r-r.)r-rv) r"r#r$<00>__doc__r5<00> classmethodr=r?rBr^rXr2r&r'r(r*r*!s<><00><00><00><00><00><00>K<>K<>"<22>"<22>"<22>"<22>
<11>K<01>K<01>K<01><11>[<5B>K<01>$<24>$<24>$<24>$<24>)<29>)<29>)<29>)<29><14><14><14><14><)<29>)<29>)<29>)<29> J<01> J<01> J<01> J<01> J<01> Jr'r*rE<00>list[OrderItem] | Noner-<00>boolc<01>R<00>t|<00><00>otd<01>|D<00><00><00><00>S)Nc3<01>,K<00>|]}|jdkV<00><00>dS)<02>56N)<01>status)rMr\s r(<00> <genexpr>z_completed.<locals>.<genexpr>gs)<00><00><00><00>I<>I<><15><05> <0C><04> 4<>I<>I<>I<>I<>I<>Ir')r<><00>all)rEs r(rWrWfs*<00><00> <0F><06><<3C><<3C> I<>C<EFBFBD>I<>I<>&<26>I<>I<>I<>I<>I<>Ir')rEr<>r-r<>)r<><00>
__future__rrr<00> dataclassesrr<00>pathlibr<00> threadingr<00>typingr <00>sdkr
r r r rrrrr*rWr&r'r(<00><module>r<>sD<00><01>3<>3<>"<22>"<22>"<22>"<22>"<22>"<22> <0B> <0B> <0B> <0B>)<29>)<29>)<29>)<29>)<29>)<29>)<29>)<29><18><18><18><18><18><18><1A><1A><1A><1A><1A><1A><1B><1B><1B><1B><1B><1B>'<27>'<27>'<27>'<27>'<27>'<27>'<27>'<27><0F><05>
<13><07> <0A><04> <11><06> <0A><04> <0B><19><14><16><16><16> <1B> <1B> <1B> <1B> <1B> <1B> <1B><17><16> <1B>BJ<01>BJ<01>BJ<01>BJ<01>BJ<01>BJ<01>BJ<01>BJ<01>JJ<01>J<01>J<01>J<01>J<01>Jr'