Files
big-qmt/py-client/__pycache__/main.cpython-311.pyc

57 lines
8.7 KiB
Plaintext
Raw Normal View History

2026-08-28 18:52:27 +08:00
<EFBFBD>
2026-09-01 14:28:49 +08:00
b<<3C>j<EFBFBD><00><00>J<00>ddlZddlZddlZddlmZddlZddlmZddlZddlm Z ddl
2026-08-31 15:33:39 +08:00
Z
2026-09-01 14:28:49 +08:00
ddl Z ej <00> ej <00>e<0F><00><00><00>Zej <00>edd<06><00>Zeej vrej <00>de<10><00>ejejdd<08> <09><00>ejd
<EFBFBD><00><00>ej<00><00>ejd <0B><00><00>ej<00><00>dd lmZmZdd lmZddlmZddl m!Z!ddl"m#Z#e dd<11><12><00>Gd<13>d<14><00><00><00>Z$e$de<1F><00>e$de!<21><00>d<17>Z%de&fd<19>Z'de(de&fd<1B>Z)d"de*ddfd<1E>Z+d#d<1F>Z,de-fd <20>Z.e/d!krej0e.<2E><00><00><00>dSdS)$<24>N)<01>datetime)<01>BackgroundScheduler)<01> dataclass<73>etcz _global.yamlz'[%(levelname)s] %(asctime)s %(message)sz%Y-%m-%d %H:%M:%S)<03>level<65>format<61>datefmt<6D> apscheduler<65>httpx)<02>APIError<6F>Client)<01>refresh_market)<01>
2026-08-31 13:00:22 +08:00
StartTrend)<01>StartZT)<01>
AutoBuyIpoT)<02>frozen<65>slotsc<00>$<00>eZdZUeed<eed<dS)<04>StrategyDefinition<6F> mutex_scope<70>start_strategyN)<06>__name__<5F>
2026-09-01 14:28:49 +08:00
__module__<EFBFBD> __qualname__<5F>str<74>__annotations__<5F>object<63><00><00>'D:\work\quant\big-qmt\py-client\main.pyrr"s*<00><00><00><00><00><00><00><14><14><14><14><1A><1A><1A><1A><1A>rr<00>Trend<6E>ZT)<02>trend<6E>zt<7A>returnc<00>"<00>tjdkS)N<>nt)<02>os<6F>namerrr <00>require_windowsr*-s<00><00> <0A>7<EFBFBD>d<EFBFBD>?<3F>r<00> project_rootc<00>N<00> ddl}d}d}|<00>dd<06><00><00>dd<06><00>}d|<04><00>}|<01>d d
2026-08-28 18:52:27 +08:00
<EFBFBD> <0B><00>}|<06>dd
|<05><00>}|r||kr+t jd |<01><00><00><00><00><02><00>d S|<01><00><00>|kr+t jd<0E><00>|<06>|<07><00>d St jd|<05><00><02><00>d
S#t$r$}t jd|<08><00>d
<EFBFBD><11><00>Yd}~d Sd}~wwxYw)u0使用 Windows 命名互斥锁保证单实例。rN<><4E><00><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<3A>_<>\zGlobal\QMT_System_<6D>kernel32T)<01>use_last_erroru'无法创建互斥锁错误代码Fu0程序已在运行中无法启动多个实例u成功获取互斥锁u单实例检测失败:)<01>exc_info)
2026-09-01 14:28:49 +08:00
<EFBFBD>ctypes<65>replace<63>WinDLL<4C> CreateMutexW<78>logging<6E>error<6F>get_last_error<6F> CloseHandle<6C>info<66> Exception) r+r5<00>error_already_exists<74>invalid_handle_value<75> safe_path<74>
mutex_namer2<00>handle<6C>excs r <00>check_single_instancerE0sa<00><00><15><15> <0A> <0A> <0A>"<22><1C>!<21><1C> <20>(<28>(<28><13>c<EFBFBD>2<>2<>:<3A>:<3A>4<EFBFBD><13>E<>E<> <09>6<>9<EFBFBD>6<>6<>
2026-08-31 13:00:22 +08:00
<EFBFBD><19>=<3D>=<3D><1A>D<EFBFBD>=<3D>A<>A<><08><19>&<26>&<26>t<EFBFBD>T<EFBFBD>:<3A>><3E>><3E><06><15> <19><16>#7<>7<>7<> <13>M<EFBFBD>]<5D>F<EFBFBD>DY<44>DY<44>D[<5B>D[<5B>]<5D>]<5D> ^<5E> ^<5E> ^<5E><18>5<EFBFBD> <11> <20> <20> "<22> "<22>&:<3A> :<3A> :<3A> <13>M<EFBFBD>L<> M<> M<> M<> <14> <20> <20><16> (<28> (<28> (<28><18>5<EFBFBD><0F> <0C><<3C>
<EFBFBD><<3C><<3C>=<3D>=<3D>=<3D><13>t<EFBFBD><74> <14><15><15><15><0F> <0A>6<><13>6<>6<><14>F<>F<>F<>F<><14>u<EFBFBD>u<EFBFBD>u<EFBFBD>u<EFBFBD>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD><15><><EFBFBD>s%<00>BC6<00>AC6<00>C6<00>6
2026-09-01 14:28:49 +08:00
D$<03>D<03>D$<03>@<40>retry_intervalc<00>l<00>ttjjtjjtj<00><00>}t d<01><00><00><00><00>}|<02><00><00>s<> |<01> <00><00>tj dtjj<00><00><02><00>|<01> <00><00>dS#ttjf$rE}tjdtjj||<03><00>|<02>|<00><00>Yd}~nd}~wwxYw|<02><00><00><00><>dSdS)u/循环检查 API 地址连通后才返回。<E59B9E> threadinguAPI 服务已连通Nu/API 服务未就绪:%s%g 秒后重试:%s)r <00>config<69> global_config<69> qmt_base_url<72> qmt_token<65> HTTP_TIMEOUT<55>
__import__<EFBFBD>Event<6E>is_set<65>assetsr9r=<00>closer r <00> RequestError<6F>warning<6E>wait)rG<00>client<6E> retry_eventrDs r <00>wait_for_qmt_apirYIs/<00><00> <13>F<EFBFBD>(<28>5<>v<EFBFBD>7K<37>7U<37>W]<5D>Wj<57> k<> k<>F<EFBFBD><1C>[<5B>)<29>)<29>/<2F>/<2F>1<>1<>K<EFBFBD><19> <20> <20>"<22>"<22> -<2D> -<2D> <12>M<EFBFBD>M<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD> <13>L<EFBFBD>U<>&<26>2F<32>2S<32>U<>U<> V<> V<> V<> <12>L<EFBFBD>L<EFBFBD>N<EFBFBD>N<EFBFBD>N<EFBFBD> <12>F<EFBFBD><46><18>%<25>,<2C>-<2D> -<2D> -<2D> -<2D> <13>O<EFBFBD>A<><16>$<24>1<><1E><13>  <0E> <0E> <0E> <18> <1C> <1C>^<5E> ,<2C> ,<2C> ,<2C> ,<2C> ,<2C> ,<2C> ,<2C> ,<2C><><EFBFBD><EFBFBD><EFBFBD> -<2D><><EFBFBD><EFBFBD> <1A> <20> <20>"<22>"<22> -<2D> -<2D> -<2D> -<2D> -s<00>0AC<00>D<03>;D<03>Dc<00><><00>tdd<02><03><00>tjdkrddl}|<00><00><00>dSt
2026-08-28 18:52:27 +08:00
j<00><00><00>r!t
2026-09-01 14:28:49 +08:00
j<00>d<06><00>dSdS)Nu按任意键退出...T)<01>flushr'r<00>) <09>printr(r)<00>msvcrt<72>getch<63>sys<79>stdin<69>isatty<74>read)r^s r <00>wait_for_any_keyrd^su<00><00> <09>
!<21><14>.<2E>.<2E>.<2E>.<2E> <09>w<EFBFBD>$<24><EFBFBD><EFBFBD><15> <0A> <0A> <0A><0E> <0C> <0C><0E><0E><0E><0E><0E> <0C><19> <19> <19> <1B> <1B><1A> <0B> <09><0E><0E>q<EFBFBD><19><19><19><19><19><1A>rc
<00>*<00> t<00><00>stjd<01><00>dStt<00><00>sdSt j<00><00>t
2026-08-28 22:56:35 +08:00
j<00> t
2026-08-31 13:00:22 +08:00
j<00>td<03><00><00>t<00><00>tdddd<06><02><07><00>}|<00> tdd d
2026-08-31 15:33:39 +08:00
d d<05> <0C><00>|<00> td dt
jjgddt!j<00><00><00><0F><00>|<00><00><00>tjd<10><00>tjd<11><00>t(t
jj<00><00><00>tjdt
jj<00><00>d
2026-09-01 14:28:49 +08:00
S#t0t2jt6tt8f$r`}t;d|<01><00>t<jd<05><14><00>tAj!tE|<01><00>||j#<00><00>tI<00><00>Yd}~dSd}~wwxYw)Nu'本程序仅支持 Windows 环境运行r\u/配置尚未加载,请先调用 config.load()z Asia/ShanghaiT)<02>coalesce<63> max_instances)<02>timezone<6E> job_defaults<74>cronz10,14r<00> auto_buy_ipo)<05>trigger<65>hour<75>minute<74>id<69>replace_existing<6E>interval<61>market_refresh)rl<00>minutes<65>argsrorp<00> next_run_timeu<IPO 自动打新定时任务已启动:每日 10:00、14:00u3大盘信号后台刷新已启动每分钟一次u%s 策略启动成功u启动失败: )<02>filer[)%r*r9r:rE<00> PROJECT_ROOTrJ<00>loadrK<00>account_config<69> RuntimeErrorrYr<00>add_jobrr<00>api_hostr<00>now<6F>startr=<00>
STRATEGIES<EFBFBD>strategyr<00>strateg<65>OSError<6F>yaml<6D> YAMLError<6F>
ValueError<EFBFBD>KeyErrorr]r`<00>stderr<72> traceback<63>print_exception<6F>type<70> __traceback__rd)<02> scheduler<65>es r <00>mainr<6E>hs<00><00>-<15><1E> <20> <20> <15> <13>M<EFBFBD>C<> D<> D<> D<><14>1<EFBFBD>$<24>\<5C>2<>2<> <15><14>1<EFBFBD><0E> <0B> <0A> <0A> <0A> <11> <1F> '<27>6<EFBFBD>+@<40>+H<><1E>P<>Q<>Q<> Q<><18><1A><1A><1A>(<28>$<24>&*<2A>Q<EFBFBD>?<3F>?<3F>
2026-08-31 13:00:22 +08:00
<EFBFBD>
<EFBFBD>
<EFBFBD> <09> <12><19><19> <16><1A><18><14><1D>!<21> <1A>
<EFBFBD>
<EFBFBD>
2026-08-31 15:33:39 +08:00
<EFBFBD> <12><19><19> <1A><1E><15><18>&<26>/<2F>0<><1F>!<21>"<22>,<2C>.<2E>.<2E> <1A>
<EFBFBD>
<EFBFBD>
2026-09-01 14:28:49 +08:00
<EFBFBD> <12><0F><0F><19><19><19><0F> <0C>S<>T<>T<>T<><0F> <0C>J<>K<>K<>K<><12>6<EFBFBD>(<28>1<>2<>A<>A<>C<>C<>C<><0F> <0C>,<2C>V<EFBFBD>-B<>-J<>K<>K<>K<><10>q<EFBFBD><71> <13>T<EFBFBD>^<5E>Z<EFBFBD><1C>x<EFBFBD> H<><15><15><15> <11>&<26>1<EFBFBD>&<26>&<26>S<EFBFBD>Z<EFBFBD>t<EFBFBD> D<> D<> D<> D<> <15> %<25>d<EFBFBD>1<EFBFBD>g<EFBFBD>g<EFBFBD>q<EFBFBD>!<21>/<2F> B<> B<> B<> <1C> <1E> <1E> <1E><14>1<EFBFBD>1<EFBFBD>1<EFBFBD>1<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD> <15><><EFBFBD>s#<00>"F
2026-08-31 15:33:39 +08:00
<00>F
<00>E F
<00>
2026-09-01 14:28:49 +08:00
(H<03>2AH <03> H<03>__main__)rF)r%N)1r9r(r`rr<><00>!apscheduler.schedulers.backgroundrrJ<00> dataclassesrr<>r <00>path<74>dirname<6D>abspath<74>__file__rw<00>join<69>GLOBAL_CONFIG_PATH<54>insert<72> basicConfig<69>INFO<46> getLogger<65>setLevel<65>WARNING<4E>sdkr r <00> libs.marketr<00>strategy.trend.bootr<00>strategy.zt.bootr<00> strategy.iporrr<00>boolr*rrE<00>floatrYrd<00>intr<74>r<00>exitrrr <00><module>r<>s<><00><01><0F><0E><0E><0E> <09> <09> <09> <09>
2026-08-28 18:52:27 +08:00
<EFBFBD>
<EFBFBD>
<EFBFBD>
2026-09-01 14:28:49 +08:00
<EFBFBD><1D><1D><1D><1D><1D><1D><10><10><10><10>A<>A<>A<>A<>A<>A<> <0A> <0A> <0A> <0A>!<21>!<21>!<21>!<21>!<21>!<21> <0B> <0B> <0B> <0B> <0C> <0C> <0C> <0C><11>w<EFBFBD><EFBFBD><EFBFBD>r<EFBFBD>w<EFBFBD><EFBFBD><EFBFBD>x<EFBFBD>8<>8<>9<>9<> <0C><17>W<EFBFBD>\<5C>\<5C>,<2C><05>~<7E>F<>F<><12><0F>s<EFBFBD>x<EFBFBD><1F><1F><07>H<EFBFBD>O<EFBFBD>O<EFBFBD>A<EFBFBD>|<7C>$<24>$<24>$<24><13><07><13>
<11>,<2C> 4<> <1F><02><02><02><02>
<12><07><11>-<2D> <20> <20>)<29>)<29>'<27>/<2F>:<3A>:<3A>:<3A><11><07><11>'<27><1A><1A>#<23>#<23>G<EFBFBD>O<EFBFBD>4<>4<>4<> <20> <20> <20> <20> <20> <20> <20> <20>&<26>&<26>&<26>&<26>&<26>&<26>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A>$<24>$<24>$<24>$<24>$<24>$<24>#<23>#<23>#<23>#<23>#<23>#<23>
2026-08-31 13:00:22 +08:00
<EFBFBD><19>$<24>d<EFBFBD>#<23>#<23>#<23><1B><1B><1B><1B><1B><1B><1B>$<24>#<23><1B>  <20> <1F><07><1A> 4<> 4<>
<1C>
<1C>T<EFBFBD>7<EFBFBD>
+<2B>
+<2B><02><02>
<EFBFBD>
2026-09-01 14:28:49 +08:00
<1B><14><1B><1B><1B><1B><15><03><15><04><15><15><15><15>2-<2D>-<2D>U<EFBFBD>-<2D>T<EFBFBD>-<2D>-<2D>-<2D>-<2D>*<1A><1A><1A><1A>.<15>c<EFBFBD>.<15>.<15>.<15>.<15>b <0C>z<EFBFBD><19><19> <0C>C<EFBFBD>H<EFBFBD>T<EFBFBD>T<EFBFBD>V<EFBFBD>V<EFBFBD><14><14><14><14><14><1A>r