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

27 lines
6.0 KiB
Plaintext
Raw Normal View History

2026-08-28 18:52:27 +08:00
<EFBFBD>
<00><1B>jx <00> <00>&<00>ddlZddlZddlZddlZddlZddlmZddlZej <00>
ej <00> e <0C><00><00><00>Z ej <00>e dd<04><00>Ze ej vrej <00>de <0A><00>ddlmZddlmZed<07><08><00>Gd <09>d
<EFBFBD><00><00><00>Zd ed e<14><00>iZd efd<0E>Zded efd<10>Z ddededed dfd<16>Zdd<17>Zd efd<18>Ze dkrej!e<1F><00><00><00>dSdS)<1C>N)<01> dataclass<73>etcz _global.yaml)<01>Client)<01>
StartTrendT)<01>frozenc<00>$<00>eZdZUeed<eed<dS)<04>StrategyDefinition<6F> mutex_scope<70>start_strategyN)<06>__name__<5F>
__module__<EFBFBD> __qualname__<5F>str<74>__annotations__<5F>object<63><00><00>main.pyr r s*<00><00><00><00><00><00><00><14><14><14><14><1A><1A><1A><1A><1A>rr <00>trend<6E>Trend<6E>returnc<00>"<00>tjdkS)N<>nt)<02>os<6F>namerrr<00>require_windowsrs<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
<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)
<EFBFBD>ctypes<65>replace<63>WinDLL<4C> CreateMutexW<78>log<6F>error<6F>get_last_error<6F> CloseHandle<6C>info<66> Exception) rr'<00>error_already_exists<74>invalid_handle_value<75> safe_path<74>
mutex_namer$<00>handle<6C>excs r<00>check_single_instancer7"sa<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<>
<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<> <0F>I<EFBFBD>Y<><06>@U<>@U<>@W<>@W<>Y<>Y<> Z<> Z<> Z<><18>5<EFBFBD> <11> <20> <20> "<22> "<22>&:<3A> :<3A> :<3A> <0F>I<EFBFBD>H<> I<> I<> I<> <14> <20> <20><16> (<28> (<28> (<28><18>5<EFBFBD> <0B><08>8<>J<EFBFBD>8<>8<>9<>9<>9<><13>t<EFBFBD><74> <14><15><15><15> <0B> <09>2<>S<EFBFBD>2<>2<>T<EFBFBD>B<>B<>B<>B<><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
D$<03>D<03>D$<03>@<40>@<40>rpc_host<73>retry_interval<61>connect_timeoutc<00>~<00>ttjjtjjtj<00><00>} |<03><00><00>}tjdtjj<00><00><02><00>dS#tj dtjj<00>d|d<06>d<07><05><00>tj |<01><00>YnxYw<01><>)u/循环检查 API 地址连通后才返回。TuAPI 服务已连通NuAPI 服务未就绪u<>gu 秒后重试) r<00>config<69> global_config<69> qmt_base_url<72> qmt_token<65> HTTP_TIMEOUT<55>assetsr+r/<00>warning<6E>time<6D>sleep)r:r;r<<00>clientrDs r<00>wait_for_api_hostrI;s<><00><00> <14>F<EFBFBD>(<28>5<>v<EFBFBD>7K<37>7U<37>W]<5D>Wj<57> k<> k<>F<EFBFBD> '<27> '<27><1B>]<5D>]<5D>_<EFBFBD>_<EFBFBD>F<EFBFBD> <0F>H<EFBFBD>Q<>f<EFBFBD>.B<>.O<>Q<>Q<> R<> R<> R<> <12>F<EFBFBD><46> '<27> <0F>K<EFBFBD>n<><16>)=<3D>)J<>n<>n<>~<7E>n<>n<>n<>n<> <0E> <0E> <0E> <11>J<EFBFBD>~<7E> &<26> &<26> &<26> &<26> &<26><><EFBFBD><EFBFBD> 's <00>:A8<00>8AB;c<00><><00>tdd<02><03><00>tjdkrddl}|<00><00><00>dSt
j<00><00><00>r!t
j<00>d<06><00>dSdS)Nu按任意键退出...T)<01>flushrr<00>) <09>printrr<00>msvcrt<72>getch<63>sys<79>stdin<69>isatty<74>read)rNs r<00>wait_for_any_keyrTNsu<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>tt
jj <00><00>tt
j j <00> <00><00>dS#ttjt"f$r8}t%d|<00><00>t&jd<05><06><00>t+<00><00>Yd}~dSd}~wwxYw)Nu'本程序仅支持 Windows 环境运行rLru启动失败: T)<02>filerK)rr+r,r7<00> PROJECT_ROOTr?<00>loadrIr@rA<00>
STRATEGIES<EFBFBD>account_config<69>strategyr <00>OSError<6F>yaml<6D> YAMLError<6F>
ValueErrorrMrP<00>stderrrT)r6s r<00>mainraXs<><00><00><15><1E> <20> <20> <15> <0F>I<EFBFBD>?<3F> @<40> @<40> @<40><14>1<EFBFBD>$<24>\<5C>2<>2<> <15><14>1<EFBFBD><0E> <0B> <0A> <0A> <0A><19>&<26>.<2E>;<3B><<3C><<3C><<3C><12>6<EFBFBD>(<28>1<>2<>A<>A<>C<>C<>C<><10>q<EFBFBD><71> <13>T<EFBFBD>^<5E>Z<EFBFBD> 0<><15><15><15> <11>(<28>3<EFBFBD>(<28>(<28>s<EFBFBD>z<EFBFBD><14> F<> F<> F<> F<> <1C> <1E> <1E> <1E><14>1<EFBFBD>1<EFBFBD>1<EFBFBD>1<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><15><><EFBFBD>s"<00>"B<00>B<00>AB<00>C1<03>9-C,<03>,C1<03>__main__)r8r9)rN)"<22>loggingr+rrPrFr?<00> dataclassesrr]<00>path<74>dirname<6D>abspath<74>__file__rW<00>join<69>GLOBAL_CONFIG_PATH<54>insert<72>sdkr<00>strategy.trend.bootrr rY<00>boolrrr7<00>floatrIrT<00>intrar <00>exitrrr<00><module>rrs<00><01><16><15><15><15> <09> <09> <09> <09>
<EFBFBD>
<EFBFBD>
<EFBFBD>
<EFBFBD> <0B> <0B> <0B> <0B> <0A> <0A> <0A> <0A>!<21>!<21>!<21>!<21>!<21>!<21> <0B> <0B> <0B> <0B><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><16><16><16><16><16><16>*<2A>*<2A>*<2A>*<2A>*<2A>*<2A> <0B><19>$<24><17><17><17><1B><1B><1B><1B><1B><1B><1B><18><17><1B>  <0C> <1F> <1F><07><1A> 4<> 4<><02>
<EFBFBD><1B><14><1B><1B><1B><1B><15><03><15><04><15><15><15><15>6 <20> <20>'<27>'<27><11>'<27><19>'<27><1B>'<27>
<EFBFBD> '<27>'<27>'<27>'<27>&<1A><1A><1A><1A><15>c<EFBFBD><15><15><15><15>& <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