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

67 lines
10 KiB
Plaintext
Raw Normal View History

2026-08-28 18:52:27 +08:00
<EFBFBD>
2026-09-07 14:04:26 +08:00
N7<4E>j<EFBFBD><00><01>><00>UdZddlmZddlZddlZddlmZmZddl m
2026-09-01 14:28:49 +08:00
Z
2026-09-07 14:04:26 +08:00
ddl m Z ddl m Z ddlZddlmZdd lmZdd
lmZdd lmZmZdd lmZmZmZdd lmZddlmZddl m!Z!ddl"m#Z#ddl$m%Z%ddl&m'Z'e <0A><00>Z(da)de*d<d*d<1E>Z+d+d<1F>Z,d,d <20>Z-d-d%<25>Z.d.d)<29>Z/dS)/uy趋势策略启动器。
2026-08-28 18:52:27 +08:00
该模块负责组合 SDK、配置、状态存储和趋势策略组件供 main.py 调用。
2026-09-07 14:04:26 +08:00
<EFBFBD>)<01> annotationsN)<02>Future<72>ThreadPoolExecutor)<01>deepcopy)<01>datetime)<01>Lock)<01> trading_time)<01>market_allow_open)<01>Overview)<02> init_signals<6C>
SignalItem)<03>Assets<74>Client<6E> PositionItem)<01>GridTrailingTracker)<01> OrderBook)<01>DipWatch)<01>Runtime<6D>)<01> open_signal)<01>manage_positions<6E>-tuple[str, Assets, list[PositionItem]] | None<6E>_collector_snapshot<6F>
account_id<EFBFBD>str<74>assetsr<00> positions<6E>list[PositionItem]<5D>return<72>Nonec<01>P<00>t5|||faddd<01><00>dS#1swxYwYdS)uK整体替换最新快照策略线程不执行序列化和网络上报。N)<02>_collector_lockr)rrrs <20>6D:\work\quant\big-qmt\py-client\strategy\trend\boot.py<70>_cache_portfolior$ s{<00><00>
<19>><3E>><3E>)<29>6<EFBFBD>9<EFBFBD>=<3D><1B>><3E>><3E>><3E>><3E>><3E>><3E>><3E>><3E>><3E>><3E>><3E>><3E><><EFBFBD><EFBFBD>><3E>><3E>><3E>><3E>><3E>>s <00><03><07>c<01>l<00>t5t}ddd<01><00>n #1swxYwYt|<00><00>S)uP供 scheduler 读取复制在锁外执行不阻塞下一轮缓存更新。N)r"rr)<01>snapshots r#<00>get_collector_snapshotr''sp<00><00> <18>'<27>'<27>&<26><08>'<27>'<27>'<27>'<27>'<27>'<27>'<27>'<27>'<27>'<27>'<27><><EFBFBD><EFBFBD>'<27>'<27>'<27>'<27> <13>H<EFBFBD> <1D> <1D>s <00><03> <07> c <01><00>ttjjtjjtj<00><00>}d} |<00><00><00>}|j}t|j <00>
<00><00><00><00>}ttj j ||<04><00>td<02><00>}|<05>||j<00><00>t#tjtj j<00><00>}t'jdtj j t+|<06><00>t+|<04><00><00><00>t-dd<02><05><00>}t/|tjtj |t1<00><00>t1<00><00>t3tj j<00><00>|<01><06><00>}t7||tj <00><00>d} t9j<00><00>} | j| j| j fd kr]t'jd
<EFBFBD><00> |<01>|<01>!d<08> <0B><00>|<00>"<00><00>dS#|<00>"<00><00>wxYw| j }
2026-09-05 00:23:55 +08:00
|
|kr||
z
} n|
2026-09-06 11:34:23 +08:00
d krd |
2026-09-05 00:23:55 +08:00
z
2026-09-07 14:04:26 +08:00
} n|} t9j#| <0B><00> tI||<06><00>n0#tJ$r#} t'j&d | <0C><00>d<08><0E><00>Yd} ~ nd} ~ wwxYw<01><01># |<01>|<01>!d<08> <0B><00>|<00>"<00><00>w#|<00>"<00><00>wxYwxYw)u:初始化趋势策略,并以 30 秒间隔持续执行。N<E38082>trenduA[启动] Trend策略已启动账户=%s信号=%d持仓=%d<>)<02> max_workers<72>thread_name_prefix)<08>client<6E>
global_cfg<EFBFBD> account_cfg<66>orders<72>
open_watch<EFBFBD> add_watch<63>profit_tracker<65>executor<6F>T)<03>rru)[Trend] 已到 15:00结束趋势策略)<01>wait<69><u4[Trend] 本 tick 执行失败,下一 tick 继续: )<01>exc_info)'r<00>config<69> global_config<69> qmt_base_url<72> qmt_token<65> HTTP_TIMEOUT<55> portfolior<00>listr<00>valuesr$<00>account_configrr<00>refreshr0r <00> signal_allow<6F>log<6F>info<66>lenrrrr<00> grid_step_pctr <00>time<6D> localtime<6D>tm_hour<75>tm_min<69>tm_sec<65>shutdown<77>close<73>sleep<65>RunOnce<63> Exception<6F>error) r-r4r?rr<00>
order_book<EFBFBD>signals<6C>run<75>DEFAULT_TICK_INTERVAL<41>lt<6C> current_sec<65> wait_seconds<64>es r#<00>
StartTrendr\.s <00><00> <13><0E><1C>)<29><0E><1C>&<26><0E><1B><06><06>F<EFBFBD>
<14>H<EFBFBD>@<1B><1A>$<24>$<24>&<26>&<26> <09><1A>!<21><06><18><19>,<2C>3<>3<>5<>5<>6<>6<> <09><18><16>.<2E>9<>6<EFBFBD>9<EFBFBD>M<>M<>M<><1E>w<EFBFBD>'<27>'<27>
2026-09-06 11:34:23 +08:00
<EFBFBD><12><1A><1A>6<EFBFBD>9<EFBFBD>#3<>4<>4<>4<><1F> <12> <20> <12> !<21> .<2E>
<EFBFBD>
2026-09-07 14:04:26 +08:00
<EFBFBD><07> <0C><08> O<> <12> !<21> ,<2C> <0F><07>L<EFBFBD>L<EFBFBD> <0F> <09>N<EFBFBD>N<EFBFBD> 
<EFBFBD>
<EFBFBD>
<EFBFBD> &<26>!<21><07>P<>P<>P<><08><15><19><1D>+<2B><1E>-<2D><1D><1F>z<EFBFBD>z<EFBFBD><1E>j<EFBFBD>j<EFBFBD>.<2E>v<EFBFBD>/D<>/R<>S<>S<><1D> 
2026-09-06 11:34:23 +08:00
<EFBFBD> 
<EFBFBD> 
2026-09-07 14:04:26 +08:00
<EFBFBD><03> <11><16><19>F<EFBFBD>$9<>:<3A>:<3A>:<3A> "<22><1D> <12><15><1E>!<21>!<21>B<EFBFBD><12>
<EFBFBD>B<EFBFBD>I<EFBFBD>r<EFBFBD>y<EFBFBD>1<>Z<EFBFBD>?<3F>?<3F><13><08>D<>E<>E<>E<><16>, <1B><17>#<23><18>!<21>!<21>t<EFBFBD>!<21>,<2C>,<2C>,<2C> <12>L<EFBFBD>L<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD><4E>F<EFBFBD>L<EFBFBD>L<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD><4E><EFBFBD><EFBFBD>3<1D>)<29>K<EFBFBD><1B>2<>2<>2<>4<>{<7B>B<> <0C> <0C><1C>r<EFBFBD>!<21>!<21>!<21>K<EFBFBD>/<2F> <0C> <0C>4<> <0C> <11>J<EFBFBD>|<7C> $<24> $<24> $<24> <12><17><03>W<EFBFBD>%<25>%<25>%<25>%<25><><1C> <12> <12> <12><13> <09>N<>1<EFBFBD>N<>N<>Y]<5D><12><12><12><12><12><12><12><12><12><><EFBFBD><EFBFBD><EFBFBD> <12><><EFBFBD><EFBFBD>+ <12><>4 <1B><17>#<23><18>!<21>!<21>t<EFBFBD>!<21>,<2C>,<2C>,<2C> <12>L<EFBFBD>L<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD><4E>F<EFBFBD>L<EFBFBD>L<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>s`<00>GK<00>H.<00>.I<03>5K<00>=J<00> K<00>
J;<03>J6<03>1K<00>6J;<03>;K<00>L<03>K/<04>L<03>/L<07>LrVrrU<00>list[SignalItem]c <01><><00>ttj<00><00><00><00>sdStddtj<00><00><00>d<04><00><00>d<05>zdz<00><00>t j<00><00>} |j<00><00><00>}|j }t|j <00><00>}t|j <00> <00><00><00><00>}t|jj||<06><00>|j<00>|j|j<00><00>n%#t$$rt'jd<06><00>YdSwxYwg}|j|j|jjzk}|s t'jd|j|j<00><00>t3<00><00>} g}
g} |D]:} | j|vr/|
<EFBFBD>| <0C><00>| <0B>| j<00><00><00>;|
r$| s"t'jdt9|
<EFBFBD><00><00><00>tt:<00>|| z<00><00><00><00>} |j<00>| <0A><00>}n3#t$$r&t'jd t9| <0A><00><00><00>YdSwxYwt'jd
t9|<06><00>t9|
<EFBFBD><00>| |<08><00>|<07>d |j <00>!tD|||| |j<00><00>f<02><00>|
r;| r9|r7|<07>d |j <00>!tF|||
<EFBFBD><00>f<02><00>|D]\}}tI||<10><00><00>t'jd tKt j<00><00>|z
dz<00><00><00><00>dS)u9按固定步骤执行一轮趋势策略, ``RunOnce``。Nz(========================================z Ticker z%Y-%m-%d %H:%M:%S<> u$[Portfolio] 刷新账户快照失败uI[Status] 禁止开仓:可用资金不足,可用=%.2f,总资产=%.2fu9[开仓] 禁止开仓:大盘信号不允许,候选=%du-[行情] 获取行情失败,代码数量=%duR[RunOnce] 本轮就绪,持仓=%d候选=%d大盘允许=%s资金允许=%su 持仓计算u 开仓计算u([RunOnce] 本轮完成,耗时=%d毫秒i<E7A792>)&r r<00>now<6F>print<6E>strftimerI<00> monotonicr-r?rr@rrAr$r/rr0rCrRrE<00> exception<6F> available<6C>total<61>min_cash_ratiorFr
<00>code<64>appendrG<00>dict<63>fromkeys<79> full_tickr4<00>submitrr<00> _wait_worker<65>int)rVrU<00>
started_atr?r<00>position_codesr<00>futures<65>allow_open_by_cash<73> market_ok<6F>
allow_open<EFBFBD> allow_codes<65>signal<61> all_codes<65>ticks<6B>name<6D>futures r#rQrQys<><00><00> <17><08> <0C><0E><0E> '<27> '<27><0F><0E><06> <09><10>M<>h<EFBFBD>l<EFBFBD>n<EFBFBD>n<EFBFBD>5<>5<>6I<36>J<>J<>M<>M<>M<>M<>PX<50>X<><06><06><06><16><1E>!<21>!<21>J<EFBFBD> <0F><17>J<EFBFBD>(<28>(<28>*<2A>*<2A> <09><1A>!<21><06><1D>i<EFBFBD>1<>2<>2<><0E><18><19>,<2C>3<>3<>5<>5<>6<>6<> <09><18><13><1F>3<>V<EFBFBD>Y<EFBFBD>G<>G<>G<> <0B>
<EFBFBD><1A><1A>3<EFBFBD>:<3A>y<EFBFBD>'7<>8<>8<>8<>8<><38> <14><0F><0F><0F> <0B> <0A><<3C>=<3D>=<3D>=<3D><0E><06><06><0F><><EFBFBD><EFBFBD>)+<2B>G<EFBFBD> <0F><18>F<EFBFBD>L<EFBFBD>3<EFBFBD>?<3F>+I<>I<>I<><17> <1E>
<EFBFBD> <0B><08> W<> <12> <1C> <12>L<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>"<22>#<23>#<23>I<EFBFBD>$&<26>J<EFBFBD><1F>K<EFBFBD><19>,<2C>,<2C><06> <11>;<3B>n<EFBFBD> ,<2C> ,<2C> <16> <1D> <1D>f<EFBFBD> %<25> %<25> %<25> <17> <1E> <1E>v<EFBFBD>{<7B> +<2B> +<2B> +<2B><><11>_<01>)<29>_<01> <0B><08>L<>c<EFBFBD>R\<5C>o<EFBFBD>o<EFBFBD>^<5E>^<5E>^<5E><15>T<EFBFBD>]<5D>]<5D>><3E>K<EFBFBD>#?<3F>@<40>@<40>A<>A<>I<EFBFBD><0F><13>
<EFBFBD>$<24>$<24>Y<EFBFBD>/<2F>/<2F><05><05><> <14><0F><0F><0F> <0B> <0A>E<>s<EFBFBD>9<EFBFBD>~<7E>~<7E>V<>V<>V<><0E><06><06><0F><><EFBFBD><EFBFBD><08>H<EFBFBD>\<5C> <0B>I<EFBFBD><0E><0E> <0B>J<EFBFBD><0F><0F><11><1A> <06><06><06> <0C>N<EFBFBD>N<EFBFBD> <1A> <0F>L<EFBFBD> <1F> <1F> <20>#<23>u<EFBFBD>i<EFBFBD><19>F<EFBFBD>DT<44> <0E> <0E>
<EFBFBD><06><06><06><12>
<EFBFBD>i<EFBFBD>
<EFBFBD>$6<>
<EFBFBD><0F><0E><0E> <1B>S<EFBFBD>\<5C>0<>0<><1B>c<EFBFBD>5<EFBFBD>*<2A>U<>U<> V<>
<EFBFBD>
<EFBFBD>
<EFBFBD>
 <20>#<23>#<23> <0C><04>f<EFBFBD><14>T<EFBFBD>6<EFBFBD>"<22>"<22>"<22>"<22><07>H<EFBFBD>2<>C<EFBFBD><14><1E>9I<39>9I<39>J<EFBFBD>9V<39>Z^<5E>8^<5E>4_<34>4_<34><06><06><06><06>s%<00>4BD<00>D1<03>0D1<03>H0<00>0,I <03>I rzr{rc<01>|<00> |<01><00><00>dS#t$rtjd|<00><00>YdSwxYw)uE保留单轮继续运行的语义分别记录工作线程异常。u[运行] %s线程失败N)<04>resultrRrErd)rzr{s r#rnrn<00>sO<00><00>7<><0E> <0A> <0A><0F><0F><0F><0F><0F><> <14>7<>7<>7<> <0B> <0A>/<2F><14>6<>6<>6<>6<>6<>6<>7<><37><EFBFBD>s <00><00>;<03>;)rrrrrrrr )rr)rr )rVrrUr]rr )rzrr{rrr )0<>__doc__<5F>
__future__rrI<00>loggingrE<00>concurrent.futuresrr<00>copyrr<00> threadingrr:<00> libs.calcr <00> libs.marketr
<00> libs.overviewr <00> libs.signalr r <00>sdkrrr<00>libs.grid_take_profitr<00>
libs.orderr<00>
libs.watchr<00> libs.runtimer<00>openrrrr"r<00>__annotations__r$r'r\rQrn<00><00>r#<00><module>r<>s<00><01><04><04><04>
#<23>"<22>"<22>"<22>"<22>"<22> <0B> <0B> <0B> <0B><15><15><15><15>9<>9<>9<>9<>9<>9<>9<>9<><19><19><19><19><19><19><1D><1D><1D><1D><1D><1D><1A><1A><1A><1A><1A><1A> <0A> <0A> <0A> <0A>"<22>"<22>"<22>"<22>"<22>"<22>)<29>)<29>)<29>)<29>)<29>)<29>"<22>"<22>"<22>"<22>"<22>"<22>0<>0<>0<>0<>0<>0<>0<>0<>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>,<2C>5<>5<>5<>5<>5<>5<> <20> <20> <20> <20> <20> <20><1F><1F><1F><1F><1F><1F> <20> <20> <20> <20> <20> <20><1D><1D><1D><1D><1D><1D>'<27>'<27>'<27>'<27>'<27>'<27><16>$<24>&<26>&<26><0F>EI<45><13>I<>I<>I<>I<>><3E>><3E>><3E>><3E><1E><1E><1E><1E>H<1B>H<1B>H<1B>H<1B>VX<06>X<06>X<06>X<06>v7<>7<>7<>7<>7<>7r<37>