PK ILx'backtester/__init__.py=0 w$Й *ȤNe5#L`:Fl? +E*qx(])q 2 hBYQg4 eȞ -"~5 2民%T=][T)w\~BuTK[ PKa4K ?)backtester/constants.py pwvQU0G    ytr Q W/.OVT RVZRZE N<,J^&WPB#!>* PKa4KոG backtester/financial_fn.pyVKo6`0L%ZY@{*^ziRT,"$e;#S/[n@&G|ЅɲqYFʪblPRԦTT}\s äaLq{a(QnHgCRR(V !i=K,l%Y 3Ι`2ѵPtye :ޅ =(s>{@ [3p4 G]+FKUKtدjAdPCz, L UGqt];ϳ:njY:0—Ot6 ޏ[Mۅԯ4*^ x3"T| |~`>8Vtd!Bopk` ¸ {:Vtf T#$*d6Pq_ 6 U>za0^sÙV :S_:ajQ,~OEa4e䝸S=$Kf0[_al56ғSViuRm+ Mx3MSmCx&4d=#^Ɍd>sšxam~ 9+LDh7> ݛ!/Y1snHhQq`mnW} Nvs6'ܬIQa>r\!:? DqN~8MvL->")y,K&|Y#Ho6$|Jc[73ZqWWP'#{^$箛+^Uc䕫*c7G2eG{}>^PBnrE&C{zGwz q51(+T2u~f`S[~PKnLG,a?!backtester/instruments_manager.pyZ[oH~G?P0ٔD*+*rqx͢mc;M˶Hȱͱ]0a:Png \'(O&B\nt@7ߤ0/XOj)sئtmfV0 B(G(j8/nu,(k<χX|&P0̬<;uSw 'O(eYIqz9pAp;AG3+CRXhsYޖ<7 s72ZZvl Ѝ5AnjZ>-QHd8@QT. ڶQEngJMdDGwlLjMyvz a & IQk(o1F ]RxsyğdEhZFSnjt[nO?h!c_*% E.lvzh"[~,nlwdu [zB~mmj{ Vm:+V1[K1t*cYnĊ 7NpXH![4ig 6xe V\iyhE@(rl1~HVN`2ؕ:)wۻÌ;h1ժy|8|p%?6׿}u<>(t1Lm:Xr$6W4ޒv[z^sҡ$CosVCt^JȄCr$ŨS+4"siBEPAp;XL溗 J^/_1h (}Gnk 儱m"`D\r+AG#Kp#6yڑ~yfMU=1z:ztMO'^8=O:0超9el$Ւ)(h`u TjZY.6v0#ڑ).QۏxqVWkŸ,v SlĎ&s@[UXnzRˋЊ @6)<`IoҮ0wtM vx6o4iwS?OcKeS }q̻vox~!%N d T`)PAFvxEFoOtk}QT6 ̲Nx' ^QB@ *U A?x{Ӽ]6ښw:j>FXdtv5k29n9Ũ2'<({@JZF9 5XPKКL]dW)backtester/lookback_data.pyY[o6~7@4۹Kk%Y Ф00X("SI'JERz}ؒ Vsx. P$Kz Ofc% j@9Tj. o;d2 eܠI@LI* SR?8N5]'I2;@dӗ'^ɤ lS=SuwNO_-Vfcԓ* D@3 Z'ZhUpb~wsn.;_fO7ﯯp!.Z<>ԫ>a<+&ՏP h6&1\%tU<؄"23xH 'tt3.; 1RDŽC`4+u )?+:HV5@YVbkP1Sx9ߪ=fr cV{Nrb54n.,[d~^oe:~^gJD)5[AZ5CGpQl1a6jƎ{(G=&ޮz;<-UۭKkU F!JٟTZRcQf_VyX,fɣe٫k/j}"ΣJW%1t}rUz̘LWߵ\PqjB UB$Bfz?3.E{W_?Kw8bMRc"FمP0Uf G駨N}ߚ;jXoQm!Dw5fT܃jLi ufI!,bT 0pؽj72.d~PrMd[ފ=}PFGmCJ QVO4I03R> <3U@3E7;\ 8ZV'[nq]6:hF=gSRU{4rzTLc/fOX=#)}&DML}>Iv^N$d56p lDhY?+V_Cwi}uQe!f֫+Le`2Ͽ sSPn6PK eLUS#backtester/model_learning_system.pyM @ wx+TSTΈJ3呐o#L'UD!(\(tbRk)Z;t;9ɕK1k1*&8;LhwS=(G݂B;`^WpTR #n8 Er^vw1MN!|Cޤ鏃9 pTPK eLwbT=< .backtester/model_learning_system_parameters.pyUn0#W$*uU40l 9 Gd꿏B$ν|s%9$$]U7Gb eJ%P^He`۽-7ۭjWou垔^f~"Qtkq/:'05uvebA5E t QK4s(Iv;X}3n9Qh=bTUp2F3b,]?ޏ6-5G2^mV^Oͺ]k#yCZ`;Pڨ5Gahj>YT KUm 'W擃^)?c TXFeKv@'EO2O\s7~ZH+V؜Y!K&}~Ey-@%7d}T 3N%5jPX =hC4۰<+_qBS y%YYKIJU Ad>9xN¡J@>0oXP;d?1M/ҫا@ǩjh>-yО0>W|Oe8rxGu sy?PK eL~1 backtester/plotter.pyVmo6nJ=n k3vhatR$ARY}GJeޒa{yw8L%xěCYgRoδPNQfTnfaX/T7 s̔\ZU%W{Kٜ4sEwmL1 ޱg%8wczLGv2Ge9L"pI%GDs1!6Jύ/V6t11tvj*yr_?O :%UD~=x?x@*H2s%_.΀ʀ%%< + (!" #GI,l};klU=,3u7~aЫw履丧TmY*"VWY$,)O܄%Cbr )20 v%[h"8:}LzRO:DL.Qǝz<͢(!}KNvb .UX*hEx)v.K0#>l{6a2.EwVJ/<GǴB,D[b?Io/fة2Eߠ}{_?o#{:S~}R GjBƽ-QHk,|6 :G%:j''y>2%6? |w>ypf tHO!Ŵf)D967!k5H: PK88KUkbacktester/process_result.pyT[1~/?!3R[Zo *{y*K3Ӱi3Ed&9s2z] *^GMp.+H*x"jּ!ɭ\Dt&e -x4 !ƣ([,A Blt˗ѫWgc$i xl{e!ߴq(]Ӽx6X^(#5-4`JH\C>ԣxxnՠ.px-rZ5 +Xcp\f G5|Вx7xFrcח0+6Ҷnc#4.zPG'%5(ms5mPeLfYc`g9qo]kXhx'kjYw {{ )P¥8IF+ S-!&ï߽Q7AG #KZW:*}G5׫*T+V_ mŹ诔m\"ƝR<8? ]GqɹTWſѫki:I bͷ^ސ&GַAHMan-$B5Kt_\oiʽ2Ebybov:J.wN:}[ Z-xk;Og;wiy/CBY1}5J`:J!Jx|6PK88Kau@pbacktester/state_writer.pyV[k0~?Q6 l uj˙"KiJn̅֕˕gy}[x?9RQQE3})Hr, Zp5 5^Uk޼ζWZ5b&AяfN: Z".4tϔRUgbėV`NӑGlE{ @ѫH~bT= WO2HVRF$pyuE]ׂ#MCKUhd5>6̡9QWTkW~|sAm"LHb$R QʼnKkxdhsK.wuTU *l]V;A^EM#={DK [ Nі6&T/l~/T8xNw4Θ 2D~ڎU.0ܪ1[p}}:hg:j?[pc$mm,*K!w8_LlO>0F&Ig.Z 5sʱrcZm>hIyн;IwzG6ZJnM7zr2=+2E <_WzΊSG s<', ;k75F 衲=N\6mD6沅c o71|v= Az 6QEA|U808!&[w wdʇûv%u -GfXrBs*<]ʏ :!ԽLOl5viya]m=YK=VGVזf8p6%rOW v?T7Kq ,GÔ 8kP# ,?8u{@3PKL; (backtester/trading_system.pyko8{ C1&^MblwXJ, 4[%΋%ma_?yCۻׯZtYY5ev_1B%WKƚօ 73[&[&_~Zbau+WZS _ ;-}upsH\ze;PwVBFILnC1oU/C kEou#L*ZY e,z}X$IV.yD^( 'i9+jUeZUŬ'85+n0nUE- M*vkfrhc֠h(\ˁ.j(ayC .H+4a-3#K>}²m[zd>eZWXPЭnuԵi@\L,*Q1 dV]+}~5,gC_QTҪ#Tk 6KIj*VloXz837r|asH4O fo/=^Sg3P8G+F9„h¯ۊqaGΛ t&ūB҇^WO5`Gg%O*.ͣߐf"[Rv\泃 bh lguXDJcx`<7 THI&2.֔VI 8zT@ Z.90~ "t_^Qs#o㻛ڞlpYbد4sRt]Y/^었9۔bxN=C"Z׻0PA ~;-s'&}V˻*QnVoS;j.&ޞ\ov{mm#ڵ{HK` jW*h_1O<[%Z䠵N!,cٯ>'..dnoǭkef6:Ҕ΍/HuMڈecMw߽%=W1~YLq~W{`~3~L؝mF@Bƈ @= &LRF)UͰc5Z?@o!(lƷ{S )|MTr^5uj=$K|EuN$2 KZrF0s!ՙQGGG&{+- f#Olpu1xx1Ӿۙ:y6ݠιL.fa +8]R VSWİRzB:נ~2iT0#^1̠(Ag07 `C2u"toi簮DlO|-Y ТPk揸dd3WN.& iA(ӗYmmĺ<Ϋw+dzQW1R_6UC(k|S!ob]40IRş!:ryQ4qaʧvU\/ޥiS^udaoџrAF4*sC./ۊL+McGJ‰7-&80D&}DrD',üL\-x*et:pJ }E?9Iꪊ\/mI$P{щr=o*Fm :bWFuke;z枱k,ȮD 89%"8KYg Nr\cdbU6y4?6 ;h w'V|uTlqM_7* }ðw7)D iZܚo_rcZ(@w\L&3U?DdO_1E6KLH0-K͍eq^2?a܎NIM-A2mQ5-^=BF~gM$'ICoc'1N3^LSmcΞm;NNfJХ9`̌77&CH ^]//7dחeJ& }C0Ny$JR@R*5NULeCK#؍K !Kn,q\@`x"^Ha1V~9-B~<LŌ2Oiٽpp -M`f4fexQ̬>2+'@n1S9Qj'9^{nkG;erl2#Fn1)|'Ppc T KpK4O:Ȍ("QO]8I g^sneP8Vՠ#i|k ~aT>Ї$^HRҀ ?ai[TtwD#A#W8U0w)܅sv5c ÈhKrT#Ls&^;AFsrǢ!u-8b @߂C4( $ᫀu>K!!>5c4*01۪(89qwaK 22r{NjeNGJ8E"a6O55c% 8 Ȳ{'ZB0E4l N*n4b%-v7Dn' p9HP K=MZyDc_CoH ΖV\A i xG}2 Мݻ7˛fnW_W/[!r5wAwRF^tQJ6Q#PYfV^5`wb r>؁$QYN3A:0ߛ(0fho[, fDGҳ\`[bZuJr #l$0r !dYc|∇2wE/6!J>HIX3yxz۠eTe_R 38{m~:=nD6 w_, >ON| 3 Yǩ:QdRׁ>UJV!.kՉ긅w]QRWHu~_U0f=ꬮ\A;+!8"^ڵ=ƫt1:54:Idz9"nն[g+]pY jԢ$ki`:bT9;twg텯p\$6Ut[B#|b(t =TvGtFu\_7 |ޫ4f<{%Oz H!p:ҥUJ0xPY_< 5ׯDli")4Լ{RcԻ5Gf︡݇cF-eQCD٦iGLa>T_e&qz % o2gk@u6B:BG.QxPCSn$RgY$!m޸QY4^$pUأuMC^!(_'o(l=4t̨ #fE5 1'-$A{8 V@tv"_ˤe]Hc(b$=Aw 't<ț2ƌyϱ X.EvQ pWCX,"8BlDBemA3$*a,YɝjX s]^:`sʷND= WM19rwia:@-∻&ƍX%*oI6!0Uc+g"Sl/6d^.<9V?vr.͟ -]No˫gs+ȳYmx%_*r.O( |9̕mzofgYj)nsyk'lԯHFsF+ߍ&70_}A qgC^- @60ӞlQikzChn+L8`;1kA\&B)쭲ZW9Ew{)6hК '(욟i %֜t+2k*H/^sX@ok/ڍA[Zʸ70iP(F~1ٯNcXX52E>YZJ8)z$='Tan$mv`V.Tըl(̓_ݩksU)^L|>>G>rkazJZ84xӅr+f_ԫwQl OK?!:K[K疅tQrTU(roKƪ,O-( u1!b7K1*{y *&Tx0&"mom߸<5 2uM-)k=k*Pe 6 m[?n6f6F$Lo;v<ǛGK FϥAQ)N5yyOǎee4J[Ij,> PK eLJK Y(backtester/dataSource/csv_data_source.pyXo6~H 52XڽH'G3Ej$(Q8Ű- <ޏ>ͥ(=MwdT;Qpe%&7Y,Ҳ.On6}~֎ju]^IqlV%c'~~O)T韥r+WfF͟ rR {{VTb?#Aגfuj)h*E~R=q?tN6z|NR>@,0'6o9t)\{g$# ^p6;- ] YR-(MFꢙ 'XmA, sR̎f^A%]p/ wˎўl{_`J;P -U-ᚱy,]\ECA{@ռJf\4[п=ˀy{!v&o> ;bh €m|fqKfiP:IKK'bW.=+j:C \h3ByFǬCkͽ=Xh1g' ĦzLkDc1sMXV q&z῾>3 MG G+kHw0yW2/,Z6DAIrKh0Ljͯ 52vz7G<4~{(tUHL:sT%29hO@kQצTd-țptzh{)E &UWB5aRĺ;ha?*O]e!‘@xd`j& d"5xa|glYB>02wö®砣i3ݕ̵>h1$:L4/;#ڤ=wT CWD֜[ZBZ,T mYd9@0) cJ(#֏hjI%M1 #!x`h8 XWO 洨։$OXnu=bv/ މBp?? ]({(Fl u"}D񿧶 eϽ=JMֈzu*yvY+sO47MIzҶ1 w_6*O ;4I 2[fRV^Wr W}d>'R+ mj;F~>iÌ]$\:HΊ)l2w7 4D>9sU0nYSqHO19#ϊ dHBJJx6&T 5ڧ{B3!E Nw'hcU*ec0:&]?Q}F$G \0<*E{k7`/J,bP 6  }W6%pTod"`-TH0oN^1`c L1K%2-ք31;@`j  ea2۫A,}`&6.b<ڠx^hM(R کvإaGnl' F#/@SB<[Q= 0)5|Y@}]e,8~r4Êy}_߃)w{F*b˾MiQR$M7t1;o₤Zz~=6 /]NG>W|QQh+XOT6rrN' 4˪lӀ1HDXv1{@?@k~L==!'ӊL{Jɭ|ԥa4ۈs$r>ļ}͚H]P690~N*`^bp}4*v{-.<Ǩh^kj찺J2s|FH{٢pMȖetFu>M;Ί|GݫQ5|h3] mBඵU$tV*V|~r{4 1BC/k:Iar-龦L, S\}:#ZIl!̞-۲-? Mz,6m5b>bm>uG$s-Bb;kXStk7/Ʈ8Tgh5}+ʸoI 9B//P ] "kƬr|g%'8f*]&:> vf2ޕדV"U'3װ? O<+(BYL~١T-V(0L蝾vshP,|=(>/xĤOb:6{^nJ](H]U$KÜA?6?t/1ߔIi kb#8S/4}hTދe A[)57p GN$vZ igѿQmMm3Cع<&@]o+i{an 3~\!숚PeP[VoDn?ܖ;*.ˀo?td~*⼔ר7Pʺlz(̋d2).~"Wy/T }t?v!3x|N;w\}}b}8MhO_ g}5ALJL3A֏@ϟ`1&| /u?1m~*"ϟld$UuO/xoRxE]ZI/Q]ǻ'ăeI6te[2?(eM~e hh!^orJPJ8lU}ǻ//[%?:`FLg%@UH$o#AT*/NGB)z R!O-l*>T(xC"poC߁q;-U%+3y4"I%v33G3_KgKgޒ3 8$\?$tCc( #p{Ӛ)Q䔤Y:3ȇr)"c68[B͋|.s*Vj&]+R%pO 2C ΢w )+XOOdZt\$0ٰ6 ]!'aWfPwm=riAg}&APB8F)-4@Cv)`aʢ\7R08va%TО u:x .|G|ܓH'Bz0\fm—ſyHz9/u\j7ZRg쁷/ŷ5Il\]8QnKՋy9F}$~M=yxh5ڇ'Ʒaa|%5""/Q!Z 8, |yG?+5wc˻ƍLPWhӖT:X.GB?[*Ɋ$@(ڄߛM}]Fas{XI:CBfp5@'{=`E2hƴ~zz{lUJ}*;鬨FYׁ e올!ԯ Z.&޵$8Js6`2m#I# s> ih_Ii6% BSXn\{Z4@iw&0j-}(`>UF tB7-{J1$^ibQz\6V[Prgra}l5ZEyx{<}tVc' X`S2g3ډSxϲ܆8Z9,-c&동w1Wp#$&/sA_Iw!gB!/N0s`v2kNߢJ]Q"ɄA&$LR^Yp`V&S9mFgKv_uSe('`F9oCF!"vϋEdj ()#-!.ko rxo9ZWBV99["ҥt|1fa.Wj6fS+֎110 Ea!yUA\*TJ0V\-c < Puǣwqӑ7уQmeă.WyA=v{ y~ d(`%<"MɥUo@% y  E]WgU[A8kX]E,72.HR `PIM)C޺"AȠH!$jK@e-kPA4S#p_hǀxaWN樫N.jGPC M Ǻ>#Dz #mWǽir/`@v5d )]קǿ\qԜOTs76p3!]=aC`2ڰGC\i^OzGS'D}uĨI3jO@ (:¼`ݑ搪LW 2|tf {uOgRZj5_f`U3l`SbjbVf&r=ŤɎG8~S'=I_3FԊs]QX;Tb+1Om=5f!4@zSua;ǔ{u*C;K뙮Y j(;?|4V1 AMGG X덌ؤWq n^4T싩&`覮Nx\R6 LrcވB?N%βW=Hr59FPYӑ[f [zm٣̗$/ߥPKa4Kix/+backtester/dataSource/google_data_source.pyk6@-尯8n9*&-o@!ьyLr.Ժ&8i[z c\ieT$#N;<_4k JC(9K3zߢcl] p?]#}>O/N_.NN`qBBo>^{r|u {d{+ h|.~t*i>>"IW3ؕh'}廣5/_j>ƴk)ϢLPK74R /{ v$48oJLM0 F t'IB`DX緔\ATRLvGY>?נz1QXUmhѢQڷh!zv0;\+Z$AceD B!o!o!n߳ EjQF\PF·BS3D_B+iЛBUHtrkx758ΘCBX,xWchPi}u P PJUƨjO8 Q1yZr>E iOib  IX槅9c߲YD?-35HJb*J aW>OLD&f_wyVE9@eݭb_&d>wƛ:ˠ>;YNjs^2"Š<0~'V!Y|'ZT1!xjͅN礉[0U>7|D 2LouLBW!A 2 dF4:Bⴎ]-6A̫C4|0di`wq ZL*F3]!R7̘t"H6ŽolZRy{F:'%TbBӴ(zdH؊:3~fZ  ˟Ws5̮>}otF_ ݐ{!]~|(Vw6LZRSV(gC64ЋNǐ#GfCd\70t(9Rl:\-V/L_dD$%h- s8l*m)Y_M;I1  *0.+ߪ+Ltayc꜏_Dp1u{ ƨF`q'@xI|SU[c" IXy 㻇raG]*sobmCKLIaqo{ɏ1 \YYGҿLLiFp0c"+$i>r>ǔKo4 fLHe3(?Pbh se1d94baa<=55Uޠ+x>˻Bz*N7&}vp gw VBNnkվ}pc/-B&e?_=<Z=p\=4y/PK^Ly,backtester/dataSource/logfile_data_source.pyT;k0G4cCJ@v+>"dtJ_(*^mg,׫ښ>H6 .^MoKtFܠ""A~$J *iLF ٝPK eL 13(backtester/dataSource/nse_data_source.pyks6{fpH%qNw\k8x4Z$e]vAAR2b4u8ނo1Ͼ-.!#KX:mvM0~8xL܆xB똉tyl jGgߑ#?r {JgeRYroyǯ_xd2}%J`aD*l4x#ȉYoːòF EQTZF_I#n &_`|5\.IWnܝ@,tJ&s:yt%>X d1nnfyC'Yw)_4iK2<k7[7whP]8>ETbZat.&jʁSvoJ`!( 8NLVM܈F( $&y8,~E4}0c9Bv!\ՠQ-b)b{UZH[,ey~mAmϻڞڞֶՠA(Ao@1}"g~Ȩ ̚uUƭΌZw!w|ǥ.y kf ºm\Ϭs`{)_a"dXPaGm/0q%hմlGs^=#*v 4)t])t)c\u_`A9ME(cê] ;ZOpxB90T|HABb Qq_0pq|(.-u:XK|:\7 Y'/&4fxMFE`ljCW"S0d| ~jec{q^ض-çd tq p0~dd UPH-vd֡/1ɪ&7mȋ*ү"}{үڨ-񾕶 *\Ue+\x0`-҈-` "QVߏ(8UMǧ Ԓ1r1z-҈ؤT8,Ux};Wuk88aH)wUNCs oyl 3{wߗ ?) WD%p z>4኷/^F6dmh [g H Ml8w` *[A*\̧ ?|UGcJgK2l5OF9/RK~6խ1KQc ٪@dܒ+Xi?BUNKfLIWAM  aVΎi,!NެΑ.R܁Vg7Ea(&_b_ڸe=` _53s7F500Of@8;CK_{aJ|&GߵXB~x˻Wh)E@]gGn{rQvDgޙo?ý0nӒRz=%? v%XLUEحj)Ђ ?G a;| .Ŧ_#O"E `׬K *͛- B ЌCC1 XGQXH F˄KFb$uEʖD ^ cPhDɃ!?qѥRz1vFqYir1ha@jn*v4}Ηk53S7>ǎȵE36SVjj-$ ^5]Va3H$$ܬDIM%_ 2Ŭ"l5;nNDŽ\y}#r\OV!X(E⡧Ǎr쩗3~af_ MⰢG!Ş`rxmtV; #SZ"USρzP]yCp^S]xK޻Z]Çw![0=*(jsDXc!fWJZ2ro_~Z ߽v*X P|!pH^/)8"ZX~(P*iOyO a:3l!7PK eL+backtester/dataSource/quandl_data_source.pyXyo6?@AܪxC̛Ѣo`, kITI*N0=0u81 CS^KUm4Sɀ:Y.YdBjrY[7y?2TuQ'5{MۮX\_3icHs|""ciA3$"9Hcw4ß/S <6`ȡ]eaJa2ZoQ&\-1dS|t(5Zb[VqԬ*Om #0j'_{ЖjꁭQ T j2% 7t!ק%*=P*P}+: (0~tzxO2+!~Bnm(@/Q~Z ::TqAp/{HAS@&y~"bJ FEVl-@iUu@f7\H1%:0o]KBʡVa=81$cSB ^|2 6ߚy {1GO]9[aZ9}c< r)A[d:wvdVlyu-}di/PN{x4$S1oY jq@fPÂ<''Q_w!kkZ']ȱ_]] K2{L~jpQG">w`}F3.I#3IyxJ~X@KY pgQ}g343]qG4A.L.jaĊwVo'DwRl*gE<4-<Mk@=Y45? #)Άnre+X1//QI 2y%OA8@ \im0؝qBːd%ϻoa1n * բՊvvwc{OOT 'UPK88KX3/Y0backtester/dataSource/quant_quest_data_source.pyYo6@!yMd]%h/[; ɕ\ SIF J}\iLʐGGɅ6Z3a~+Ǐ'27|~r 볪 /vnʗ"/ONp? Y)GKgvi)d-OiqZgy Цj :.hz oW"p2cq?u lf-8:1C@ՉkWjb$A3{g3` 6 x#O6ﶣi127/-Cbky26sY,!?!8{H p`& }:Qu.ZIpiN nhmQU])-"5ЁhBz`_>'[Y5$0F[l tISt(U4wjT#~'1 C Jw x"Evz̈́YS!nRåp]ɐj-A(4V((B+J3 #o.: EOʍsg[̉v5Kqȕc`cZ>i߾-g{<,.!,kߧ$#&?M\RqCtbl7t §oʰYzh0fjGe~9AkE0<:^^ȍHٝX5\japN?:uM<ͽ6#؈#|~)|,K@h#ߡ2mB|Z󲬡젵ہU 0q8^W78gz{9OͯOy@ nd :fB YSs0z$ z~N@ ͨ8tyZЕ*Ÿ‚ϓgsK>&sg_aqFWx|> O-ZsG G;ہR A;/'C-?zԊqjfoO>56vM:@a/pFX/<@Co`^蕨bh=O﮲^x򪙎G0*oیs3r,q5wR#ȖܱRt\uH1FcWf N_(DTZE(qm]\daF^1H?_}Ө_*.q5i?7>G)%4^3l4P벀O/K\̄xIdY|w4kT=>|+5֜lQԑ OG(xH8;PK eL#G("*backtester/dataSource/yahoo_data_source.pyko8{ CRvm[id( CP,:Evb,o$jP̐3u2AGI*5%QZ`((4sl=E(^m.{MɖT}.¤\=>RSK-i'? IƵ]⒛=%1 i)+IJ ֘<>:>ҿ]__O.0_/'`vNoatEtv%t&9;>"lF8(_S!dTlfO%M#72Xv1na/Дu8`m'SQr΋B\逄eƄuG]g' V$]I HYѬ7䛜D ]U1t%A TI ؒr./*rcq$lkG=ϛ] 7bIQEj4U@D 2W➳n74e?f!C4\!}",we sHZm^^C0cv>" Bw )ץ5%zk+Ug`?֮S$dXkNt<9Î-UMk- CtA,1[q07H)&I%y%T٪0 y ,iPV5ֱA&0ͻـA`<` +ó'ܠ,{hzMj9gQ-mRmm8nc%ˋ}{}o4C,}d%AzhW 1ƃWnJP, hi[{q(G.Y1`k$:S X|~1PtҼ8= U ܿE#(AVi_:p kw4ϗj&9]b朘{? Socd7"Y Ayw:An>*:88 5= "N4z KSkؓ4ZyG Y8\5_q!DjW0 ^'5ٍ7,54HKe S#[8? #^jI\ ֢+[#?ѻ!?w=Ot:]Qf´FzP1dk46Z@0 Fw>th"?PK >K& @ 1backtester/executionSystem/QQ_execution_system.pyWn8}7 YYGu Xa6ݦp/XxG6IH*[;u!e*N]t*H3sf(ǂdI;RB1ͷ9 $Kf9zS&iRA.OLm.⎳ j/+|K$Y>(Rw:Ng1 C1# I<@$j: 57&/;,)myf)Sɤo0ck3Eag^՜}#޵Wk#SOsAEx3uӏ,rꏉ4e!zdTO]vr=|ka&mP{ho Ў|S Ö˸|#AiΦ-.4siN7>[o jVuSF aSՌQ!]c2D|C3,0U^s~ʌ* }mt^U<2RWb.p7j,.3 ʢVk~-o[lx Wo^E+Nry @dH3HӑDI"@+82qG*ϯy15̹O}v#hḀ%>^gY|Yg+CMrƔRUuGvTˎVRی6!x{|1=Ϊ2sMnH:9(?kXr`<I=++U(q}ׂ8)߿5R*h,eJѪVo,<߅p`5d8f߻ut|:Cv#:K00 v;آ۽[/FXLxg8bc/mߋ)޻'/L;Ɖ3 foqbcz"y܌֫EunQt=n渶Ə?ozrl8PKeLN;M&backtester/executionSystem/__init__.pyOɉWUVJJ,NOHM.-ϋ/,.IUQIdc)H,*Q[iZ|PCYbNi*E @LX^.PK88K:&3backtester/executionSystem/base_execution_system.pyJ0ܺB*= .^DBNH,ط7Iݵi-S|/i$C763uPF;BݖQJ}^2BVgFB6{tЎO{ոX'-yYϳG}^ =Q nf4r6X8`L.8 \;ko+Ѥ,%ޅln;|*qs[(qA+ &!^ラ/Ȫ"ԇp0$Z_rH8Aa3 ch..&[])D􉽮u)!F["$D%8LB9NBR7rw΁vb?9Ĵ AW׮ (ǍM3!+O: ȸf4[OUԾMs" 썡H>pW+?BP<]²c/gZ{؋wXb>c;&Xh7fDs>A_dBm8=U'Do,4$@e@eA @9(S4أtb&Ehjn #9El4\Ś !Xgh%]xN\ 8m>HP,)^%8K8U'5%ԧ%s1W7@W#fǥR*s  #J8qxMjw王rOk7ro Mߔygė@ԘUxjӍ@ݤ {ΚҴ2r0t^2nY7 rP[ܫgIpT}2!Z<62>g9 q l6j LiL9T,؅ t2i s8=95Wj wYE3#E~`Ͷ1DYxkXZ=e:zm΄p j *(^;G2+Apz{gMq^ p>v 6M\8Z@}ULͦzXSلWsA&+9`ZtPbtVe^O ­OMggH}R=-f+KPRkU24ث;UwfmgG&ZڶI|EėPYHem5ZbMH`tHQRf_T,**G&lo'Zׇ)OI_1^7>o6Zֹ8WSNX?DVG?l PK eL*Yv;3backtester/executionSystem/pair_execution_system.pyUQ@~?,ᴗ}8 >]/Pȕ'$YҴqc |~^I 8Ch&WbU]B֛3 d׺_AE)/"*EɛoZ.^I1ty oc >JPGQq|g ?>ZFÆULQh-#Ri4-+z /z~Cd9_ isx?&" ӧabDvU!1t7@K[>hgAAzQz!F W/=j/e܏f8c7rYgVk;{hT7VP݆֬Fc\iTr,7yW<^ j9q&q2t7TSwy#%o%,7u&{]RCaE`R%+p'y)sUH l0͊ͷB1cY)kv,\K:óHdH´D RwѢ3#eSq=D!)$ 2J@eSwCl'PK eL+95backtester/executionSystem/simple_execution_system.pyYkFpSGu>p>w_)% f#$ЮҸ^#IJ7Y))Yp].HU|,Ü,W V 6/L sQVɅܒ;%e%);1GU^ea_+p //J1h>4>=<@I SX\UIl@{7A)˗W4bv24Ж'@./I:mL_dv(jo B*) 2]&(iQ8u^в$X+6$7,_ -3 ;k>Th[WB+-:ޗd[%rmNJJx !Ýs3v.+ ]wDZsx0VBE>5!XjHIɭ$p\4eɭ)$waVCD ~&닲d[ PV0Uh hBIY5@#XLȄr1zt#7WL|y[MFnD$yD@2v% .-2 Y~OZBjCU4~MkI9&Cdc03b?V􌩶O )L'%MvMy!q_5}ӻ~։x/Ӂ68oAێL|T9??k 8LʶDF }ӈֳ6ާk<{7M8=A5RJh%R_˲vBL#+n.GԶV MY5ukٶOm$LZ<}a]ZY3BRޠo_Ͽ0N ,-'"GErssPF}DVca=w[!=Ro|iH=vqPK eL{jl?backtester/executionSystem/simple_execution_system_fairvalue.pyW]k0}N AЇ[ꦃ1(4P֮t#׉#I.$ǖnlJyFmk Ba A* o|A6I s#Lq&yYӎl^(M7ahbd $Oc!꡾c¿8^FBsB{⨏*rAXC#Xk:ߪ ǯ(ftyI6DO=H飴4P"qY%쥃܅ =]eN1e(i>RvH&Q۟~ʩ6e9lY̪.ZՊY)vǬʾ==\ڸ%QQ! . \[#BF*^v=dl`%F5_.LU1 H+`Ttt=5hտx.5#˩ItCقiJwtV'S&&S;9kZm[1 9YNPK98K Jbacktester/features/__init__.py}Sn0ݯt!ܥЭKN" Pmcaѿ/R܇'s8ccZc,GH`R]9ҰӀ3YOc%@ l蓦 =?ԭhЇIFnY-$⬡ J]^ӐGAbʖ#q -P`(BW{2db|Ԙ#4ZAەr .0w<ݝ16*59ʏtmJWrh5 E/"ֱ99A: U:I3OVz*`ź")I&*N{̽3:<{*pKdmڦz+`N0 8\G˜\ \զlP2,aG]iqT6X>|ۂ3Lfg3=gH7PK);Kdݧ?%backtester/features/argmin_feature.pyR]k0}/?7utҽ ֭2أjI"3֏ns9ޓ{R%9lI3 0EbJ ,pdO "̜B'ls]CA 5uRr&^k|?X4ɧϕ PK#TLX4N#4backtester/features/bollinger_bands_lower_feature.pyőMk@an&J ED(U]Bfg~ݍYj[+tsH&;;/F+VOΓrBXrUa=~(_^mTR5 jl,w>ОȿÈCeTx"Je BQqg!|ā]ƶP9^΍لR5rI\5ٹB*d"4I۫A hP&]Awusdar\N\9ϲTJ(-kZkw x_ n'ߘt.Q$>;M5h'PK#TLEP#4backtester/features/bollinger_bands_upper_feature.pyőMk@an&4{PZ$iv.GFWZ饛C2yx5 ްZ{rƒ>@X]S@hԕ@uE#} 5ɘuq+5\>NeA*A&BSpeU+t'HUaؠCE>!`γ,o-Rc6JxK-ůshme)ɸ7&s~ Ign-$v PK eL#6&backtester/features/capital_feature.pyT]k0}/?7]j=ec\"飐IrڐA[={G$GBwAUVHU`=^_ +Ӛh wa:⣷weY־IX*^h,GaJ V?Qi0R}rCχ8'i8{i'` 1 q!%Q+'" UnhӇdys6R3ä1.<]ϫ<0Ỵ H<[G*C-Y-v<:avxI^A~f0 &LZӿ`BڢN[f̷R[3wBԒN5~0pPK88KD})backtester/features/count_loss_feature.pySMk@mSIz, Ҥz[[~Z5q5~P*yofdR0x&N( .%rV^N'v]-d:I(Q nDF(eWs2ԯ"wR (5 yǕ%C9EJ4>l:g8Hays[ ʊnU&G/xrl%ۜ䘙Õw̤Jv$uRt@Q;dߎ$Tu浍 AZ\"->BXJJ" Pm":$+~Q?ˉT) ".P.c[bEbQSZ(:h-;h% ›Qbcu66ise-U;hlgcvXt͎+ sBAYϓjYct~OPK88K#&+backtester/features/count_profit_feature.pySۊ0}_?[&1Iz)4JgMt1\ڿ_)cɹ[̜3s*)ըbi7ڌ-[KH$-*?Ŀx4(D6ueRSQdU~>"V9,!lҀ V~m?q?&ywh<Ħxwԓ׺z(pχkXԙW!ˆa瞜.cR*,Jo E-rroigPKhLʂ7:backtester/features/crossInstrument_correlation_feature.py}RMO0 #|[*@BM`i8%Z>*'Eۿ'1 <9$g> UyeZG=I_v6+umxqDyPjCbA_D(v.91ZVΔN|c u϶Sc:[sr > ognnVb~:۾[[Lyڹ}xCcQ䢳~QWȿ.UlBn>^n/vS4Zv(8Ǔ ,܏ٜ9T䴎OI91Ud%?PK88Kzmkc3backtester/features/crossSectionMomentum_feature.pyQj0 Ł.Z en˭il9wdDYj9 <oJ7Xw| 7{Y|{Kg*(kV ,낥M9ܝ10=]4ݎ@ Օk:j< JqǵxY@:G}vG(kb]E{R>#o"͍In>Lʁ_1

kj&iu7ܞjھ5۞?{ cS4ifžWMߝlq&7Z'p VӨd]f0pX[Zl=Xu2OgGMt(6݇oΩ*VUTXr:[9OPK88K1 1backtester/features/exp_moving_average_feature.pyR]O0}_p3dF 1.YKI[RNbbysD3x'ZT(*Rs`єÁQp)q/yfChy۷ պ U$BႋL*Q0̔P@D`+];d ۂYs̾w֎V3WJkCGVO#YZM76`qW.|C;5Ho2[RILrE|cBhD+=j"ᨃ%4O)LܸɭzCyl]76\;!eal\m+L;85K"xFfB:zؑ( ѡ7_{ny,L{,g&PK eL{ֹbacktester/features/feature.pyA @ EB]p%H+ovfJ&VY%!1 @;Fܟ0X%dF]i:4oۨB{TWnm}zR$& Ŷ`1ڌȨ.9 x=zdsv\A;Uum۠؊x[庌n5DT~"YPK88K8u( %backtester/features/feature_config.py]k8 ),0$S۰e:PbYQ2,ɟ,sɓ/=Ik*k*n3J꣠⢎!@E9q(96aGΓ#5+]jVΫM hYQA˄Z]$Em&0AU\ ɉ r*~ gF&`l^Y$~ QƂ)5qJ4ω~G;p[K-zб tOV,XtQÀ dJOySͱ0!5`~sɏ=WI#eSv`+x"w|7?`,D RNV $yLHn3h-ay~hj;9(G~;J0GB K .>)*W0_{nx(]}.xa7|Æ>4SsD|L'u&~~fje3lm7\FF4B|syM[inn$*{%K<4![NC(^dز׮`0_3r.<`ɜP uW 6C :Eɵ3`r ^!,/amLidȲ 7g֙tZ ~,1-J;'a Aj?&5h'g1{z} 3'x-%6. $DI q&R&2eDo"EH@Ii( V{JԚ~$C%tc=-<`mC 7*Q)ʬ؇b,` +*=;ɟXd,mLnAGJ$Tz_L@8.ύ 'Ɓп4p:"b/bq޺`.?d4һ7JLn#MK3&lePK88K7yYљ} 1backtester/features/ma_ribbon_distance_feature.pyT[k0~/?-z,n=3T8d#lVbIMn 6%`WV{Zm h*^޿.Vr5^gg.{Dv:/N 5ৣwlvfUC&חw+d.~U%x]oܐUd-QiH@yhAMZ5Y&U3wEF W[ЇgelP'qg~iۭJO t&8.uOFWuwn9UP2=s+˦鏻fQokg{]j{MVcWP.d8qV4Q7aRM!{p0+$"KrN"!Χ2{qJޑS|q+L狹Ys9!Xc>xLhlf]M}FnȮ)< Gzǭ0nAXPK88K:*backtester/features/maxDrawdown_feature.pyT]k0}?\؃HCǰ%|ѭ}TD,-}Wەhǹ];*, az<+m ,?',a'=$AV^m |Sپ0\n!Uf27P!\=A)+o9!CJlfX ]\^O90zu#\g+Ny1q!b=ӚSӯv{jP{/FY3ͲxO )R/d[V5f!E63}:hԞ{cC> 6PH炑p0{ 2c8׿kynғZEC.T9ܡT% *uYrOk?M=׊P.w38 l{/I| _3 ?PK88K:UŊ.backtester/features/maxcapitalusage_feature.pySN0 #u cC\v&dZwDKq=ڮق ql brB< br)- LR?TzpM-b5HYSV5aV8P!crbb!ijM8o75+ H RFzFFӇ9bv|W˽z0*GdefJM5{fPK88Ko'backtester/features/momentum_feature.pyR]k0}/?7uX׾6! (>dډHaݯ_RQgWU0枓IgI\T(2Vq`ݤYWD~+:') KUmޝi4ΪZeR.`SJ%j F}GbӦB15&(Q*cC{w"]%%٣0sBvhE/*cci.]rH8䆨;hu43cޢHGf daյtr-4}VhgdA*jW UAP,14X.A fZ^%/zKovJPh8+MOXrHڤo7N`Ĵ>!5SB\2LvUx v$&X:DҒ''nU"k+/tgIr/L"Sc17H~H_%ޝ^H.A 5$p)F9\NPK88KiʒB)backtester/features/moving_correlation.pyRMK@ @ DAD+KdRfw~ͿwIu73mI‚+ƢNri4Y0뫰oƂ[A h7 @(cZCA9g!CI"ܛS `Q3xN n Li-ԲSϚor@a)Y~=tJ~8chKs߰;LKԡ,4|'Z aSTCNN3aQ˹Asy6 4CUjj4lh* 10<*IgDn5z:HF>hs/:r==Ïvˁ6GF@:LqSMNe"gc|PK88K!backtester/features/moving_max.pyj0t dl]zSm$e5k-'3_J!mX&}!{cyvѢ֐)CntdU9ޔTAdo ?wڰԙhu/RO>#6kb[kn(ո'&h⚦9w j4wF^T*x򄒂|4\w:{بzb ijr -,󅌓_A] Y[Z- оPK88KSf~!backtester/features/moving_min.pyj0t u]wPlZPRQO0+H 4`:e `g(X^'TһgIE]6lԣ[  AGgt`E]NUJ"H&B_ՃqѩCa19Eopኘb׫/PK88KI : X2backtester/features/position_instrument_feature.pyuQMk0 tK!?`0R((ilY>qkcz{ҳܑ!1Rӡ`O.(=Zb/p [98ZXYs0k4Ie<@yE[GYl`3A[g:-=[{ 6wEVs Ά4mD&N}J9 Wk`أ >Tj_=Rxĕn$_z#?C6SR1N4N0.fp=u[-g3SίBnft5<,zPKjLn5n)backtester/features/profitloss_feature.pyUk0~/7mb=f-ނ)}NElHriOKuYӝJkEBP% uÅ̾7D76Ts)-"YUTtsG]zE\8dWrmSzָˆR.JktM]ƉlqMs"eľ:xyQ((J8vy\yYuo-/o">UOK+dRVK7pVa0k]AjAf8.qtDABhƚcϔ,}Ts ϸ0)OL|gDXD W8)>x;]^$]~ q ]e/Wmdf\XQ4fp+CX>8(2IzŸ*SS^C}-ǚre"sVmX)@U _^'mŽw艧AJbnzDJu~?hl")!rthQA ^,hFfjRp1ʶ6PK88K/6#backtester/features/rank_feature.pyMk0Tp^z^4[L5k֯lrH}3y*Jl #%[BsZXdcxl]ӡ?+a=^z.LZ1&P&/dU,V +(3z3{V5_nR`S< s j4wF^Vj< “pHw:mT=Rˠ ^!`ԭ/#P7PɯT.l--{-#YH6_PKdLaB$backtester/features/ratio_feature.pyTN@sѤƤQJпw)[X(4F8ޛ}J'wP Q)M.Z֢3 Kf |0*;$3o^A/OJT5r \iXJC()=l)R&#6|8!Ԧb {&lQ be/ȟ)"ol'M F<=  vGn (ePK#TLi"backtester/features/rsi_feature.pyݓn0E\R6.Ah`LC&eӤEƜ{xZ r ֢+`F3~&z- 2k*f'r0|~E|~ ϧ]@{OJWXJ[̉;xĜX&pNͯA} aoKsXϳ dXUmps'1Ey`vSB(Z"Κ qz:-8/{Tܩ2GXժaj}߻JHfGMeu&w?&fES :d? iy]¿w20u}MggÓ{O& H._. F G2C}nhw'ɊᴎEǻ %A°PK);K׳5v$backtester/features/scale_feature.pyQj0{ @(mBGF^'= Z'.{3j {'K4z |j9:Pf>9xQ²Vy:$? 4Fg gs9S]9FRi7(ݵ|S͕Eq,36_nuqtDzQ_ ƭxJu/ܡE9b9az:3 ty#x|0e8، YӢX>h?#g#bu7vNIkNPK88K3 <.backtester/features/score_fairvalue_feature.pyUQk0~/?!vxM26+PKEωl-lYtiٜlӧO FT(hQq<=e]T; UWH )xCNX)c~>65ڙ sHyQ o-uR&PWQ.Ơhc)A >n ޑP`!cNپWBgӱ;Q|sNS'<,D?(5R%{X0,~l8_tN2fzRG~bZjʸ`桇ch>g-t/&l]s =y x;Ҍ4"mIk!˽JDŽ2.&%I5"5=R] ޼> |LbX:@AWk-\QǸuiL`M^i =$wvv'> gbұ6kxxa{g J-|r3٦nČ+uwDlP%p3JGj̈B50;&m˥%u툊J򚢋lIrw+L@zNx5~[CO} ]P'|=ZβOﲈ:Ƒ8h&2ѫ'~FY#sQiLiɳ|x?iY–<"-AY/1pٍ%GX1*jBU7tjęFaU)'z'~O:mF]RS"U[c\u7hnaPK);Kc: %backtester/features/score_problem1.pyVmO0MJ >NcڠCB2ɥvʯ߹yK)MK+%{|w~\t@*QT5d@XYsUz|ԽWMYoVΎ/-V_ܥ\@a ֮Y;ANR^֍+.+DSBU)'D&#{K-6Z%tZaN%^C[ 0,UrhO ,jx1) p^ph $i2`,! l+M .`#JsKHH-drN.U;Ǽ8Ǵf T:ד6BQƈ^2iĺnnH6es^pݔ#/PK88K5>y)backtester/features/score_rank_feature.pyTMo0 l] Z nALgBaX؎e'ED|T-+Cm!\8j餵%NkɆi@Z,mq:NH>]6'%ViY{+m:%*G3 aޘkCAMHN_4~EZ#oh@0PQeYzʙ=!` t.h,q:)և(n)DhTu _%L5uG %g._{teEm|׻̵ "&RB“ `#8RV$ >YŜ|"|iKDg^zșxnI@N}.i>HS GK7<5(?PK88KF EW)backtester/features/total_loss_feature.pySMo0an X)UI! Z6Qk/ mZUEH`{fޛ{ Hq4 BbI ܶʯ%%`_Yaq^W%Zã0 }.ss dh^DXA!l kD[hdI hLp Q~߷PgT3 qtS8C T!흝l&g4*2ȐRj~ gr<(0oGQBR$4)\[gEއ2/"wR (5J˒!^B "%J63U!0uX pEYт};!vU+ Q1[6g!69&opes61黒IOZ*V*t EoVF{.CXJҭ Q(sӸhY e%ʯ.ŷk!pg9*<-VT$|c9X1aX>pW` ;U*#wc;jDcR7cQdէ͘wWɝi\ל ]mvXjK8lSO&PȠӐF HUKW m//ɗ ]- {O; 7 BHT.PV/ fgEDfH _H _nx*ak[&Sd*),|=$BBÜ\OgzqȤ}zQ1a ~/qT " =PI zx$u0FQ<=#(`uLCGz~$ )1 5F{F()[Vś#5r 4I 7cTˣ1;c3z\a-'hY̵`h,Y )> m|$vjD/5ǖ74W̷y s@)'ʫXAByLx~dԹ:MzwGM.ß'SMj-()/-5+-z-%x-m,$_CJWfFtʫҜ ^"BۤW?Z޸JZR:= ć#'/`Vpڲlݶ~Y~!)H2u/ yxG> x1yW_؁or&qؒz.cJaPK88K])backtester/features/vwap_price_feature.pyMO@$Ez5!1$D!C;ņnj[DC=nwg F;MJ .a($k~( ߳_RbiD\i.QMh0z$EQ4B"2=Ĕ`i+*&_YcPd\1eL ,b4/t*h(T;}V;vO4uSU6且8&Rff[V'ʽuVwkGߤ%V=$ğW_>َƬ=]•;%ovwqAM7S׀%jY8͓p"̆*LU͐wUg}5E%sUV~xg1UsQ,PKa4K4/(backtester/instrumentUpdates/__init__.pyK+UHJL.I-.I-+.)*M+ -HI "ė2s J<єr4,(5n`yrL/(m?XKq 4+>>1''>^V!KU@%{.pi.rPKa4K:)8backtester/instrumentUpdates/future_instrument_update.pySMo@Mm?j¡(4,𐭰KvZ}kL ٙagdJ`PTs.Qu„U QAJ*E2,DaeONFq~H,{4iLco,#zr8;PKa4K3VW7backtester/instrumentUpdates/stock_instrument_update.pyRn0#{KR|@ITH,cLpK_yPC.%dzV%Ĕ rҠK.T%Ԃ#=F9TK1,J4ג'6+1b+tb1ed-cU@p;Q** {pNbWVBI55dep0uՏ9CxX$G-Ÿ|nY*.ʸZvB5N O!4Hi ?aW`lh\/g?MV{u5zVnI?:c 'k-p^Gr}}޷D_- ˛PKa4KL|"backtester/instruments/__init__.pyK+UHJL.I-.I-+.)*M+)Fb+d(xExL+-)-J4 ,A1%yXKkLqI~r6SAȆr'+*Dr):B^]* h6cyPKa4K"X!"+backtester/instruments/future_instrument.pyPAn0GPPġQD2E*@/kr(Xy!4z/!5(LjM4A|I<:yY`݊5P1B"[g, 8pb=3l5jvPK IL^$backtester/instruments/instrument.pyTMo GoZ\#YJUUc f 6l `xc&!(DY$nDpP`~ a?PKa4Ki" *backtester/instruments/stock_instrument.py@ wޡ#8)&ĈFr`1?Ge= d4mFאd$F jlF5u CN>Qf}gV)"HXg r sh #rW|H.w2EM\-R`~DKa=xyG7w Dq"ΗC )P&ٻPKa4K Tlbacktester/metrics/__init__.pyOɉWUVM-)L.VPK'LNOE%backtester/metrics/metrics.pyY[o6~7@0$Sy`_@RoI޾L-QRӢ})RuFveǁ;|pSkRyQ$xkǟ@{ɩA"1~~Bkptψv%A`3r5X X@zPnx ["K03XQ[kȟh}#/-hDž~/Tq/ߡO7T bl |G!$i Ic"MY.qq"2 -)# j:ht-TJQq`EpN;o.W@X'$T >.rI%o$lΩt'O8ߓ~qE_k#e;6 .w\g uu#Y3Λ_dg~F]J8_!w؃)H%fGݮOS?vO+rЎ$^rmXZfus8E -Ӏ+ h@W[׾j;\T АR_E*%|T&.&ؓ떚a 4I1ø FH8ODqSNmn\ M hH}K\/e퍑Zd(pkk.`Y8 C0 v3rr Q߬" 3T 0"bN W]Gf7[Nf*sr]qɚ;D>&wa^\>hd֚`,+{ą22!dH+ŅLtE'<ǩJ2B>ۅEmԼ}q0]]d )"}Ǭ `"Ƕ; I| |Wq@Lr$㇠2<'r'c`tfG /jLUwC iÅzТkعo(YSkzՅۯ761Z:ն;8D[:41Uiz <6P{2; =zmP7-T1=p˼6njEYv 6Q wdţ<`+,fzdl\#[b m4-"4 _Vo:iv,;ٜ@ʥYor74&P R8%.ΞޓΌ֫m:RK6PJ(NެWeqP|>.yߧm <ГOnӉ=szf 7CMArlKlBEt pbWhewQfOmӠe&,s^\"+mz=^Q|y<1Xx^XKX(sޠؗ.!W};7S3WYYxd·κs#,Zۨ~`uz^O==|o3B 4^'?R+&/")|$;ԣ&N!D0#j@)i4+EI0md6q~ nL?:/ k<ftxqycL&5¶2VIqf8%ᱩyz5z:8PKa4KrB2="backtester/orderPlacer/__init__.pyOɉWUVJJL.I-.K/JI-/ILN-RQ rPKmLu2backtester/orderPlacer/backtesting_order_placer.pyVj0%5a//l¶Mu]B1=NEmH 4ؒUyoFO䂗BP\d(MJLnf5 ¼@?kr2TR 375%0"lgw3\Ù"6,8Cw 9MAj$D^~ǿӗ8/%[,$Ս%}gՂK6p/qJsej2qƇ/2'y2k솑 K]މ:5]F5ZGmW͓:%backtester/sample_scripts/__init__.pyOɉWUVJK,/K)M/H,J-VQPJKM,)-d&d$cyPK'L}{Y ?.backtester/sample_scripts/fair_value_params.py[o8\QCy`m4v-Ѷ6_fHJ^k{@(Γ3?G'3j?L,:n5ӐFgAy0o?0/qrhL \恈ig߯3'CRV }{{3|10hԓ2BEPLfBk=1(8cA#'C0" `՗Nng-u@YSpCBA<2ׂs_Áڶumj/s=kQg銘GM=vYe7*G6ʂMV18u>D8P #h-xp"W 1?O_?~y\^ؑ;cK&]=2"<H<9q$ њĜ/`!`ъzt=PxF0PiJ#;FCktxJ`D0% ,x`BUSRzˢ9MvqĹjbQ`P4Q['c#s)]L@JAF=b@= BIx jJI< w0\\נ\Y2_3D 仌N2s2ɇJAtC/)k@m&4@pZqvRULA=`Ka^(,w@\a 4$cXiK$)RĊ*`J0t0b@U(bȁl}L'\{hSn;<VRGZYJA>հU|nk sXהxS'%.i9 6iaƵ |s.4%2 bXvB @@ sgkD}(C.\>cCN$D'xza}$q6-J@)w`8NWA5.2_ d]lNy>utŇW犂(LA s|H/ }Iz-4p*`J2.W5<ey=*Sr!gg?|O9i:$0wGurJm~hlAݥ|l^rfo#4(Dz !oIJQVFC{{~)Uzc6E[۸g] Laq'R- mt/YrדVK'S0PLUۦ Fy[mlIS~ 7j$(9[} !݊U gUGFGC2Qx|n0']s70XPBD$}M+״V}P5՗j]oـy SM5.,&ɗUj~+T/cLu4uAݯy4H^tͅFzcZR]2}uR{+ܢ{ANśN' 1&L*n;y9}գ7|.j՟" $aZL/6gGӭ4uGv䑯Qhٽe `xt|2h%bu~ALq h7`yѬr-юk'k\b19JKs,Nn1FGVۥ*qrw4oC.5}07.>YY/  u5E\g3wغoʴr1 S2bR1(A8[~54e!IPdjLe1ET1̝%}s6f?Φ.Og..ǫJ, AuxT]`˒RCC'+j*'PP"UKot#_$ޢ:"3pS &6?Q'^hwEK``P Z-,TCV=G2/xPu]tf|N6=P5XX M ^tϝـi Em/WU aOn9i؁?Q/2Aqg4 `_zOï+ =GiAͨ75YS]?͕.%V(>fDTA( Qَ.dR 7 Ǯzw^P%TG@NN_.2!oN]?z)@ ]o ~(aksV#Zj.HJ?vޫ`:qWggI}܋o%S"%%Lw2oҴ8N$3L6^^ aFd.D]r3jw:Gyo7Myی[Bc̜TUiC"OErw?L"s5&n <㥐w/}I ŧ#]|gE_5wtC?.UJhŇuAyWQGҥs>pH:RVv`҃d]WzL|:d3SE_G];ᐌYaF0}5ǎ`E8kf$$}!k2ol6)t$9'< ^VXO.{g64h7el~Ϩ{?PK*DLps=gbacktester/timeRule/__init__.pyOɉWUV*M/*IUQP*,M+/,M-.G(-F $"rPKƌL[F | 'backtester/timeRule/custom_time_rule.pyVK0v7e_t%=4=hqW_ddBK)5!fFߌ"=) x ge!"61Su}_1UlhJLʸ1|%Qp~$WRٻJxن"J͖^.Cs4YTL eZ0k6pޮonU(!+1DήP!| NK  $<:Ζ%T86X0l$Vh5N#MnVE=t^ΆrvOGN'] x>C?q~s:0TþĈ'Gج` 7ɩ""gf FTԂ۞3%w]_&Ǝ溭Hdp{Jf:{:YІJ'!iH 8n{Us@S-tۣy&fصնDyL%^w8H+OE\MH ތ93g&PU"ak` s1A|g 8tB?%74NU HS?ƟBhzzuGyrfFP,ى%=c1ިȿL&1\YYM(; 4o92N^7̸AA'f+=^eqδ&jG $&\ ym2n>lJgmGͰq{UU"ތ .5[vWe ԣdt"TAΪsnkd2 hCgt#Zۋ!r5)I^YE n 3$ν9 /i[rE&Utu|Gn5vq2IΗ@~x)=2ΰ= iv{]zuA,eVڄY>CL˛& U m8vC|&,wLp~p`s? =@/{}M#no +жT.2y:0X(MM mYh?nM'F=6P]~4)̰y3y>byhs^f 1T|!$íI8ai(^:Xn^QmTaJcGVd#9OypŤ٧m`). 4-8MI |kPK IL ,backtester/timeRule/quant_quest_time_rule.pyVQO0~=TIՒJQ i`{L| ~w^R$a}wB#u?fh'tQZ>2Q1q< G9g֏GW㑠+nXӣ-GB*9VNJ/ͥ⺒Ўʹv 67CE*-K+p$BY+Xbptbsг#~As E/GōnR~W~:rגR6am ^/vLLD>Ir]{K#Ce~`̫=;ɱXH v,ew&Rq {M%jkLH֤hXb.׸*.`bz$/d: t*#($qyΏ!+&">,kh/e5E^[L-GPS >l|[q.6ZUp%&>pnzlGh9. E!+KvN#<HO!S VUC'@nåG0Jď$>){!s):tIWuV˝۞+4od0zwo8xUx7[" *Dlei5*AGaT<:] =UX_ kO$Iq4Q] !T`t.r~}6'˳Ǔ/i]e,Mܪ}^sz֐0q4[eL PKLPP\ backtester/timeRule/time_rule.py51 Н;0\ @$WR".ԎitH:ָOFqUG 3U6ҵ "/ּPKŌLG6Y##backtester/timeRule/us_time_rule.pyQn Ę6MKwxngCeȒX}ny5#çt`Fx3c8~ŏ-d@pH)Y ЎV$82:jUugjxف/U'KR_u=@|{o04G$zDy=jg^M}eq41Xm]b~i4,mQ|u(UXgg\,欽aߖWdFhfD_+ 9N M֠ʳoPKԽLs̄ ,auquan_toolbox-2.1.2.dist-info/top_level.txtKJL.I-.I-PKԽL&aa$auquan_toolbox-2.1.2.dist-info/WHEEL HM K-*ϳR03rOK-J,/RHJ,./)R0363 /, (-JLR()*M ILR(4KM̫PKԽL1+:'auquan_toolbox-2.1.2.dist-info/METADATAeMK@+z lӞ,*XA[Oid3+߻XĒkG Olc0iz2\0hu[*ڍ1_ lep3 E.&F`(4Zb0@$R_9z ZuIlkeGEN11M3`1>8^mOk>\l&֏@g9O.i(>-`qqonaJiދ' f) i`PKԽLŖ 4?(%auquan_toolbox-2.1.2.dist-info/RECORDZGH9OD,+F p{GVwOgVIYJ !o&vǦ)f???l\xh> cTC -D&{;b -B"BA_YE%*=0ϜܠrZbI`fb?!́"~=6[FsT1h.b Yupk:fmC\1J].|/(h?h(%&P^n\+7rLءHk!'D~ zz>ɐ! ѰCWVmSѱAM9M8ľYAn\Ē.b/@CE1JF3 +g3YhL@l_b?UѾJlzkXJMܠsQxZ*ɭ9)PзW{I=NU*>>!oي18@8 5H$_ [uDr;Բ<*CeWPTZD4~{]ls X!T;ؑB@O➹[k/UF^_guD Q6HJEX$bSj,2`!U?ÏG]Ko-GFHNe+ HsLaG*Ha~2 -L7t82HB82 `2vnINaq@ yݺVȤv6dנ? P{cbe ;ٝ5'tws\{W9tDŽ^[+LwvGEr<q87eV@޹{a^/hOɁw{O4M%|̝>opAheF5]䋿n3Dߑ-"޲ `% ئ[h']k8>+o#1܉mDXj3oY05Oe>I[a{ȏ|4=Wϙ5O.bBOg=v50dtiTߥ+o FmFqCeTAF'@(iҦyq? 0[G *Ļ~ҶPu@$_85 hjGy}k%je'x*H"h^q^L{ ķT/#f<' agfjYPm|E'7Cn} {{}zg=r[m$Q+6[HnN:@︲;k##d_ɢ&fayŔ-;f!#ek,NJ \L FF9]].YIdxao2f-5 )ING|IXvFrs}ϳWN??7C]OƖBhmtժ#Rv]#nկ >J* Si;ǃc% b~IC8#֫c菁{ I_?G^7 ͘Nr L@T!u'U{~YjL5%u —gh ,<* ߔ>vEtx(m`p 7Mn f}eSs~KS6W24ϓ5RX8;=,PMm #ZoGYO\N tb̌^DTD U [!?6 :_ig`/mޕ<,o;%9QE4H$h r(_u~"b<(v )+^go#A٩߷ WAQHG<\W>7ēfh7+.F5TJ= >8.TຨP:jh^Pj&D\H .;xuk4Rٽ<QhS1yat`>{"oLqG>J1G Z@[tYe`XhJgY^0g:lޮhzo@<91|u50 DkV!]yɫKnYZ}IӚ[#Xʼ?exgC^S 4?@c%ԹrtrD9(}c^G牀rw`I+'}ҏ^%(bLkRWSǓ&Qۼ^; o}? סD(({=X=刖v cFTA\d k6'&H/W]gQ,`( 6˫@=MbϘmQ/ضDqSzsUէuOY8C╖:ssBDW;5}h$䕢fPdV!9roq[\d{ـ7So AܰSRULg^Eݨ:JSbzɁ߹OOaL$,;R;ܴR~Pk yv#^#ث FS=OH$0`e*H!8b_>d[}^MTju ڦη6$#ZUC/,?YUG{H%c` Șb&%yS0B]=(Z-O'쭐B4s1ykwcż͂IǸ)1؀v>^(` (̪ë<%n&>+ 7m3d?z?'/ȭrhlY%;289< vpM9޼nFNrvo923gr80&z.^5FbF*GrrPuN&-nW@5 %Я#RDfa{zl9U`J S~Ib4oHè/@[ZmB0Vrgo`e"ZSiŚ?uGrhtFGo>8EW@ofa:?) Ys<+]{nw e%m{w;'O$o}؜ZټɬK=C2\[jYne~rrﰾQ}V$z;J>;=v󃑲0n&bJ&nMd5Vںnx{4*Җ?"͇zc$ު jŦSon)̥3zS ?)ުxMzU!K9!^b%2m!S~,וL.eF'V 5"f:G؊ :B2 Hw4z\~jn6"a}^~Cմ?w_ \;(So i'!n 4]vB¿a&(% ûZTbG̦a d'UI|gQf %tM֭1S} 48w J D^ͫǨQs,xX'̻)Bbpן[u(B8 *JzD1.UU|D{my +b8OqSM >A:ZK|D]!/QYɽRg43)r7r誂NB%oӇQ+Mx<1ȹ1qdieh:6@JkpgZm4%naJ[,;O_D8 9ƒj#&~eI:)}"0-_*mٟgPkS X[tTk1<^ ˮJ8QԿl̪Hʗ:Kʑx^%8hycBT[&AXVw =+>ZDA ꐲ`@3:;O =]E9oYm+tKixxAK5HM?K& @ 1’backtester/executionSystem/QQ_execution_system.pyPKeLN;M&Җbacktester/executionSystem/__init__.pyPK88K:&3cbacktester/executionSystem/base_execution_system.pyPK eLz%y4backtester/executionSystem/basis_execution_system.pyPK eL*Yv;3backtester/executionSystem/pair_execution_system.pyPK eL+95backtester/executionSystem/simple_execution_system.pyPK eL{jl?Sbacktester/executionSystem/simple_execution_system_fairvalue.pyPK98K Jbacktester/features/__init__.pyPK);K W%backtester/features/argmax_feature.pyPK);Kdݧ?%{backtester/features/argmin_feature.pyPK88K .Ubacktester/features/bollinger_bands_feature.pyPK#TLX4N#4backtester/features/bollinger_bands_lower_feature.pyPK#TLEP#40backtester/features/bollinger_bands_upper_feature.pyPK eL#6&Ҵbacktester/features/capital_feature.pyPK88KD})Lbacktester/features/count_loss_feature.pyPK88K#&+Xbacktester/features/count_profit_feature.pyPKhLʂ7:hbacktester/features/crossInstrument_correlation_feature.pyPK88Kzmkc3backtester/features/crossSectionMomentum_feature.pyPK88K' o$backtester/features/delay_feature.pyPK88KSD)vbacktester/features/difference_feature.pyPK88Kq(Ibacktester/features/direction_feature.pyPK88K1 1%backtester/features/exp_moving_average_feature.pyPK eL{ֹbacktester/features/feature.pyPK88K8u( %backtester/features/feature_config.pyPK IL*#Abacktester/features/fees_feature.pyPK88K7yYљ} 1:backtester/features/ma_ribbon_distance_feature.pyPK<8K$|$#"backtester/features/macd_feature.pyPK88K:*backtester/features/maxDrawdown_feature.pyPK88K:UŊ.backtester/features/maxcapitalusage_feature.pyPK88Ko'backtester/features/momentum_feature.pyPK eLޗ@Xb-backtester/features/moving_average_feature.pyPK88KiʒB)Wbacktester/features/moving_correlation.pyPK88K!backtester/features/moving_max.pyPK88KSf~!kbacktester/features/moving_min.pyPK2]LZT;+E*backtester/features/moving_sdev_feature.pyPK88Km !+backtester/features/moving_sum.pyPK88K.wbacktester/features/portfolio_value_feature.pyPK88KI : X2backtester/features/position_instrument_feature.pyPKjLn5n)backtester/features/profitloss_feature.pyPK88K/6#backtester/features/rank_feature.pyPKdLaB$backtester/features/ratio_feature.pyPK#TLi"backtester/features/rsi_feature.pyPK);K׳5v$ backtester/features/scale_feature.pyPK88K3 <.backtester/features/score_fairvalue_feature.pyPK'TLQ ,backtester/features/score_logloss_feature.pyPK);Kc: %backtester/features/score_problem1.pyPK88K5>y)backtester/features/score_rank_feature.pyPK88KF EW)backtester/features/total_loss_feature.pyPK88KC +backtester/features/total_profit_feature.pyPK88Koi߀' 'backtester/features/variance_feature.pyPK88K])backtester/features/vwap_price_feature.pyPKa4K4/(~backtester/instrumentUpdates/__init__.pyPKa4K:)8Nbacktester/instrumentUpdates/future_instrument_update.pyPKa4K 1Gbacktester/instrumentUpdates/instrument_update.pyPKa4K.8<backtester/instrumentUpdates/option_instrument_update.pyPKa4K3VW7T backtester/instrumentUpdates/stock_instrument_update.pyPKa4KL|" backtester/instruments/__init__.pyPKa4K"X!"+ backtester/instruments/future_instrument.pyPK IL^$) backtester/instruments/instrument.pyPKa4KR* Xa+[backtester/instruments/option_instrument.pyPKa4Ki" *backtester/instruments/stock_instrument.pyPKa4K Tl backtester/metrics/__init__.pyPK'LNOE%bbacktester/metrics/metrics.pyPKa4KrB2="backtester/orderPlacer/__init__.pyPKmLu2^backtester/orderPlacer/backtesting_order_placer.pyPK IL*c+Obacktester/orderPlacer/base_order_placer.pyPKa4Ka8>% backtester/sample_scripts/__init__.pyPK'L}{Y ?.!backtester/sample_scripts/fair_value_params.pyPK eLAvMX $.6I/backtester/sample_scripts/feature_prediction_params.pyPK*DLps=g;backtester/timeRule/__init__.pyPKƌL[F | '<backtester/timeRule/custom_time_rule.pyPKŒLbfyi$`?backtester/timeRule/nse_time_rule.pyPK IL , Cbacktester/timeRule/quant_quest_time_rule.pyPKLPP\ eFbacktester/timeRule/time_rule.pyPKŌLG6Y##Fbacktester/timeRule/us_time_rule.pyPKԽLs̄ ,WHauquan_toolbox-2.1.2.dist-info/top_level.txtPKԽL&aa$Hauquan_toolbox-2.1.2.dist-info/WHEELPKԽL1+:'QIauquan_toolbox-2.1.2.dist-info/METADATAPKԽLŖ 4?(%vJauquan_toolbox-2.1.2.dist-info/RECORDPKjj#]