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

162 lines
16 KiB
Plaintext
Raw Normal View History

2026-08-28 18:52:27 +08:00
<EFBFBD>
2026-08-30 14:46:34 +08:00
~<7E><>jR<00><01><><00>ddlmZddlmZddlmZmZddlmZefd(d
<EFBFBD>Z ed <0B> <0C><00>Gd <0A>d<0E><00><00><00>Z
ed <0B> <0C><00>Gd<0F>d<10><00><00><00>Z ed <0B> <0C><00>Gd<11>d<12><00><00><00>Z d)d<16>Z ed <0B> <0C><00>Gd<17>d<18><00><00><00>Zed <0B> <0C><00>Gd<19>d<1A><00><00><00>Zed <0B> <0C><00>Gd<1B>d<1C><00><00><00>Zed <0B> <0C><00>Gd<1D>d<1E><00><00><00>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>Zd'S)*<2A>)<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>
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
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)<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>
#<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>
__module__<EFBFBD> __qualname__<5F>__doc__<5F>__annotations__rr r!r"r#r&r'r(<00> classmethodrG<00>rHrrrs<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>
<EFBFBD>
<EFBFBD>
<EFBFBD><11>[<5B>
<EFBFBD>
<EFBFBD>
rHrc<01>"<00>eZdZUdZded<dZded<dZded<dZd ed
2026-08-28 18:52:27 +08:00
<d Zd ed <d Z d ed<d Z
2026-08-30 14:46:34 +08:00
d ed<dZ ded<dZ d ed<dZ d ed<dZd ed<dZd ed<d Zd ed<d Zd ed<dZded<dZded<ed d!d<1E><05><00>Zed"d<1F><04><00>ZdS)#<23> PositionItemrr<00>
2026-08-28 18:52:27 +08:00
stock_code<EFBFBD>
2026-08-30 14:46:34 +08:00
stock_nameNr<00> directionrrrr$r%<00>
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-08-28 18:52:27 +08:00
<01><><00>|d"idt|<01>d<02><00>p|<02><00><00>dt|<01>d<04><00>pd<05><00><00>d|<01>d<07><00><00>dt|<01>d <09><00>t<00><00><00>d
2026-08-30 14:46:34 +08:00
t|<01>d <0B><00><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>pd<05><00><00>dt|<01>d<13><00>t<00><00><00>dt|<01>d<15><00>t<00><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><00><00><00>dt|<01>d<1D><00><00><00><00>d|<01>d<1F><00><00>d t|<01>d!<21><00>pd<05><00><00><01>S)#NrR<00> StockCoderS<00> StockNamerrT<00> Directionr<00>VolumerU<00> OpenPricerV<00> FloatProfitrW<00> MarketValuerX<00> StockHolderrY<00> FrozenVolumerZ<00> CanUseVolumer[<00> OnRoadVolumer\<00>YesterdayVolumer]<00> LastPricer^<00>
ProfitRater_<00>FutureTradeTyper`<00>
ExpireDaterO<00>rrBrr)rEr)rs r<00> from_dictzPositionItem.from_dictVsQ<00><00><12>s<EFBFBD> 
2026-08-28 18:52:27 +08:00
<EFBFBD> 
<EFBFBD> 
<EFBFBD><1A>4<EFBFBD>8<EFBFBD>8<EFBFBD>K<EFBFBD>0<>0<>8<>D<EFBFBD>9<>9<>9<> 
<EFBFBD>FI<EFBFBD>$<24>(<28>(<28>S^<5E>J_<4A>J_<4A>Je<4A>ce<63>Ff<46>Ff<46>Ff<46> 
<EFBFBD><1A>h<EFBFBD>h<EFBFBD>{<7B>+<2B>+<2B>+<2B> 
<EFBFBD>4;<3B>D<EFBFBD>H<EFBFBD>H<EFBFBD>X<EFBFBD><N<><N<>PS<50>4T<34>4T<34>4T<34> 
<EFBFBD><1F>t<EFBFBD>x<EFBFBD>x<EFBFBD> <0B>4<>4<>5<>5<>5<> 
<EFBFBD>EL<01>D<EFBFBD>H<EFBFBD>H<EFBFBD>Ub<55>Lc<4C>Lc<4C>Dd<44>Dd<44>Dd<44> 
<EFBFBD>!<21><14><18><18>-<2D>!8<>!8<>9<>9<>9<> 
<EFBFBD>IL<01>D<EFBFBD>H<EFBFBD>H<EFBFBD>Ub<55>Lc<4C>Lc<4C>Li<4C>gi<67>Hj<48>Hj<48>Hj<48> 
<EFBFBD>
"<22>$<24>(<28>(<28>><3E>":<3A>":<3A>C<EFBFBD>@<40>@<40>@<40> 
<EFBFBD>
RY<01>Y]<5D>Ya<59>Ya<59>bp<62>Yq<59>Yq<59>sv<73>Qw<51>Qw<51>Qw<51> 
<EFBFBD> #<23>4<EFBFBD>8<EFBFBD>8<EFBFBD>N<EFBFBD>#;<3B>#;<3B>S<EFBFBD>A<>A<>A<> 
<EFBFBD> U\<01>\`<60>\d<>\d<>ev<65>\w<>\w<>y|<7C>T}<7D>T}<7D>T}<7D> 
<EFBFBD><1F>t<EFBFBD>x<EFBFBD>x<EFBFBD> <0B>4<>4<>5<>5<>5<> 
<EFBFBD>DK<01>4<EFBFBD>8<EFBFBD>8<EFBFBD>T`<60>Ka<4B>Ka<4B>Cb<43>Cb<43>Cb<43> 
<EFBFBD>#<23>h<EFBFBD>h<EFBFBD>'8<>9<>9<>9<> 
<EFBFBD>HK<01>4<EFBFBD>8<EFBFBD>8<EFBFBD>T`<60>Ka<4B>Ka<4B>Kg<4B>eg<65>Gh<47>Gh<47>Gh<47> 
<EFBFBD>
2026-08-30 14:46:34 +08:00
rHc
<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|}|d$id|<04>dt|<01>d<07><00>pd<02><00><00>d|<01>d <09><00><00>d
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>pd<02><00><00>dt|<01>d<15><00>t<00><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><00><00><00>dt|<01>d<1F><00><00><00><00>d |<01>d!<21><00><00>d"t|<01>d#<23><00>pd<02><00><00><01>S)%u?从 TradeDetailData/Holding 的 QMT 原始字段创建持仓。r-rr.r/rRrSr>rT<00> m_nDirectionr<00> m_nVolumerU<00> m_dOpenPricerV<00>m_dFloatProfitrW<00>m_dMarketValuerX<00>m_strStockHolderrY<00>m_nFrozenVolumerZ<00>m_nCanUseVolumer[<00>m_nOnRoadVolumer\<00>m_nYesterdayVolumer]<00> m_dLastPricer^<00> m_dProfitRater_<00>m_eFutureTradeTyper`<00>m_strExpireDaterOrs)rEr)rFr"rRs rrGzPositionItem.from_trade_detailcs<><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> <13>
<13>s<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>!<21>z<EFBFBD>
<EFBFBD><1A>4<EFBFBD>8<EFBFBD>8<EFBFBD>$9<>:<3A>:<3A>@<40>b<EFBFBD>A<>A<>A<>
<EFBFBD><1B>h<EFBFBD>h<EFBFBD>~<7E>.<2E>.<2E>.<2E>
<EFBFBD><1B>4<EFBFBD>8<EFBFBD>8<EFBFBD>K<EFBFBD>0<>0<>#<23>6<>6<>6<> 
<EFBFBD>
<1F>t<EFBFBD>x<EFBFBD>x<EFBFBD><0E>7<>7<>8<>8<>8<> 
<EFBFBD> !<21><14><18><18>*:<3A>!;<3B>!;<3B><<3C><<3C><<3C> 
<EFBFBD>!<21><14><18><18>*:<3A>!;<3B>!;<3B><<3C><<3C><<3C>
<EFBFBD><1D>T<EFBFBD>X<EFBFBD>X<EFBFBD>&8<>9<>9<>?<3F>R<EFBFBD>@<40>@<40>@<40>
<EFBFBD>"<22>$<24>(<28>(<28>+<<3C>"=<3D>"=<3D>s<EFBFBD>C<>C<>C<>
<EFBFBD>#<23>4<EFBFBD>8<EFBFBD>8<EFBFBD>,=<3D>#><3E>#><3E><03>D<>D<>D<>
<EFBFBD>#<23>4<EFBFBD>8<EFBFBD>8<EFBFBD>,=<3D>#><3E>#><3E><03>D<>D<>D<>
<EFBFBD>%<25>T<EFBFBD>X<EFBFBD>X<EFBFBD>.B<>%C<>%C<>S<EFBFBD>I<>I<>I<>
<EFBFBD><1F>t<EFBFBD>x<EFBFBD>x<EFBFBD><0E>7<>7<>8<>8<>8<>
<EFBFBD> <20><04><08><08><1F> 9<> 9<>:<3A>:<3A>:<3A>
<EFBFBD>#<23>h<EFBFBD>h<EFBFBD>';<3B><<3C><<3C><<3C>
<EFBFBD> <1C>D<EFBFBD>H<EFBFBD>H<EFBFBD>%6<>7<>7<>=<3D>2<EFBFBD>><3E>><3E>><3E>!
<EFBFBD>
rH)r)r)r*rrr ra)r)r*r ra)rIrJrKrRrMrSrTrrUrVrWrXrYrZr[r\r]r^r_r`rNrtrGrOrHrrQrQCsg<00><00><00><00><00><00><00><18>J<EFBFBD><18><18><18><18><18>J<EFBFBD><18><18><18><18><19>I<EFBFBD><19><19><19><19><13>F<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD><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>
2026-08-28 18:52:27 +08:00

<EFBFBD>

<EFBFBD>

<EFBFBD>

<EFBFBD><11>[<5B>

2026-08-30 14:46:34 +08:00
<EFBFBD><11>
<EFBFBD>
<EFBFBD>
<EFBFBD><11>[<5B>
<EFBFBD>
<EFBFBD>
rHrQc<01>D<00>eZdZUdZded<dZded<ed d <09><04><00>Zd
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>
m_dBalancer<EFBFBD><00> m_dAvailabler<65>)r<>r<>)rrB)rEr)s rrtzAssets.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<>
<EFBFBD>
<EFBFBD>
<EFBFBD>
rHN)r)r*r r<>)rIrJrKr<>rMr<>rNrtrOrHrr<>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>
<EFBFBD>
<EFBFBD>
<EFBFBD><11>[<5B>
<EFBFBD>
<EFBFBD>
rHr<>r)r*rc<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)N<>m_strInsertDater<00>m_strInsertTime<6D>:<3A>z %Y%m%d%H%M%S)rrB<00>replace<63>zfillr<00>strptimer)r)<00>date<74>clocks rrCrC<00>s<><00><00> <0E>t<EFBFBD>x<EFBFBD>x<EFBFBD>)<29>*<2A>*<2A>0<>b<EFBFBD> 1<> 1<>D<EFBFBD> <0F><04><08><08>*<2A>+<2B>+<2B>1<>r<EFBFBD> 2<> 2<> :<3A> :<3A>3<EFBFBD><02> C<> C<> I<> I<>!<21> L<> L<>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>Bc<01>N<00>eZdZUdZded<dZded<ee<07><05><00>Zded<dS) <09>Tickr$r%r]<00>
last_close<EFBFBD><01>default_factoryr*<00>rawN) rIrJrKr]rMr<>r<00>dictr<74>rOrHrr<>r<><00>sR<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<>5<>5rHr<>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-08-30 14:46:34 +08:00
r<00>lengthrr<00>periodrr<00> dividend_typeT<65>bool<6F> skip_pausedN) rIrJrKr<>rMr<>rr<>r<>rOrHrr<>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>rHr<>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-08-30 14:46:34 +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) rIrJrKr<00>listr<74>rMr<>r<>r<>r<>r<>r<>rOrHrr<>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>NrHr<>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-08-30 14:46:34 +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-08-30 14:46:34 +08:00
start_date<EFBFBD>end_dateN)rIrJrKr<>rMr<>r<>rr<>r<>rr<>r<>r<>r<>r<>rOrHrr<>r<><00>s<><00><00><00><00><00><00><00><15>G<EFBFBD><15><15><15><15>b<EFBFBD>w<EFBFBD>(<28>(<28>(<28>(<28><02>&<26>*:<3A>*:<3A>*:<3A>*:<3A><02>D<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD><19>K<EFBFBD><19><19><19><19><11>6<EFBFBD>?<3F>?<3F>?<3F>?<3F>!<21>E<EFBFBD>$<24>7<>7<>7<>J<EFBFBD>7<>7<>7<>7<>QV<51>QV<51>gk<67>Ql<51>Ql<51>Ql<51><1A>9l<39>9l<39>9l<39>9l<39><18>J<EFBFBD><18><18><18><18>"<22>(<28>,<2C>,<2C>,<2C>,<2C>,<2C>,rHr<>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-08-30 14:46:34 +08:00
S) <0B>FactorDataRequestr<74>r<>r<>r<>rrrRr<>r<>N) rIrJrKrr<>r<>rMr<>rRr<>r<>rOrHrr<>r<><00>s<><00><00><00><00><00><00><00>!<21>E<EFBFBD>$<24>7<>7<>7<>J<EFBFBD>7<>7<>7<>7<>QV<51>QV<51>gk<67>Ql<51>Ql<51>Ql<51><1A>9l<39>9l<39>9l<39>9l<39><18>J<EFBFBD><18><18><18><18>B<EFBFBD>*<2A>.<2E>.<2E>.<2E>.<2E><02><08>0B<30>0B<30>0B<30>0B<30>0B<30>0BrHr<>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>dividendN<64>rIrJrKrMrOrHrr<>r<><00>sf<00><00><00><00><00><00><00><14><14><14><14>(<28>(<28>(<28>(<28>*=<3D>*=<3D>*=<3D>*=<3D>?O<>?O<>?O<>?O<>Q]<5D>Q]<5D>Q]<5D>Q]<5D>_h<5F>_h<5F>_h<5F>_h<5F>jy<6A>jy<6A>jy<6A>jy<6A>jy<6A>jyrHr<>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>rOrHrr<>r<><00>s~<00><00><00><00><00><00><00><14><14><14><14>*<2A>*<2A>*<2A>*<2A>,?<3F>,?<3F>,?<3F>,?<3F>AT<41>AT<41>AT<41>AT<41>Vf<56>Vf<56>Vf<56>Vf<56>hq<68>hq<68>hq<68>hq<68>tC<02>tC<02>tC<02>tC<02>tC<02>tCrHr<>c<01>`<00>eZdZUded<dZded<dZded<dZded<dZded<dZd ed
<d S) <0C>LocalDataRequestrrRrr<>r<>r<><00>
divid_typerrr<>N) rIrJrKrMr<>r<>r<>r<>r<>rOrHrr<>r<><00>so<00><00><00><00><00><00><00><13>O<EFBFBD>O<EFBFBD>O<EFBFBD>r<EFBFBD>Z<EFBFBD>)<29>)<29>)<29>)<29>2<EFBFBD>8<EFBFBD>+=<3D>+=<3D>+=<3D>+=<3D>R<EFBFBD>v<EFBFBD>?O<>?O<>?O<>?O<>ce<63>Q[<5B>Qe<51>Qe<51>Qe<51>Qe<51>tu<74>gl<67>gu<67>gu<67>gu<67>gu<67>gu<67>gurHr<>N)rrr r
r r)r)r*r r)<16>
__future__rr<00> dataclassesrr<00>typingrr%rrrQr<>rCr<>r<>r<>r<>r<>r<>r<>r<>rOrHr<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>1
<EFBFBD>1
<EFBFBD>1
<EFBFBD>1
<EFBFBD>1
<EFBFBD>1
<EFBFBD>1
<EFBFBD><17><16>1
<EFBFBD>h <0B><19><14><16><16><16>:
<EFBFBD>:
<EFBFBD>:
<EFBFBD>:
<EFBFBD>:
<EFBFBD>:
<EFBFBD>:
<EFBFBD><17><16>:
<EFBFBD>z <0B><19><14><16><16><16>

<EFBFBD>

<EFBFBD>

<EFBFBD>

<EFBFBD>

<EFBFBD>

<EFBFBD>

<EFBFBD><17><16>

<EFBFBD><14><14><14><14> <0B><19><14><16><16><16>6<>6<>6<>6<>6<>6<>6<><17><16>6<>  <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>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D>-<2D><17><16>-<2D> <0B><19><14><16><16><16>C<01>C<01>C<01>C<01>C<01>C<01>C<01><17><16>C<01>
 <0B><19><14><16><16><16>z<01>z<01>z<01>z<01>z<01>z<01>z<01><17><16>z<01> <0B><19><14><16><16><16>C<02>C<02>C<02>C<02>C<02>C<02>C<02><17><16>C<02> <0B><19><14><16><16><16>v<01>v<01>v<01>v<01>v<01>v<01>v<01><17><16>v<01>v<01>vrH