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

52 lines
13 KiB
Plaintext
Raw Normal View History

2026-08-28 22:56:35 +08:00
<EFBFBD>
2026-08-29 00:44:41 +08:00
7<><37>j<EFBFBD><00><01><00>ddlmZddlZddlmZddlmZddlmZddl m
2026-08-28 22:56:35 +08:00
Z
m Z ddl m Z mZmZddlmZmZdd lmZmZmZdd
lmZdd lmZmZmZGd <0C>d <0A><00>ZGd<0E>dej<00><00>Ze dkrej!<00><00>dSdS)<11>)<01> annotationsN)<01>TemporaryDirectory)<01>SimpleNamespace)<01>patch)<02> GridState<74>GridTrailingTracker)<03>Assets<74>Position<6F>Tick)<02> OrderBook<6F>PlaceOrderRequest)<03>
LOSS_TIERS<EFBFBD> handle_loss<73>manage_positions)<01>RunOnce)<03> STATUS_OK<4F>State<74> StateItemc<01><00>eZdZd<01>Zd<02>ZdS)<04>
2026-08-29 00:44:41 +08:00
FakeClientc<01><00>g|_dS<00>N)<01>orders)<01>selfs <20>py-client\tests\test_trend.py<70>__init__zFakeClient.__init__s <00><00><18><04> <0B> <0B> <0B>c<01>t<00>|j<00>|||||f<05><00>ddt|j<00><00><00><00>d<03>S)N<>successzbroker-)<02>status<75> order_ref)r<00>append<6E>len)r<00>op<6F>code<64>volume<6D> strategy_name<6D>order_ids r<00>passorder_latest_taggedz"FakeClient.passorder_latest_taggedsD<00><00> <0C> <0B><1A><1A>B<EFBFBD><04>f<EFBFBD>m<EFBFBD>X<EFBFBD>F<>G<>G<>G<>#<23>2N<32>C<EFBFBD><04> <0B><L<><L<>2N<32>2N<32>O<>O<>OrN)<05>__name__<5F>
__module__<EFBFBD> __qualname__rr)<00>rrrrs7<00><00><00><00><00><00><19><19><19>P<01>P<01>P<01>P<01>Prrc<01>8<00>eZdZd<01>Zd<02>Zd<03>Zd<04>Zd<05>Zd<06>Zd<07>Z dS) <09>
2026-08-28 22:56:35 +08:00
TrendTestsc<01><><00>td<01><00>}|<00>|<01>dd<03><00>jtj<00><00>|<00>|<01>dd<04><00>jtj<00><00>|<00>|<01>dd<05><00>jtj<00><00>|<00>|<01>dd<05><00>jtj<00><00>|<01>g<00><00>|<00>|<01>dd<05><00>jtj<00><00>dS)N<>zA:codeg<65><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@g<><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD>@g333333@zB:code) r<00> assertEqual<61>observe<76>stater<00>ARMED<45>RAISED<45>RETREAT<41>retain)r<00>trackers r<00>&test_grid_states_and_account_isolationz1TrendTests.test_grid_states_and_account_isolations<><00><00>%<25>a<EFBFBD>(<28>(<28><07> <0C><18><18><17><1F><1F><18>3<EFBFBD>7<>7<>=<3D>y<EFBFBD><EFBFBD>O<>O<>O<> <0C><18><18><17><1F><1F><18>3<EFBFBD>7<>7<>=<3D>y<EFBFBD>?O<>P<>P<>P<> <0C><18><18><17><1F><1F><18>3<EFBFBD>7<>7<>=<3D>y<EFBFBD>?P<>Q<>Q<>Q<> <0C><18><18><17><1F><1F><18>3<EFBFBD>7<>7<>=<3D>y<EFBFBD><EFBFBD>O<>O<>O<><0F><0E><0E>r<EFBFBD><1A><1A><1A> <0C><18><18><17><1F><1F><18>3<EFBFBD>7<>7<>=<3D>y<EFBFBD><EFBFBD>O<>O<>O<>O<>Orc<01><00>t<00><00>}t<00><00>}t|ddddd<05><00>}|<00>|<02>|<03><00><00><00>|<00>|<02>dd<06><00><00><00>dS)N<><00> 000001.SZ<53>d<00>local<61>morning<6E>BUY)rr r <00>
assertTrue<EFBFBD>place<63>busy)r<00>client<6E>book<6F>requests r<00>%test_order_book_locks_duplicate_orderz0TrendTests.test_order_book_locks_duplicate_order#so<00><00><1B><1C><1C><06><18>{<7B>{<7B><04>#<23>F<EFBFBD>B<EFBFBD> <0B>S<EFBFBD>'<27>9<EFBFBD>U<>U<><07> <0C><0F><0F><04>
<EFBFBD>
<EFBFBD>7<EFBFBD>+<2B>+<2B>,<2C>,<2C>,<2C> <0C><0F><0F><04> <09> <09>+<2B>u<EFBFBD>5<>5<>6<>6<>6<>6<>6rc<01><><00>t<00><00>5}tj|dd<02><00>}tddddd<06><07><00>}|<02>|g<01><00>t t <00><00>|t<00><00>t d<08><00> <09><00>t d
<EFBFBD>d <0B><00> <0C><00>td <0A><00>t dgd ddd<01><10><00><00><11><00>}t|dtd<12><13><00>i|gdd<0F><00>ddd<00><00>dS#1swxYwYdS)N<>trend<6E>Ar=r><00>
<00><>)<05>
stock_coder&<00>can_use_volume<6D>
2026-08-29 00:44:41 +08:00
open_price<EFBFBD> market_valuec<01><00>dSrr-<00><01>_codes r<00><lambda>zQTrendTests.test_position_dataclasses_execute_without_type_error.<locals>.<lambda>4s<00><00><04>r)<01>forgetc<01><00>dS<00>NFr-<00><01>_argss rrUzQTrendTests.test_position_dataclasses_execute_without_type_error.<locals>.<lambda>5<00><00><00>5<EFBFBD>rc<01><00>dSrr-rSs rrUzQTrendTests.test_position_dataclasses_execute_without_type_error.<locals>.<lambda>5s<00><00>_c<5F>r)<02> triggeredrVr1F<><46>)<06>
2026-08-28 22:56:35 +08:00
account_id<EFBFBD>excluded_codes<65> grid_step_pct<63>enable_loss_add_position<6F> buy_value<75>strategy)rEr4r<00>
open_watch<EFBFBD> add_watch<63>profit_tracker<65> account_cfgg333333$@<40><01>
last_priceT) rr<00> for_strategyr
<00>sync_positionsrrr rrr )r<00> directoryr4<00>position<6F>runtimes r<00>4test_position_dataclasses_execute_without_type_errorz?TrendTests.test_position_dataclasses_execute_without_type_error*ss<00><00> <1F> !<21> !<21> d<01>Y<EFBFBD><19>&<26>y<EFBFBD>'<27>3<EFBFBD>?<3F>?<3F>E<EFBFBD><1F>&<26>s<EFBFBD>3<EFBFBD><1D>D<EFBFBD><0E><0E><0E>H<EFBFBD> <12> <20> <20>(<28><1A> ,<2C> ,<2C> ,<2C>%<25>!<21>|<7C>|<7C>5<EFBFBD><19><1B><1B>*<2A>2D<32>2D<32>E<>E<>E<>)<29>4H<34>4H<34>Qc<51>Qc<51>d<>d<>d<>2<>1<EFBFBD>5<>5<>+<2B>"<22>2<EFBFBD>Q<EFBFBD>-2<>d<EFBFBD>$<24><12><12><12>
<0E>
<0E>
<0E>G<EFBFBD> <1D>W<EFBFBD>{<7B>D<EFBFBD>D<EFBFBD>4I<34>4I<34>4I<34>&J<>X<EFBFBD>J<EFBFBD>X\<5C>^b<> c<> c<> c<>% d<01> d<01> d<01> d<01> d<01> d<01> d<01> d<01> d<01> d<01> d<01> d<01><><EFBFBD><EFBFBD> d<01> d<01> d<01> d<01> d<01> ds<00>CC/<03>/C3<07>6C3c <01><><00>|<00>tt<00><00>d<01><00>t<00><00>5}t j|dd<03><00>}t dddd<06><07><00>}|<02>|g<01><00>|<02>d<03><00>}tt<00><00>|_ |<02>
|<04><00>t|tdd<02> <09><00>td
2026-08-29 00:44:41 +08:00
<EFBFBD><00> <0B><00>t<00><00>t<00><00><00> <0C><00>}t||td <0A><0E><00>dd<08><00>}|<00>|j<00><00>ddd<00><00>dS#1swxYwYdS)N<>rJrKr>rLrM<00>rNr&rPrQr^<00>rcrdc<01><00>dS)NTr-rYs rrUzFTrendTests.test_loss_tier_boundary_does_not_overflow.<locals>.<lambda>Js<00><00>4<EFBFBD>r<00>r]<00>r4rhrfrrE<00>rii<><69><EFBFBD><EFBFBD>)r2r#rrrrkr
rl<00>get<65> added_num<75>setrr rrr <00> assertFalse<73> submitted)rrmr4rn<00>itemro<00>decisions r<00>)test_loss_tier_boundary_does_not_overflowz4TrendTests.test_loss_tier_boundary_does_not_overflow?sy<00><00> <0C><18><18><13>Z<EFBFBD><1F><1F>!<21>,<2C>,<2C>,<2C> <1F> !<21> !<21> 1<>Y<EFBFBD><19>&<26>y<EFBFBD>'<27>3<EFBFBD>?<3F>?<3F>E<EFBFBD><1F>3<EFBFBD>s<EFBFBD>r<EFBFBD>X\<5C>]<5D>]<5D>]<5D>H<EFBFBD> <11> <20> <20>(<28><1A> ,<2C> ,<2C> ,<2C><18>9<EFBFBD>9<EFBFBD>S<EFBFBD>><3E>><3E>D<EFBFBD> <20><1A>_<EFBFBD>_<EFBFBD>D<EFBFBD>N<EFBFBD> <11>I<EFBFBD>I<EFBFBD>d<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD>%<25><1B><1F>4<EFBFBD>RY<52>)Z<>)Z<>)Z<>)<29>4G<34>4G<34>H<>H<>H<>QZ<51>Q\<5C>Q\<5C>!<21>|<7C>|<7C><0E><0E><0E>G<EFBFBD>
#<23>7<EFBFBD>H<EFBFBD>d<EFBFBD>a<EFBFBD>6H<36>6H<36>6H<36>#<23>t<EFBFBD>T<>T<>H<EFBFBD> <10> <1C> <1C>X<EFBFBD>/<2F> 0<> 0<> 0<> 1<> 1<> 1<> 1<> 1<> 1<> 1<> 1<> 1<> 1<> 1<> 1<><31><EFBFBD><EFBFBD> 1<> 1<> 1<> 1<> 1<> 1s<00>DE <03> E<07>Ec <01>0<00>t<00><00>5}tj|dd<02><00>}tdddd<05><06><00>}|<02>|g<01><00>t |t dd<01><08><00>t d <09><00>
<EFBFBD><00>t <00><00>t<00><00><00> <0B><00>}t||td <0C> <0A><00>dd<07><00>}|<00>
d|j <00><00>|<02> d<02><00>}d|_ |<02>|<06><00>t||td<11> <0A><00>dd<07><00>}|<00>|j d<13><00>t||td<14> <0A><00>dd<07><00>}|<00>
d|j <00><00>ddd<00><00>dS#1swxYwYdS)NrJrKr>rLrMrsr^rtc<01><00>dSrXr-rYs rrUz9TrendTests.test_loss_tiers_zero_and_one.<locals>.<lambda>Wr[rrvrw<00>rii<><69><EFBFBD><EFBFBD>u等待r1<00>i<><69><EFBFBD><EFBFBD><EFBFBD>rxi<><69><EFBFBD><EFBFBD>)rrrkr
rlrr rrr <00>assertIn<49>messageryrzr{r2) rrmr4rnro<00>firstr~<00>before_second_tier<65>seconds r<00>test_loss_tiers_zero_and_onez'TrendTests.test_loss_tiers_zero_and_onePs<><00><00> <1F> !<21> !<21> 4<>Y<EFBFBD><19>&<26>y<EFBFBD>'<27>3<EFBFBD>?<3F>?<3F>E<EFBFBD><1F>3<EFBFBD>s<EFBFBD>r<EFBFBD>X\<5C>]<5D>]<5D>]<5D>H<EFBFBD> <11> <20> <20>(<28><1A> ,<2C> ,<2C> ,<2C>%<25><1B><1F>4<EFBFBD>RY<52>)Z<>)Z<>)Z<>)<29>4H<34>4H<34>I<>I<>I<> <20>{<7B>{<7B>:<3A><<3C><<3C><0E><0E><0E>G<EFBFBD>
 <20><07><18>4<EFBFBD>1<EFBFBD>3E<33>3E<33>3E<33>s<EFBFBD>D<EFBFBD>Q<>Q<>E<EFBFBD> <10>M<EFBFBD>M<EFBFBD>(<28>E<EFBFBD>M<EFBFBD> 2<> 2<> 2<><18>9<EFBFBD>9<EFBFBD>S<EFBFBD>><3E>><3E>D<EFBFBD><1E>D<EFBFBD>N<EFBFBD> <11>I<EFBFBD>I<EFBFBD>d<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD>!,<2C>W<EFBFBD>h<EFBFBD><04>PQ<50>@R<>@R<>@R<>TW<54>Y]<5D>!^<5E>!^<5E> <1E> <10> <1C> <1C>/<2F>7<><12> <<3C> <<3C> <<3C> <20><17>(<28>D<EFBFBD>A<EFBFBD>4F<34>4F<34>4F<34><03>T<EFBFBD>R<>R<>F<EFBFBD> <10>M<EFBFBD>M<EFBFBD>(<28>F<EFBFBD>N<EFBFBD> 3<> 3<> 3<># 4<> 4<> 4<> 4<> 4<> 4<> 4<> 4<> 4<> 4<> 4<> 4<><34><EFBFBD><EFBFBD> 4<> 4<> 4<> 4<> 4<> 4s<00>E/F <03> F<07>Fc<01><><00>t<00><00>5}tj|dd<02><00>}tddd<04><05><00>}|<02>t ddd<07><08><00><00><00>|<02>|ggd d
ig<01><00>|<00>|<02>d<02><00>j t<00><00>ddd<00><00>dS#1swxYwYdS) NrJrKr>rL<00>rNr&rPzlocal-1<>ING)<02> base_order_id<69> base_status<75> m_strRemarkzlocal-1|morning) rrrkr
r{r<00> reconciler2ryr<>r)rrmr4rns r<00>"test_reconcile_ing_order_from_dealz-TrendTests.test_reconcile_ing_order_from_dealds<00><00> <1F> !<21> !<21> D<01>Y<EFBFBD><19>&<26>y<EFBFBD>'<27>3<EFBFBD>?<3F>?<3F>E<EFBFBD><1F>3<EFBFBD>s<EFBFBD>r<EFBFBD>J<>J<>J<>H<EFBFBD> <11>I<EFBFBD>I<EFBFBD>i<EFBFBD><03>9<EFBFBD>%<25>P<>P<>P<> Q<> Q<> Q<> <11>O<EFBFBD>O<EFBFBD><19>
2026-08-28 22:56:35 +08:00
<EFBFBD><12><1F>!2<>3<>4<> <0E> <0E> <0E>
<11> <1C> <1C>U<EFBFBD>Y<EFBFBD>Y<EFBFBD>s<EFBFBD>^<5E>^<5E>7<><19> C<> C<> C<> D<01> D<01> D<01> D<01> D<01> D<01> D<01> D<01> D<01> D<01> D<01> D<01><><EFBFBD><EFBFBD> D<01> D<01> D<01> D<01> D<01> Ds<00>BB8<03>8B<<07>?B<c <01>|<00>td<01>d<02>d<03><00><04><00>}t|td<05><06><00>td<07><08><00>td <09><00>
2026-08-29 00:44:41 +08:00
<EFBFBD><00>td g<01> <0C><00><00> <0A><00>}tdd<0F><10><00>5tdd<0F><10><00>5td<12><00>5}td<13><00>5}t|g<00><00>ddd<00><00>n #1swxYwYddd<00><00>n #1swxYwYddd<00><00>n #1swxYwYddd<00><00>n #1swxYwY|<03><00><00>|<04><00><00>dS)Nc<01>$<00>tdd<02><03><00>S)Ni'rL)<02>total<61> available)r r-rrrUzITrendTests.test_low_cash_still_runs_position_management.<locals>.<lambda>rs<00><00>6<EFBFBD><05><12><<3C><<3C><<3C>rc<01>.<00>dgtddd<03><04><00>gfS)NrKr>rLr<>)r
r-rrrUzITrendTests.test_low_cash_still_runs_position_management.<locals>.<lambda>ss <00><00><03>u<EFBFBD>x<EFBFBD>3<EFBFBD>s<EFBFBD>WY<57>'Z<>'Z<>'Z<>&[<5B>\<5C>rc<01>&<00>dtd<02><03><00>iS)NrK<00> ri)r )<01>_codess rrUzITrendTests.test_low_cash_still_runs_position_management.<locals>.<lambda>ts<00><00>c<EFBFBD>4<EFBFBD>2<EFBFBD>+><3E>+><3E>+><3E>%?<3F>r)<03>assets<74> positions<6E> full_tickg<6B><67><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?)<01>min_cash_ratiozhttp://example)<01>api_hostc<01><00>dSrr-)<01>_clients rrUzITrendTests.test_low_cash_still_runs_position_management.<locals>.<lambda>zs<00><00>$<24>r)<01>cancel_expiredrK)<01>codes)rErh<00>
global_cfgrr4z strategy.trend.boot.trading_timeT)<01> return_valuez%strategy.trend.boot.market_allow_openzstrategy.trend.boot.open_signalz$strategy.trend.boot.manage_positions)rrr<00>assert_not_called<65>assert_called_once)rrEro<00> open_mock<63> manage_mocks r<00>,test_low_cash_still_runs_position_managementz7TrendTests.test_low_cash_still_runs_position_managementps\<00><00> <20><<3C><<3C>\<5C>\<5C>?<3F>?<3F>
2026-08-28 22:56:35 +08:00
<EFBFBD>
<EFBFBD>
<EFBFBD><06>
"<22><19>'<27>s<EFBFBD>;<3B>;<3B>;<3B>&<26>0@<40>A<>A<>A<>"<22>2F<32>2F<32>G<>G<>G<>!<21><13><05>.<2E>.<2E>.<2E> 
<EFBFBD>
<EFBFBD>
2026-08-29 00:44:41 +08:00
<EFBFBD><07> <12>4<>4<EFBFBD> H<> H<> H<> !<21> !<21> <11>9<><04> M<> M<> M<> !<21> !<21> <12>3<> 4<> 4<> !<21>9B<01> <11>8<> 9<> 9<>  !<21>>I<01> <13>G<EFBFBD>R<EFBFBD> <20> <20> <20>  !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21><><EFBFBD><EFBFBD> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21><><EFBFBD><EFBFBD> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21><><EFBFBD><EFBFBD> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21> !<21><><EFBFBD><EFBFBD> !<21> !<21> !<21> !<21> <12>#<23>#<23>%<25>%<25>%<25><13>&<26>&<26>(<28>(<28>(<28>(<28>(s~<00>5D <03>C2<05>C<07>'C <09>8 C<07>C <0A>C<07> C <0A> C<07> C2<05>C <0B>C2<05>"C <0B>#C2<05>& D <03>2C6 <09>6D <03>9C6 <09>:D <03> D <07>D N)
r*r+r,r:rHrpr<>r<>r<>r<>r-rrr/r/s<><00><00><00><00><00><00>P<01>P<01>P<01>7<>7<>7<>d<01>d<01>d<01>*1<>1<>1<>"4<>4<>4<>(
2026-08-28 22:56:35 +08:00
D<01>
D<01>
D<01>)<29>)<29>)<29>)<29>)rr/<00>__main__)"<22>
__future__r<00>unittest<73>tempfiler<00>typesr<00> unittest.mockr<00>libs.grid_take_profitrr<00>sdkr r
2026-08-29 00:44:41 +08:00
r <00>strategy.trend.orderr r <00>strategy.trend.positionsrrr<00>strategy.trend.bootr<00>strategy.trend.staterrrr<00>TestCaser/r*<00>mainr-rr<00><module>r<>s~<00><01>"<22>"<22>"<22>"<22>"<22>"<22><0F><0F><0F><0F>'<27>'<27>'<27>'<27>'<27>'<27>!<21>!<21>!<21>!<21>!<21>!<21><1F><1F><1F><1F><1F><1F>@<40>@<40>@<40>@<40>@<40>@<40>@<40>@<40>&<26>&<26>&<26>&<26>&<26>&<26>&<26>&<26>&<26>&<26>=<3D>=<3D>=<3D>=<3D>=<3D>=<3D>=<3D>=<3D>N<>N<>N<>N<>N<>N<>N<>N<>N<>N<>'<27>'<27>'<27>'<27>'<27>'<27><<3C><<3C><<3C><<3C><<3C><<3C><<3C><<3C><<3C><<3C>P<01>P<01>P<01>P<01>P<01>P<01>P<01>P<01>l)<29>l)<29>l)<29>l)<29>l)<29><18>"<22>l)<29>l)<29>l)<29>^ <0C>z<EFBFBD><19><19><11>H<EFBFBD>M<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD>O<EFBFBD><1A>r