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

73 lines
8.9 KiB
Plaintext
Raw Normal View History

2026-08-31 13:00:22 +08:00
<EFBFBD>
2026-09-07 14:04:26 +08:00
{<7B>jb<00><01><00>dZddlmZddlmZmZddlZddlZddl m Z mZ
ddl m Z ddl Z ddlmZddlmZdd lmZmZdd
lmZdd lmZdd lmZdd lmZddlmZmZddl m!Z!ddl"m#Z#ddl$m%Z%m&Z&ddl'm(Z(ddl)m*Z*d$d<17>Z+d%d<1E>Z,d&d#<23>Z-dS)'uy做 T 策略启动器。
该模块负责组合 SDK、配置、状态存储和做 T 策略组件,供 main.py 调用。
<EFBFBD>)<01> annotations)<02>Future<72>ThreadPoolExecutorN)<02>datetime<6D>time)<01>Path)<01> trading_time)<01>market_allow_open)<02>
SignalItem<EFBFBD> init_signals)<01>collector_push)<01>GridTrailingTracker)<01>Client)<01>Overview)<02> BUSY_STATUSES<45> OrderBook)<01>DipWatch)<01>Runtime<6D>)<02>TState<74>SOLD)<01> open_signal)<01>manage_positions<6E>return<72>Nonec <01>L<00>ttjjtjjtj<00><00>5}t ttjj<00><00>dtj j
<00>d<02>z <00><00>}tdd<04><05><00>}t|tjtj td<04><00>t<00><00>t<00><00>ttj j<00><00>|<02><06><00>}|<00><00><00>}|j}t'|j<00><00><00><00><00>}|j<00>||j<00><00>t1tjdg<01><00>}t3jdtj j
t7|<07><00>t7|<06><00><00><00>t9||tj <00><00>d } t;j<00><00>} | j| j | j!fd kr"t3jd <0C><00> d d d <0A><00>d S| j!}
|
|kr||
z
} n|
dkrd|
z
} n|} t;j"| <0B><00> tG|||<07><00>n0#tH$r#} t3j%d| <0C><00>d
<EFBFBD><10><00>Yd } ~ nd } ~ wwxYw<01><>#1swxYwYd S)u:初始化做 T 策略,并以 30 秒间隔持续执行。<E8A18C>zt_z _state.db<64><00>zt)<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>dcmu?[启动] ZT 策略已启动,账户=%s信号=%d持仓=%d<>T)<03>rru)[Trend] 已到 15:00结束趋势策略N<E795A5><u4[Trend] 本 tick 执行失败,下一 tick 继续: )<01>exc_info)&r<00>config<69> global_config<69> qmt_base_url<72> qmt_token<65> HTTP_TIMEOUTrr<00> qmt_data_dir<69>account_config<69>
account_idrrrrr<00> grid_step_pct<63> portfolio<69>assets<74>list<73> positions<6E>valuesr%<00>refreshr <00>log<6F>info<66>lenrr<00> localtime<6D>tm_hour<75>tm_min<69>tm_sec<65>sleep<65>RunOnce<63> Exception<6F>error) r"<00>stater)<00>runr8r9r;<00>signals<6C>DEFAULT_TICK_INTERVAL<41>lt<6C> current_sec<65> wait_seconds<64>es <20>3D:\work\quant\big-qmt\py-client\strategy\zt\boot.py<70>StartZTrRs<><00><00> <0F><0E><1C>)<29><0E><1C>&<26><0E><1B>
<06>
<06>=<12>
<10><16> <10><16>%<25>2<> 3<> 3<>?<3F>F<EFBFBD>)<29>4<>?<3F>?<3F>?<3F> @<01>
<EFBFBD>
<EFBFBD><05>&<26>!<21><04>M<>M<>M<><08><15><19><1D>+<2B><1E>-<2D><1C>T<EFBFBD>?<3F>?<3F><1F>z<EFBFBD>z<EFBFBD><1E>j<EFBFBD>j<EFBFBD>.<2E>v<EFBFBD>/D<>/R<>S<>S<><1D> 
<EFBFBD> 
<EFBFBD> 
<EFBFBD><03><1B>$<24>$<24>&<26>&<26> <09><1A>!<21><06><18><19>,<2C>3<>3<>5<>5<>6<>6<> <09> <0B>
<EFBFBD><1A><1A>6<EFBFBD>9<EFBFBD>#3<>4<>4<>4<><1F>v<EFBFBD>3<>U<EFBFBD>G<EFBFBD><<3C><<3C><07> <0B><08>R<> <12> !<21> ,<2C> <0F><07>L<EFBFBD>L<EFBFBD> <0F> <09>N<EFBFBD>N<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD> <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>S=<12>=<12>=<12>=<12>=<12>=<12>=<12>=<12>T<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>U<EFBFBD>G<EFBFBD>,<2C>,<2C>,<2C>,<2C><><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>K=<12>=<12>=<12>=<12><><EFBFBD><EFBFBD>=<12>=<12>=<12>=<12>=<12>=sB<00>GJ<03> 5J<03>I(<02>'J<03>(
J<05>2J<05> J<03>J<05>J<03>J<07> JrJrrIrrK<00>list[SignalItem]c <01><><00>tj<00><00>}t|<03><00>sdStj<00><00>} |j<00><00><00>}|j}|j<00><00><00>}t|j
<00><00>}t|j
<00> <00><00><00><00>} |j <00> |j|j <00><00>|<01>| |<07><00>n%#t$rt!jd<02><00>YdSwxYwd|j<00>t(|jj|| <09><00>fg}
|j|j|jjzk} | s t!jd|j|j<00><00>t7<00><00>} g} g}|D]:}|j|vr/| <0A>|<0F><00>|<0E>|j<00><00><00>;| r$| s"t!jdt=| <0A><00><00><00>tt><00> ||z<00><00><00><00>} |j<00>!|<10><00>}n3#t$r&t!jdt=|<10><00><00><00>YdSwxYwt!jdt=| <09><00>t=| <0A><00>| | <0B><00>|
<EFBFBD>d|j<00>tD||| | |j<00><00>f<02><00>| r;| r9| r7|
<EFBFBD>d |j<00>tF||| <0A><00>f<02><00>|
D]\}}tI||<13><00><00>t!jd
tKtj<00><00>|z
d z<00><00><00><00>dS) u[账户快照 → 成交对账 → 做 T 管理 → dcm 建仓共用一份资金预算。Nu$[Portfolio] 刷新账户快照失败u 数据提交uI[Status] 禁止开仓:可用资金不足,可用=%.2f,总资产=%.2fu9[开仓] 禁止开仓:大盘信号不允许,候选=%du-[行情] 获取行情失败,代码数量=%duR[RunOnce] 本轮就绪,持仓=%d候选=%d大盘允许=%s资金允许=%su 持仓计算u 开仓计算u([RunOnce] 本轮完成,耗时=%d毫秒i<E7A792>)&r<00>nowr r<00> monotonicr"r8r9<00>dealsr:r;r<r%r=<00> reconcilerGr><00> exceptionr)<00>submitr r$r6<00> available<6C>total<61>min_cash_ratior?r
<00>code<64>appendr@<00>dict<63>fromkeys<79> full_tickrr<00> _wait_worker<65>int)rJrIrKrU<00>
started_atr8r9rW<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 rQrFrF_s<><00><00>
<12>,<2C>.<2E>.<2E>C<EFBFBD> <17><03> <1C> <1C><0F><0E><06><15><1E>!<21>!<21>J<EFBFBD>
<0F><17>J<EFBFBD>(<28>(<28>*<2A>*<2A> <09><1A>!<21><06><13>
<EFBFBD> <20> <20>"<22>"<22><05><1D>i<EFBFBD>1<>2<>2<><0E><18><19>,<2C>3<>3<>5<>5<>6<>6<> <09> <0B>
<EFBFBD><1A><1A>3<EFBFBD>:<3A>y<EFBFBD>'7<>8<>8<>8<> <0A><0F><0F> <09>%<25>(<28>(<28>(<28>(<28><> <14><0F><0F><0F> <0B> <0A><<3C>=<3D>=<3D>=<3D><0E><06><06><0F><><EFBFBD><EFBFBD> <1B> <0F>L<EFBFBD> <1F> <1F><1E><13><0F>*<2A><16><19>  <0E> <0E>
<EFBFBD>
)<06>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>B.C(<00>(D
<03> D
<03>H6<00>6,I&<03>%I&ro<00>strrprc<01>|<00> |<01><00><00>dS#t$rtjd|<00><00>YdSwxYw)uE保留单轮继续运行的语义分别记录工作线程异常。u[运行] %s线程失败N)<04>resultrGr>rY)rorps rQrcrc<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>;)rr)rJrrIrrKrSrr)rorqrprrr).<2E>__doc__<5F>
__future__r<00>concurrent.futuresrr<00>loggingr>rr<00>
clock_time<EFBFBD>pathlibrr/<00> libs.calcr <00> libs.marketr
<00> libs.signalr r <00>libs.collectorr <00>libs.grid_take_profitr<00>sdkr<00> libs.overviewr<00>
libs.orderrr<00>
libs.watchr<00> libs.runtimerrIrr<00>openrr;rrRrFrc<00><00>rQ<00><module>r<>s<><00><01><04><04>
#<23>"<22>"<22>"<22>"<22>"<22>9<>9<>9<>9<>9<>9<>9<>9<><15><15><15><15> <0B> <0B> <0B> <0B>1<>1<>1<>1<>1<>1<>1<>1<><18><18><18><18><18><18> <0A> <0A> <0A> <0A>"<22>"<22>"<22>"<22>"<22>"<22>)<29>)<29>)<29>)<29>)<29>)<29>0<>0<>0<>0<>0<>0<>0<>0<>)<29>)<29>)<29>)<29>)<29>)<29>5<>5<>5<>5<>5<>5<><16><16><16><16><16><16>"<22>"<22>"<22>"<22>"<22>"<22>/<2F>/<2F>/<2F>/<2F>/<2F>/<2F>/<2F>/<2F><1F><1F><1F><1F><1F><1F> <20> <20> <20> <20> <20> <20><1F><1F><1F><1F><1F><1F><1F><1F><1D><1D><1D><1D><1D><1D>'<27>'<27>'<27>'<27>'<27>'<27>?<12>?<12>?<12>?<12>B`<06>`<06>`<06>`<06>F7<>7<>7<>7<>7<>7r<37>