From eba41217081f8a985cd28a307e9a6c667e92d8a5 Mon Sep 17 00:00:00 2001 From: zhaoli Date: Tue, 18 Aug 2026 14:03:47 +0000 Subject: [PATCH] finish experiment 25 (exp/25-test-the-clean-data-hypothesis-that-addi) --- code/MANIFEST.txt | 16 ++++------------ .../__pycache__/__init__.cpython-312.pyc | Bin 374 -> 0 bytes .../data/__pycache__/__init__.cpython-312.pyc | Bin 216 -> 0 bytes .../data/__pycache__/handler.cpython-312.pyc | Bin 11073 -> 0 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 319 -> 0 bytes .../__pycache__/rank_ensemble.cpython-312.pyc | Bin 9461 -> 0 bytes .../__pycache__/rank_gbdt.cpython-312.pyc | Bin 9838 -> 0 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 234 -> 0 bytes .../__pycache__/optimal_stop.cpython-312.pyc | Bin 10428 -> 0 bytes .../data/__pycache__/__init__.cpython-312.pyc | Bin 522 -> 522 bytes .../data/__pycache__/config.cpython-312.pyc | Bin 11464 -> 11464 bytes .../__pycache__/providers.cpython-312.pyc | Bin 13340 -> 13340 bytes 12 files changed, 4 insertions(+), 12 deletions(-) delete mode 100644 code/tac-qlib/tac_qlib/contrib/__pycache__/__init__.cpython-312.pyc delete mode 100644 code/tac-qlib/tac_qlib/contrib/data/__pycache__/__init__.cpython-312.pyc delete mode 100644 code/tac-qlib/tac_qlib/contrib/data/__pycache__/handler.cpython-312.pyc delete mode 100644 code/tac-qlib/tac_qlib/contrib/model/__pycache__/__init__.cpython-312.pyc delete mode 100644 code/tac-qlib/tac_qlib/contrib/model/__pycache__/rank_ensemble.cpython-312.pyc delete mode 100644 code/tac-qlib/tac_qlib/contrib/model/__pycache__/rank_gbdt.cpython-312.pyc delete mode 100644 code/tac-qlib/tac_qlib/contrib/strategy/__pycache__/__init__.cpython-312.pyc delete mode 100644 code/tac-qlib/tac_qlib/contrib/strategy/__pycache__/optimal_stop.cpython-312.pyc diff --git a/code/MANIFEST.txt b/code/MANIFEST.txt index ea4a6da..2dded26 100644 --- a/code/MANIFEST.txt +++ b/code/MANIFEST.txt @@ -1,27 +1,19 @@ # TradeAC custom-qlib-code snapshot (auto-generated) -# parent repo HEAD : c724682f3af1b2f4289fd45ab429de592ee3d93f +# parent repo HEAD : 93cb283ef322fefcf7f583168eec5648dc95d858 # tac-qlib/tac_qlib/contrib # tac-qlib/tac_qlib/data # per-file hashes (git hash-object): 1b6298c4a5652f2e863cbdc385a1014a570fcd59 tac-qlib/tac_qlib/contrib/__init__.py - c0374de49f3939fe9e2c5c7e0df59891807e6984 tac-qlib/tac_qlib/contrib/__pycache__/__init__.cpython-312.pyc c76a9f17f680e74eea766eff27f7624359749ed6 tac-qlib/tac_qlib/contrib/data/__init__.py - 1323d8149a1168c900b93f17d66ed2c12ebfe18a tac-qlib/tac_qlib/contrib/data/__pycache__/__init__.cpython-312.pyc - f5e606116e3586a071bc86aa0b2a5452c11670a9 tac-qlib/tac_qlib/contrib/data/__pycache__/handler.cpython-312.pyc 0dd25ef161c6e0f15eafc84886e7e1381deb38c3 tac-qlib/tac_qlib/contrib/data/handler.py b151d139a0dcde87d74b21e7c4b729176ba5c39b tac-qlib/tac_qlib/contrib/model/__init__.py - 41e301342c3b8177a97559be3c7bb87e25ab274b tac-qlib/tac_qlib/contrib/model/__pycache__/__init__.cpython-312.pyc - 7a1633e4e4b761df1529ad93ac2928ce47279639 tac-qlib/tac_qlib/contrib/model/__pycache__/rank_ensemble.cpython-312.pyc - f5a18cd075aed5a63bbbb57f9f2d83f8da33a7bd tac-qlib/tac_qlib/contrib/model/__pycache__/rank_gbdt.cpython-312.pyc d3f051f3a8650c42fedc7b367b966f7c74fb5789 tac-qlib/tac_qlib/contrib/model/rank_ensemble.py ccfe7d554989aa7f3e5a2128ae663e51b2207149 tac-qlib/tac_qlib/contrib/model/rank_gbdt.py 4afcf9058231111c412925f4c4b84e81d656db87 tac-qlib/tac_qlib/contrib/strategy/__init__.py - 26be00d7a38a16509ee25daeea913389c186dca4 tac-qlib/tac_qlib/contrib/strategy/__pycache__/__init__.cpython-312.pyc - 4ce62fa5e9917612966bfb3337543f2df9596f81 tac-qlib/tac_qlib/contrib/strategy/__pycache__/optimal_stop.cpython-312.pyc 79aaad9e39fcc740a773f4f63c512ce1086cfde0 tac-qlib/tac_qlib/contrib/strategy/optimal_stop.py 92e6e90eb0cd0a25142034560f27adb6b705b1a8 tac-qlib/tac_qlib/data/__init__.py - 5dac7b4c70a0f5ce3460e5761fa3366a530ecf99 tac-qlib/tac_qlib/data/__pycache__/__init__.cpython-312.pyc - 1954e4e4c183d8f6f2d82273f7884d63c49292af tac-qlib/tac_qlib/data/__pycache__/config.cpython-312.pyc - 78786b3a3b27d5accf794b7a5beb4268ea82a7c4 tac-qlib/tac_qlib/data/__pycache__/providers.cpython-312.pyc + 3cbc0686e6f863d306d93c589a607a5bdb7201f2 tac-qlib/tac_qlib/data/__pycache__/__init__.cpython-312.pyc + 46bcdbcc173ff3a6281fed33d10c1bcac96876b0 tac-qlib/tac_qlib/data/__pycache__/config.cpython-312.pyc + 6df4f88af22ab4c026c14ef1835f2e630cdf850c tac-qlib/tac_qlib/data/__pycache__/providers.cpython-312.pyc 53c9007a928841fd3c3b08450f9a6520ce1ac091 tac-qlib/tac_qlib/data/config.py 8d0644f6f0d1efb94798ed444cc73e63b643459b tac-qlib/tac_qlib/data/providers.py diff --git a/code/tac-qlib/tac_qlib/contrib/__pycache__/__init__.cpython-312.pyc b/code/tac-qlib/tac_qlib/contrib/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index c0374de49f3939fe9e2c5c7e0df59891807e6984..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 374 zcmY+9Jx&8L5QWD-`=dZoqy-8JBo+yB0fYo804ab(sN7g4yNVX<-Ni9Q%1GRSo{m#+ z0B*3-ih_y`k&cS-3JRup`rf>;$A0a0JAn1F^>8yL0Po)X75#_D9nYLq zE}PCV>RcTTPgIfW%%baEs^a!^I66K$^OM-=UsNtPN{?Mx4a>sWQYXxYc(0AT#3<)U zT!Uraaxa0G|08uIrP5l;XINqi-#Y_URRgCcyLURj_8?oB_#N1gGB0u`w=j?Ny5c_}%mMMca&AwNy#TkIJ~0=L-X;}dgo;^S8`d7ehzB#0^YcoIfC4FrC5ig+@tJvui+AWXvKO%f#Q-*7HDdq( diff --git a/code/tac-qlib/tac_qlib/contrib/data/__pycache__/handler.cpython-312.pyc b/code/tac-qlib/tac_qlib/contrib/data/__pycache__/handler.cpython-312.pyc deleted file mode 100644 index f5e606116e3586a071bc86aa0b2a5452c11670a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11073 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�+IzKkGVqX;23Rcl$lhBXbjIcZB>)gz>L z1SAb0Mo?~b+^!Y3dh81FHqzpf^zAW6wM z61~klmxm)qhEBweop|if(8$PRCr0Wu!$X57A`LYv#k_RKvC*fF4aEjkf{YAM>R#Y; z#8~01j^|{Rj1iL$^<~PvLYQ9=KxaZ|ef&vxdMGbTxyQyLbhFuS;uM*j-lzf{K zcAg|N2K#TO99u1|TSrib#gv%eWNb?>l{@b7_NHQ{By?7Mo!2(rXf1UQmW6}MHmgzX<<>{|5*PfidEi{rr}iKpxV38s zzv0#iej6Vw1vW1Q?kETDxW(b?R)ml9{Nwzku3H?-d^&99Jcs#nj%6>mDO}>3-{(5m GO8+0h1uW|T diff --git a/code/tac-qlib/tac_qlib/contrib/model/__pycache__/__init__.cpython-312.pyc b/code/tac-qlib/tac_qlib/contrib/model/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 41e301342c3b8177a97559be3c7bb87e25ab274b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 319 zcmX@j%ge<81p8H6vQ7c%#~=<2FhLogHGqui3@HpLj5!Rsj8Tk?AU0DDQ!aB9b1q91 z3nN21LkjaE#wgZG7ERWdj6mg@jJL#s67#Y>on7;aQ*)DYQhnT=eDhOMb2OQ5@j+x@ zBDZ*ofGRVSqzEXG3v!Zve0*kJW=VX! uUP0w84jZ6YX-=wL5f9J+kY9=gfW!x8Mn=ZF42Jg^j305iHL@3h!VLiD!c*`7 diff --git a/code/tac-qlib/tac_qlib/contrib/model/__pycache__/rank_ensemble.cpython-312.pyc b/code/tac-qlib/tac_qlib/contrib/model/__pycache__/rank_ensemble.cpython-312.pyc deleted file mode 100644 index 7a1633e4e4b761df1529ad93ac2928ce47279639..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9461 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 diff --git a/code/tac-qlib/tac_qlib/contrib/strategy/__pycache__/__init__.cpython-312.pyc b/code/tac-qlib/tac_qlib/contrib/strategy/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 26be00d7a38a16509ee25daeea913389c186dca4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 234 zcmX@j%ge<81p8H6vSNYsV-N=hn4pZ$VnD`ph7^Vr#vF!R#wbQch7_iB#weyrW=)ot zj6g|E##=)E1tpoei8;X~`327Tc_l^pIYrDsDL+l-TRiy?x%gtBBv|wodwhIiPELIM zN`}uMTYeeqCl(awmn0_Z7UpCoff(^%Ml#4Kpg?g+QDRAIdZm7Rd}dx|NqoFsLFFwD ro80`A(wtPgB2J(gAcqtS0ErLGjEszT8FU_S%U|G9Xk;&92MPiJx0XH5 diff --git a/code/tac-qlib/tac_qlib/contrib/strategy/__pycache__/optimal_stop.cpython-312.pyc b/code/tac-qlib/tac_qlib/contrib/strategy/__pycache__/optimal_stop.cpython-312.pyc deleted file mode 100644 index 4ce62fa5e9917612966bfb3337543f2df9596f81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10428 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 delta 18 YcmeBT>0;qJ&CAQh00jG07jiKH0410MrvLx| diff --git a/code/tac-qlib/tac_qlib/data/__pycache__/config.cpython-312.pyc b/code/tac-qlib/tac_qlib/data/__pycache__/config.cpython-312.pyc index 1954e4e4c183d8f6f2d82273f7884d63c49292af..46bcdbcc173ff3a6281fed33d10c1bcac96876b0 100644 GIT binary patch delta 19 ZcmX>Rc_NbQG%qg~0}vc{-^jI32LM0+1@8a= delta 19 ZcmX>Rc_NbQG%qg~0}$+2-N?012LL}M1;qdW diff --git a/code/tac-qlib/tac_qlib/data/__pycache__/providers.cpython-312.pyc b/code/tac-qlib/tac_qlib/data/__pycache__/providers.cpython-312.pyc index 78786b3a3b27d5accf794b7a5beb4268ea82a7c4..6df4f88af22ab4c026c14ef1835f2e630cdf850c 100644 GIT binary patch delta 19 ZcmbP}F(-rTG%qg~0}vc{-^e9o0suOF1rY!M delta 19 ZcmbP}F(-rTG%qg~0}$+2-N+?m0suLq1m^$%