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

62 lines
10 KiB
Plaintext
Raw Normal View History

2026-08-28 18:52:27 +08:00
<EFBFBD>
2026-09-06 11:34:23 +08:00
<00>֜j<00><01><><00>dZddlmZddlZddlZddlmZmZddl m Z ddl
2026-09-01 14:28:49 +08:00
Z
ddl m Z ddl mZddlmZmZdd lmZdd
2026-09-06 11:34:23 +08:00
lmZdd lmZd d lmZd dlmZd dlmZd dlmZd dl m!Z!d d!d<14>Z"d!d<15>Z#d"d<1A>Z$d#d<1F>Z%dS)$uy趋势策略启动器。
2026-08-28 18:52:27 +08:00
该模块负责组合 SDK、配置、状态存储和趋势策略组件供 main.py 调用。
2026-08-31 15:33:39 +08:00
<EFBFBD>)<01> annotationsN)<02>Future<72>ThreadPoolExecutor)<01>datetime)<01> trading_time)<01>market_allow_open)<02> init_signals<6C>
2026-09-06 11:34:23 +08:00
SignalItem)<01>collector_push)<01>Client)<01>GridTrailingTracker<65>)<01> OrderBook)<01>DipWatch)<01>Runtime)<01> open_signal)<01>manage_positions<6E>return<72>Nonec<01>.<00>|p tj}|<02>&tjd|j|j|j<00><00>|<00>!tjd|j|j<00><00>ntj d<04><00>|D]<5D>}|j
dkr<01>t|<03><00>D]9}|<04> d<06><00>s"t|<04>dt||<04><00><00><00><03><00><00>:tjd|j|j|j|j
|j|j|j|j|jd z<00>
<00>
<00><>dS)
u9记录策略启动时的账户、资金和持仓概览。Nu2[启动] 账户=%s主机=%s单笔金额=%.2fu+[启动] 总资产=%.2f,可用资金=%.2fu![启动] 获取资金概览失败r<00>__z = u[[启动] %s %s %s持仓=%d可用=%d成本=%.2f(%.2f),现价=%.2f,盈亏=%.2f%%<25>d)<17>config<69>account_config<69>log<6F>info<66>
account_id<EFBFBD>host_key<65> buy_value<75>total<61> available<6C>warning<6E>volume<6D>dir<69>
startswith<EFBFBD>print<6E>getattr<74>trade_id<69>
2026-08-28 18:52:27 +08:00
stock_code<EFBFBD>
2026-09-01 14:28:49 +08:00
stock_name<EFBFBD>can_use_volume<6D>
2026-09-06 11:34:23 +08:00
open_price<EFBFBD> open_cost<73>
last_price<EFBFBD> profit_rate)<05>assets<74> positions<6E> account_cfg<66>position<6F>attrs <20>6D:\work\quant\big-qmt\py-client\strategy\trend\boot.py<70>Overviewr6s<><00><00><1D>6<><16>!6<>K<EFBFBD><12><1E> <0B><08>E<>{<7B>G]<5D>_j<5F>_s<5F>vA<02>vK<02> L<02> L<02> L<02> <0A><19> <0B><08>><3E><06> <0C>f<EFBFBD>N^<5E>_<>_<>_<>_<> <0B> <0B>7<>8<>8<>8<><1D>o<04>o<04><08> <13>?<3F>a<EFBFBD> <1F> <1F> <14><17><08>M<EFBFBD>M<EFBFBD> =<3D> =<3D>D<EFBFBD><17>?<3F>?<3F>4<EFBFBD>(<28>(<28> =<3D><15><14>;<3B>;<3B>'<27>(<28>D<EFBFBD>"9<>"9<>;<3B>;<3B><<3C><<3C><<3C><> <0B><08>n<>ow<6F>pA<02>CK<02>CV<02>X`<02>Xk<02>mu<02>m|<02>~F<03>~U<03>W_<03>Wj<03>ks<03>k}<03>G<04>R<04>T\<04>Th<04>kn<04>Tn<04> o<04> o<04> o<04> o<04>o<04>o<04>c <01><><00>ttjjtjjtj<00><00>}d} |<00><00><00>}|j}t|j <00>
<00><00><00><00>}t<00><00>}|<05> ||j <00><00>ttjtjj<00><00>}t#jdtjjt)|<06><00>t)|<04><00><00><00>t+dd<04><05><00>}t-|tjtj|t/<00><00>t/<00><00>t1tjj<00><00>|<01><06><00>}t5||tj<00><00>d} t7j<00><00>} | j| j| jfd 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-06 11:34:23 +08:00
} n|} t7j"| <0B><00> tG||<06><00>n0#tH$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 秒间隔持续执行。NuB[启动] 趋势策略已启动,账户=%s信号=%d持仓=%d<><00>trend)<02> max_workers<72>thread_name_prefix)<08>client<6E>
global_cfgr2<00>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 r<00> global_config<69> qmt_base_url<72> qmt_token<65> HTTP_TIMEOUT<55> portfolior0<00>listr1<00>valuesr<00>refreshr?r r<00> signal_allowrrr<00>lenrrrr <00> grid_step_pctr6<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=rCrMr0r1<00>
order_book<EFBFBD>signals<6C>run<75>DEFAULT_TICK_INTERVAL<41>lt<6C> current_sec<65> wait_seconds<64>es r5<00>
StartTrendrg2s <00><00> <13><0E><1C>)<29><0E><1C>&<26><0E><1B><06><06>F<EFBFBD>
<14>H<EFBFBD>8<1B><1A>$<24>$<24>&<26>&<26> <09><1A>!<21><06><18><19>,<2C>3<>3<>5<>5<>6<>6<> <09><1E>[<5B>[<5B>
<EFBFBD><12><1A><1A>6<EFBFBD>9<EFBFBD>#3<>4<>4<>4<><1F> <12> <20> <12> !<21> .<2E>
<EFBFBD>
<EFBFBD><07> <0C><08>U<>W]<5D>Wl<57>Ww<57>y|<7C>~E<02>zF<02>zF<02>HK<02>LU<02>HV<02>HV<02> W<02> W<02> W<02>%<25>!<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> 
<EFBFBD> 
<EFBFBD> 
<EFBFBD><03> <11><16><19>F<EFBFBD>$9<>:<3A>:<3A>:<3A> "<22><1D> e<01><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>/<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> e<01><17><03>W<EFBFBD>%<25>%<25>%<25>%<25><><1C> e<01> e<01> e<01><13> <09>T<>QR<51>T<>T<>_c<5F>d<>d<>d<>d<>d<>d<>d<>d<>d<><64><EFBFBD><EFBFBD><EFBFBD> e<01><><EFBFBD><EFBFBD>+ e<01><>0 <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>F J<00>H <00> H#<03>&5J<00>I-<00>,J<00>-
J<03>7J<03>J<00>J<03>J<00>K'<03>!K<04>9K'<03>K$<07>$K'rarr`<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>}|j <00>|j|j <00><00>n%#t$rt!jd<06><00>YdSwxYwd|j<00>t(|jj||<06><00>fg}|j|j|jjzk}|s t!jd|j|j<00><00>t7<00><00>} g}
2026-09-05 00:23:55 +08:00
g} |D]:} | j|vr/|
<EFBFBD>| <0C><00>| <0B>| j<00><00><00>;|
r$| s"t!jd t=|
<EFBFBD><00><00><00>tt><00> || z<00><00><00><00>} |j<00>!| <0A><00>}n3#t$r&t!jd
2026-09-06 11:34:23 +08:00
t=| <0A><00><00><00>YdSwxYwt!jd t=|<06><00>t=|
<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!jdtKt j<00><00>|z
dz<00><00><00><00>dS)u9按固定步骤执行一轮趋势策略, ``RunOnce``。Nz(========================================z Ticker z%Y-%m-%d %H:%M:%S<> u$[Portfolio] 刷新账户快照失败u 数据提交uI[Status] 禁止开仓:可用资金不足,可用=%.2f,总资产=%.2fu9[开仓] 禁止开仓:大盘信号不允许,候选=%du-[行情] 获取行情失败,代码数量=%duR[RunOnce] 本轮就绪,持仓=%d候选=%d大盘允许=%s资金允许=%su 持仓计算u 开仓计算u([RunOnce] 本轮完成,耗时=%d毫秒i<E7A792>)&rr<00>nowr&<00>strftimerT<00> monotonicr=rMr0rNr1rOr?rPr]r<00> exceptionrC<00>submitr r2rr!r <00>min_cash_ratiorr<00>code<64>appendrR<00>dict<63>fromkeys<79> full_tickrr<00> _wait_worker<65>int)rar`<00>
started_atrMr0<00>position_codesr1<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 r5r\r\us<><00><00> <17><08> <0C><0E><0E> '<27> '<27><0F><0E><06> <09>(<28>O<><08> <0C><0E><0E> 7<> 7<>8K<38> L<> L<>O<>O<>O<>
2026-09-01 15:49:09 +08:00
O<EFBFBD>QY<EFBFBD>
2026-09-03 11:33:43 +08:00
Y<EFBFBD>Z<>Z<>Z<><15><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> <0B>
2026-09-05 00:23:55 +08:00
<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> <1F><13> <0C>#<23>#<23>"<22><17>O<EFBFBD>.<2E><1A><1D> <12><12> <0E>
)
<EFBFBD>G<EFBFBD> <20>)<29>V<EFBFBD>\<5C>C<EFBFBD>O<EFBFBD><Z<>-Z<>Z<><16> <1D>~<01> <0B><08>\<5C>^d<>^n<>pv<70>p|<7C>}<7D>}<7D>}<7D>"<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>
2026-09-06 11:34:23 +08:00
<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> a<>cf<63>gp<67>cq<63>cq<63>sv<73>xB<02>tC<02>tC<02>EN<02>Pb<02>c<02>c<02>c<02> <0C>N<EFBFBD>N<EFBFBD>N<EFBFBD>3<EFBFBD><<3C>#6<>#6<>7G<37><03>E<EFBFBD>R[<5B>\e<>fl<66>fv<66>#w<>#w<>x<>y<>y<>y<><12>c<01>i<EFBFBD>c<01>$6<>c<01><0F><0E><0E><0E><03> <0C>(;<3B>(;<3B>K<EFBFBD><13>e<EFBFBD>U_<55>(`<60>(`<60>a<>b<>b<>b<> <20>#<23>#<23> <0C><04>f<EFBFBD><14>T<EFBFBD>6<EFBFBD>"<22>"<22>"<22>"<22><07>H<EFBFBD> 7<><13>d<EFBFBD>n<EFBFBD>>N<>>N<>Q[<5B>>[<5B>_c<5F>=c<>9d<39>9d<39>e<>e<>e<>e<>es%<00>4A?C4<00>4D<03>D<03>'I<00>,I2<03>1I2r<><00>strr<72>rc<01>|<00> |<01><00><00>dS#t$rtjd|<00><00>YdSwxYw)uE保留单轮继续运行的语义分别记录工作线程异常。u[运行] %s线程失败N)<04>resultr]rrn)r<>r<>s r5rvrv<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>;)N)rr)rarr`rhrr)r<>r<>r<>rrr)&<26>__doc__<5F>
__future__rrT<00>loggingr<00>concurrent.futuresrrrr<00> libs.calcr<00> libs.marketr<00> libs.signalr r
<00>libs.collectorr <00>sdkr <00>libs.grid_take_profitr <00>orderr<00>watchr<00>runtimer<00>openrr1rr6rgr\rv<00>r7r5<00><module>r<>s<><00><01><04><04>
#<23>"<22>"<22>"<22>"<22>"<22> <0B> <0B> <0B> <0B><15><15><15><15>9<>9<>9<>9<>9<>9<>9<>9<><1D><1D><1D><1D><1D><1D> <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><16><16><16><16><16><16>5<>5<>5<>5<>5<>5<><1C><1C><1C><1C><1C><1C><1B><1B><1B><1B><1B><1B><1C><1C><1C><1C><1C><1C><1D><1D><1D><1D><1D><1D>'<27>'<27>'<27>'<27>'<27>'<27>o<04>o<04>o<04>o<04>o<04>.@<1B>@<1B>@<1B>@<1B>FHf<01>Hf<01>Hf<01>Hf<01>V7<>7<>7<>7<>7<>7r7