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

57 lines
10 KiB
Plaintext
Raw Normal View History

2026-08-28 18:52:27 +08:00
<EFBFBD>
2026-09-04 19:48:47 +08:00
<00><1E>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-04 19:48:47 +08:00
lmZdd lmZd d lmZd dlmZd dlmZd dlmZd dl m!Z!d dl"m#Z#d!d"d<15>Z$d"d<16>Z%d#d<1B>Z&d$d <20>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-04 19:48:47 +08:00
SignalItem)<01>collector_push)<01>Client)<01>GridTrailingTracker<65>)<01>State)<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]O}|j
dkr<01>tjd|j |j |j
|j |j|j|jdz<00><00><00>PdS)u9记录策略启动时的账户、资金和持仓概览。Nu2[启动] 账户=%s主机=%s单笔金额=%.2fu+[启动] 总资产=%.2f,可用资金=%.2fu![启动] 获取资金概览失败ruR[启动] %s %s持仓=%d可用=%d成本=%.2f,现价=%.2f,盈亏=%.2f%%<25>d)<11>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>
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-08-28 18:52:27 +08:00
open_price<EFBFBD>
2026-09-04 19:48:47 +08:00
last_price<EFBFBD> profit_rate)<04>assets<74> positions<6E> account_cfg<66>positions <20>6D:\work\quant\big-qmt\py-client\strategy\trend\boot.py<70>Overviewr/s1<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>A<04>A<04><08> <13>?<3F>a<EFBFBD> <1F> <1F> <14> <0B><08>e<>go<67>gz<67>}E<02>}P<02>RZ<02>Ra<02>ck<02>cz<02>|D<03>|O<03>QY<03>Qd<03>fn<03>fz<03>}@<04>f@<04> A<04> A<04> A<04> A<04>A<04>A<04>c<01><00>ttjjtjjtj<00><00>}|<00><00><00>}|j}t|j <00>
2026-09-03 11:33:43 +08:00
<00><00><00><00>}t<00><00>}|<04> ||j <00><00>tjtjjtjjtjj<00><00>}|<05>||j<00><00>t-tjtjj<00><00>}t1jdtjjt5|<06><00>t5|<03><00><00><00>t7|tjtj||t9<00><00>t9<00><00>t;tjj<00><00>t?dd<03><04><00><00><05> <00> }tA||tj<00><00>d} tCj"<00><00>j#} | |kr|| z
2026-09-01 14:28:49 +08:00
}
n| dkrd| z
}
n|}
2026-09-03 11:33:43 +08:00
tCj$|
<EFBFBD><00> tK||<06><00>n0#tL$r#} t1j'd | <0B><00>d<07>
2026-09-04 19:48:47 +08:00
<EFBFBD><00>Yd } ~ nd } ~ wwxYw<01><>) u:初始化趋势策略,并以 30 秒间隔持续执行。uB[启动] 趋势策略已启动,账户=%s信号=%d持仓=%d<><00>trend)<02> max_workers<72>thread_name_prefix) <09>client<6E>
2026-09-01 14:28:49 +08:00
global_cfgr,<00>state<74>orders<72>
2026-09-04 19:48:47 +08:00
open_watch<EFBFBD> add_watch<63>profit_tracker<65>executor<6F>T<><u4[Trend] 本 tick 执行失败,下一 tick 继续: )<01>exc_infoN)(r r<00> global_config<69> qmt_base_url<72> qmt_token<65> HTTP_TIMEOUT<55> portfolior*<00>listr+<00>valuesr<00>refreshr9r<00> for_strategy<67> qmt_data_dirr<00>strategyr<00> reconcile<6C>datar <00> signal_allowrr<00>lenrrr <00> grid_step_pctrr/<00>time<6D> localtime<6D>tm_sec<65>sleep<65>RunOnce<63> Exception<6F>error) r6rEr*r+<00>
2026-08-30 15:29:21 +08:00
order_book<EFBFBD>
2026-09-01 14:28:49 +08:00
storeState<EFBFBD>signals<6C>run<75>DEFAULT_TICK_INTERVAL<41> current_sec<65> wait_seconds<64>es r.<00>
2026-09-04 19:48:47 +08:00
StartTrendr`/s<><00><00> <13><0E><1C>)<29><0E><1C>&<26><0E><1B><06><06>F<EFBFBD>
2026-09-03 11:33:43 +08:00
<17> <20> <20>"<22>"<22>I<EFBFBD> <16> <1D>F<EFBFBD><14>Y<EFBFBD>(<28>/<2F>/<2F>1<>1<>2<>2<>I<EFBFBD><1A><1B><1B>J<EFBFBD><0E><16><16>v<EFBFBD>y<EFBFBD>/<2F>0<>0<>0<><16>#<23><0E><1C>)<29><0E><1D>&<26><0E><1D>(<28><06><06>J<EFBFBD>
2026-09-01 14:28:49 +08:00
<0F><18><18><19>J<EFBFBD>O<EFBFBD>4<>4<>4<><1B><0E><1C><0E><1D>*<2A><06><06>G<EFBFBD><08>H<EFBFBD> Q<>SY<53>Sh<53>Ss<53>ux<75>zA<02>vB<02>vB<02>DG<02>HQ<02>DR<02>DR<02>S<02>S<02>S<02>
<11><15><19>'<27><1A>)<29><18><19><1B>:<3A>:<3A><1A>*<2A>*<2A>*<2A>6<EFBFBD>+@<40>+N<>O<>O<>#<23><01>g<EFBFBD>N<>N<>N<>
2026-08-31 15:33:39 +08:00
<06>
<06>
2026-09-01 14:28:49 +08:00
<06>C<EFBFBD> <0A>V<EFBFBD>Y<EFBFBD><06> 5<>6<>6<>6<><1E><19>a<01><1A>n<EFBFBD>&<26>&<26>-<2D> <0B> <17>.<2E> .<2E> .<2E>0<>;<3B>><3E>L<EFBFBD>L<EFBFBD> <18>2<EFBFBD> <1D> <1D><1D> <0B>+<2B>L<EFBFBD>L<EFBFBD>0<>L<EFBFBD> <0A>
2026-09-03 11:33:43 +08:00
<EFBFBD><<3C> <20> <20> <20> a<01> <13>C<EFBFBD><17> !<21> !<21> !<21> !<21><><18> a<01> a<01> a<01> <0F>I<EFBFBD>P<>Q<EFBFBD>P<>P<>[_<> `<60> `<60> `<60> `<60> `<60> `<60> `<60> `<60> `<60><><EFBFBD><EFBFBD><EFBFBD> a<01><><EFBFBD><EFBFBD>#as<00>?I<00>
2026-09-04 19:48:47 +08:00
I=<03>I8<03>8I=r[rrZ<00>list[SignalItem]c <01>l<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(||<06><00>fg}|j|j|jjzk}|s t!jd|j|j<00><00>t5<00><00>} g}
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
t;| <0A><00><00><00>YdSwxYw |j!<00>"||j j#<00><00>n%#t$rt!jd <0B><00>YdSwxYwt!jd t;|<06><00>t;|
<EFBFBD><00>| |<08><00>|<07>d |j<00>tH|||| |j<00><00>f<02><00>|
r;| r9|r7|<07>d|j<00>tJ|||
<EFBFBD><00>f<02><00>|D]\}}tM||<10><00><00>t!jdtOt 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-[行情] 获取行情失败,代码数量=%du![状态] 订单状态对账失败uR[RunOnce] 本轮就绪,持仓=%d候选=%d大盘允许=%s资金允许=%su 持仓计算u 开仓计算u([RunOnce] 本轮完成,耗时=%d毫秒i<E7A792>)(rr<00>now<6F>print<6E>strftimerQ<00> monotonicr6rEr*rFr+rGr9rHrVr<00> exceptionr=<00>submitr r!r r,<00>min_cash_ratiorr<00>code<64>appendrO<00>dict<63>fromkeys<79> full_tickr8rLrMrr<00> _wait_worker<65>int)r[rZ<00>
started_atrEr*<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.rUrUms<><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-04 19:48:47 +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><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-01 14:28:49 +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>
2026-09-04 19:48:47 +08:00
<0F> <0B> <09><1B><1B>I<EFBFBD>s<EFBFBD>z<EFBFBD><EFBFBD>7<>7<>7<>7<><37> <14><0F><0F><0F> <0B> <0A>9<>:<3A>:<3A>:<3A><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<>es7<00>4A?C4<00>4D<03>D<03>H7<00>7,I'<03>&I'<03>+%J<00>J3<03>2J3r|<00>strr}rc<01>|<00> |<01><00><00>dS#t$rtjd|<00><00>YdSwxYw)uE保留单轮继续运行的语义分别记录工作线程异常。u[运行] %s线程失败N)<04>resultrVrrh)r|r}s r.rprp<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)r[rrZrarr)r|r~r}rrr)(<28>__doc__<5F>
__future__rrQ<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 r8r<00>orderr<00>watchr<00>runtimer<00>openrr+rr/r`rUrp<00>r0r.<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<><18><18><18><18><18><18><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>A<04>A<04>A<04>A<04>A<04>&;a<01>;a<01>;a<01>;a<01>|Nf<01>Nf<01>Nf<01>Nf<01>b7<>7<>7<>7<>7<>7r0