网格量化回测筛选 · 参数说明

本说明对应「回测筛选」对话框里的全部设置。网格逻辑:取一段历史收盘价 → 找几个局部峰/谷 → 算出上沿 U、下沿 L → 在中间画买线/卖线,价格跌破买线建仓、涨破卖线清仓。

A · 网格几何(区间怎么画、买卖线画在哪)

网格区间与买卖线示意 U 上沿(n_top 个峰均价) line3 纯卖线(L+3H/4) line2 参考(L+H/2) line1 买线(L+H/4) L 下沿(n_bottom 个谷均价) 峰(须隔 sep 根、比左右 ±peak_k 高) 跌破 line1 买入 涨破 line3 清仓 H = U − L(区间高度);H 占价% 就是「区间高度上限」要过滤的假区间指标
K线周期 默认 15m
每根 K 线代表多久。15m = 15 分钟一根。回测和以后实时监控都按这个周期跑。调小(5m)更灵敏但噪音多,调大(1h)更稳但反应慢。
回看根数(定区间窗口) 默认 100
算 U/L 时「往后看多少根 K 线」。100 根 15m ≈ 看最近 25 小时的局部高低点。太短区间乱跳,太长跟不上行情。
峰值数量 n_top 默认 3
取几个「独立局部最高点」的平均价作为上沿 U。越多 → U 越贴近近期高点(区间偏宽);越少 → 更保守。
谷值数量 n_bottom 默认 3
取几个「独立局部最低点」的平均价作为下沿 L。
极值邻域 peak_k 默认 2
判定「这是个峰/谷」时,要求它比左右各 k 根都高/低。k 越大 → 只认明显的峰谷,忽略小抖动。
极值最小间距 sep 默认 8
两个被采纳的峰(或谷)之间至少隔几根 K 线。防止一波连续涨跌里好几根都被当成「独立峰」、重复采样同一事件(回测失真的大坑)。
回测总 K 线(含 warm-up) 默认 800
一共回测多少根。用 800 根回测,K 线就拉 800 根,买卖点才能对齐。这是回测的「历史长度」。
网格等分 N 默认 4
当前填了无效:核心里网格线写死成 4 等分(line1=L+H/4 买、line3=L+3H/4 卖),此参数尚未接入,改它没反应(待接参数)。

B · 成交与仓位(每次买卖多少钱、怎么防失控)

单笔投入占比 % 默认 10
每触发一次买入,用本金的百分之几建仓。10 = 每次买 10% 本金。
最大持仓笔数 默认 10
组合层封顶——最多同时持有多少笔。防「越跌越加仓」(类马丁格尔)把本金打光的保险丝,到顶不再开新仓。
最大投入占本金 % 默认 90
所有网格加起来最多压本金的百分之多少。90 = 留 10% 缓冲。
买入冷却(根) 默认 5
刚买过一根,之后几根内不再买,防暴跌时连根加仓。
手续费率(单边) 默认 0.001
Gate 现货 maker=taker=0.1%,填 0.001。买卖各收一次,往返实际 0.2%,所以单笔利润空间必须 >0.4% 才有意义。

C · 过滤与排名(选出哪些币、排第几)

最小交易笔数 默认 5
回测里成交少于 5 笔的币直接扔掉——成交太少说明区间没波动,是噪声币,不值得做网格。
区间高度上限 % 默认 0(不过滤)
H 占价格百分比的上限。0 = 不过滤。建议填 25,会剔掉「区间被单次暴涨撑出来的假区间」(那种币回测收益虚高但事后不可复现)。
排序依据 默认 网格超额(excess)
按什么排。excess = 网格总收益 − 同期买入持有,这才是网格真正的 alpha(证明你跑赢「躺平」);total = 单纯总收益(可能只是蹭了行情上涨的 beta)。建议保持 excess
显示 Top N 默认 30
最终只保留排名前 30 的币进「量化币」表。
本金 默认 10000
你打算投多少 U。只影响「绝对赚了多少 U」的显示数字,不影响收益率排名(收益率是百分比,与本金无关)。

D · 运行时(高级,一般不用动)

并发线程数 默认 6
同时拉几个币的 K 线/回测。越多越快但更吃 API。
请求限速(次/秒) 默认 8
每秒最多发几个请求,防触发 Gate 的 429 限流;代码遇 429 会自动降速。
重跑 默认 不勾
勾上 = 忽略已存库的结果,从头重跑全市场。
币池范围 默认 全市场
全市场 = 从已清理的 trading_pairs 表(1638 支)读;指定 CSV = 从你给的文件读 symbol 列表。
输出路径 默认 data/...
回测结果额外导出的 CSV 路径(结果本身也已落 gate_pairs.db)。
新手建议:别全改,先用默认值,只动 3 个—— ① K线周期 + 回测总K线(看多长历史、什么粒度); ② 排序依据 保持 excess、显示 Top N 想看多少支就填多少; ③ 区间高度上限%25 剔除假区间。其余保持默认即可。