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

83 lines
9.1 KiB
Plaintext
Raw Normal View History

2026-08-28 18:52:27 +08:00
<EFBFBD>
2026-08-29 12:00:51 +08:00
<00>T<EFBFBD>j<EFBFBD><00><01><><00>dZddlmZddlZddlZddlmZddlZddlmZm Z m
2026-08-28 18:52:27 +08:00
Z
2026-08-28 22:56:35 +08:00
ddl m Z ddl mZdd lmZdd
2026-08-29 12:00:51 +08:00
lmZdd lmZdd lmZdd lmZddlmZddd<11>Zdd<12>Zdd<15>ZdS)uy趋势策略启动器。
2026-08-28 18:52:27 +08:00
该模块负责组合 SDK、配置、状态存储和趋势策略组件供 main.py 调用。
2026-08-28 22:56:35 +08:00
<EFBFBD>)<01> annotationsN)<01>datetime)<03> init_signals<6C>market_allow_open<65> trading_time)<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}td<01><00>tdtj<00><00>d<03><04><02><00>|<02>(td|j<00>d|j<00>d|jd<08><04><06><00>|<00>#td |jd
2026-08-28 18:52:27 +08:00
<EFBFBD>d |j d
<EFBFBD>d <0C><05><00>ntd <0A><00>tdt|<01><00><00>d<0F><03><00>td<10><00>|D]<5D>}|j dkr<01>td|j <00>d|j <00>d|j <00>d|j<00>d|j<00>d|j<00>d|j<00>d|jd<19>d|jd<19>d|jd
<EFBFBD>d|jd
<EFBFBD>d|jdzd
<EFBFBD>d<1F><19><00><00><>dS) u<>打印策略启动时的账户、资金和持仓概览。
该函数对应 Go 客户端 ``logic.Overview``。为便于单独测试,可以
显式传入账户配置;未传入时使用 ``config.account_config``。
zQ
================================================================================u 【时间】z%Y-%m-%d %H:%M:%SNu【配置】account_id: z host_key: z buy_value: z.0fu【资金】总资产z.2fu可用资金u元u【资金】查询失败u 【持仓】u只zP================================================================================r<00> u 持仓=u 可用=u 冻结=u 在途=u 昨仓=u 成本=z.3fu 现价=u 市值=u 浮盈=u 盈亏比例=<3D>d<00>%)<17>config<69>account_config<69>printr<00>now<6F>
account_id<EFBFBD>host_key<65> buy_value<75>total<61> available<6C>len<65>volume<6D>
stock_code<EFBFBD>
stock_name<EFBFBD>can_use_volume<6D> frozen_volume<6D>on_road_volume<6D>yesterday_volume<6D>
open_price<EFBFBD>
2026-08-29 12:00:51 +08:00
last_price<EFBFBD> market_value<75> float_profit<69> profit_rate)<04>assets<74> positions<6E> account_cfg<66>positions <20>6D:\work\quant\big-qmt\py-client\strategy\trend\boot.py<70>Overviewr2sC<00><00> <1E>6<><16>!6<>K<EFBFBD> <09>/<2F><1A><1A><1A> <09>
2026-08-28 18:52:27 +08:00
;<3B><18><1C><1E><1E>
;<3B>
;<3B>
;<3B><<3C><<3C><<3C><12><1E> <0A> 6<>&<26>1<> 6<> 6<>$<24>-<2D> 6<> 6<>&<26>/<2F> 5<> 6<> 6<>
<EFBFBD>
<EFBFBD>
<EFBFBD><0E><19> <0A> 8<>v<EFBFBD>|<7C> ?<3F> 8<> 8<>$<24>.<2E> 7<> 8<> 8<> 8<>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<0E>(<28>)<29>)<29>)<29> <09>
,<2C><13>Y<EFBFBD><1E><1E>
,<2C>
,<2C>
,<2C>-<2D>-<2D>-<2D> <09>(<28>O<EFBFBD>O<EFBFBD>O<EFBFBD><1D> 
<EFBFBD> 
<EFBFBD><08> <13>?<3F>a<EFBFBD> <1F> <1F> <14> <0A> ><3E>8<EFBFBD>.<2E> ><3E> ><3E><18>1D<31> ><3E> ><3E><1E>o<EFBFBD> ><3E> ><3E>/7<>/F<> ><3E> ><3E><1E>,<2C> ><3E> ><3E>6><3E>6M<36> ><3E> ><3E><1F>/<2F> ><3E> ><3E>:B<01>9L<39> S<> ><3E> ><3E><1F>)<29> S<>  ><3E> ><3E>8@<01>7L<37> S<>  ><3E> ><3E>
<1F>+<2B> 2<>  ><3E> ><3E> %<25>0<>3<EFBFBD>6<> =<3D>  ><3E> ><3E> ><3E>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD> 
<EFBFBD> 
2026-08-29 12:00:51 +08:00
<EFBFBD>c <01>:<00>ttjjtjjtj<00><00>}|<00><00><00>}|<00><00><00>\}}tj tjj
tj j tj j <00><00>}|<00>d<01><00>}|<00><00><00>}|<04>|||<06><00>t#tjtj j<00><00>}t'|tjtj |t)<00><00>t+<00><00>t+<00><00>t-tj j<00><00><00><02><00>}t1||tj <00><00> t3j<00><00>} t7||<07><00>n$#t8$rt;jd<04><00>YnwxYwt3j<00><00>| z
2026-08-28 22:56:35 +08:00
}
2026-08-29 12:00:51 +08:00
t3jtAdd|
2026-08-28 22:56:35 +08:00
z
2026-08-29 12:00:51 +08:00
<00><00><00><00><00><>)u:初始化趋势策略,并以 30 秒间隔持续执行。<E8A18C>order)<08>client<6E>
2026-08-28 22:56:35 +08:00
global_cfgr/<00>state<74>orders<72>
2026-08-29 12:00:51 +08:00
open_watch<EFBFBD> add_watch<63>profit_trackerTu趋势策略本轮执行失败gg>@)!rr<00> global_config<69> qmt_base_url<72> qmt_token<65> HTTP_TIMEOUTr-r.r <00> for_strategy<67> qmt_data_dirr<00>strategyr<00>trade_detail_data<74>deals<6C> reconciler<00> signal_allowrr r r <00> grid_step_pctr2<00>time<6D> monotonic<69>RunOnce<63> Exception<6F>logging<6E> exception<6F>sleep<65>max) r6r-<00>_r.<00>
storeStater9rE<00>signals<6C>run<75>
2026-08-28 22:56:35 +08:00
started_at<EFBFBD>elapseds r1<00>
2026-08-29 12:00:51 +08:00
StartTrendrWCs<><00><00> <13><0E><1C>)<29><0E><1C>&<26><0E><1B><06><06>F<EFBFBD>
2026-08-28 18:52:27 +08:00
<14>]<5D>]<5D>_<EFBFBD>_<EFBFBD>F<EFBFBD><19>#<23>#<23>%<25>%<25>L<EFBFBD>A<EFBFBD>y<EFBFBD><16>#<23><0E><1C>)<29><0E><1D>&<26><0E><1D>(<28><06><06>J<EFBFBD>
2026-08-29 12:00:51 +08:00
<14> %<25> %<25>g<EFBFBD> .<2E> .<2E>F<EFBFBD> <12>L<EFBFBD>L<EFBFBD>N<EFBFBD>N<EFBFBD>E<EFBFBD><0E><18><18><19>F<EFBFBD>E<EFBFBD>2<>2<>2<><1B><0E><1C><0E><1D>*<2A><06><06>G<EFBFBD> <12><15><19>'<27><1A>)<29><18><18>{<7B>{<7B><1B>:<3A>:<3A><1A>*<2A>*<2A>*<2A>6<EFBFBD>+@<40>+N<>O<>O<> <06> <06> <06>C<EFBFBD> <0A>V<EFBFBD>Y<EFBFBD><06> 5<>6<>6<>6<> -<2D><19>^<5E>%<25>%<25>
2026-08-28 18:52:27 +08:00
<EFBFBD> @<01> <13>C<EFBFBD><17> !<21> !<21> !<21> !<21><><18> @<01> @<01> @<01> <13> <1D>><3E> ?<3F> ?<3F> ?<3F> ?<3F> ?<3F> @<01><><EFBFBD><EFBFBD><17>.<2E>"<22>"<22>Z<EFBFBD>/<2F><07> <0C>
2026-08-29 12:00:51 +08:00
<EFBFBD>3<EFBFBD>s<EFBFBD>D<EFBFBD>7<EFBFBD>N<EFBFBD>+<2B>+<2B>,<2C>,<2C>,<2C> -s<00>,F=<00>=G<03>GrTrc<01><><00><0F>ttj<00><00><00><00>sdS |j<00>|j<00><00>n$#t $rtjd<02><00>YnwxYw |j<00> <00><00>}n%#t $rtjd<03><00>YdSwxYw|j
2026-08-28 22:56:35 +08:00
|j |j j zk}|stjd<04><00>t|jj<00><00>} |j<00><00><00>\}}n%#t $rtjd<05><00>YdSwxYwt'|<05><00>}t'|jj<00><00>|z
}|D]P} |j<00>| <09><00>|j<00>| <09><00>|j<00>| <09><00><00>Q|r|j<00><00><00>t'|<05><00><00>g}
t'<00><0F><00>} |D]:} | j| vr/|
<EFBFBD>| <0C><00>| <0B>| j<00><00><00>;t=|<05><00>} | <0A><00>fd<06>|
D<00><00><00><00> |j<00> t=tB<00>"| <0A><00><00><00><00><00>}n%#t $rtjd<07><00>YdSwxYw|
r|r|rtG|||
<EFBFBD><00>tI|||||j
2026-08-29 12:00:51 +08:00
<00><00>dS)u9按固定步骤执行一轮趋势策略, ``RunOnce``。Nu取消过期订单失败u获取资产失败u3资金总闸可用金额太少禁止开新仓u获取持仓失败c3<01>8<00>K<00>|]}|j<00>v<01> |jV<00><00>dS<00>N)<01>code)<03>.0<EFBFBD>signal<61>position_code_sets <20>r1<00> <genexpr>zRunOnce.<locals>.<genexpr><3E>s;<00><><00><00><00><06><06><1E><06> <0B>CT<43>0T<30>0T<30><06> <0B>0T<30>0T<30>0T<30>0T<30><06>r3u获取行情失败)%rrrr9<00>cancel_expiredr6rLrMrNr-rrr/<00>min_cash_ratio<69>inforr7<00>api_hostr.<00>setr8<00>codes<65>deleter:<00>forgetr;<00>saver[<00>append<6E>add<64>list<73>extend<6E> full_tick<63>dict<63>fromkeysrr)rTrSr-<00>allow_open_by_cash<73> market_ok<6F>position_codesr.<00> active_codes<65> removed_codesr[<00>
2026-08-28 22:56:35 +08:00
allow_open<EFBFBD>
2026-08-29 12:00:51 +08:00
seen_codesr]<00> all_codes<65>ticksr^s @r1rKrKtsT<00><><00> <17><08> <0C><0E><0E> '<27> '<27><0F><0E><06>6<> <0B>
2026-08-28 22:56:35 +08:00
<EFBFBD>!<21>!<21>#<23>*<2A>-<2D>-<2D>-<2D>-<2D><> <14>6<>6<>6<><0F><19>4<>5<>5<>5<>5<>5<>6<><36><EFBFBD><EFBFBD><0F><14><1A>"<22>"<22>$<24>$<24><06><06><> <14><0F><0F><0F><0F><19>.<2E>/<2F>/<2F>/<2F><0E><06><06><0F><><EFBFBD><EFBFBD> <20>)<29>V<EFBFBD>\<5C>C<EFBFBD>O<EFBFBD><Z<>-Z<>Z<><16> <1D>L<01><0F> <0C>J<>K<>K<>K<>"<22>#<23>.<2E>"9<>:<3A>:<3A>I<EFBFBD><0F>$'<27>J<EFBFBD>$8<>$8<>$:<3A>$:<3A>!<21><0E> <09> <09><> <14><0F><0F><0F><0F><19>.<2E>/<2F>/<2F>/<2F><0E><06><06><0F><><EFBFBD><EFBFBD><17>~<7E>&<26>&<26>L<EFBFBD><17><03> <09><0F>(<28>(<28><<3C>7<>M<EFBFBD><1D>#<23>#<23><04> <0B> <09><18><18><14><1E><1E><1E> <0B><0E><1D><1D>d<EFBFBD>#<23>#<23>#<23> <0B> <0A><1C><1C>T<EFBFBD>"<22>"<22>"<22>"<22><14><19> <0B> <09><0E><0E><18><18><18><1C>N<EFBFBD>+<2B>+<2B><15><13>J<EFBFBD><14>&<26>'<27>'<27>J<EFBFBD><19>(<28>(<28><06> <11>;<3B>j<EFBFBD> (<28> (<28> <16> <1D> <1D>f<EFBFBD> %<25> %<25> %<25> <16>N<EFBFBD>N<EFBFBD>6<EFBFBD>;<3B> '<27> '<27> '<27><><15>^<5E>$<24>$<24>I<EFBFBD> <0A><14><14><06><06><06><06>",<2C><06><06><06><06><06><06><0F><13>
2026-08-28 18:52:27 +08:00
<EFBFBD>$<24>$<24>T<EFBFBD>$<24>-<2D>-<2D> <09>*B<>*B<>%C<>%C<>D<>D<><05><05><> <14><0F><0F><0F><0F><19>.<2E>/<2F>/<2F>/<2F><0E><06><06><0F><><EFBFBD><EFBFBD>
2026-08-28 22:56:35 +08:00
<12>,<2C>i<EFBFBD>,<2C>$6<>,<2C><13>C<EFBFBD><15>
2026-08-29 12:00:51 +08:00
<EFBFBD>+<2B>+<2B>+<2B><15>S<EFBFBD>%<25><19>I<EFBFBD>f<EFBFBD>6F<36>G<>G<>G<>G<>GsG<00>A<00>A&<03>%A&<03>*B<00>B&<03>%B&<03>6D<00>D5<03>4D5<03>?J<00>K<03>KrZ)rr)rTrrr)<1E>__doc__<5F>
__future__rrMrIrr<00>libsrrr<00>sdkr<00>libs.grid_take_profitr r8r r5r <00>watchr <00>runtimer<00>openrr.rr2rWrK<00>r3r1<00><module>r<>sW<00><01><04><04>
2026-08-28 22:56:35 +08:00
#<23>"<22>"<22>"<22>"<22>"<22><0E><0E><0E><0E> <0B> <0B> <0B> <0B><1D><1D><1D><1D><1D><1D> <0A> <0A> <0A> <0A>><3E>><3E>><3E>><3E>><3E>><3E>><3E>><3E>><3E>><3E><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>'
2026-08-28 18:52:27 +08:00
<EFBFBD>'
<EFBFBD>'
<EFBFBD>'
<EFBFBD>'
2026-08-29 12:00:51 +08:00
<EFBFBD>V.-<2D>.-<2D>.-<2D>.-<2D>bAH<01>AH<01>AH<01>AH<01>AH<01>AHr3