量化开发笔记:从指标清单到三百品种选币播报
一、0412:单品种高频框架
- 标的:Binance BTCUSDC U本位永续,1分钟级别;
- 交易方式:只挂单(Maker),禁用市价单,1–10分钟/次;
- 技术栈:Python3 + MySQL,订阅websocket(REST易限频);
- 主循环:取近200根1分钟K线入库→读账户余额/持仓/委托入库→算指标→状态机决策;
- 指标清单:SMA20/100、BOLL、ATR、KDJ、RSI、SuperTrend、200成交量比值、关键支撑压力、成交量概率评分、震荡-趋势评分;
- 原始计算数据输出excel,供人工完善策略;回测不在量化程序内做。
状态机变量:当前行情、方向锁定标记、开仓延迟,以及多空各自的开仓/止损/止盈/推保/仓位价值五元组。把「行情判定」和「订单管理」分成两层,是这份文档最重要的工程决定。
二、251231:多品种机会播报
需求升级:实时扫描Binance约300个永续品种,筛出符合「标准机会」、排除「风险特征库」的机会,滚动播报、人工确认后下单。筛选频率按级别错开:
| 级别 | 1M | 5M | 15M | 1H | 4H |
|---|---|---|---|---|---|
| 频率 | 1分钟/次 | 5分钟/次 | 7.5分钟/次 | 30分钟/次 | 60分钟/次 |
播报附带计算:开仓点-止盈点-止损点-仓位大小-持仓方向;保留播报历史供复盘,统计实际胜率p、赔率b、日均机会数n、平均耗时t,用于优化策略与归纳失败交易特征。实现建议用AICOIN指标选币,也可自研。
三、风险特征库:淘金论的工程化
标准机会之外,更重要的是排除清单。趋势/震荡各分优劣:清晰趋势止损近、仓位大、盈利能力强;脉冲式三根K拉盘转横盘的「趋势」,追高后止损距离过大,盈利能力极弱。边界清晰的震荡同理优于边界模糊的震荡。滤网牺牲单品种n换p与b,多品种把N补回来——这正是播报系统存在的数学理由。
四、工程细节与容错
- websocket优先,REST只做兜底与对账;
- search_positions_and_orders() 统一查询,重连后先对账再发单;
- Maker-only省手续费与滑点,但成交不确定:信号触发≠成交,状态机必须处理「挂单未成交」分支;
- 止损例外:风控止损允许市价(最新价),与Maker-only的开仓规则不冲突;
- 所有中间指标落库/落excel:策略迭代依赖可复盘的原始数据。
五、把适配性监测做成生产模块
特征-胜率关系随风格切换断裂(见市场状态S一篇),因此播报系统应内置两步实时回测:近3次与近20次(至风格切换)胜率滚动统计;风格切换即重置窗口。播报里附上「该特征当前适用度」,人工确认时才有依据。量化系统的闭环是:筛选→播报→确认→成交→复盘→修正滤网。
机器负责不知疲倦地筛砂石,人负责在黄金出现时扣扳机。分工的边界,就是系统稳定的边界。