From 3107709d0594f85aecc7552903093937135a0cf3 Mon Sep 17 00:00:00 2001 From: zhaoli Date: Tue, 29 Sep 2026 12:20:02 +0000 Subject: [PATCH] start experiment 84 (exp/84-scheduled-retrain-for-d2026-09-28-round) --- code/MANIFEST.txt | 17 +++++++++++++---- .../__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 -> 21533 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 -> 12288 bytes .../__pycache__/__init__.cpython-312.pyc | Bin 0 -> 301 bytes .../__pycache__/long_short.cpython-312.pyc | Bin 0 -> 19672 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 11507 -> 11507 bytes .../__pycache__/providers.cpython-312.pyc | Bin 13340 -> 13340 bytes 13 files changed, 13 insertions(+), 4 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__/long_short.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 906bb1c..53fa320 100644 --- a/code/MANIFEST.txt +++ b/code/MANIFEST.txt @@ -1,25 +1,34 @@ # TradeAC custom-qlib-code snapshot (auto-generated) -# parent repo HEAD : 73b66a00f64e2675a0900de7e2bac88dc9b4e7be +# parent repo HEAD : 3ab4b3afefb6f8d44cbb41afa35370932ffc40d2 # tac-qlib/tac_qlib/contrib # tac-qlib/tac_qlib/data # per-file hashes (git hash-object): 1b6298c4a5652f2e863cbdc385a1014a570fcd59 tac-qlib/tac_qlib/contrib/__init__.py + d1a8ec0c9e6c38839e966f687b08ec412f87ec20 tac-qlib/tac_qlib/contrib/__pycache__/__init__.cpython-312.pyc 2224424d0ff193be4f55d1b791f8fce89439c5d2 tac-qlib/tac_qlib/contrib/backtest/__init__.py 0bf40dee440ddbded357d7bbb4efc67c62c4b084 tac-qlib/tac_qlib/contrib/backtest/tradeac_exchange.py c76a9f17f680e74eea766eff27f7624359749ed6 tac-qlib/tac_qlib/contrib/data/__init__.py + c1543fabfc22e07c7e9942015c4462f84acc1e91 tac-qlib/tac_qlib/contrib/data/__pycache__/__init__.cpython-312.pyc + 89f5cfc15b946b6ea1fb7724f021024967cdb6c5 tac-qlib/tac_qlib/contrib/data/__pycache__/handler.cpython-312.pyc 3bba0f1696e4ab4b3deebec3f31f269b2e713899 tac-qlib/tac_qlib/contrib/data/handler.py b151d139a0dcde87d74b21e7c4b729176ba5c39b tac-qlib/tac_qlib/contrib/model/__init__.py + f4e9bf0a78d22e256cade0d794a6958aaa7c6721 tac-qlib/tac_qlib/contrib/model/__pycache__/__init__.cpython-312.pyc + c35c166a8449c14fa3cd4972c363d3d9d58620ef tac-qlib/tac_qlib/contrib/model/__pycache__/rank_ensemble.cpython-312.pyc + 98be60fe19fedb3d9cb21c3f91ef0e176bd93287 tac-qlib/tac_qlib/contrib/model/__pycache__/rank_gbdt.cpython-312.pyc d3f051f3a8650c42fedc7b367b966f7c74fb5789 tac-qlib/tac_qlib/contrib/model/rank_ensemble.py d03e6611338918d4aac5eea4adf26f85a3763652 tac-qlib/tac_qlib/contrib/model/rank_gbdt.py 184f80da8edf944bad3c8fb4d4d3d189bf4f082b tac-qlib/tac_qlib/contrib/strategy/__init__.py + 69684c9c9624cb16c63f3a18a864c49a7db37fa9 tac-qlib/tac_qlib/contrib/strategy/__pycache__/__init__.cpython-312.pyc + 4d3a5433e57e65e5dc96c6d2999f9d473b696dc4 tac-qlib/tac_qlib/contrib/strategy/__pycache__/long_short.cpython-312.pyc + 53e72f512b47207a5292a918efef7fee162deef3 tac-qlib/tac_qlib/contrib/strategy/__pycache__/optimal_stop.cpython-312.pyc 896ef74ae47bcd1ed388e1e5d9c8d70c28097fe9 tac-qlib/tac_qlib/contrib/strategy/kelly_dropout.py 9090fc6dfbd339f2f4df4b0c9b87f400ecb5c9d5 tac-qlib/tac_qlib/contrib/strategy/long_short.py 79aaad9e39fcc740a773f4f63c512ce1086cfde0 tac-qlib/tac_qlib/contrib/strategy/optimal_stop.py 5b9acfb4340111b204249add7760bd53c6ae03f1 tac-qlib/tac_qlib/contrib/strategy/regime_gate.py 839abb89ad40cd516eabcfd91fe1be626b9f091f tac-qlib/tac_qlib/contrib/strategy/weekly_rebalance.py 92e6e90eb0cd0a25142034560f27adb6b705b1a8 tac-qlib/tac_qlib/data/__init__.py - 6963ba16f49411450562d381fd6ba89e4a7b3e28 tac-qlib/tac_qlib/data/__pycache__/__init__.cpython-312.pyc - fb3c8faf2701e3e2e5abf9a8958f2684783fbd74 tac-qlib/tac_qlib/data/__pycache__/config.cpython-312.pyc - 67cc6fa7b0fe0a87b1882dd736123ffead6a5163 tac-qlib/tac_qlib/data/__pycache__/providers.cpython-312.pyc + 0f1eb6f41d44bd9064b1f16f529dac6bb9d7c3fd tac-qlib/tac_qlib/data/__pycache__/__init__.cpython-312.pyc + cf99dd8a481f6e2d1f323f8d8d754730eadb357a tac-qlib/tac_qlib/data/__pycache__/config.cpython-312.pyc + ddac5bab6578399c0301390d71bae13511a56cb1 tac-qlib/tac_qlib/data/__pycache__/providers.cpython-312.pyc 1953fb2a6371525db7f7b0e1c9dfbf3492d82110 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 new file mode 100644 index 0000000000000000000000000000000000000000..d1a8ec0c9e6c38839e966f687b08ec412f87ec20 GIT binary patch literal 374 zcmY+9y-ve06os#U@}ojKbOi>s1_}BC2njj>QUQrFd9h3rRRKE*t{FP=6y4bvcoNn&~>8JF8qa zTVT|=Ivky-BGs8i*Sl23?dfQIe01g~vD3e(TyB(}xUw3Rg|nqjm<{n>8+nOQ&Xc$X z%e>`Y0x$nZ>PSkZwUke=!W6!DhN`NDPEB|3bbjqYwlMWOupwn$*lJ+2f$atcU!1SehsdsD{sXhPT0H;& 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..c1543fabfc22e07c7e9942015c4462f84acc1e91 GIT binary patch literal 216 zcmX@j%ge<81kW_qW?2F0#~=<2FhLog#ej_I3@HpLj5!Rsj8Tk?3@J?Mj8ROL%$h7O z8G(|TjJLQ#9GyK9^HOqBi;9?mLVlXex7ag~1a7g%$0z3G#K*5>_zW`mm%e^tL4kfr zVzO>wPG%B_5f5f0=jW9a0R>VLOA__t<1_OzOXB183My}L*yQG?l;)(`6>$RfgX}Hl a2NEBc85tSxGRQyR7Vpq&WG`X|iU9z5do{KI 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..89f5cfc15b946b6ea1fb7724f021024967cdb6c5 GIT binary patch literal 21533 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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..c35c166a8449c14fa3cd4972c363d3d9d58620ef GIT binary patch literal 9461 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 literal 0 HcmV?d00001 diff --git a/code/tac-qlib/tac_qlib/contrib/model/__pycache__/rank_gbdt.cpython-312.pyc b/code/tac-qlib/tac_qlib/contrib/model/__pycache__/rank_gbdt.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..98be60fe19fedb3d9cb21c3f91ef0e176bd93287 GIT binary patch literal 12288 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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..69684c9c9624cb16c63f3a18a864c49a7db37fa9 GIT binary patch literal 301 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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 6963ba16f49411450562d381fd6ba89e4a7b3e28..0f1eb6f41d44bd9064b1f16f529dac6bb9d7c3fd 100644 GIT binary patch delta 20 acmeBT>0;qN&CAQh00hr8)^6nf&j0;qN&CAQh00gtvFWbodpAi5v{sqDS 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 fb3c8faf2701e3e2e5abf9a8958f2684783fbd74..cf99dd8a481f6e2d1f323f8d8d754730eadb357a 100644 GIT binary patch delta 20 acmewy`8ksNG%qg~0}wpZSi6z?g$@8tk_R3D delta 20 acmewy`8ksNG%qg~0}#wwzicD-3mpJYg$Ggq 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 67cc6fa7b0fe0a87b1882dd736123ffead6a5163..ddac5bab6578399c0301390d71bae13511a56cb1 100644 GIT binary patch delta 20 acmbP}F(-rjG%qg~0}wpZSi6y1&;$TN9tFPu delta 20 acmbP}F(-rjG%qg~0}#wwzicD7pa}p&5e4%A