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

57 lines
8.7 KiB
Plaintext
Raw Normal View History

2026-08-28 18:52:27 +08:00
<EFBFBD>
2026-08-28 22:56:35 +08:00
!<21><>jb<00><01><><00>dZddlmZddlZddlmZddlmZmZddl m
2026-08-28 18:52:27 +08:00
Z
2026-08-28 22:56:35 +08:00
ddl m Z m Z mZmZdd lmZdd
lmZdd lmZd Zd ZdZedd<0F><10><00>Gd<11>d<12><00><00><00>Zd+d<1F>Zd,d&<26>Zd-d'<27>Zd.d*<2A>ZdS)/u*趋势策略持仓止盈与分级补仓。<E4BB93>)<01> annotationsN)<01> dataclass)<02>calc_buy_volume<6D>calculate_min_profit_rate)<01> GridState)<04>OP_BUY<55>OP_SELL<4C>Position<6F>Tick<63>)<01>PlaceOrderRequest)<01>Runtime)<01>
STATUS_ING<EFBFBD>base<73>add)g><3E>gI<>T)<02>frozen<65>slotsc<01>:<00>eZdZUdZded<dZded<dZded <d
S) <0B> TradeDecisionu-一次止盈或补仓判断的统一结果。<E69E9C>bool<6F> submitted<65><00>str<74>message<67><00>float<61> reserved_cashN)<07>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__<5F>__annotations__rr<00><00><00>%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[Position]<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>}tjdt |<02><00><00><00>|D<00>]}|j}|<01>|<08><00>} |<08>jj vr<01>.|r#|j
dks|j dks | <09> | j dkr<01>Tt| j |j
z
|j
z dzd<07><00>}
t|j
d<08><00>} t<00>|| |
| <0B> <09><00>} | jrtjd
|| j<00><00><00>jjrB|r@t%<00>|| |
|<06> <0B><00>} || jz}| jrtjd || j<00><00><00><01>dS) uE处理所有真实持仓并在本轮内统一控制补仓预算。c<01>^<00><01>h|])}|jdk<00> |j<00>t<00>|j<00><00><00><02>*S)r)<03>volume<6D>
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$ru"[持仓] 共 %d 只开始处理rN<>d<00>r )r&r5<00>tick<63>pnl_rate<74>minimum_profitu[止盈] %s %s)r&r5r9r:r,u[补仓] %s %s)<14>profit_tracker<65>retain<69>max<61>logging<6E>info<66>lenr2<00>get<65> account_cfg<66>excluded_codes<65>
open_pricer1<00>
last_price<EFBFBD>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> loss_decisions` r%<00>manage_positionsrPs<><00><><00><06><06><06><06>!<21><06><06><06>K<EFBFBD>
 <0C><1A>!<21>!<21>+<2B>.<2E>.<2E>.<2E><18><13>i<EFBFBD>(<28>(<28>N<EFBFBD> <0B>L<EFBFBD>5<>s<EFBFBD>9<EFBFBD>~<7E>~<7E>F<>F<>F<><1D>'L<01>'L<01><08><17>"<22><04><14>y<EFBFBD>y<EFBFBD><14><EFBFBD><EFBFBD><04> <0F>7<EFBFBD>&<26>5<> 5<> 5<> <14><14> <15><17>"<22>a<EFBFBD>'<27>'<27><17><EFBFBD>!<21>#<23>#<23><13>|<7C><13><EFBFBD>!<21>#<23>#<23> <14><18> <11>_<EFBFBD>x<EFBFBD>2<> 2<>h<EFBFBD>6I<36> I<>C<EFBFBD> O<> <0A>
<EFBFBD>
<EFBFBD><08>3<>8<EFBFBD>3F<33><01>J<>J<><0E>'<27><1B><1D><15><1D>)<29> 
<EFBFBD>
<EFBFBD>
<EFBFBD><0F> <1B> "<22> J<01> <13>L<EFBFBD>)<29>4<EFBFBD><1F>1H<31> I<> I<> I<> <12> <1E> 7<>
L<01>I<EFBFBD>
L<01>'<27><1F>!<21><19>!<21>(<28> <0E><0E><0E>M<EFBFBD> <1B>m<EFBFBD>9<> 9<>N<EFBFBD><1C>$<24> L<01><17> <0C>-<2D>t<EFBFBD>]<5D>5J<35>K<>K<>K<><4B>O'L<01>'Lr$r5r
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
上涨至 <20>SELLu卖出委托处理中r7ru无可用整手持仓<E68C81><06>client<6E>oprMr1<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 rTr rC<00>strategy<67>place)
r&r5r9r:r;<00>key<65> observationr1rV<00>requests
r%rHrHYs<><00><00><10>.<2E> <20> <20><1C>U<EFBFBD>#<23>#<23>#<23>
<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
<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本轮可用资金不足rSu补仓委托失败r Tu买入 rX) rZrBr2<00>KeyErrorr<00> added_numrA<00>
LOSS_TIERSrF<00> market_value<75> add_watch<63> triggeredr_r`rrC<00> buy_valuerb<00> LEG_ADDEDr rTrrdrer<00> added_status<75>added_order_id<69> added_qty<74>
added_cost<EFBFBD>set<65>save<76>forget)
r&r5r9r:r,rZr1<00>amountrVrhs
r%rJrJ<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>?rMrc<01>$<00>|jj<00>d|<01><00>S)N<>:)rC<00>
account_id)r&rMs 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
r9r r:rr;rr-r) r&rr5r
r9r r:rr,rr-r)r&rrMrr-r)r!<00>
__future__rr?<00> dataclassesr<00> libs.calcrr<00>libs.grid_take_profitr<00>sdkrr r
r <00>orderr r&rrZrrcrsrnrrPrHrJr3r#r$r%<00><module>r<>sx<00><01>0<>0<>"<22>"<22>"<22>"<22>"<22>"<22><0E><0E><0E><0E>!<21>!<21>!<21>!<21>!<21>!<21>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@<40>+<2B>+<2B>+<2B>+<2B>+<2B>+<2B>/<2F>/<2F>/<2F>/<2F>/<2F>/<2F>/<2F>/<2F>/<2F>/<2F>/<2F>/<2F>$<24>$<24>$<24>$<24>$<24>$<24><1C><1C><1C><1C><1C><1C><1D><1D><1D><1D><1D><1D> <11><08> <11> <09> <1B>
<EFBFBD> <0B><19>$<24>d<EFBFBD>#<23>#<23>#<23><1F><1F><1F><1F><1F><1F><1F>$<24>#<23><1F>8L<01>8L<01>8L<01>8L<01>v*K<01>*K<01>*K<01>*K<01>Z1S<01>1S<01>1S<01>1S<01>h6<>6<>6<>6<>6<>6r$