原以为浪费在 add_indicators 算了太多用不到的指标,实测它只占全量构建的 1.3%——talib 是向量化 C 代码,便宜。真正的两处: cal_kl_data 占 96%:每根 K 线 df.iloc[i] 新建一个 40 列 Series,再在其上做 几十次逐键查找。改为预取 ndarray 后 2 万根 1946ms → 824ms。 ChanKLC.cal_all_ema_status 占 25%:每次合并 KLU 都立即重算,而它产出的 ema_status / ema52_pos / ema52_status 全仓无任何读取方(含前端)。改为惰性 求值,保留属性形式以防将来有人读。顺带删掉 get_klc_list 里累加一整轮后直接 丢弃的 ema_up_list / ema_down_list。 另加 TF_DF(lean=True):只构建到中枢,跳过线段/走势中枢/MACD 状态机——这些 只服务 bsp_list 与 web 展示,笔和中枢不依赖。研究与实盘走这条快 3.6x。 结果 2 万根 5m:full 1946 → 754ms,lean → 543ms。 step46_engine_parity.py 是配套的安全网,改引擎前先跑一次 --save。它对 KLC 端点与分型、笔起止价与 is_sure、中枢 zg/zd/available_ts/阶梯、信号全部输出列, 以及 26 个被下游消费的 dataframe 列取哈希。本次三处改动逐步验证,另用 git stash 切回改动前代码在 20 万根 × 5 用例上做了跨版本逐位对拍,全部一致; 增量路径与 web API 也各验一遍。 Co-authored-by: Cursor <cursoragent@cursor.com>
487 lines
11 KiB
JSON
487 lines
11 KiB
JSON
{
|
|
"BTC_1m": {
|
|
"n_rows": 20000,
|
|
"n_klu": 20000,
|
|
"n_klc": 12496,
|
|
"n_bi": 913,
|
|
"n_seg": 131,
|
|
"n_bi_zs": 114,
|
|
"n_zs": 16,
|
|
"n_bsp": 0,
|
|
"klc_high": "986038d3e673336e",
|
|
"klc_low": "ee349f689ebfe387",
|
|
"klc_fx": "b323365a81e5e666",
|
|
"bi_start": "f829c2ce6845f569",
|
|
"bi_end": "f829c2ce6845f569",
|
|
"bi_sure": "64458b0f3100544e",
|
|
"n_zones": 114,
|
|
"zone_zg": "00c54276171344e0",
|
|
"zone_zd": "e0dcb978a1105305",
|
|
"zone_avail": "06d947c90bbab2f7",
|
|
"zone_ladder": "c6312a30d149c5b8",
|
|
"n_sig": 31,
|
|
"sig_entry_idx": "117daf6e8c55678c",
|
|
"sig_direction": "82ee301abc35d11b",
|
|
"sig_bo_idx": "37ffa946fad579ce",
|
|
"sig_pb_idx": "8552ade1f84eb3d3",
|
|
"sig_lag": "da1bcee041ab9685",
|
|
"sig_depth": "e0e60c3d319358e3",
|
|
"sig_zone_i": "434c25ef783c3d1d",
|
|
"col_open": "3197bbad7b435c9f",
|
|
"col_high": "41e4ad11f6f6d786",
|
|
"col_low": "c309926c23dfa574",
|
|
"col_close": "c48f76a626b629c6",
|
|
"col_volume": "07f9f254f17399a0",
|
|
"col_atr": "074464dfb5648113",
|
|
"col_macd": "135a69f5aa1df7dc",
|
|
"col_macdsignal": "62ce36e9da9f37ec",
|
|
"col_macdhist": "61ddcf3bb139bb81",
|
|
"col_ema5": "e0ea01077a59b84b",
|
|
"col_ema13": "ab9a31bbf5de8b57",
|
|
"col_ema24": "44e8e295560b85cf",
|
|
"col_ema26": "a710c87eeec607ea",
|
|
"col_ema52": "578454b2d9147d96",
|
|
"col_ema104": "36649911c3df0136",
|
|
"col_ema156": "bba5874bd409fa90",
|
|
"col_ema208": "a0bc2fa3e690681c",
|
|
"col_ema7": "e1e76d337b9139e4",
|
|
"col_rsi": "cc09f5884225b37f",
|
|
"col_volume_ratio": "2382df013004571f",
|
|
"col_bb2633upper": "85839e5a7bb36dc7",
|
|
"col_bb2633lower": "13861ca562994024",
|
|
"col_bb2633middle": "bf3c9bd564c2e8d7",
|
|
"col_bbp30": "d00623b2d18c6653",
|
|
"col_bbp120": "36dd361b5c618dcc",
|
|
"col_bbp365": "5cd3e7d640c7d5dd",
|
|
"_all_columns": [
|
|
"atr",
|
|
"bb2633lower",
|
|
"bb2633middle",
|
|
"bb2633upper",
|
|
"bblow120",
|
|
"bblow30",
|
|
"bblow302",
|
|
"bblow365",
|
|
"bbmiddle30",
|
|
"bbp120",
|
|
"bbp2633",
|
|
"bbp30",
|
|
"bbp302",
|
|
"bbp365",
|
|
"bbup120",
|
|
"bbup30",
|
|
"bbup302",
|
|
"bbup365",
|
|
"close",
|
|
"date",
|
|
"ema10",
|
|
"ema104",
|
|
"ema13",
|
|
"ema156",
|
|
"ema208",
|
|
"ema24",
|
|
"ema26",
|
|
"ema5",
|
|
"ema52",
|
|
"ema7",
|
|
"high",
|
|
"low",
|
|
"macd",
|
|
"macdhist",
|
|
"macdsignal",
|
|
"open",
|
|
"rsi",
|
|
"timestamp",
|
|
"volume",
|
|
"volume_ratio"
|
|
]
|
|
},
|
|
"BTC_5m": {
|
|
"n_rows": 20000,
|
|
"n_klu": 20000,
|
|
"n_klc": 14323,
|
|
"n_bi": 974,
|
|
"n_seg": 149,
|
|
"n_bi_zs": 115,
|
|
"n_zs": 15,
|
|
"n_bsp": 0,
|
|
"klc_high": "0d3d5dcb6be9d8cf",
|
|
"klc_low": "2ae0ce7158f99ee5",
|
|
"klc_fx": "db8c606c09803b39",
|
|
"bi_start": "eb36252ef42df30d",
|
|
"bi_end": "eb36252ef42df30d",
|
|
"bi_sure": "a61c15678945f9e1",
|
|
"n_zones": 115,
|
|
"zone_zg": "5eaa2f8f738c8566",
|
|
"zone_zd": "d48ee940dac1fdba",
|
|
"zone_avail": "bfc273ac2c80a856",
|
|
"zone_ladder": "822ab80c13164fcf",
|
|
"n_sig": 48,
|
|
"sig_entry_idx": "4ca6e0b3ad9650db",
|
|
"sig_direction": "74de66c775f3159f",
|
|
"sig_bo_idx": "020d83285f111211",
|
|
"sig_pb_idx": "c9d29e0e1cf23857",
|
|
"sig_lag": "630718fda8c18f8b",
|
|
"sig_depth": "cbe22a059a935417",
|
|
"sig_zone_i": "499d9a4ffc4e4fac",
|
|
"col_open": "da5240f8ff94b7d3",
|
|
"col_high": "c06a481db2faee01",
|
|
"col_low": "07108f56862e97f8",
|
|
"col_close": "878c50482e134764",
|
|
"col_volume": "e57b8dbfb3589a2a",
|
|
"col_atr": "2e57310f4bb4f259",
|
|
"col_macd": "807220fb465a46f1",
|
|
"col_macdsignal": "079fd0757f9a6040",
|
|
"col_macdhist": "2372736ddaa73786",
|
|
"col_ema5": "5f7cc824e469e468",
|
|
"col_ema13": "be17db658716e40f",
|
|
"col_ema24": "dae2098cf4b4a029",
|
|
"col_ema26": "1d6e667de928a8b4",
|
|
"col_ema52": "a9521436966fff79",
|
|
"col_ema104": "1d1373a8c3e48cd9",
|
|
"col_ema156": "679d2e502207f085",
|
|
"col_ema208": "8790e0e5c50bfbc3",
|
|
"col_ema7": "b631eeb99b06b174",
|
|
"col_rsi": "f1b3f6541bcefdc9",
|
|
"col_volume_ratio": "3db5f52fe7051017",
|
|
"col_bb2633upper": "cbd0d954047104f5",
|
|
"col_bb2633lower": "e1a83624de00b90c",
|
|
"col_bb2633middle": "a2a24306ccdc04c4",
|
|
"col_bbp30": "453235723fa5bc76",
|
|
"col_bbp120": "f67bad6c333f35b7",
|
|
"col_bbp365": "d68b613efed41cd6",
|
|
"_all_columns": [
|
|
"atr",
|
|
"bb2633lower",
|
|
"bb2633middle",
|
|
"bb2633upper",
|
|
"bblow120",
|
|
"bblow30",
|
|
"bblow302",
|
|
"bblow365",
|
|
"bbmiddle30",
|
|
"bbp120",
|
|
"bbp2633",
|
|
"bbp30",
|
|
"bbp302",
|
|
"bbp365",
|
|
"bbup120",
|
|
"bbup30",
|
|
"bbup302",
|
|
"bbup365",
|
|
"close",
|
|
"date",
|
|
"ema10",
|
|
"ema104",
|
|
"ema13",
|
|
"ema156",
|
|
"ema208",
|
|
"ema24",
|
|
"ema26",
|
|
"ema5",
|
|
"ema52",
|
|
"ema7",
|
|
"high",
|
|
"low",
|
|
"macd",
|
|
"macdhist",
|
|
"macdsignal",
|
|
"open",
|
|
"rsi",
|
|
"timestamp",
|
|
"volume",
|
|
"volume_ratio"
|
|
]
|
|
},
|
|
"ETH_5m": {
|
|
"n_rows": 20000,
|
|
"n_klu": 20000,
|
|
"n_klc": 14342,
|
|
"n_bi": 927,
|
|
"n_seg": 142,
|
|
"n_bi_zs": 100,
|
|
"n_zs": 15,
|
|
"n_bsp": 0,
|
|
"klc_high": "131ed2d2cc245008",
|
|
"klc_low": "d53c72dc569bbd4f",
|
|
"klc_fx": "ec3177b225143a7a",
|
|
"bi_start": "fb708274964722c2",
|
|
"bi_end": "fb708274964722c2",
|
|
"bi_sure": "b7b4cb502f2a0d70",
|
|
"n_zones": 100,
|
|
"zone_zg": "dca84f6a299fd1aa",
|
|
"zone_zd": "d462f78cc4b7538b",
|
|
"zone_avail": "b92e97fc130e310d",
|
|
"zone_ladder": "cfc5c84c6a6d90f2",
|
|
"n_sig": 42,
|
|
"sig_entry_idx": "82e50dda58170b06",
|
|
"sig_direction": "c7e63a0158b14ef2",
|
|
"sig_bo_idx": "d9c826c620ff6bf2",
|
|
"sig_pb_idx": "25340fc752a8143c",
|
|
"sig_lag": "a6fa56f9f5b5f367",
|
|
"sig_depth": "71d0776582fad395",
|
|
"sig_zone_i": "f87a3a29b6b26adb",
|
|
"col_open": "4875825277eb22d2",
|
|
"col_high": "efc10b5252481a18",
|
|
"col_low": "c2978c8eb3cdf78c",
|
|
"col_close": "e0bc2b374fa5b33d",
|
|
"col_volume": "f97c30ec4bb0ecf8",
|
|
"col_atr": "8d6f2061d285ad98",
|
|
"col_macd": "c8fc7f49467985ee",
|
|
"col_macdsignal": "b6af44d80ea485c1",
|
|
"col_macdhist": "fa854fe5a2055930",
|
|
"col_ema5": "c6f2736ca8f67a11",
|
|
"col_ema13": "2103d16e3db9dff7",
|
|
"col_ema24": "e72b6c1ac9118ebd",
|
|
"col_ema26": "a83023c8930a807d",
|
|
"col_ema52": "ce2971fa029ee7b7",
|
|
"col_ema104": "3cbe3efc7b6d8457",
|
|
"col_ema156": "84e140907ef54b4c",
|
|
"col_ema208": "e28316d21c6d29e7",
|
|
"col_ema7": "5bbf9ce6610e1574",
|
|
"col_rsi": "c4c6ff1145c88981",
|
|
"col_volume_ratio": "bfb7636b8d92fca1",
|
|
"col_bb2633upper": "f0068bec633e28d4",
|
|
"col_bb2633lower": "78936103ef228327",
|
|
"col_bb2633middle": "3b4a8fd306318760",
|
|
"col_bbp30": "225773d67ca05c7e",
|
|
"col_bbp120": "1084331d91660254",
|
|
"col_bbp365": "ea71e0285f2801ba",
|
|
"_all_columns": [
|
|
"atr",
|
|
"bb2633lower",
|
|
"bb2633middle",
|
|
"bb2633upper",
|
|
"bblow120",
|
|
"bblow30",
|
|
"bblow302",
|
|
"bblow365",
|
|
"bbmiddle30",
|
|
"bbp120",
|
|
"bbp2633",
|
|
"bbp30",
|
|
"bbp302",
|
|
"bbp365",
|
|
"bbup120",
|
|
"bbup30",
|
|
"bbup302",
|
|
"bbup365",
|
|
"close",
|
|
"date",
|
|
"ema10",
|
|
"ema104",
|
|
"ema13",
|
|
"ema156",
|
|
"ema208",
|
|
"ema24",
|
|
"ema26",
|
|
"ema5",
|
|
"ema52",
|
|
"ema7",
|
|
"high",
|
|
"low",
|
|
"macd",
|
|
"macdhist",
|
|
"macdsignal",
|
|
"open",
|
|
"rsi",
|
|
"timestamp",
|
|
"volume",
|
|
"volume_ratio"
|
|
]
|
|
},
|
|
"SOL_15m": {
|
|
"n_rows": 20000,
|
|
"n_klu": 20000,
|
|
"n_klc": 14051,
|
|
"n_bi": 894,
|
|
"n_seg": 131,
|
|
"n_bi_zs": 115,
|
|
"n_zs": 7,
|
|
"n_bsp": 0,
|
|
"klc_high": "6514126fb15a2495",
|
|
"klc_low": "1a95961cd8510b61",
|
|
"klc_fx": "39a6f1e8cbe15296",
|
|
"bi_start": "93d17db2c0726ad2",
|
|
"bi_end": "93d17db2c0726ad2",
|
|
"bi_sure": "72a7eeed9f203249",
|
|
"n_zones": 115,
|
|
"zone_zg": "bdddd8960357e2c2",
|
|
"zone_zd": "a72a80f2ec747fa9",
|
|
"zone_avail": "d6bec0bead4ca986",
|
|
"zone_ladder": "4bbd1a9e4080a3d4",
|
|
"n_sig": 33,
|
|
"sig_entry_idx": "57154349f7256bd5",
|
|
"sig_direction": "3456806b7f3f915a",
|
|
"sig_bo_idx": "d3a1e9433c85a1d0",
|
|
"sig_pb_idx": "7584cbbe94a65ea5",
|
|
"sig_lag": "0d9429413d5a72ba",
|
|
"sig_depth": "5fefacd49949cd9f",
|
|
"sig_zone_i": "99844be679dbc613",
|
|
"col_open": "0c38967f4d88ca2f",
|
|
"col_high": "9d506e4c74c1d73c",
|
|
"col_low": "416ac69aa8a7a5c4",
|
|
"col_close": "27579fe4a877d720",
|
|
"col_volume": "a8c30f4f5a732e91",
|
|
"col_atr": "366c4ec27cd52632",
|
|
"col_macd": "449587b2c37e8df2",
|
|
"col_macdsignal": "83de7bfbe9224c61",
|
|
"col_macdhist": "e94458f1558bd910",
|
|
"col_ema5": "cd13382ef7069033",
|
|
"col_ema13": "6a9429bffb033b9a",
|
|
"col_ema24": "41a037d614e701ba",
|
|
"col_ema26": "c46e3a74f471bbb0",
|
|
"col_ema52": "bf8d0b1208647291",
|
|
"col_ema104": "4f229c578d7998e4",
|
|
"col_ema156": "1fd8a8c38d11f081",
|
|
"col_ema208": "3e2704d5c53ee9f8",
|
|
"col_ema7": "21281407046b4322",
|
|
"col_rsi": "a800c451254f433e",
|
|
"col_volume_ratio": "ec05ddc04f54b31b",
|
|
"col_bb2633upper": "9c0bb9a91102bcd9",
|
|
"col_bb2633lower": "b55705f39cdb0c63",
|
|
"col_bb2633middle": "365c7763ddad555c",
|
|
"col_bbp30": "8ab505323d0cb0a9",
|
|
"col_bbp120": "8a16100ed6fe37b6",
|
|
"col_bbp365": "437b91a2cdde91eb",
|
|
"_all_columns": [
|
|
"atr",
|
|
"bb2633lower",
|
|
"bb2633middle",
|
|
"bb2633upper",
|
|
"bblow120",
|
|
"bblow30",
|
|
"bblow302",
|
|
"bblow365",
|
|
"bbmiddle30",
|
|
"bbp120",
|
|
"bbp2633",
|
|
"bbp30",
|
|
"bbp302",
|
|
"bbp365",
|
|
"bbup120",
|
|
"bbup30",
|
|
"bbup302",
|
|
"bbup365",
|
|
"close",
|
|
"date",
|
|
"ema10",
|
|
"ema104",
|
|
"ema13",
|
|
"ema156",
|
|
"ema208",
|
|
"ema24",
|
|
"ema26",
|
|
"ema5",
|
|
"ema52",
|
|
"ema7",
|
|
"high",
|
|
"low",
|
|
"macd",
|
|
"macdhist",
|
|
"macdsignal",
|
|
"open",
|
|
"rsi",
|
|
"timestamp",
|
|
"volume",
|
|
"volume_ratio"
|
|
]
|
|
},
|
|
"XRP_30m": {
|
|
"n_rows": 20000,
|
|
"n_klu": 20000,
|
|
"n_klc": 14763,
|
|
"n_bi": 849,
|
|
"n_seg": 125,
|
|
"n_bi_zs": 108,
|
|
"n_zs": 11,
|
|
"n_bsp": 0,
|
|
"klc_high": "567e7651c968c00c",
|
|
"klc_low": "c1b8189a9d447452",
|
|
"klc_fx": "67b72deec2a5593b",
|
|
"bi_start": "04f30102940f974d",
|
|
"bi_end": "04f30102940f974d",
|
|
"bi_sure": "da571f5278b770e1",
|
|
"n_zones": 108,
|
|
"zone_zg": "1eefb80dd6c76a53",
|
|
"zone_zd": "8fa0d96149ddc204",
|
|
"zone_avail": "7e652fb397da32da",
|
|
"zone_ladder": "4177c4b5a40b6247",
|
|
"n_sig": 40,
|
|
"sig_entry_idx": "d550aee46e46c917",
|
|
"sig_direction": "81f88af0167a498c",
|
|
"sig_bo_idx": "f704a273ed48013f",
|
|
"sig_pb_idx": "2e030812f5243076",
|
|
"sig_lag": "1c1eebf161a0ff83",
|
|
"sig_depth": "c671af2668c0cc78",
|
|
"sig_zone_i": "49971affbaf93434",
|
|
"col_open": "e064238e9f5e7baa",
|
|
"col_high": "a28e55a860c236ce",
|
|
"col_low": "7585fe470cd2ecfd",
|
|
"col_close": "3470d49402aa5a5e",
|
|
"col_volume": "0b473a543b78cd89",
|
|
"col_atr": "967be1c16f118183",
|
|
"col_macd": "cf3b1cc2d9f3ca98",
|
|
"col_macdsignal": "993858809b2f3a2e",
|
|
"col_macdhist": "469650fc16672829",
|
|
"col_ema5": "0c7e735c6abfc0b5",
|
|
"col_ema13": "bc9799632b2232f5",
|
|
"col_ema24": "9397472a7982e2e4",
|
|
"col_ema26": "59ec2e87acb64341",
|
|
"col_ema52": "f61f6de2169678b8",
|
|
"col_ema104": "fe786b2dc9436f25",
|
|
"col_ema156": "1291ef40a77682d5",
|
|
"col_ema208": "7e63bf51454a5dfb",
|
|
"col_ema7": "25983717dea0f463",
|
|
"col_rsi": "b992c428c2643962",
|
|
"col_volume_ratio": "4d70f107c08380cc",
|
|
"col_bb2633upper": "cbe0b203046d7377",
|
|
"col_bb2633lower": "166c968182153faf",
|
|
"col_bb2633middle": "7ba495bfe685d0eb",
|
|
"col_bbp30": "598150e822aac882",
|
|
"col_bbp120": "36778d36238896c4",
|
|
"col_bbp365": "a1f88436a790dc2a",
|
|
"_all_columns": [
|
|
"atr",
|
|
"bb2633lower",
|
|
"bb2633middle",
|
|
"bb2633upper",
|
|
"bblow120",
|
|
"bblow30",
|
|
"bblow302",
|
|
"bblow365",
|
|
"bbmiddle30",
|
|
"bbp120",
|
|
"bbp2633",
|
|
"bbp30",
|
|
"bbp302",
|
|
"bbp365",
|
|
"bbup120",
|
|
"bbup30",
|
|
"bbup302",
|
|
"bbup365",
|
|
"close",
|
|
"date",
|
|
"ema10",
|
|
"ema104",
|
|
"ema13",
|
|
"ema156",
|
|
"ema208",
|
|
"ema24",
|
|
"ema26",
|
|
"ema5",
|
|
"ema52",
|
|
"ema7",
|
|
"high",
|
|
"low",
|
|
"macd",
|
|
"macdhist",
|
|
"macdsignal",
|
|
"open",
|
|
"rsi",
|
|
"timestamp",
|
|
"volume",
|
|
"volume_ratio"
|
|
]
|
|
}
|
|
} |