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

68 lines
9.1 KiB
Plaintext
Raw Normal View History

2026-08-28 18:52:27 +08:00
<EFBFBD>
2026-09-01 15:49:09 +08:00
<00>t<EFBFBD>j8<00><01><><00>dZddlmZddlmZddlmZmZddlm Z ddl
2026-09-01 14:28:49 +08:00
m Z m Z m Z mZddlmZdd lmZdd
lmZdd lZd Zd ZdZedd<0F><10><00>Gd<11>d<12><00><00><00>Zd+d<1F>Zd,d&<26>Zd-d'<27>Zd.d*<2A>Zd S)/u*趋势策略持仓止盈与分级补仓。<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<63>)<01>PlaceOrderRequest)<01>Runtime)<01>
STATUS_INGN<EFBFBD>base<73>add)g><3E>gI<>T)<02>frozen<65>slotsc<01>:<00>eZdZUdZded<dZded<dZded <d
2026-08-28 22:56:35 +08:00
S) <0B> TradeDecisionu-一次止盈或补仓判断的统一结果。<E69E9C>bool<6F> submitted<65><00>str<74>message<67><00>float<61> reserved_cashN)<07>__name__<5F>
2026-09-01 14:28:49 +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>r$r<00>runtimer<00>ticks<6B>dict[str, Tick]<5D> positions<6E>list[PositionItem]<5D> market_okr<00> availabler<00>return<72>Nonec <01><00><00><00>fd<01>|D<00><00>}<05>j<00>|<05><00>td|<04><00>}|D<00>]J}|j}|<01>|<08><00>} |<08>jjvrtjd||j <00><00><00>I|r#|j
dks|j dks | <09> | j dkrtj d|pd|j <00><00><00><>t| j |j
2026-08-28 22:56:35 +08:00
z
|j
2026-09-01 14:28:49 +08:00
z dzd <09><00>}
t|j
d
<EFBFBD><00>} t!<00>|| |
| <0B> <0B><00>} | jpd } d }<0E>jjr*|r(t'<00>|| |
|<06><0E><00>}||jz}|jpd }n<0E>jjrd}tjd||j |
| |<0E><00><00><01>LdS)uE处理所有真实持仓并在本轮内统一控制补仓预算。c<01>^<00><01>h|])}|jdk<00> |j<00>t<00>|j<00><00><00><02>*S)r)<03>volume<6D>
2026-09-01 15:49:09 +08:00
stock_code<EFBFBD> _position_key)<03>.0<EFBFBD>positionr&s <20>r%<00> <setcomp>z#manage_positions.<locals>.<setcomp>&sE<00><><00><06><06><06> <14> <13>?<3F>Q<EFBFBD> <1E> <1E>8<EFBFBD>#6<> <1E> <16>g<EFBFBD>x<EFBFBD>2<>3<>3<> <1E> <1E> r$ruP[Position] %s %s 止盈=跳过,补仓=跳过,原因=已配置为排除股票rNuS[Position] %s %s 止盈=跳过,补仓=跳过,原因=持仓或行情数据无效u未知<E69CAA>d<00>r )r&r5<00>tick<63>pnl_rate<74>minimum_profitu 未触发u 未启用)r&r5r9r:r,u大盘信号不允许u6[Position] %s %s 盈亏=%.2f%%,止盈=%s补仓=%s)<15>profit_tracker<65>retain<69>maxr2<00>get<65> account_cfg<66>excluded_codes<65>log<6F>info<66>
2026-09-01 14:28:49 +08:00
stock_name<EFBFBD>
2026-08-28 22:56:35 +08:00
open_pricer1<00>
2026-09-01 15:49:09 +08:00
last_price<EFBFBD>warning<6E>roundr<00> handle_profitr<00>enable_loss_add_position<6F> handle_lossr)r&r'r)r+r,<00> active_keys<79>remaining_cashr5<00>coder9r:r;<00>profit_decision<6F> profit_action<6F>loss_add_action<6F> loss_decisions` r%<00>manage_positionsrSs2<00><><00><06><06><06><06>!<21><06><06><06>K<EFBFBD>
2026-09-01 14:28:49 +08:00
 <0C><1A>!<21>!<21>+<2B>.<2E>.<2E>.<2E><18><13>i<EFBFBD>(<28>(<28>N<EFBFBD><1D>.
<EFBFBD>.
2026-09-01 15:49:09 +08:00
<EFBFBD><08><17>"<22><04><14>y<EFBFBD>y<EFBFBD><14><EFBFBD><EFBFBD><04> <0F>7<EFBFBD>&<26>5<> 5<> 5<> <0F>H<EFBFBD>g<>im<69>ow<6F>pC<02> D<02> D<02> D<02> <14><14> <15><17>"<22>a<EFBFBD>'<27>'<27><17><EFBFBD>!<21>#<23>#<23><13>|<7C><13><EFBFBD>!<21>#<23>#<23> <0F>K<EFBFBD>m<>os<6F>o<6F>w<77>BJ<02>BU<02> V<02> V<02> V<02> <14><18> <11>_<EFBFBD>x<EFBFBD>2<> 2<>h<EFBFBD>6I<36> I<>C<EFBFBD> O<> <0A>
2026-08-28 22:56:35 +08:00
<EFBFBD>
<EFBFBD><08>3<>8<EFBFBD>3F<33><01>J<>J<><0E>'<27><1B><1D><15><1D>)<29> 
<EFBFBD>
<EFBFBD>
2026-09-01 15:49:09 +08:00
<EFBFBD><0F>(<28>/<2F>><3E>;<3B> <0A>%<25><0F> <12> <1E> 7<> 6<>I<EFBFBD> 6<>'<27><1F>!<21><19>!<21>(<28> <0E><0E><0E>M<EFBFBD> <1B>m<EFBFBD>9<> 9<>N<EFBFBD>+<2B>3<>B<>{<7B>O<EFBFBD>O<EFBFBD> <14> <20> 9<> 6<>5<>O<EFBFBD> <0B><08> D<> <10>(<28>%<25>x<EFBFBD><1D><0F>
2026-09-01 14:28:49 +08:00
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>W.
<EFBFBD>.
r$r5r
2026-08-28 22:56:35 +08:00
r9r r:r;c<01>`<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
hvrtd<01><00>S|j <00> |jd<06><00>rtdd<07><00>S|j |j dzz
}|d krtdd
<EFBFBD><00>S|j <00>t<00><00>}t!|jt$|j|||jj<00> <0B><00>} |j <00>| <09><00>stdd <0C><00>Std d|<07>d|<08><00><04><00>S)uB基于跨轮保存的最高盈利网格判断是否提交止盈。Fu 首次达到 z.2fu%,峰值网格=u
2026-09-01 14:28:49 +08:00
上涨至 <20>SELLu卖出委托处理中r7ru无可用整手持仓<E68C81><06>client<6E>oprNr1<00>order_id<69> strategy_nameu止盈委托失败Tu卖出 <20> 股,订单=)rr3r2r<<00>observe<76>stater<00>ARMED<45> current_grid<69>RAISED<45>STEADY<44>orders<72>busy<73>can_use_volume<6D> new_order_id<69>LEG_BASEr rWr r@<00>strategy<67>place)
r&r5r9r:r;<00>key<65> observationr1rY<00>requests
r%rIrI_s<><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>
<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>8<EFBFBD>4<>4<>H<EFBFBD><1F><16>~<7E> <12> <15> <20><15><19><1D>)<29>2<> <06><06><06>G<EFBFBD> <13>><3E> <1F> <1F><07> (<28> (<28>:<3A><1C>U<EFBFBD>$8<>9<>9<>9<> <18><14>I<><16>I<>I<>x<EFBFBD>I<>I<> J<> J<>Jr$c<01><><00> |j<00>|j<00><00>}n #t$rt dd<02><00>cYSwxYw|jt t<00><00>krt dd<03><00>S|t|jkrt d<01><00>S|jdks |j dkrt dd<06><00>S|j
<00> d|j|j<00><00>st dd<08><00>S|j <00> |jd <09><00>rt dd
<EFBFBD><00>St|j|jj<00><00>}|j|z}|d ks||krt dd <0C><00>S|j <00>t$<00><00>}t'|jt*|j|||jj<00> <0A><00>} |j <00>| <09><00>st dd<0E><00>S|xjdz c_t0|_||_||_|j|_|j<00>|<05><00>|j<00><00><00>|j
2026-09-01 14:28:49 +08:00
<00>|j<00><00>t dd|<06>d|<08><00>|<07><00>S)uB按亏损档位、反弹确认和本轮剩余预算提交补仓。Fu!缺少持仓状态跳过补仓u已达到最大补仓次数<E6ACA1><E695B0>i`<60>u'价格或仓位市值超过补仓限制u补仓u等待价格反弹确认<E7A1AE>BUYu买入委托处理中ru本轮可用资金不足rVu补仓委托失败r Tu买入 r[) r]r?r2<00>KeyErrorr<00> added_num<75>len<65>
LOSS_TIERSrF<00> market_value<75> add_watch<63> triggeredrbrcrr@<00> buy_valuere<00> LEG_ADDEDr rWrrgrhr<00> added_status<75>added_order_id<69> added_qty<74>
2026-08-28 22:56:35 +08:00
added_cost<EFBFBD>set<65>save<76>forget)
2026-09-01 14:28:49 +08:00
r&r5r9r:r,r]r1<00>amountrYrks
r%rKrK<00>s{<00><00>I<01><17> <0A>!<21>!<21>(<28>"5<>6<>6<><05><05><> <13>I<01>I<01>I<01><1C>U<EFBFBD>$G<>H<>H<>H<>H<>H<>I<01><><EFBFBD><EFBFBD> <0A><EFBFBD>#<23>j<EFBFBD>/<2F>/<2F>)<29>)<29><1C>U<EFBFBD>$A<>B<>B<>B<><0F>*<2A>U<EFBFBD>_<EFBFBD>-<2D>-<2D>-<2D><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>9<EFBFBD>5<>5<>H<EFBFBD><1F><16>~<7E> <11> <15> <20><15><19><1D>)<29>2<> <06><06><06>G<EFBFBD> <13>><3E> <1F> <1F><07> (<28> (<28>:<3A><1C>U<EFBFBD>$8<>9<>9<>9<> <09>O<EFBFBD>O<EFBFBD>q<EFBFBD><18>O<EFBFBD>O<EFBFBD>#<23>E<EFBFBD><16>#<23>E<EFBFBD><18><1C>E<EFBFBD>O<EFBFBD><1B><EFBFBD>E<EFBFBD><14> <0B>M<EFBFBD><15><15>e<EFBFBD><1C><1C><1C> <0B>M<EFBFBD><16><16><18><18><18> <0B><15><1C><1C>X<EFBFBD>0<>1<>1<>1<> <18><14>I<><16>I<>I<>x<EFBFBD>I<>I<>6<EFBFBD> R<> R<>Rs <00>"<00>?<03>?rNrc<01>$<00>|jj<00>d|<01><00>S)N<>:)r@<00>
account_id)r&rNs r%r3r3<00>s<00><00><15>!<21>,<2C> 5<> 5<>t<EFBFBD> 5<> 5<>5r$) r&rr'r(r)r*r+rr,rr-r.) r&rr5r
2026-08-28 22:56:35 +08:00
r9r r:rr;rr-r) r&rr5r
2026-09-01 14:28:49 +08:00
r9r r:rr,rr-r)r&rrNrr-r)r!<00>
__future__r<00> dataclassesr<00> libs.calcrr<00>libs.grid_take_profitr<00>sdkrr r
r <00>orderr r&rr]r<00>loggingrBrfrwrrrrSrIrKr3r#r$r%<00><module>r<>sw<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<>$<24>$<24>$<24>$<24>$<24>$<24><1C><1C><1C><1C><1C><1C><1D><1D><1D><1D><1D><1D><15><15><15><15> <11><08> <11> <09> <1B>
<EFBFBD> <0B><19>$<24>d<EFBFBD>#<23>#<23>#<23><1F><1F><1F><1F><1F><1F><1F>$<24>#<23><1F>>
<EFBFBD>>
<EFBFBD>>
<EFBFBD>>
<EFBFBD>B*K<01>*K<01>*K<01>*K<01>Z1S<01>1S<01>1S<01>1S<01>h6<>6<>6<>6<>6<>6r$