Files
big-qmt/py-client/sdk/__pycache__/models.cpython-311.pyc

234 lines
21 KiB
Plaintext
Raw Normal View History

2026-08-28 18:52:27 +08:00
<EFBFBD>
2026-09-07 14:04:26 +08:00
ѓ<>j<EFBFBD>)<00><01>|<00>ddlmZddlmZddlmZmZddlmZefd0d
2026-08-30 14:46:34 +08:00
<EFBFBD>Z ed <0B> <0C><00>Gd <0A>d<0E><00><00><00>Z
2026-09-07 14:04:26 +08:00
ed <0B> <0C><00>Gd<0F>d<10><00><00><00>Z ed <0B> <0C><00>Gd<11>d<12><00><00><00>Z ed <0B> <0C><00>Gd<13>d<14><00><00><00>Z ed <0B> <0C><00>Gd<15>d<16><00><00><00>Zd1d<1A>Zd2d<1E>Zed <0B> <0C><00>Gd<1F>d <20><00><00><00>Zed <0B> <0C><00>Gd!<21>d"<22><00><00><00>Zed <0B> <0C><00>Gd#<23>d$<24><00><00><00>Zed <0B> <0C><00>Gd%<25>d&<26><00><00><00>Zed <0B> <0C><00>Gd'<27>d(<28><00><00><00>Zed <0B> <0C><00>Gd)<29>d*<2A><00><00><00>Zed <0B> <0C><00>Gd+<2B>d,<2C><00><00><00>Zed <0B> <0C><00>Gd-<2D>d.<2E><00><00><00>Zd/S)3<>)<01> annotations)<01>datetime)<02> dataclass<73>field)<01>Any<6E>valuer<00>kind<6E>type<70>returnc<01>`<00> ||pd<01><00>S#ttf$r |<01><00>cYSwxYw)Nr)<02> TypeError<6F>
2026-08-30 14:46:34 +08:00
ValueError)rr s <20>-D:\work\quant\big-qmt\py-client\sdk\models.py<70>_numberrsJ<00><00><16><13>t<EFBFBD>E<EFBFBD>J<EFBFBD>Q<EFBFBD><1F><1F><1F><> <15>z<EFBFBD> "<22><16><16><16><13>t<EFBFBD>v<EFBFBD>v<EFBFBD> <0A> <0A> <0A><16><><EFBFBD>s <00> <00>-<03>-T)<01>slotsc<01><><00>eZdZUdZded<ded<ded<ded<ded<ded <d
ed <d Zded <dZd
ed<dZd
ed<d Zded<d Z ded<dZ
ded<dZ ded<dZ ded<e dd<1C><04><00>ZdS)<1F> OrderItemu8由 QMT 委托明细解析得到的标准订单记录。<E5BD95>str<74>id<69>code<64>side<64>remark<72>status<75>datetime | None<6E>
created_at<EFBFBD>int<6E>volume<6D><00>local_order_idr<00> traded_volume<6D>remaining_volume<6D> exchange_id<69>name<6D><00>float<61>price<63> trade_price<63> trade_amount<6E>data<74>dict[str, Any]r <00> 'OrderItem'c<01>"<00>t|<01>d<01><00>pd<02><00>}t|<01>d<03><00>pd<02><00>}|r |r|<02>d|<03><00>n|}t|<01>d<05><00>t<00><00>}t|<01>d<06><00>t<00><00>}t|<01>d<07><00>pd<02><00>}|t|<01>d<08><00>pd<02><00>|d d
d d
2026-09-07 14:04:26 +08:00
d <0B><04>t|<01>d <0C><00><00><00>d<02><00>|t|<01>d <0A><00>pd<02><00>t |<01><00>||z|r|<07>dd<0F><00>dnd|||t|<01>d<11><00>pd<02><00>t|<01>d<12><00><00><00>t|<01>d<13><00><00><00>t|<01>d<14><00><00><00><00><15><00>S)u7从 TradeDetailData 的 QMT 原始字段创建订单。<E58D95>m_strInstrumentIDr<00>m_strExchangeID<49>.<2E>m_nVolumeTotal<61>m_nVolumeTraded<65> m_strRemark<72>m_strOrderSysID<49>BUY<55>SELL<4C><04>23<32>24<32>48<34>49<34> m_nOffsetFlag<61>m_nOrderStatus<75>|<7C>r<00>m_strInstrumentName<6D>m_dPrice<63> m_dTradePrice<63>m_dTradeAmount)rrrrrrrrr r!r"r#r&r'r()r<00>getrr<00>_trade_datetime<6D>split)<08>clsr)<00> instrument_idr"rr!r rs r<00>from_trade_detailzOrderItem.from_trade_detail"s<><00><00><1C>D<EFBFBD>H<EFBFBD>H<EFBFBD>%8<>9<>9<>?<3F>R<EFBFBD>@<40>@<40> <0A><19>$<24>(<28>(<28>#4<>5<>5<>;<3B><12><<3C><<3C> <0B><1D> <1F>!,<2C> <1F>}<7D> ,<2C> ,<2C>{<7B> ,<2C> ,<2C> ,<2C><1E> <0A>
2026-08-30 14:46:34 +08:00
#<23>4<EFBFBD>8<EFBFBD>8<EFBFBD>,<<3C>#=<3D>#=<3D>s<EFBFBD>C<>C<><18><1F><04><08><08>):<3A> ;<3B> ;<3B>S<EFBFBD>A<>A<> <0A><14>T<EFBFBD>X<EFBFBD>X<EFBFBD>m<EFBFBD>,<2C>,<2C>2<><02>3<>3<><06><12>s<EFBFBD><12>4<EFBFBD>8<EFBFBD>8<EFBFBD>-<2D>.<2E>.<2E>4<>"<22>5<>5<><15><1D>V<EFBFBD>5<EFBFBD><06>G<>G<>K<>K<><13>D<EFBFBD>H<EFBFBD>H<EFBFBD>_<EFBFBD>-<2D>-<2D>.<2E>.<2E><02><0E><0E><1A><16>t<EFBFBD>x<EFBFBD>x<EFBFBD> 0<>1<>1<>7<>R<EFBFBD>8<>8<>&<26>t<EFBFBD>,<2C>,<2C>#<23>m<EFBFBD>3<>6<<3C>D<>6<EFBFBD><<3C><<3C><03>Q<EFBFBD>/<2F>/<2F><01>2<>2<>"<22>'<27>-<2D>#<23><14>T<EFBFBD>X<EFBFBD>X<EFBFBD>3<>4<>4<>:<3A><02>;<3B>;<3B><19>$<24>(<28>(<28>:<3A>.<2E>.<2E>/<2F>/<2F><1F><04><08><08><1F> 9<> 9<>:<3A>:<3A> <20><14><18><18>*:<3A>!;<3B>!;<3B><<3C><<3C>#
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>N)r)r*r r+)<0F>__name__<5F>
2026-09-07 14:04:26 +08:00
__module__<EFBFBD> __qualname__<5F>__doc__<5F>__annotations__rr r!r"r#r&r'r(<00> classmethodrH<00>rIrrrs<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><1C>N<EFBFBD><1C><1C><1C><1C><1A>M<EFBFBD><1A><1A><1A><1A><1D><14><1D><1D><1D><1D><19>K<EFBFBD><19><19><19><19><12>D<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD><16>E<EFBFBD><16><16><16><16><1C>K<EFBFBD><1C><1C><1C><1C><1D>L<EFBFBD><1D><1D><1D><1D><10>
2026-08-30 14:46:34 +08:00
<EFBFBD>
<EFBFBD>
<EFBFBD><11>[<5B>
<EFBFBD>
<EFBFBD>
2026-09-07 14:04:26 +08:00
rIrc<01>(<00>eZdZUdZdZded<dZded<dZded<dZded<dZ ded<dZ
ded <dZ ded
<dZ ded <dZ ded <d Zded<d Zded<d Zded<dZded<dZded<dZded<dZded<dZded<dZded<ed d<1E><04><00>ZdS)!<21>DealItemz8Execution data from the API's fixed order-detail fields.rr<00> sys_order_idrrrGr"r#<00> offset_flagrrrrr!r <00>
order_time<EFBFBD> insert_date<74> insert_timerr$r%r&r'r(r)r*r <00>
'DealItem'c
<01><00>t|<01>d<01><00>pd<02><00>}t|<01>d<03><00>pd<02><00>}t|<01>d<04><00>pd<02><00>}t|<01>d<05><00>pd<02><00>}|d*idt|<01>d<07><00>pd<02><00><00>d|r|<04>d d
<EFBFBD><00>d nd<02>d |r |r|<02>d |<03><00>n|<02>d|<02>d|<03>dt|<01>d<11><00>pd<02><00><00>d|<05>dddddd<16><04>|d<02><00><00>dt|<01>d<18><00>pd<02><00><00>dt|<01>d<1A><00>t<00><00><00>dt|<01>d<1C><00>t<00><00><00>dt|<01>d<1E><00>t<00><00><00>dt|<01>d <20><00>pd<02><00><00>d!t|<01>d"<22><00>pd<02><00><00>d#|<04>d$t|<01>d%<25><00><00><00><00>d&t|<01>d'<27><00><00><00><00>d(t|<01>d)<29><00><00><00><00><01>S)+Nr-rr.r2r;rSr3rr=r>rrr/rGr"r#r?rTrr4r5r6rr<r!r0r r1rU<00> m_nOrderTimerV<00>m_strInsertDaterW<00>m_strInsertTimerr&r@r'rAr(rBrP)rrCrErr)rFr)rGr"rrTs rrHzDealItem.from_trade_detail[s<><00><00><1B>D<EFBFBD>H<EFBFBD>H<EFBFBD>%8<>9<>9<>?<3F>R<EFBFBD>@<40>@<40> <0A><19>$<24>(<28>(<28>#4<>5<>5<>;<3B><12><<3C><<3C> <0B><14>T<EFBFBD>X<EFBFBD>X<EFBFBD>m<EFBFBD>,<2C>,<2C>2<><02>3<>3<><06><19>$<24>(<28>(<28>?<3F>3<>3<>9<>r<EFBFBD>:<3A>:<3A> <0B><12>s<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD><1C>T<EFBFBD>X<EFBFBD>X<EFBFBD>&7<>8<>8<>><3E>B<EFBFBD>?<3F>?<3F>?<3F>
<EFBFBD>6<<3C>D<>6<EFBFBD><<3C><<3C><03>Q<EFBFBD>/<2F>/<2F><01>2<>2<>"<22><>
<EFBFBD>6C<01>e<>{<7B>e<>M<EFBFBD>1<>1<>K<EFBFBD>1<>1<>1<>Xe<58><65>
<EFBFBD>(<28>-<2D> 
<EFBFBD>
$<24> <0B> 
<EFBFBD> <15>T<EFBFBD>X<EFBFBD>X<EFBFBD>3<>4<>4<>:<3A><02>;<3B>;<3B>;<3B> 
<EFBFBD>$<24> <0B>
<EFBFBD><1E>V<EFBFBD>5<EFBFBD><06>G<>G<>K<>K<>K<EFBFBD>Y[<5B>\<5C>\<5C>\<5C>
<EFBFBD><17>t<EFBFBD>x<EFBFBD>x<EFBFBD> 0<>1<>1<>7<>R<EFBFBD>8<>8<>8<>
<EFBFBD>%<25>T<EFBFBD>X<EFBFBD>X<EFBFBD>.><3E>%?<3F>%?<3F><13>E<>E<>E<>
<EFBFBD>"<22>$<24>(<28>(<28>+<<3C>"=<3D>"=<3D>s<EFBFBD>C<>C<>C<>
<EFBFBD><1F>t<EFBFBD>x<EFBFBD>x<EFBFBD><0E>7<>7<><13>=<3D>=<3D>=<3D>
<EFBFBD><1C>D<EFBFBD>H<EFBFBD>H<EFBFBD>%6<>7<>7<>=<3D>2<EFBFBD>><3E>><3E>><3E>
<EFBFBD><1C>D<EFBFBD>H<EFBFBD>H<EFBFBD>%6<>7<>7<>=<3D>2<EFBFBD>><3E>><3E>><3E>
<EFBFBD><1A>6<EFBFBD>
<EFBFBD> <1A>$<24>(<28>(<28>:<3A>.<2E>.<2E>/<2F>/<2F>/<2F>!
<EFBFBD>" <20><04><08><08><1F> 9<> 9<>:<3A>:<3A>:<3A>#
<EFBFBD>$!<21><14><18><18>*:<3A>!;<3B>!;<3B><<3C><<3C><<3C>%
<EFBFBD>
rIN)r)r*r rX)rJrKrLrMrSrNrrrGr"r#rTrrr!r rUrVrWrr&r'r(rOrHrPrIrrRrRDsa<00><00><00><00><00><00><00>B<>B<><1A>L<EFBFBD><1A><1A><1A><1A><1C>N<EFBFBD><1C><1C><1C><1C><12>D<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD><1B>M<EFBFBD><1B><1B><1B><1B><19>K<EFBFBD><19><19><19><19><12>D<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD><19>K<EFBFBD><19><19><19><19><12>D<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD><14>F<EFBFBD><14><14><14><14><1D><14><1D><1D><1D><1D><1A>M<EFBFBD><1A><1A><1A><1A><17>J<EFBFBD><17><17><17><17><19>K<EFBFBD><19><19><19><19><19>K<EFBFBD><19><19><19><19><14>F<EFBFBD><14><14><14><14><16>E<EFBFBD><16><16><16><16><1C>K<EFBFBD><1C><1C><1C><1C><1D>L<EFBFBD><1D><1D><1D><1D><10>
<EFBFBD>
<EFBFBD>
<EFBFBD><11>[<5B>
<EFBFBD>
<EFBFBD>
rIrRc<01>><00>eZdZUdZded<dZded<dZded<dZded<d Zd
2026-09-05 00:23:55 +08:00
ed <d Z d ed<d Z
2026-09-06 11:34:23 +08:00
d ed<d Z d ed<d Z d ed<dZ ded<d Zd
2026-09-05 00:23:55 +08:00
ed<d Zd
ed<d Zd
2026-09-06 11:34:23 +08:00
ed<d Zd
ed<d Zd ed<d Zd ed<dZded<dZded<ed"d#d <20><05><00>Zed$d!<21><04><00>ZdS)%<25> PositionItemrr<00>
2026-08-28 18:52:27 +08:00
stock_code<EFBFBD>
2026-09-06 11:34:23 +08:00
stock_name<EFBFBD>trade_idNr<00> directionrrrr$r%<00> open_cost<73>
2026-08-28 18:52:27 +08:00
open_price<EFBFBD> float_profit<69> market_value<75> stock_holder<65> frozen_volume<6D>can_use_volume<6D>on_road_volume<6D>yesterday_volume<6D>
2026-08-30 14:46:34 +08:00
last_price<EFBFBD> profit_rate<74>future_trade_type<70> expire_dater)r*rr <00>'PositionItem'c
2026-09-06 11:34:23 +08:00
<01><00>|d&idt|<01>d<02><00>p|<02><00><00>dt|<01>d<04><00>pd<05><00><00>dt|<01>d<07><00>pd<05><00><00>dt|<01>d <09><00><00><00><00>d
2026-09-07 14:04:26 +08:00
|<01>d <0B><00><00>d t|<01>d <0A><00>t<00><00><00>dt|<01>d<0F><00><00><00><00>dt|<01>d<11><00><00><00><00>dt|<01>d<13><00><00><00><00>dt|<01>d<15><00>pd<05><00><00>dt|<01>d<17><00>t<00><00><00>dt|<01>d<19><00>t<00><00><00>dt|<01>d<1B><00>t<00><00><00>dt|<01>d<1D><00>t<00><00><00>dt|<01>d<1F><00><00><00><00>d t|<01>d!<21><00><00><00><00>d"|<01>d#<23><00><00>d$t|<01>d%<25><00>pd<05><00><00><01>S)'Nr_<00> StockCoder`<00> StockNamerra<00>TradeIDrc<00>OpenCostrb<00> Directionr<00>Volumerd<00> OpenPricere<00> FloatProfitrf<00> MarketValuerg<00> StockHolderrh<00> FrozenVolumeri<00> CanUseVolumerj<00> OnRoadVolumerk<00>YesterdayVolumerl<00> LastPricerm<00>
ProfitRatern<00>FutureTradeTypero<00>
ExpireDaterP<00>rrCrr)rFr)rs r<00> from_dictzPositionItem.from_dict<63>s~<00><00><12>s<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD><1A>4<EFBFBD>8<EFBFBD>8<EFBFBD>K<EFBFBD>0<>0<>8<>D<EFBFBD>9<>9<>9<>
<EFBFBD><1A>4<EFBFBD>8<EFBFBD>8<EFBFBD>K<EFBFBD>0<>0<>6<>B<EFBFBD>7<>7<>7<>
<EFBFBD><19><14><18><18>)<29>,<2C>,<2C>2<><02>3<>3<>3<>
<EFBFBD><1E>d<EFBFBD>h<EFBFBD>h<EFBFBD>z<EFBFBD>2<>2<>3<>3<>3<> 
<EFBFBD>
<1B>h<EFBFBD>h<EFBFBD>{<7B>+<2B>+<2B>+<2B> 
<EFBFBD> <1B>4<EFBFBD>8<EFBFBD>8<EFBFBD>H<EFBFBD>-<2D>-<2D>s<EFBFBD>3<>3<>3<> 
<EFBFBD><1F>t<EFBFBD>x<EFBFBD>x<EFBFBD> <0B>4<>4<>5<>5<>5<>
<EFBFBD>!<21><14><18><18>-<2D>!8<>!8<>9<>9<>9<>
<EFBFBD>!<21><14><18><18>-<2D>!8<>!8<>9<>9<>9<>
<EFBFBD><1D>T<EFBFBD>X<EFBFBD>X<EFBFBD>m<EFBFBD>4<>4<>:<3A><02>;<3B>;<3B>;<3B>
<EFBFBD>"<22>$<24>(<28>(<28>><3E>":<3A>":<3A>C<EFBFBD>@<40>@<40>@<40>
<EFBFBD>#<23>4<EFBFBD>8<EFBFBD>8<EFBFBD>N<EFBFBD>#;<3B>#;<3B>S<EFBFBD>A<>A<>A<>
<EFBFBD>#<23>4<EFBFBD>8<EFBFBD>8<EFBFBD>N<EFBFBD>#;<3B>#;<3B>S<EFBFBD>A<>A<>A<>
<EFBFBD>%<25>T<EFBFBD>X<EFBFBD>X<EFBFBD>.?<3F>%@<40>%@<40>#<23>F<>F<>F<>
<EFBFBD><1F>t<EFBFBD>x<EFBFBD>x<EFBFBD> <0B>4<>4<>5<>5<>5<>
<EFBFBD>  <20><04><08><08><1C> 6<> 6<>7<>7<>7<>!
<EFBFBD>"#<23>h<EFBFBD>h<EFBFBD>'8<>9<>9<>9<>#
<EFBFBD>$<1C>D<EFBFBD>H<EFBFBD>H<EFBFBD>\<5C>2<>2<>8<>b<EFBFBD>9<>9<>9<>%
<EFBFBD>
rIc
2026-09-06 11:34:23 +08:00
<01><00>|d&idt|<01>d<02><00>pd<03><00><00>dt|<01>d<05><00>pd<03><00><00>dt|<01>d<07><00>pd<03><00><00>d|<01>d <09><00><00>d
2026-09-07 14:04:26 +08:00
t|<01>d <0B><00>t<00><00><00>d t|<01>d <0A><00><00><00><00>dt|<01>d<0F><00><00><00><00>dt|<01>d<11><00><00><00><00>dt|<01>d<13><00><00><00><00>dt|<01>d<15><00>pd<03><00><00>dt|<01>d<17><00>t<00><00><00>dt|<01>d<19><00>t<00><00><00>dt|<01>d<1B><00>t<00><00><00>dt|<01>d<1D><00>t<00><00><00>dt|<01>d<1F><00><00><00><00>d t|<01>d!<21><00><00><00><00>d"|<01>d#<23><00><00>d$t|<01>d%<25><00>pd<03><00><00><01>S)'u?从 TradeDetailData/Holding 的 QMT 原始字段创建持仓。r_rrrr`rsrartrbrvrrwrcrurdrxreryrfrzrgr{rhr|rir}rjr~rkrrlr<>rmr<>rnr<>ror<>rPr<><00>rFr)s rrHzPositionItem.from_trade_detail<69>s<><00><00><13>s<EFBFBD>
2026-09-06 11:34:23 +08:00
<EFBFBD>
<EFBFBD>
<EFBFBD><1A>4<EFBFBD>8<EFBFBD>8<EFBFBD>K<EFBFBD>0<>0<>6<>B<EFBFBD>7<>7<>7<>
<EFBFBD><1A>4<EFBFBD>8<EFBFBD>8<EFBFBD>K<EFBFBD>0<>0<>6<>B<EFBFBD>7<>7<>7<>
<EFBFBD><19><14><18><18>)<29>,<2C>,<2C>2<><02>3<>3<>3<>
<EFBFBD><1B>h<EFBFBD>h<EFBFBD>{<7B>+<2B>+<2B>+<2B> 
2026-08-30 14:46:34 +08:00
<EFBFBD>
2026-09-06 11:34:23 +08:00
<1B>4<EFBFBD>8<EFBFBD>8<EFBFBD>H<EFBFBD>-<2D>-<2D>s<EFBFBD>3<>3<>3<> 
<EFBFBD> <1E>d<EFBFBD>h<EFBFBD>h<EFBFBD>z<EFBFBD>2<>2<>3<>3<>3<> 
<EFBFBD><1F>t<EFBFBD>x<EFBFBD>x<EFBFBD> <0B>4<>4<>5<>5<>5<>
<EFBFBD>!<21><14><18><18>-<2D>!8<>!8<>9<>9<>9<>
<EFBFBD>!<21><14><18><18>-<2D>!8<>!8<>9<>9<>9<>
<EFBFBD><1D>T<EFBFBD>X<EFBFBD>X<EFBFBD>m<EFBFBD>4<>4<>:<3A><02>;<3B>;<3B>;<3B>
<EFBFBD>"<22>$<24>(<28>(<28>><3E>":<3A>":<3A>C<EFBFBD>@<40>@<40>@<40>
<EFBFBD>#<23>4<EFBFBD>8<EFBFBD>8<EFBFBD>N<EFBFBD>#;<3B>#;<3B>S<EFBFBD>A<>A<>A<>
<EFBFBD>#<23>4<EFBFBD>8<EFBFBD>8<EFBFBD>N<EFBFBD>#;<3B>#;<3B>S<EFBFBD>A<>A<>A<>
<EFBFBD>%<25>T<EFBFBD>X<EFBFBD>X<EFBFBD>.?<3F>%@<40>%@<40>#<23>F<>F<>F<>
<EFBFBD><1F>t<EFBFBD>x<EFBFBD>x<EFBFBD> <0B>4<>4<>5<>5<>5<>
<EFBFBD>  <20><04><08><08><1C> 6<> 6<>7<>7<>7<>!
<EFBFBD>"#<23>h<EFBFBD>h<EFBFBD>'8<>9<>9<>9<>#
<EFBFBD>$<1C>D<EFBFBD>H<EFBFBD>H<EFBFBD>\<5C>2<>2<>8<>b<EFBFBD>9<>9<>9<>%
<EFBFBD>
2026-09-07 14:04:26 +08:00
rI)r)r)r*rrr rp)r)r*r rp)rJrKrLr_rNr`rarbrrcrdrerfrgrhrirjrkrlrmrnrorOr<>rHrPrIrr^r^ws<><00><00><00><00><00><00><00><18>J<EFBFBD><18><18><18><18><18>J<EFBFBD><18><18><18><18><16>H<EFBFBD><16><16><16><16><19>I<EFBFBD><19><19><19><19><13>F<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD><1A>I<EFBFBD><1A><1A><1A><1A><1B>J<EFBFBD><1B><1B><1B><1B><1D>L<EFBFBD><1D><1D><1D><1D><1D>L<EFBFBD><1D><1D><1D><1D><1A>L<EFBFBD><1A><1A><1A><1A><1A>M<EFBFBD><1A><1A><1A><1A><1B>N<EFBFBD><1B><1B><1B><1B><1B>N<EFBFBD><1B><1B><1B><1B><1D><14><1D><1D><1D><1D><1B>J<EFBFBD><1B><1B><1B><1B><1C>K<EFBFBD><1C><1C><1C><1C>!<21><15>!<21>!<21>!<21>!<21><19>K<EFBFBD><19><19><19><19><10>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD><11>[<5B>
<EFBFBD>,<11>
2026-09-06 11:34:23 +08:00
<EFBFBD>
<EFBFBD>
<EFBFBD><11>[<5B>
<EFBFBD>
<EFBFBD>
2026-09-07 14:04:26 +08:00
rIr^c<01>D<00>eZdZUdZded<dZded<ed d <09><04><00>Zd
2026-08-30 14:46:34 +08:00
S) <0C>Assetsr$r%<00>total<61> availabler)r*r <00>'Assets'c <01><><00>|t|<01>d|<01>d<02><00><00><00><00><00>t|<01>d|<01>d<04><00><00><00><00><00><00><05><00>S)u;兼容新版 QMT 原始资金字段及旧版简化字段。<E6AEB5>
2026-09-07 14:04:26 +08:00
m_dBalancer<EFBFBD><00> m_dAvailabler<65>)r<>r<>)rrCr<>s rr<>zAssets.from_dict<63>sg<00><00><13>s<EFBFBD><19>$<24>(<28>(<28><<3C><14><18><18>'<27>1B<31>1B<31>C<>C<>D<>D<><1D>d<EFBFBD>h<EFBFBD>h<EFBFBD>~<7E>t<EFBFBD>x<EFBFBD>x<EFBFBD> <0B>7L<37>7L<37>M<>M<>N<>N<>
2026-08-30 14:46:34 +08:00
<EFBFBD>
<EFBFBD>
<EFBFBD>
2026-09-07 14:04:26 +08:00
rIN)r)r*r r<>)rJrKrLr<>rNr<>rOr<>rPrIrr<>r<><00>sV<00><00><00><00><00><00><00><16>E<EFBFBD><16><16><16><16><1A>I<EFBFBD><1A><1A><1A><1A><10>
2026-08-30 14:46:34 +08:00
<EFBFBD>
<EFBFBD>
<EFBFBD><11>[<5B>
<EFBFBD>
<EFBFBD>
2026-09-07 14:04:26 +08:00
rIr<>c<01>.<00>eZdZUded<ded<ded<dS)<08> Portfolior<6F><00>assetszdict[str, PositionItem]<5D> positionszlist[OrderItem]<5D>ordersN<73>rJrKrLrNrPrIrr<>r<><00>s3<00><00><00><00><00><00><00><12>N<EFBFBD>N<EFBFBD>N<EFBFBD>&<26>&<26>&<26>&<26><1B><1B><1B><1B><1B>rIr<>r)r*rc<01><><00>tt|<00>d<01><00>pd<02><00>t|<00>d<03><00>pd<02><00><00><00>S)Nr[rr\)<03>_parse_datetimerrC)r)s rrDrD<00>sN<00><00> <1A> <0B>D<EFBFBD>H<EFBFBD>H<EFBFBD>&<26> '<27> '<27> -<2D>2<EFBFBD>.<2E>.<2E> <0B>D<EFBFBD>H<EFBFBD>H<EFBFBD>&<26> '<27> '<27> -<2D>2<EFBFBD>.<2E>.<2E> <06> <06>rI<00>dater<00>clockc<01><><00>|<01>dd<02><00><00>d<03><00>} tj||zd<04><00>S#t$rYdSwxYw)N<>:r<00>z %Y%m%d%H%M%S)<05>replace<63>zfillr<00>strptimer)r<>r<>s rr<>r<><00>sa<00><00> <11>M<EFBFBD>M<EFBFBD>#<23>r<EFBFBD> "<22> "<22> (<28> (<28><11> +<2B> +<2B>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>A<00>
A<03>Ac<01>f<00>eZdZUdZded<dZded<ee<07><05><00>Zded<e dd <0C><04><00>Z
d S)<0F>Tickr$r%rl<00>
2026-09-03 11:33:43 +08:00
last_close<EFBFBD><01>default_factoryr*<00>rawr)rr <00>'Tick'c<01>|<00>t|t<00><00>s
2026-09-07 14:04:26 +08:00
|<00><00>S|t|<01>d|<01>d|<01>d<03><00><00><00><00><00><00><00>t|<01>d|<01>d|<01>d<06><00><00><00><00><00><00><00>|<01><07><00>S)N<> lastPricerlr<><00> lastCloser<65><00> LastClose)rlr<>r<>)<04>
isinstance<EFBFBD>dictrrCr<>s rr<>zTick.from_dict<63>s<><00><00><19>$<24><04>%<25>%<25> <19><16>3<EFBFBD>5<EFBFBD>5<EFBFBD>L<EFBFBD><12>s<EFBFBD><1E><14><08><08><1B>d<EFBFBD>h<EFBFBD>h<EFBFBD>|<7C>T<EFBFBD>X<EFBFBD>X<EFBFBD>k<EFBFBD>=R<>=R<>&S<>&S<>T<>T<><0E><0E><1F><14><08><08><1B>d<EFBFBD>h<EFBFBD>h<EFBFBD>|<7C>T<EFBFBD>X<EFBFBD>X<EFBFBD>k<EFBFBD>=R<>=R<>&S<>&S<>T<>T<><0E><0E><15>
<EFBFBD>
<EFBFBD>
<EFBFBD>
rIN)r)rr r<>) rJrKrLrlrNr<>rr<>r<>rOr<>rPrIrr<>r<><00>st<00><00><00><00><00><00><00><1B>J<EFBFBD><1B><1B><1B><1B><1B>J<EFBFBD><1B><1B><1B><1B><1F>%<25><04>5<>5<>5<>C<EFBFBD>5<>5<>5<>5<><10> 
<EFBFBD> 
<EFBFBD> 
<EFBFBD><11>[<5B> 
<EFBFBD> 
<EFBFBD> 
rIr<>c<01>V<00>eZdZUdZded<dZded<dZded<dZded <d
2026-08-28 18:52:27 +08:00
Zd ed <d S)<0E>HistoryDataRequest<73>
2026-09-07 14:04:26 +08:00
r<00>lengthrr<00>periodrr<00> dividend_typeT<65>bool<6F> skip_pausedN) rJrKrLr<>rNr<>rr<>r<>rPrIrr<>r<><00>sc<00><00><00><00><00><00><00><14>F<EFBFBD><14><14><14><14><14>F<EFBFBD><14><14><14><14><13>E<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD><1A>M<EFBFBD><1A><1A><1A><1A><1C>K<EFBFBD><1C><1C><1C><1C><1C>rIr<>c<01><><00>eZdZUee<04><01><00>Zded<ee<04><01><00>Zded<dZded<dZ ded<dZ
2026-08-28 18:52:27 +08:00
ded <dZ ded
2026-09-07 14:04:26 +08:00
<d Z d ed <dS)<0F>MarketDataRequestr<74><00> list[str]<5D>fields<64>stocksrr<00>
start_time<EFBFBD>end_timer<65>r<>rr<00>countN) rJrKrLr<00>listr<74>rNr<>r<>r<>r<>r<>r<>rPrIrr<>r<><00>s<><00><00><00><00><00><00><00><1D><05>d<EFBFBD>3<>3<>3<>F<EFBFBD>3<>3<>3<>3<><1D><05>d<EFBFBD>3<>3<>3<>F<EFBFBD>3<>3<>3<>3<><18>J<EFBFBD><18><18><18><18><16>H<EFBFBD><16><16><16><16><14>F<EFBFBD><14><14><14><14><1B>M<EFBFBD><1B><1B><1B><1B><12>E<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD>NrIr<>c<01><><00>eZdZUdZded<dZded<dZded<dZded<dZded<dZ d ed
2026-08-28 18:52:27 +08:00
<e
e <0B> <0B><00>Z d ed <e
2026-09-07 14:04:26 +08:00
e <0B> <0B><00>Z d ed<dZded<dZded<dS)<12>FinancialDataRequestrr<00>tabname<6D>colname<6D>marketr<00> report_typerr<00>barposr<73>r<><00>
2026-08-28 18:52:27 +08:00
field_list<EFBFBD>
stock_list<EFBFBD>
2026-09-07 14:04:26 +08:00
start_date<EFBFBD>end_dateN)rJrKrLr<>rNr<>r<>rr<>r<>rr<>r<>r<>r<>r<>rPrIrr<>r<> s<><00><00><00><00><00><00><00><15>G<EFBFBD><15><15><15><15><15>G<EFBFBD><15><15><15><15><14>F<EFBFBD><14><14><14><14><12>D<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD><19>K<EFBFBD><19><19><19><19><13>F<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD>!<21>E<EFBFBD>$<24>7<>7<>7<>J<EFBFBD>7<>7<>7<>7<>!<21>E<EFBFBD>$<24>7<>7<>7<>J<EFBFBD>7<>7<>7<>7<><18>J<EFBFBD><18><18><18><18><16>H<EFBFBD><16><16><16><16><16>rIr<>c<01>~<00>eZdZUee<04><01><00>Zded<ee<04><01><00>Zded<dZded<dZ ded<dZ
2026-08-28 18:52:27 +08:00
ded <d
2026-09-07 14:04:26 +08:00
S) <0B>FactorDataRequestr<74>r<>r<>r<>rrr_r<>r<>N) rJrKrLrr<>r<>rNr<>r_r<>r<>rPrIrr<>r<>s<><00><00><00><00><00><00><00>!<21>E<EFBFBD>$<24>7<>7<>7<>J<EFBFBD>7<>7<>7<>7<>!<21>E<EFBFBD>$<24>7<>7<>7<>J<EFBFBD>7<>7<>7<>7<><18>J<EFBFBD><18><18><18><18><18>J<EFBFBD><18><18><18><18><16>H<EFBFBD><16><16><16><16><16>rIr<>c<01>V<00>eZdZUded<ded<ded<ded<ded<d ed
<ded <d S) <0A>BSMPriceRequestr<00> option_typer<00> object_pricesr%<00> strike_price<63> risk_free<65>sigmar<00>days<79>dividendNr<4E>rPrIrr<>r<> s[<00><00><00><00><00><00><00><14><14><14><14><16><16><16><16><17><17><17><17><14><14><14><14><10>L<EFBFBD>L<EFBFBD>L<EFBFBD> <0A>I<EFBFBD>I<EFBFBD>I<EFBFBD><13>O<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD>OrIr<>c<01>V<00>eZdZUded<ded<ded<ded<ded<ded <ded
<d S) <0C> BSMIVRequestrr<>r%r<>r<><00> option_pricer<65>rr<>r<>Nr<4E>rPrIrr<>r<>+s^<00><00><00><00><00><00><00><14><14><14><14><18><18><18><18><17><17><17><17><17><17><17><17><14><14><14><14> <0A>I<EFBFBD>I<EFBFBD>I<EFBFBD><13>O<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD>OrIr<>c<01>`<00>eZdZUded<dZded<dZded<dZded<dZded<dZd ed
<d S) <0C>LocalDataRequestrr_rr<>r<>r<><00>
divid_typerrr<>N) rJrKrLrNr<>r<>r<>r<>r<>rPrIrr<>r<>6sj<00><00><00><00><00><00><00><13>O<EFBFBD>O<EFBFBD>O<EFBFBD><18>J<EFBFBD><18><18><18><18><16>H<EFBFBD><16><16><16><16><14>F<EFBFBD><14><14><14><14><18>J<EFBFBD><18><18><18><18><12>E<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD>NrIr<>N)rrr r
r r)r)r*r r)r<>rr<>rr r)<19>
__future__rr<00> dataclassesrr<00>typingrr%rrrRr^r<>r<>rDr<>r<>r<>r<>r<>r<>r<>r<>r<>rPrIr<00><module>r<>s<00><01>"<22>"<22>"<22>"<22>"<22>"<22><1D><1D><1D><1D><1D><1D>(<28>(<28>(<28>(<28>(<28>(<28>(<28>(<28><16><16><16><16><16><16>&+<2B><16><16><16><16><16> <0B><19><14><16><16><16>2
<EFBFBD>2
<EFBFBD>2
<EFBFBD>2
<EFBFBD>2
<EFBFBD>2
<EFBFBD>2
<EFBFBD><17><16>2
<EFBFBD>j <0B><19><14><16><16><16>/
<EFBFBD>/
<EFBFBD>/
<EFBFBD>/
<EFBFBD>/
<EFBFBD>/
<EFBFBD>/
<EFBFBD><17><16>/
<EFBFBD>d <0B><19><14><16><16><16>A
<EFBFBD>A
<EFBFBD>A
<EFBFBD>A
<EFBFBD>A
<EFBFBD>A
<EFBFBD>A
<EFBFBD><17><16>A
<EFBFBD>H <0B><19><14><16><16><16>
2026-08-30 14:46:34 +08:00

<EFBFBD>

<EFBFBD>

<EFBFBD>

<EFBFBD>

<EFBFBD>

<EFBFBD>

<EFBFBD><17><16>

2026-09-07 14:04:26 +08:00
<EFBFBD> <0B><19><14><16><16><16><1C><1C><1C><1C><1C><1C><1C><17><16><1C> <06><06><06><06><14><14><14><14> <0B><19><14><16><16><16>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD><17><16>
<EFBFBD>( <0B><19><14><16><16><16><1D><1D><1D><1D><1D><1D><1D><17><16><1D> <0B><19><14><16><16><16><13><13><13><13><13><13><13><17><16><13> <0B><19><14><16><16><16>
<17>
<17>
<17>
<17>
<17>
<17>
<17><17><16>
<17> <0B><19><14><16><16><16><17><17><17><17><17><17><17><17><16><17> <0B><19><14><16><16><16><14><14><14><14><14><14><14><17><16><14> <0B><19><14><16><16><16><14><14><14><14><14><14><14><17><16><14> <0B><19><14><16><16><16><13><13><13><13><13><13><13><17><16><13><13>rI