- Published on
Dominance tagcloud [experimental]
- Authors

- Name
- CoresightQuant
NOTE
本文为公开交易策略的技战术复盘,聚焦方法逻辑、交易场景与风险边界。
策略解读
在交易研究领域,我们经常需要同时观察多个品种、板块或个人交易标的的强弱关系。传统的方法是使用表格、折线图或者柱状图,但这些展示方式在面对大量对象时往往不够直观。该脚本提出的思路非常有趣:将每个对象用一个矩形来表示,矩形的大小代表其“主导权”——可能是成交额占比、市场情绪权重、资金流强度等。矩形的位置随机生成,但彼此不能重叠,这样整个画面就像一个标签云,观者能快速看出谁大谁小、谁占主导。
这种随机产生且互不重叠的布局,本质上是一个二维布局问题。矩形本身是简单的几何元素,但要让它们既不重叠又不至于过于分散,就需要一种可靠的碰撞检测机制。f_overlap 函数正是解决这个问题的钥匙。它通过比较两个矩形各自的边界坐标,判断它们是否存在水平方向和垂直方向的同时重叠。如果存在,说明发生了碰撞,需要重新生成新位置;如果不存在,就可以保留这个矩形。
然而,随机摆放最大的问题在于“反复尝试”。如果一个新矩形恰好放到一个拥挤的位置,它可能连续多次与已有矩形重叠,这时就需要一种循环机制来反复试错。通常我们习惯用“for”循环来固定尝试次数,但脚本作者采用了类似“while”的结构:只要没有找到一个合适的位置或者尝试次数没有用尽,就继续尝试;一旦成功,立即跳出循环。这种方法在逻辑上更灵活,因为它可以在成功时提前退出,而不必白白浪费剩余的循环次数。
将随机生成与碰撞检测结合起来,脚本就实现了“标签云”的效果。矩形的大小可以代表不同市场的“主导权”,例如在外汇市场中,美元、欧元、日元等币种的各自强弱;在股票市场中,可以代表板块的成交占比或涨幅贡献。矩形的面积越大,说明该对象在当前环境下的主导力越强。再加上“移动盒子”的选项,矩形还会在画布中缓慢漂移,形成动态的视觉节奏,有点像气泡图或粒子系统。这种动效虽然不能直接指导交易买卖,但它能帮助分析师从整体上感知市场结构的变化。
“Label at …”这个设置项,从命名推测,应该是指矩形内部或边缘标签的摆放位置。比如标签可以位于矩形中央、左上角、右下角,或者跟随矩形的移动而自动调整位置。在实际可视化中,标签位置往往决定了信息是否清晰,尤其是当矩形面积较小时,标签放得不好会互相遮挡,反而干扰阅读。因此这个设置项的细节对最终效果影响很大,只是原文未披露完整。
总体而言,这个脚本并不是一个直接产生买入或卖出信号的策略,而是一种数据展示实验。它试图通过“图形即数据”的方式,把多维信息压缩到一张动态的图片中。这种思路在交易社区中常见于辅助分析工具,而非自动交易系统。因此,我们更应关注它的设计哲学,而非将其视为可回测的量化策略。
名词解释
1. 标签云(Tag Cloud) 标签云是一种可视化形式,通常将一组关键词或对象以不同字号、颜色或大小排列在页面上。字号越大表示权重越高。该脚本借用这一概念,用矩形代替文字,面积代替字号,形成“矩形标签云”。
2. 重叠检测(Overlap Detection)
在二维空间中判断两个几何图形是否共享区域。这里特指矩形碰撞检测:若两个矩形的水平投影区间和垂直投影区间同时相交,则二者重叠。f_overlap 就是实现该检测的函数。
3. While 循环 一种程序控制结构,与 for 循环不同,while 循环在每次迭代前检查条件,条件为真则继续执行,否则退出。脚本中用 for 循环 + continue/break 模拟了 while 行为,目的是在找到合适位置后立即结束循环。
4. 主导权(Dominance) 在金融语境中,通常指某个品种、板块或因子在整体市场中的相对权重或影响力。例如“美元主导权”可理解为美元在外汇市场中的交易占比或指数贡献。
5. 随机种子(Random Seed) 随机数生成时的初始值。若设定固定种子,生成的随机序列是可复现的;若未设定,则每次运行结果不同。该脚本如果希望结果可重现,就需要支持种子设置,但原文未提及。
6. 碰撞检测(Collision Detection) 与重叠检测同义,多用于游戏或模拟领域。这里指判断新生成的矩形是否与已经存在的矩形相交,以避免视觉上的遮盖。
7. 粒子系统(Particle System) 源自计算机图形学,用于模拟大量离散元素(如粒子)的运动与分布。动态标签云中的随机移动矩形,在视觉上很像粒子系统。
策略思路讲解
这个脚本的核心策略并不在于交易逻辑,而在于“如何把抽象的主导权数据转化为可感知的视觉布局”。我们从三个层面来理解它的思路:
第一层:数据映射。
任何可视化都需要将数据映射到图形属性上。这里选择了矩形面积。假设我们有 n 个对象,每个对象有一个数值 v_i,那么矩形的宽度和高度可以按 v_i 的比例缩放。这样,矩形面积越大,对象在集合中的主导权就越高。用户不需要看具体数字,只需要扫一眼面积对比即可获得排名信息。
第二层:随机布局与防重叠。
为了让画面看起来“自然”而富有探索性,矩形的位置由随机函数决定。但纯随机会带来严重重叠,导致视觉混乱。因此,每生成一个新矩形,就要调用 f_overlap 检查它与所有已生成矩形的位置关系。若重叠,则重新生成随机的左上角或中心点坐标,直到不再重叠或达到最大尝试次数。这种“生成-检查-重试”的流程,是所有非网格化自动布局的常见手段。
第三层:动态循环与移动。
脚本用类似 while 的循环结构来控制重试逻辑。如果不加限制,最坏情况下可能永远找不到合适位置,所以需要设置一个很大的上限(如 999999)。作者特意使用 continue 表示“继续下一次尝试”,使用 break 表示“成功则退出”。当“Moving Boxes?”被启用时,矩形还会在后续每一帧中随机移动一小步,但每移动一步后仍需检查是否与其他矩形碰撞。若碰撞,则尝试向另一方向移动,或退回原位。这种动态机制让标签云像一个活着的气泡池,持续呈现新的布局。
实际应用场景:假设我们正在观察加密货币市场,想比较 BTC、ETH、BNB 等资产的“资金流主导权”。我们可以把各资产的资金净流入额作为权重值,矩形面积对应权重。脚本随机构建出互不重叠的矩形,并在矩形上标注代码。若启用移动,市场结构变化时矩形会缓慢漂移,面积大的矩形慢慢占据更多空间,形成“主导权迁移”的直观画面。交易员可以从中快速捕捉到谁在吸筹、谁在出货。
优点
第一,信息密度高。一张动态标签云可以同时展示几十个对象的主次关系,而传统图表很难在如此紧凑的空间里传递等量信息。
第二,视觉直观。人类对面积和空间大小非常敏感,矩形越大越能引起注意。相比数字表格,这种展示方式更符合直觉,适合快速浏览。
第三,布局自适应性强。随机 + 防重叠的结构不依赖固定的数据顺序,即使对象数量变化也能动态调整,适用性强。
第四,可读性好。由于强制矩形互不重叠,标签之间不会互相遮盖,每个矩形及其标签都能被清晰识别。
第五,具有实验探索价值。动态移动功能让画面随时间变化,能帮助交易者发现静态图表中不易察觉的权重漂移趋势。
缺点
第一,随机性导致不可重现。如果没有固定随机种子,每次打开工具看到的布局都不一样,难以对不同时间点的画面进行精确对比。
第二,计算开销较大。每生成一个矩形都要与所有已有矩形进行重叠检测,复杂度为 O(n²)。当对象数量达到几十或上百时,循环等待时间会明显增长,可能出现卡顿。
第三,面积感知存在偏差。人对面积的感知并非完全线性,比例过大的矩形会压缩小矩形的视觉存在感,导致次要对象被低估。
第四,移动逻辑可能引发震荡。让矩形随机移动但又要避免重叠,容易导致某些矩形在小范围内反复抖动,分散用户注意力,对交易决策产生干扰。
第五,缺乏严格回测意义。该工具属于可视化展示,并非量化策略,它不能告诉我们何时买入或卖出,只能辅助观察。
起源年份考证
需要说明的是,该脚本作者“fikira”在公开交易社区发布的具体年份我们无法考证。但就“随机矩形防重叠布局”和“标签云”这两类方法本身,可以给出大致时间线:
- 1990年代:计算机图形学中已经出现基于随机位置的布局算法,尤其是“力导向布局”和“矩形装箱”等经典问题被广泛研究。这些是防重叠矩形布局的理论雏形。
- 2000年 – 2004年:标签云作为网络信息架构工具开始出现。最早的标签云可追溯至 2002 年左右,一些博客和照片分享网站开始用字号表示标签热度。
- 2004年:Flickr 上线标签云功能,使这一可视化形式迅速流行,并进入商业互联网应用。此后,标签云成为数据可视化中的常见类型。
- 2005年 – 2010年:用于生成词云的开源库逐渐出现,其中 Wordle 等工具推动了随机布局算法的发展,包括“螺旋放置”和“碰撞检测”等技巧。
- 2010年至今:交易社区开始大量借用标签云思想,将市场强势股、板块涨幅、资金流等数据做成“交易云”。与此同时,JavaScript 图表库让动态矩形标签云成为可能,随机移动与实时更新变得常见。
综上,该脚本的技术基础——随机矩形 + 重叠检测 + 循环控制——属于计算机图形学与信息可视化领域长期积累的知识,这类方法在 2000 年代中后期已相对成熟。至于这个具体脚本的发布时间,只能以社区公开记录为准,我们无法给出确切年份。
改进建议
第一,引入空间索引加速检测。与其每次和所有矩形比较,可以使用四叉树或网格分区,只检测邻近区域内的矩形,将复杂度从 O(n²) 降低到 O(n log n) 或 O(n)。
第二,增加碰撞缓冲距离。当前 f_overlap 只判断几何相交,但矩形间距为零时视觉上仍显得拥挤。建议在判断时增加一个最小间距参数,让矩形之间留有喘息空间。
第三,支持固定随机种子。为了方便前后对比,应该允许用户设定随机种子或提供“重新生成”按钮,但每次重新生成使用相同的种子,确保结果可复现。
第四,用平滑权重替代瞬时权重。主导权数据在交易中往往是变化剧烈的,建议对原始数据做时间窗口的平均或指数平滑,避免矩形面积每帧跳动过大,影响阅读。
第五,限制移动速度并增加物理衰减。当移动盒子启用时,给矩形增加最大速度、加速度和碰撞后的反弹阻尼,可以让运动更自然,同时避免无意义的抖动。
第六,允许用户自定义矩形尺寸与权重值。目前面积与数值的比例固定,可以增加“对数缩放”选项,压缩极大值与极小值之间的差距,使小矩形更可见。
第七,将标签与矩形颜色关联。除了面积之外,可通过颜色表示涨跌方向或强弱程度,例如绿色代表上涨、红色代表下跌,形成第二维编码。
第八,增加点击交互与钻取功能。用户点击某个矩形时,可以显示该对象的历史走势或关键指标,让可视化从概览转换为分析工具。
第九,限制最大矩形数量。当对象过多时,自动合并权重较小的对象为“其他”组,避免画面碎片化,保持主导权信息清晰。
第十,将标签云与交易信号结合。如果主导权数值来自一个量化模型,可以增加阈值提示——当某个矩形的面积超过设定上限时,高亮边框并发出警示,从而把展示工具升级为辅助决策系统。
总结
“Dominance tagcloud [experimental]” 是一个实验性的可视化脚本,它的设计初衷不是给出具体的买卖建议,而是用随机且互不重叠的矩形呈现多个对象在市场中的主导权分布。它巧妙地结合了两种经典技术:基于坐标比较的矩形重叠检测,以及借助循环实现的高效试错过程。通过启用“Moving Boxes?”选项,静态布局还能演变为动态粒子系统,让市场权重变化更富表现力。
当然,这种工具也有明显局限:随机性、计算开销和视觉误导都可能限制其在实际研究中的价值。但作为思路启发,它让我们看到“主导权”这个概念可以被视觉化到多么生动的地步。对交易者而言,最重要的是理解其底层逻辑——任何可视化本质上是数据到图形的映射,映射方式决定了信息的传达效率。矩形面积映射大小、颜色映射方向、位置映射变化,这些都是可以灵活改造的。
未来,如果将这类标签云与更高效的空间算法、平滑的数据处理以及交互式分析能力结合,它完全有可能从一个实验性作品,进化成专业交易员案头常用的市场结构观察工具。但在那之前,我们不妨先把它视为一种充满想象力的思维玩具——用随机碰撞与循环耐心,搭出一片可读的“主导权星空”。