From ab919245c2f3d6881cd6e16e77e583bbb6d5b000 Mon Sep 17 00:00:00 2001 From: zhaoli Date: Tue, 18 Aug 2026 01:14:24 +0000 Subject: [PATCH] start experiment 21 (exp/21-clean-lake-re-execution-of-the-tac-rd-ra) --- code/MANIFEST.txt | 19 +++++++++++------- .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 374 bytes .../data/__pycache__/__init__.cpython-312.pyc | Bin 0 -> 216 bytes .../data/__pycache__/handler.cpython-312.pyc | Bin 0 -> 10154 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 319 bytes .../__pycache__/rank_ensemble.cpython-312.pyc | Bin 0 -> 9461 bytes .../__pycache__/rank_gbdt.cpython-312.pyc | Bin 0 -> 9838 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 234 bytes .../__pycache__/optimal_stop.cpython-312.pyc | Bin 0 -> 10428 bytes .../data/__pycache__/__init__.cpython-312.pyc | Bin 522 -> 522 bytes .../data/__pycache__/config.cpython-312.pyc | Bin 9752 -> 9752 bytes .../__pycache__/providers.cpython-312.pyc | Bin 13488 -> 13488 bytes 12 files changed, 12 insertions(+), 7 deletions(-) create mode 100644 code/tac-qlib/tac_qlib/contrib/__pycache__/__init__.cpython-312.pyc create mode 100644 code/tac-qlib/tac_qlib/contrib/data/__pycache__/__init__.cpython-312.pyc create mode 100644 code/tac-qlib/tac_qlib/contrib/data/__pycache__/handler.cpython-312.pyc create mode 100644 code/tac-qlib/tac_qlib/contrib/model/__pycache__/__init__.cpython-312.pyc create mode 100644 code/tac-qlib/tac_qlib/contrib/model/__pycache__/rank_ensemble.cpython-312.pyc create mode 100644 code/tac-qlib/tac_qlib/contrib/model/__pycache__/rank_gbdt.cpython-312.pyc create mode 100644 code/tac-qlib/tac_qlib/contrib/strategy/__pycache__/__init__.cpython-312.pyc create 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 bbcf811..409e715 100644 --- a/code/MANIFEST.txt +++ b/code/MANIFEST.txt @@ -1,22 +1,27 @@ # TradeAC custom-qlib-code snapshot (auto-generated) -# parent repo HEAD : HEAD -unknown -# parent repo date : unknown -# copied paths: +# parent repo HEAD : 2c2684b103198ce529e71c078a9a93e04f6b113d # tac-qlib/tac_qlib/contrib # tac-qlib/tac_qlib/data # per-file hashes (git hash-object): 1b6298c4a5652f2e863cbdc385a1014a570fcd59 tac-qlib/tac_qlib/contrib/__init__.py + bb903ca28c70ae5802d673d5b85481679f58c286 tac-qlib/tac_qlib/contrib/__pycache__/__init__.cpython-312.pyc c76a9f17f680e74eea766eff27f7624359749ed6 tac-qlib/tac_qlib/contrib/data/__init__.py + 9749bb730880371ea7bf9bf0c5ffd78fcf6b5a91 tac-qlib/tac_qlib/contrib/data/__pycache__/__init__.cpython-312.pyc + 9eb94cfac5d41ae20acb12612c219f210d463ab4 tac-qlib/tac_qlib/contrib/data/__pycache__/handler.cpython-312.pyc 871ff1e163c29261f140c3f53d42a41e6504c779 tac-qlib/tac_qlib/contrib/data/handler.py b151d139a0dcde87d74b21e7c4b729176ba5c39b tac-qlib/tac_qlib/contrib/model/__init__.py + d209c3e3e8c2a8683cd337ff3b10c04015f16dc6 tac-qlib/tac_qlib/contrib/model/__pycache__/__init__.cpython-312.pyc + 532527ebe81b269f723c806286122fb5483d0379 tac-qlib/tac_qlib/contrib/model/__pycache__/rank_ensemble.cpython-312.pyc + 1681c9bc021188c0f134e33e6402f521a9d46e9c 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 + a6fb3d6c2d111b7ad423939582df67aacb36fead tac-qlib/tac_qlib/contrib/strategy/__pycache__/__init__.cpython-312.pyc + 44ed28758151eb7fa4d388646cb1c6f04b450d8c 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 - 6d5b9cca6970261fed1f633f6b588ec3e2b399bb tac-qlib/tac_qlib/data/__pycache__/__init__.cpython-312.pyc - ba4f5d1741728ad1e364e537c7b50488e9112b9f tac-qlib/tac_qlib/data/__pycache__/config.cpython-312.pyc - 608c88f0f45378b170bddb5b301cb32fad9abb35 tac-qlib/tac_qlib/data/__pycache__/providers.cpython-312.pyc + 319e3f728b093d6c483eb29de42617a45ee88830 tac-qlib/tac_qlib/data/__pycache__/__init__.cpython-312.pyc + 08a7dcbcf3f34bdb784d3b16c04daf265d04ae5f tac-qlib/tac_qlib/data/__pycache__/config.cpython-312.pyc + 47337bd1e54b6e333f26a9088d645ed48fbc44f6 tac-qlib/tac_qlib/data/__pycache__/providers.cpython-312.pyc 686d36f6d101c547491ca866aa143aa542e17518 tac-qlib/tac_qlib/data/config.py d9f839be30026f337754a3f015425a8efdbe8e2a 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 new file mode 100644 index 0000000000000000000000000000000000000000..bb903ca28c70ae5802d673d5b85481679f58c286 GIT binary patch literal 374 zcmY+9y-ve06os#U@}ojKbOi=Bf&_g5gajP`senY8yjZ3QRlrVyYle;$55dlW#Ix`Q zks<~rHbgfjt|J(@!_jx{x%RbRyWI|8T|YnEj0wQIH-ANcVL3v0gcMSu!4N@+XNpV( zHB7M9GffN^yk)Mb2}ICxpqU9pNMH(S_(ViBkCONUcR@mGo+_sjS_h^~GhN3sXO+vQ zbBsEd2g74kq&lCu-U-Y7w0Q<5!qGDe*ko*S`h#M literal 0 HcmV?d00001 diff --git a/code/tac-qlib/tac_qlib/contrib/data/__pycache__/__init__.cpython-312.pyc b/code/tac-qlib/tac_qlib/contrib/data/__pycache__/__init__.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9749bb730880371ea7bf9bf0c5ffd78fcf6b5a91 GIT binary patch literal 216 zcmX@j%ge<81Zm5fv#fyhV-N=hn4pZ$VnD`ph7^Vr#vF!R#wbQch7_iB#weyrW=)ot zj6g|E##>w=j?Ny5c_}%mMMca&AwNy#TkIJ~0=L-X;}dgo;^S8`d7ehzB#0^YcoIfC4FrC5ig+@tJvui+AWXvKO%f#Q;^2HHrWL literal 0 HcmV?d00001 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 new file mode 100644 index 0000000000000000000000000000000000000000..9eb94cfac5d41ae20acb12612c219f210d463ab4 GIT binary patch literal 10154 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 literal 0 HcmV?d00001 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 new file mode 100644 index 0000000000000000000000000000000000000000..532527ebe81b269f723c806286122fb5483d0379 GIT binary patch literal 9461 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 y{5eY4mIKoDN=lSW@uYl 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 literal 0 HcmV?d00001 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 new file mode 100644 index 0000000000000000000000000000000000000000..a6fb3d6c2d111b7ad423939582df67aacb36fead GIT binary patch literal 234 zcmX@j%ge<81Zm5fvtohtV-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;&92MPiJ*@Zpz literal 0 HcmV?d00001 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 new file mode 100644 index 0000000000000000000000000000000000000000..44ed28758151eb7fa4d388646cb1c6f04b450d8c GIT binary patch literal 10428 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 literal 0 HcmV?d00001 diff --git a/code/tac-qlib/tac_qlib/data/__pycache__/__init__.cpython-312.pyc b/code/tac-qlib/tac_qlib/data/__pycache__/__init__.cpython-312.pyc index 6d5b9cca6970261fed1f633f6b588ec3e2b399bb..319e3f728b093d6c483eb29de42617a45ee88830 100644 GIT binary patch delta 20 acmeBT>0;qN&CAQh00e2vnm2O)X9NH-tp#EL delta 20 acmeBT>0;qN&CAQh00g~H>o;=$X9NH=Bn89( 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 ba4f5d1741728ad1e364e537c7b50488e9112b9f..08a7dcbcf3f34bdb784d3b16c04daf265d04ae5f 100644 GIT binary patch delta 20 acmbQ?GsB1bG%qg~0}!MwYu?Dss|El(A_YMJ delta 20 acmbQ?GsB1bG%qg~0}%8+t>4Jas|El*nFXT& 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 608c88f0f45378b170bddb5b301cb32fad9abb35..47337bd1e54b6e333f26a9088d645ed48fbc44f6 100644 GIT binary patch delta 20 acmdmxxgnGLG%qg~0}!MwYu?Dc)C2%U1O`z6 delta 20 acmdmxxgnGLG%qg~0}%8+t>4JK)C2%Wdj_)r