在股票市场分析领域,存在着大量的技术指标,其中包括但不限于移动平均线、相对强弱指数 (RSI)、布林带以及移动平均收敛散度 (MACD) 等。与此同时,每位交易者都采用着各异且通常是专有的交易策略。一个普遍存在的现象是,无论是技术指标还是交易策略都具有其固有的不一致性;一项指标的有效性会随着时间的推移而波动,而交易者的策略也必然会经历盈利和亏损的周期,从而需要持续的研究和对新方法的探索。本文将探讨一种类似的固有变异性和条件性表现。
示例技术指标:
- 移动平均线 (移动平均线)
- 相对强弱指数 (相对强弱指数 - RSI)
- 布林带 (布林带)
- 移动平均收敛散度 (移动平均收敛散度 - MACD)
- 成交量 (成交量)
- 斐波那契回撤 (斐波那契回撤)
- 随机指标 (随机指标)
- 艾略特波浪理论 (艾略特波浪理论)
- 一目均衡表 (一目均衡表)
- 平均趋向指数 (平均趋向指数 - ADX)
什么是 ClusterTendency?
将交易策略想象成一系列的押注:每笔交易要么盈利(正回报),要么亏损(负回报或零回报)。如果盈利连续发生——比如 111111——或者亏损累积为 000000,那么这些结果就是“聚集”的。ClusterTendency 量化了任何指标表现的这种聚集性,产生一个 0 到 1 之间的值。高分(例如,0.7 或更高)表示强烈的聚集性,这意味着交易倾向于遵循可预测的趋势,比如一只股票在一连串看涨信号后飙升。
ClusterTendency 的目的是揭示隐藏的市场节奏,从而增强交易信心。无论你使用的是相对强弱指数(RSI)、布林带还是自定义信号,只要你能将其表现追踪为盈利和亏损的时间序列,ClusterTendency 就能帮助你决定何时积极交易或何时持仓观望,从而提高策略的精确性。
为什么 ClusterTendency 很重要?
大多数交易指标告诉你何时行动——比如,当 RSI 跌破 30(超卖)时买入。但它们很少显示这些信号随时间的表现如何。盈利是否成群出现,暗示着动量?亏损是否聚集,暗示着反转?ClusterTendency 回答了这些问题,清晰地揭示了:
- 一个策略的结果是否形成可交易的连胜或连败。
- 在连胜期间何时扩大仓位。
- 一个信号的表现是否过于随机而无法信任。
ClusterTendency 是如何计算的?
计算简单、可扩展,并能无缝集成到数据驱动的交易工作流程中。以下是计算过程:
- 记录交易结果:
- 选择一只股票或 ETF 和一个指标(例如,RSI、MACD 或自定义信号)。
- 在设定的时间段内(例如,1 天、5 天或 20 天)跟踪每笔交易的回报。
- 将盈利标记为 1,亏损标记为 0,构建一个 posString。例如:1111100000111110011110000011000001111100001111100111110000(55 笔交易)。
- 识别聚类:
- 将 posString 分割成由连续的 1 或 0 组成的段。
- 对于上面的字符串,聚类包括 11111(五个 1)、00000(五个 0)、11111(五个 1)、00(两个 0)等等。
- 每个聚类都有一个类型(1 或 0)和长度。
- 计算聚类强度指数 (CSI):
- 将所有聚类的长度相加(例如,5 + 5 + 5 + 2 + …)。
- 除以聚类的数量得到平均长度 (CSI)。
- 较高的 CSI 意味着更长、更连贯的聚类。
- 归一化为 ClusterTendency:
- 使用公式:ClusterTendency = CSI / (1 + CSI)。
- 这会将结果从 0(随机,如 101010)缩放到 1(一个大的聚类,如 11111111)。
- 示例:CSI 为 4 时,ClusterTendency = 4 / (1 + 4) = 0.8,表示强烈的聚类。
如何在交易中使用 ClusterTendency
ClusterTendency 是一种多功能工具,可以增强任何具有时间序列数据的指标。以下是如何利用它:
- 筛选高潜力策略:
- 查询具有高 ClusterTendency (>0.7) 的股票或指标,以寻找连贯的表现。
- 结合胜率:
- 高胜率 (>60%) + 高 ClusterTendency:表示动量。示例:RSI 买入信号出现 111111 连胜——是多头交易的理想选择。
- 低胜率 (<40%) + 高 ClusterTendency:暗示看跌趋势或反转。示例:布林带卖出信号出现 000000 连败——考虑做空。
- 中性胜率 (~50%) + 高 ClusterTendency:寻找反转。示例:111111 → 卖出,000000 → 买入。
- SQL 示例:
SQLSELECT Strategy, Ratio, ClusterTendency, AvgFROM ReturnPossibilityOverviewWHERE ClusterTendency > 0.7
-
设定交易信心水平:
- 低风险交易:
- 适用于中等 ClusterTendency (0.6–0.7) 或平衡的胜率。
- 示例:在一次盈利 (1) 后以标准仓位进行交易。
- 高风险交易:
- 适用于高 ClusterTendency (>0.7) 且胜率较高的情况。
- 示例:在连续两次盈利 (11) 后增加仓位,预期会出现另一个 1。对于低胜率,在连续两次亏损 (00) 后做空。
- 示例:RSI 信号出现 111111——在出现 11 后增加仓位。
- 低风险交易:
- 优化仓位规模:
- 高 ClusterTendency → 在连胜期间增加仓位规模(例如,在出现 11 或 00 后)。
- 低 ClusterTendency → 对于随机结果,坚持正常仓位规模。
- 考虑平均回报以平衡风险和回报。
- 回测以提高精确度:
- 分析 posString 以计算概率,例如 P(1 | 11)——在连续两次盈利后再次盈利的概率。
- Python 代码:
Pythonpos_string = "1111100000111110011110000011000001111100001111100111110000"p_1_after_11 = sum(1 for i in range(len(pos_string)-2) if pos_string[i:i+2] == "11" and pos_string[i+2] == "1") / sum(1 for i in range(len(pos_string)-2) if pos_string[i:i+2] == "11")print(f"连续两次盈利后再次盈利的概率: {p_1_after_11:.2f}")
- 将结果存储在 Access 中以优化策略。
-
应用于任何指标:
- 与 RSI、布林带、移动平均线或自定义信号一起使用,只要你有盈利/亏损的历史记录。
- 示例:RSI 超卖 + ClusterTendency > 0.7 → 强烈的买入信号。