Files
big-qmt/py-client/strategy/trend/__pycache__/order.cpython-311.pyc

37 lines
9.6 KiB
Plaintext
Raw Normal View History

2026-08-28 18:52:27 +08:00
<EFBFBD>
<00>U<EFBFBD>j<EFBFBD><00><01><00>dZddlmZddlZddlmZddlmZmZddlm Z ddl
m Z dd dd d
<EFBFBD>Z hd <0B>Z ed <0C> <0A><00>Gd<0E>d<0F><00><00><00>ZeGd<10>d<11><00><00><00>ZGd<12>d<13><00>Zdd<18>Zd d<1C>Zd!d<1E>ZdS)"uD趋势策略委托簿,对应 Go 客户端的 ``logic/order.go``。<>)<01> annotationsN)<01> dataclass)<02>datetime<6D> timedelta)<01>Lock)<01>Any<6E>BUY<55>SELL)<04>23<32>24<32>48<34>49>r r<00>50<35>51<35>52<35>55T)<01>frozenc<01>F<00>eZdZUdZded<ded<ded<ded<ded <d
S) <0B>PlaceOrderRequestu8``OrderBook.place`` 提交委托所需的全部参数。r<00>client<6E>int<6E>op<6F>str<74>code<64>volume<6D>order_idN<64><05>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__<5F>__annotations__<5F><00><00>strategy\trend\order.pyrrsC<00><00><00><00><00><00><00>B<>B<><0F>K<EFBFBD>K<EFBFBD>K<EFBFBD> <0B>G<EFBFBD>G<EFBFBD>G<EFBFBD> <0A>I<EFBFBD>I<EFBFBD>I<EFBFBD><0F>K<EFBFBD>K<EFBFBD>K<EFBFBD><11>M<EFBFBD>M<EFBFBD>M<EFBFBD>M<EFBFBD>Mr$rc<01>Z<00>eZdZUdZded<ded<ded<ded<ded<ded <d
ed <d S) <0A> OrderItemu8从 QMT 委托明细转换得到的本地订单记录。r<00>idr<00>side<64>remark<72>status<75>datetime | None<6E>
created_atrrNrr#r$r%r'r'sX<00><00><00><00><00><00><00>B<>B<> <0B>G<EFBFBD>G<EFBFBD>G<EFBFBD> <0A>I<EFBFBD>I<EFBFBD>I<EFBFBD> <0A>I<EFBFBD>I<EFBFBD>I<EFBFBD><0F>K<EFBFBD>K<EFBFBD>K<EFBFBD><0F>K<EFBFBD>K<EFBFBD>K<EFBFBD><1F><1F><1F><1F><0F>K<EFBFBD>K<EFBFBD>K<EFBFBD>K<EFBFBD>Kr$r'c<01>^<00>eZdZdZddd<07>Zedd
<EFBFBD><04><00>Zdd<0E>Zdd<0F>Zdd<12>Z d d!d<16>Z
d"d<19>Z dS)#<23> OrderBooku$线程安全的活动委托缓存。<E5AD98>,<00>timeout_seconds<64>float<61>return<72>Nonec<01>r<00>t|<01><01><00>|_i|_g|_t <00><00>|_dS)N)<01>seconds)r<00>timeout<75>data<74>indexr<00>lock)<02>selfr1s r%<00>__init__zOrderBook.__init__-s1<00><00> <20><1F>9<>9<>9<><04> <0C>*,<2C><04> <09> "<22><04>
<EFBFBD><18>F<EFBFBD>F<EFBFBD><04> <09> <09> r$<00>legrc<01>F<00>d|<00>dtjd<03><00><00><00>dd<05>S)u1生成不超过 24 个字符的策略订单号。zzt-<2D>-<2D>N<>)<02>secrets<74> token_hex)r=s r%<00> new_order_idzOrderBook.new_order_id3s.<00><00>2<>S<EFBFBD>1<>1<>7<EFBFBD>,<2C>Q<EFBFBD>/<2F>/<2F>1<>1<>#<23>2<EFBFBD>#<23>6<>6r$r)r<00>boolc<01>`<00>|j5|<01>d|<02><00>|jvcddd<02><00>S#1swxYwYdS)uB判断证券在指定买卖方向上是否已经被委托锁定。r?N)r:r9)r;r)rs r%<00>is_lockzOrderBook.is_lock8s<><00><00> <11>Y<EFBFBD> 2<> 2<><1A>#<23>#<23>T<EFBFBD>#<23>#<23>t<EFBFBD>z<EFBFBD>1<> 2<> 2<> 2<> 2<> 2<> 2<> 2<> 2<> 2<> 2<> 2<> 2<><32><EFBFBD><EFBFBD> 2<> 2<> 2<> 2<> 2<> 2s <00>#<03>'<07>'c<01><><00>|j5|j<00>|<02>d|<01><00><03><00>}t|o |jt
v<00><00>cddd<02><00>S#1swxYwYdS)u<判断证券是否存在仍在处理中的同方向委托。r?N)r:r8<00>getrEr+<00> BUSY_STATUSES)r;rr)<00>orders r%<00>busyzOrderBook.busy=s<><00><00> <11>Y<EFBFBD> A<01> A<01><18>I<EFBFBD>M<EFBFBD>M<EFBFBD>T<EFBFBD>"2<>"2<>D<EFBFBD>"2<>"2<>3<>3<>E<EFBFBD><17><05>?<3F>%<25>,<2C>-<2D>"?<3F>@<40>@<40> A<01> A<01> A<01> A<01> A<01> A<01> A<01> A<01> A<01> A<01> A<01> A<01><><EFBFBD><EFBFBD> A<01> A<01> A<01> A<01> A<01> As<00><A<03>A<07>Arrc<01><><00>d<01>|<01>d<02><00>D<00><00>}|j5d<03>|D<00><00>|_d<04>|D<00><00>|_ddd<05><00>dS#1swxYwYdS)u2从 QMT 刷新当前委托明细和方向索引。c<01>,<00>g|]}t|<01><00><00><02>Sr#)<01> parse_order)<02>.0<EFBFBD>rows r%<00>
<listcomp>z%OrderBook.refresh.<locals>.<listcomp>Es-<00><00>
<EFBFBD>
<EFBFBD>
<EFBFBD>!$<24>K<EFBFBD><03> <1C> <1C>
<EFBFBD>
<EFBFBD>
r$rKc<01><00>i|]\}}||<02><02> Sr#r#)rP<00>key<65>items r%<00>
<dictcomp>z%OrderBook.refresh.<locals>.<dictcomp>Is<00><00>B<>B<>B<>y<EFBFBD>s<EFBFBD>D<EFBFBD><13>d<EFBFBD>B<>B<>Br$c<01><00>g|]\}}|<01><02>Sr#r#)rPrT<00>_s r%rRz%OrderBook.refresh.<locals>.<listcomp>Js<00><00>:<3A>:<3A>:<3A>&<26>#<23>q<EFBFBD>#<23>:<3A>:<3A>:r$N)<04>trade_detail_datar:r8r9)r;r<00> parsed_orderss r%<00>refreshzOrderBook.refreshCs<><00><00>
<EFBFBD>
<EFBFBD>(.<2E>(@<40>(@<40><17>(I<>(I<>
<EFBFBD>
<EFBFBD>
<EFBFBD> <0A><12>Y<EFBFBD> ;<3B> ;<3B>B<>B<>M<EFBFBD>B<>B<>B<>D<EFBFBD>I<EFBFBD>:<3A>:<3A>M<EFBFBD>:<3A>:<3A>:<3A>D<EFBFBD>J<EFBFBD> ;<3B> ;<3B> ;<3B> ;<3B> ;<3B> ;<3B> ;<3B> ;<3B> ;<3B> ;<3B> ;<3B> ;<3B><><EFBFBD><EFBFBD> ;<3B> ;<3B> ;<3B> ;<3B> ;<3B> ;s<00>#A<03>A<07>AN<>nowr,c<01>"<00>|<00>|<01><00>|ptj<00><00>}t|j<00><00><00><00><00>D]=}|j<00>4||jz
|jkr!|jr|<01> |j<00><00><00>>dS)u<尝试撤销超过有效期且具有委托编号的订单。N)
r[rr\<00>listr8<00>valuesr-r7r(<00>can_cancel_order)r;rr\<00>currentrKs r%<00>cancel_expiredzOrderBook.cancel_expiredLs<><00><00> <0C> <0C> <0C>V<EFBFBD><1C><1C><1C><15>'<27><18><1C><1E><1E><07><1A>$<24>)<29>*<2A>*<2A>,<2C>,<2C>-<2D>-<2D> 2<> 2<>E<EFBFBD><15> <20>,<2C><1B>e<EFBFBD>.<2E>.<2E><14><1C>=<3D>=<3D><19>H<EFBFBD>><3E><17>'<27>'<27><05><08>1<>1<>1<><31>  2<> 2r$<00>requestrc<01>H<00>|j<00>|j|j|j|j<00><00>t <00>t|j<00><00>d<01><00>}|j 5|j
<00> |<02>d|j<00><00><03><00>ddd<03><00>n #1swxYwYdS)u<按最新价提交委托并立即写入本地方向锁。<E99481>r?NT) r<00>passorder_latest_taggedrrrr<00> OFFSET_FLAGrIrr:r9<00>append)r;rcr)s r%<00>placezOrderBook.placeZs<><00><00><0F><0E>.<2E>.<2E> <13>J<EFBFBD> <13>L<EFBFBD> <13>N<EFBFBD> <13> <1C> 
<EFBFBD>
<EFBFBD>
<EFBFBD><1B><EFBFBD><EFBFBD>s<EFBFBD>7<EFBFBD>:<3A><EFBFBD><EFBFBD><02>3<>3<><04> <11>Y<EFBFBD> 8<> 8<> <10>J<EFBFBD> <1D> <1D><14>6<>6<><07> <0C>6<>6<> 7<> 7<> 7<> 8<> 8<> 8<> 8<> 8<> 8<> 8<> 8<> 8<> 8<> 8<><38><EFBFBD><EFBFBD> 8<> 8<> 8<> 8<><13>ts<00>&%B<03>B<07>B)r0)r1r2r3r4)r=rr3r)r)rrrr3rE)rrr)rr3rE)rrr3r4)N)rrr\r,r3r4)rcrr3rE) rrr r!r<<00> staticmethodrDrGrLr[rbrir#r$r%r/r/*s<><00><00><00><00><00><00>.<2E>.<2E><1B><1B><1B><1B><1B> <12>7<>7<>7<><12>\<5C>7<>2<>2<>2<>2<>
A<01>A<01>A<01>A<01> ;<3B>;<3B>;<3B>;<3B> 2<> 2<> 2<> 2<> 2<> <14> <14> <14> <14> <14> r$r/rQ<00>dict[str, Any]r3<00>tuple[str, OrderItem]c <01><00>t|<00>d<01><00><00><00>t|<00>d<02><00><00><00>z}t|<00>d<03><00><00><00>}|dkr|dz}|rtj|<02><00>nt |<00><00>}t t |<00>d<06><00>pd<07><00>t |<00>d<08><00>pd<07><00>t<00>t |<00>d <09><00><00><00>d<07><00>t |<00>d
<EFBFBD><00>pd<07><00>t |<00>d <0B><00>pd<07><00>||<01> <0C><00>}|j<00>d |j <00><00>|fS)uA把 QMT 原始委托字段转换为本地订单及其索引键。<E994AE>m_nVolumeTotal<61>m_nVolumeTraded<65> m_nOrderTimelh<>]i<><00>m_strOrderSysIDre<00>m_strInstrumentID<49> m_nOffsetFlag<61> m_strRemark<72>m_nOrderStatus)r(rr)r*r+r-rr?)
<EFBFBD>_as_intrIr<00> fromtimestamp<6D>_parse_insert_datetimer'rrgr)r)rQr<00> timestampr-rUs r%rOrOisj<00><00> <14>S<EFBFBD>W<EFBFBD>W<EFBFBD>-<2D>.<2E>.<2E> /<2F> /<2F>'<27> <0B><07><07>!<21>"<22>"<22>3<06>3<06><06>F<EFBFBD><18><03><07><07><0E>/<2F>/<2F>0<>0<>I<EFBFBD><10>?<3F>"<22>"<22><11>T<EFBFBD><19> <09> <15> )<29><08><1E>y<EFBFBD>)<29>)<29>)<29> #<23>C<EFBFBD> (<28> (<28><0F> <15> <0E>s<EFBFBD>w<EFBFBD>w<EFBFBD>(<28>)<29>)<29>/<2F>R<EFBFBD> 0<> 0<> <10><13><17><17>,<2C>-<2D>-<2D>3<><12> 4<> 4<> <18>_<EFBFBD>_<EFBFBD>S<EFBFBD><13><17><17><1F>!9<>!9<>:<3A>:<3A>B<EFBFBD> ?<3F> ?<3F><12>3<EFBFBD>7<EFBFBD>7<EFBFBD>=<3D>)<29>)<29>/<2F>R<EFBFBD>0<>0<><12>3<EFBFBD>7<EFBFBD>7<EFBFBD>+<2B>,<2C>,<2C>2<><02>3<>3<><1D><15> <06> <06> <06>D<EFBFBD><13>i<EFBFBD> %<25> %<25>$<24>)<29> %<25> %<25>t<EFBFBD> +<2B>+r$<00>valuerrc<01>V<00> t|pd<01><00>S#ttf$rYdSwxYw)u-安全转换整数,无效值按 0 处理。r)r<00> TypeError<6F>
ValueError)rzs r%rvrv<00>s><00><00><11><12>5<EFBFBD>:<3A>A<EFBFBD><EFBFBD><EFBFBD><1E><> <15>z<EFBFBD> "<22><11><11><11><10>q<EFBFBD>q<EFBFBD><11><><EFBFBD>s <00><00>(<03>(r,c<01>4<00>t|<00>d<01><00>pd<02><00>}t|<00>d<03><00>pd<02><00><00>dd<02><00><00>d<05><00>} t j||zd<06><00>S#t $rYdSwxYw)u6使用委托日期和时间字段构造本地时间。<E997B4>m_strInsertDatere<00>m_strInsertTime<6D>:r@z %Y%m%d%H%M%SN)rrI<00>replace<63>zfillr<00>strptimer})rQ<00>date<74>clocks r%rxrx<00>s<><00><00> <0E>s<EFBFBD>w<EFBFBD>w<EFBFBD>(<28>)<29>)<29>/<2F>R<EFBFBD> 0<> 0<>D<EFBFBD> <0F><03><07><07>)<29>*<2A>*<2A>0<>b<EFBFBD> 1<> 1<> 9<> 9<>#<23>r<EFBFBD> B<> B<> H<> H<><11> K<> K<>E<EFBFBD><14><17> <20><14><05><1C>~<7E>><3E>><3E>><3E><> <15><14><14><14><13>t<EFBFBD>t<EFBFBD><14><><EFBFBD>s<00>1B <00>
B<03>B)rQrkr3rl)rzrr3r)rQrkr3r,)r!<00>
__future__rrB<00> dataclassesrrr<00> threadingr<00>typingrrgrJrr'r/rOrvrxr#r$r%<00><module>r<>sy<00><01>J<>J<>"<22>"<22>"<22>"<22>"<22>"<22><0E><0E><0E><0E>!<21>!<21>!<21>!<21>!<21>!<21>(<28>(<28>(<28>(<28>(<28>(<28>(<28>(<28><1A><1A><1A><1A><1A><1A><16><16><16><16><16><16><1B>&<26><05>V<EFBFBD>D<>D<> <0B>5<>4<>4<> <0A> <0B><19>$<24><17><17><17><12><12><12><12><12><12><12><18><17><12> <0B> <10> <10> <10> <10> <10> <10> <10> <0B><19> <10><<14><<14><<14><<14><<14><<14><<14><<14>~,<2C>,<2C>,<2C>,<2C>8<11><11><11><11><14><14><14><14><14>r$