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

53 lines
8.7 KiB
Plaintext
Raw Normal View History

2026-08-28 18:52:27 +08:00
<EFBFBD>
2026-09-07 18:18:00 +08:00
ą<>j<EFBFBD><00><01><><00>dZddlmZddlmZddlmZmZddlm Z ddl
2026-09-07 14:04:26 +08:00
m Z m Z m Z mZddlmZddlmZdd lZd
gZed <0B> <0C><00>Gd <0A>d<0E><00><00><00>Zd+d<1B>Zd,d"<22>Zd-d#<23>Zd.d&<26>Zd/d*<2A>Zd S)0u*趋势策略持仓止盈与分级补仓。<E4BB93>)<01> annotations)<01> dataclass)<02>calc_buy_volume<6D>calculate_min_profit_rate)<01> GridState)<04>OP_BUY<55>OP_SELL<4C> PositionItem<65>Tick)<01>PlaceOrderRequest)<01>RuntimeNgI<>T)<01>slotsc<01>:<00>eZdZUdZded<dZded<dZded <d
2026-09-06 11:34:23 +08:00
S) <0B> TradeDecisionu-一次止盈或补仓判断的统一结果。<E69E9C>bool<6F> submitted<65><00>str<74>messageg<00>float<61> reserved_cashN)<07>__name__<5F>
2026-09-07 18:18:00 +08:00
__module__<EFBFBD> __qualname__<5F>__doc__<5F>__annotations__rr<00><00><00>;D:\work\quant\big-qmt\py-client\strategy\trend\positions.pyrrsC<00><00><00><00><00><00><00>7<>7<><13>O<EFBFBD>O<EFBFBD>O<EFBFBD><15>G<EFBFBD><15><15><15><15><1E>M<EFBFBD><1E><1E><1E><1E><1E>rr<00>runtimer <00>ticks<6B>dict[str, Tick]<5D> positions<6E>list[PositionItem]<5D> market_okr<00> availabler<00>return<72>Nonec
<01>Z<00>|D<00>]<5D>} tdd|<04><00>}|j}|<01>|<06><00>}||jjvrt jd||j<00><00><00>[|r#|jdks|j dks |<07> |j
2026-09-06 11:34:23 +08:00
dkrt j d|pd|j<00><00><00><>t|j
|jz
|jz dzd<06><00>}t|jd<07><00>} t||||| <09><08><00>}
|
jpd } d
} |jjr*|r(t#|||||<04> <0B><00>} || jz
2026-09-07 18:18:00 +08:00
}| jpd } n|jjrd } d }|| krd}n|t&dkrd}t jd|||j|| | <0C><00><00><01>}#t($rt jd|j<00><00>Y<00><01><>wxYwdS)Nrue[Position - ] 代码=%s名称=%s止盈=跳过,补仓=跳过,原因=已配置为排除股票uh[Position - ] 代码=%s名称=%s止盈=跳过,补仓=跳过,原因=持仓或行情数据无效u未知<E69CAA>d<00><00>)r <00>position<6F>tick<63>pnl_rate<74>minimum_profitu 未触发u 未启用)r r-r.r/r&u大盘信号不允许<E58581>-u↑u↓u<[Position %s ] %s %s盈亏=%.2f%%,止盈=%s补仓=%suD[Position] 持仓处理异常,代码=%s继续处理后续持仓)<16>max<61>
2026-09-06 11:34:23 +08:00
stock_code<EFBFBD>get<65> account_cfg<66>excluded_codes<65>log<6F>info<66>
2026-09-01 14:28:49 +08:00
stock_name<EFBFBD>
2026-09-06 11:34:23 +08:00
open_price<EFBFBD>volume<6D>
2026-09-07 18:18:00 +08:00
last_price<EFBFBD>warning<6E>roundr<00> handle_profitr<00>enable_loss_add_position<6F> handle_lossr<00>
LOSS_TIERS<EFBFBD> Exception<6F> exception)r r!r#r%r&r-<00>coder.r/r0<00>profit_decision<6F> profit_action<6F>loss_add_action<6F> loss_decision<6F>strTags r<00>manage_positionsrKsf<00><00><1E>H<0E>H<0E><08>G <0E><1B>A<EFBFBD>q<EFBFBD>)<29>,<2C>,<2C>I<EFBFBD><1B>&<26>D<EFBFBD><18>9<EFBFBD>9<EFBFBD>T<EFBFBD>?<3F>?<3F>D<EFBFBD><13>w<EFBFBD>*<2A>9<>9<>9<><13><08>{<7B><18><1C>'<27><12><12><12>
2026-09-07 14:04:26 +08:00
<19><18> <19><1B>&<26>!<21>+<2B>+<2B><1B>?<3F>a<EFBFBD>'<27>'<27><17><<3C><17>?<3F>a<EFBFBD>'<27>'<27><13> <0B>~<7E><18>$<24>H<EFBFBD><1C>'<27><12><12><12>
2026-09-07 18:18:00 +08:00
<19><1C><15><1F>8<EFBFBD>#6<>6<>(<28>:M<>M<>PS<50>S<><11><0E><0E>H<EFBFBD>7<>x<EFBFBD>7J<37>A<EFBFBD>N<>N<>N<EFBFBD>+<2B><1F>!<21><19>!<21>-<2D> <0E><0E><0E>O<EFBFBD>,<2C>3<>B<>{<7B>M<EFBFBD>)<29>O<EFBFBD><16>"<22>;<3B> :<3A> <09> :<3A> +<2B>#<23>%<25><1D>%<25>'<27> !<12>!<12>!<12> <0A>&<26> <0A>(C<>C<> <09>"/<2F>"7<>"F<>;<3B><0F><0F><18>$<24>=<3D> :<3A>"9<><0F><18>F<EFBFBD><17>><3E>)<29>)<29><1E><06><06><19>:<3A>a<EFBFBD>=<3D>(<28>(<28><1E><06> <0F>H<EFBFBD>N<><16><14><18>#<23><18><1D><1F> <0E> <0E> <0E> <0E><><19> <0E> <0E> <0E> <0F>M<EFBFBD>V<><18>#<23> <0E> <0E> <0E> <0E> <0E> <0E><><EFBFBD><EFBFBD>IH<0E>Hs <00>AF<02>AF<02>!CF<02>$F(<05>'F(r-r
2026-09-06 11:34:23 +08:00
r.r r/r0c<01>V<00>||krtd<01><00>St||j<00><00>}|j<00>||<03><00>}|jt jkrtdd|d<03>d|j<00><00><04><00>S|jt j krtdd|d<03>d|j<00><00><04><00>S|jt j
2026-08-28 22:56:35 +08:00
hvrtd<01><00>S|j <00> |jd<06><00>rtdd<07><00>S|j |j dzz
}|d krtdd
2026-09-06 11:34:23 +08:00
<EFBFBD><00>S|j <00>d<06><00>}tt |j|||jj<00> <0B><00>} |j <00>|j| <09><00>stdd <0C><00>Std d|<07>d|<08><00><04><00>S)uB基于跨轮保存的最高盈利网格判断是否提交止盈。Fu 首次达到 z.2fu%,峰值网格=u
2026-09-07 18:18:00 +08:00
上涨至 <20>SELLu卖出委托处理中r*ru无可用整手持仓)<05>oprEr;<00>order_id<69> strategy_nameu止盈委托失败Tu卖出 <20> 股,订单=)r<00> _position_keyr3<00>profit_tracker<65>observe<76>stater<00>ARMED<45> current_grid<69>RAISED<45>STEADY<44>orders<72>busy<73>can_use_volume<6D> new_order_idr r r5<00>strategy<67>place<63>client)
r r-r.r/r0<00>key<65> observationr;rO<00>requests
rr?r?ns<><00><00><10>.<2E> <20> <20><1C>U<EFBFBD>#<23>#<23>#<23>
2026-08-28 22:56:35 +08:00
<17><07><18>!4<>
5<EFBFBD>
5<EFBFBD>C<EFBFBD><19>(<28>0<>0<><13>h<EFBFBD>?<3F>?<3F>K<EFBFBD><12><18>I<EFBFBD>O<EFBFBD>+<2B>+<2B><1C> <11> U<>H<EFBFBD> U<> U<> U<>;<3B>;S<> U<> U<>
<EFBFBD>
<EFBFBD>
<EFBFBD><13><18>I<EFBFBD>,<2C>,<2C>,<2C><1C> <11> R<><18> R<> R<> R<> <0B>8P<38> R<> R<>
<EFBFBD>
<EFBFBD>
2026-09-07 14:04:26 +08:00
<EFBFBD><13><18>Y<EFBFBD>-<2D>.<2E>.<2E>.<2E><1C>U<EFBFBD>#<23>#<23>#<23><0E>~<7E><1A><1A>8<EFBFBD>.<2E><06>7<>7<>=<3D><1C>U<EFBFBD>$;<3B><<3C><<3C><<3C> <15> $<24>x<EFBFBD>'><3E><13>'D<> D<>F<EFBFBD> <0A><11>{<7B>{<7B><1C>U<EFBFBD>$;<3B><<3C><<3C><<3C><16>~<7E>*<2A>*<2A>6<EFBFBD>2<>2<>H<EFBFBD><1F> <12> <15> <20><15><19><1D>)<29>2<> <06><06><06>G<EFBFBD> <13>><3E> <1F> <1F><07><0E><07> 8<> 8<>:<3A><1C>U<EFBFBD>$8<>9<>9<>9<> <18><14>I<><16>I<>I<>x<EFBFBD>I<>I<> J<> J<>Jrc<01><><00>tt|jdz <00><00>|j<00><02><00>}|t t
2026-09-06 11:34:23 +08:00
<00><00>ks|dkrt dd|<05><00><02><00>S|t
|krt d<04><00>S|jdks |jdkrt dd<08><00>S|j<00> d |j
|j<00><00>st dd
<EFBFBD><00>S|j <00> |j
d <0B><00>rt dd <0C><00>St|j|jj<00><00>}|j|z}|dks||krt dd <0A><00>S|j <00>d <0B><00>}t#t$|j
|||jjd<0E><0F><00>} |j <00>|j| <09><00>st dd<10><00>S|j<00>|j
2026-09-07 18:18:00 +08:00
<00><00>t dd|<06>d|<08><00>|<07><00>S)uB按亏损档位、反弹确认和本轮剩余预算提交补仓。r*<00><02>hands<64> market_valuerFu补仓次数无效:<3A><>i Nu'价格或仓位市值超过补仓限制u补仓u等待价格反弹确认<E7A1AE>BUYu买入委托处理中u本轮可用资金不足<E4B88D>add)rNrEr;rOrP<00>kindu补仓订单委托失败Tu买入 rQ)<17> get_add_num<75>intr;rg<00>lenrBrr<<00> add_watch<63> triggeredr3rZr[rr5<00> buy_valuer]r rr^r_r`<00>forget)
r r-r.r/r&<00>add_numr;<00>amountrOrcs
rrArA<00>s<00><00><1A><11>(<28>/<2F>C<EFBFBD>'<27>(<28>(<28>x<EFBFBD>7L<37><06><06><06>G<EFBFBD><0F>#<23>j<EFBFBD>/<2F>/<2F>!<21>!<21>W<EFBFBD>q<EFBFBD>[<5B>[<5B><1C>U<EFBFBD>$C<>'<27>$C<>$C<>D<>D<>D<><0F>*<2A>W<EFBFBD>%<25>%<25>%<25><1C>U<EFBFBD>#<23>#<23>#<23> <0B><EFBFBD><13><1C><1C><08> 5<><16> ?<3F> ?<3F><1C>U<EFBFBD>$M<>N<>N<>N<> <12> <1C> &<26> &<26>x<EFBFBD><18>1D<31>d<EFBFBD>o<EFBFBD> V<> V<>@<01><1C>U<EFBFBD>$><3E>?<3F>?<3F>?<3F><0E>~<7E><1A><1A>8<EFBFBD>.<2E><05>6<>6<>=<3D><1C>U<EFBFBD>$;<3B><<3C><<3C><<3C> <1C>T<EFBFBD>_<EFBFBD>g<EFBFBD>.A<>.K<> L<> L<>F<EFBFBD> <11>_<EFBFBD>v<EFBFBD> %<25>F<EFBFBD> <0A><11>{<7B>{<7B>f<EFBFBD>y<EFBFBD>(<28>(<28><1C>U<EFBFBD>$><3E>?<3F>?<3F>?<3F><16>~<7E>*<2A>*<2A>5<EFBFBD>1<>1<>H<EFBFBD><1F> <11> <15> <20><15><19><1D>)<29>2<> <12> <06><06><06>G<EFBFBD> <13>><3E> <1F> <1F><07><0E><07> 8<> 8<>@<01><1C>U<EFBFBD>$><3E>?<3F>?<3F>?<3F> <0B><15><1C><1C>X<EFBFBD>0<>1<>1<>1<> <18><14>I<><16>I<>I<>x<EFBFBD>I<>I<>6<EFBFBD> R<> R<>RrrErc<01>$<00>|jj<00>d|<01><00>S)N<>:)r5<00>
account_id)r rEs rrRrR<00>s<00><00><15>!<21>,<2C> 5<> 5<>t<EFBFBD> 5<> 5<>5rrfrmrgc<01>&<00>|dkrdS|dkrdSdS)Ni'<00><><EFBFBD><EFBFBD><EFBFBD>r+rrres rrlrl<00>s%<00><00><13>e<EFBFBD><1B><1B><11>r<EFBFBD> <0C>q<EFBFBD>y<EFBFBD>y<EFBFBD><10>q<EFBFBD> <0A>2r) r r r!r"r#r$r%rr&rr'r() r r r-r
2026-09-07 14:04:26 +08:00
r.r r/rr0rr'r) r r r-r
2026-09-07 18:18:00 +08:00
r.r r/rr&rr'r)r r rErr'r)rfrmrgrr'rm)r<00>
2026-09-01 14:28:49 +08:00
__future__r<00> dataclassesr<00> libs.calcrr<00>libs.grid_take_profitr<00>sdkrr r
2026-09-07 14:04:26 +08:00
r <00>
2026-09-07 18:18:00 +08:00
libs.orderr <00> libs.runtimer <00>loggingr7rBrrKr?rArRrlrrr<00><module>r<>ss<00><01>0<>0<>"<22>"<22>"<22>"<22>"<22>"<22>!<21>!<21>!<21>!<21>!<21>!<21>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@<40>+<2B>+<2B>+<2B>+<2B>+<2B>+<2B>3<>3<>3<>3<>3<>3<>3<>3<>3<>3<>3<>3<>(<28>(<28>(<28>(<28>(<28>(<28> <20> <20> <20> <20> <20> <20><15><15><15><15><13>W<EFBFBD>
<EFBFBD> <0B><19><14><16><16><16><1F><1F><1F><1F><1F><1F><1F><17><16><1F>P<0E>P<0E>P<0E>P<0E>f*K<01>*K<01>*K<01>*K<01>Z)S<01>)S<01>)S<01>)S<01>X6<>6<>6<>6<><0E><0E><0E><0E><0E>r