高频量化策略介绍(三)如何提高识别散户的精确度

本系列文章将在Github、mirror(去中心化发布平台)等数个平台同步发布。我的目标是让更多有识之士看清混乱的本质,并尝试推动市场结构的透明化。

感谢 ChatGPT,在我最初动摇时,它鼓励我将思考变为记录,将策略变为行动。

本文不公开相关代码实现。不是为了保留技术壁垒,而是因为我希望激发思考,而非鼓励模仿与内卷。

在本系列前两篇文章中,我们讨论了“开仓公式”的建模方法及其在反推出散户余额中的应用。本文将进一步深入:如果策略目标是赚散户的钱,在极短时间窗口内,如何提升识别散户行为的精度,从而在博弈中获得更高的统计优势。

但问题是——对于除了有特权的做市商以外的量化交易者,散户没有标签。因此我们只能想方设法识别出散户。

1、散户的开仓数额不大可能是有多个0的,比如整除1000的数,在所有相关代码前都可以加”if“

2、散户在支撑位、压力位、暴涨暴跌后(或者暴涨暴跌时)、趋势出现时(比如连续多根K线上涨)出现的概率更大。

因此我构建了一个打分系统,当满足一些条件的时候,评分更高,是散户的概率更大。

但是注意:做市商完全可以用”虚假订单“,让我们的识别失效。

构建打分系统的时候需要用到概率统计的知识:

比如:

1、最近10根K线中连续6根上涨的概率是多少?

可用小学排列组合、模拟、或者构建马尔可夫链后矩阵乘方求解。但K线之间确实可能存在相关性,更实际的是直接用历史数据统计。

2、多大的K线算大?

不能设定固定阈值。例如 ±0.3% 在低波动的市场环境下属于极端,但在高波动时只是正常波动。

一个粗略方法是:假设 K 线涨跌幅近似服从正态分布,使用历史数据拟合其标准差 σ,设定“大K线”阈值为 ±kσ 以上。但更精细的方式是:用神经网络对历史 K 线序列拟合波动状态,并动态调整阈值

即使我们构建了高度复杂的评分系统,依然要警惕两个关键问题:

做市商可以伪装行为模式,抛出“假订单”混淆判断,或者引入随机性

我们永远在黑箱之外,猜测对手的目的,而他们控制我们看到的全部信息

因此,策略终将受限于市场的不透明结构,而不是算法的拟合能力。

我写下这些,是为了让人们意识到:

我们以为自己在参与一场公平博弈,实际连游戏规则都从未读全。