都有量化交易了,还要技术分析干嘛?

逛某乎的时候,遇到一个这样的问题:既然有了量化交易,技术分析还有存在的必要么?

图片

先不急着回答,给大伙儿po几张金融工程(量化)研究报告的截图,自行感受一下。

图片

图片

图片

看到了吧,量化交易跟技术分析不是互斥的,不存在谁淘汰谁的问题,也不存在“东风压倒西风,还是西风压倒东风”的问题。

在量化交易当中,也会使用到技术分析的指标、方法和思想,就如上图展示的那样,用RSI构建量化选股因子,用技术指标进行量化择时,程序化识别缠论分型、笔、线段和中枢进行买卖点提示。因此,如果技术分析有进步发展,也会利好量化交易。

正如同题主疑惑的那样,技术分析出现时间非常早,在股民里面非常普及。量化交易相对来说是新兴事物,而且同时融合了金融、数学、计算机多学科交叉,看起来比较高大上,加上自媒体对量化交易的渲染鼓吹,就觉得技术分析落后了,没有存在的必要了。

看事物要看到本质,其实无论是量化交易,还是技术分析,都只是投资交易的一种决策方式罢了,都是为了解决投资交易当中的这4个问题:

(1)买什么?投资标的,买茅台,还是买移动,还是其他股票。

(2)什么时候买?是今天买,还是明天买,具体什么时点买。

(3)什么时候卖?是今天卖,还是明天卖,具体什么时点卖。

(4)买卖多少?仓位管理,建仓,加仓,减仓,清仓。

你想是不是这样,哪个投资流派要解决的都是这4大问题,不管黑猫白猫,抓住老鼠就是好猫,只是分工形式不同,没有高低贵贱之分。

大伙儿都知道我是做量化的,可能就有小伙伴问了:你为什么选择量化交易,而不是技术分析?

我想说的是,小孩子才做选择,而成年人的法则是:全都要!!!

图片

之前已经说了,在量化交易当中,也会用到技术分析,对于股票投资而言,当然也可以涵盖基本面分析,还可以纳入事件驱动、舆情分析那些,而且还可以获得程序化自动化的加持。

图片

不是我不选技术分析,是量化交易里面可以含有技术分析的可实现部分(有些太主观的目前还难以实现),而且还可以站在更多巨人的肩膀上,何乐而不为,并且有了程序化自动化的的加持后,可以完成2个非常重要但手动难以完成的操作。

第一个就是程序化全自动盯盘全自动交易,解放自己的眼睛和双手。

第二个就是“取其精华,去其糟粕”的去伪存真的功能。说起来太抽象,举个例子来理解。

比如技术分析一般都会讲双均线,“老师们”会展示一幅幅大涨的K线图,指给你看大涨之前都会出现双均线金叉,聪明的散户也看得出来这是一种“选择偏差”,因为大涨的股票之前都会有金叉,但有金叉不代表之后就会大涨,可以自行脑补一下震荡行情,是不是反复金叉死叉又金叉。

简单来说,金叉不是大涨的充分必要条件,但纯粹按照金叉死叉交易胜率和赔率有多高呢?手动统计起来就太麻烦了,对于单个股票,你可以打开行情K线图,统计近10年的行情大概有2400个交易日,需要手动记录下每一个金叉死叉点的位置和价格,写下每次最终的涨跌记录,一支股票还好说,现在全市场5000支股票呢,纯靠手工来做是不是就吐血了。

量化用程序来做就简单了,萌新宽客用两个for循环,高手用一个,就可以读入数据进行统计,发现规律后还可以形成量化策略进行回测,有用就留下,没用就丢弃或后续改进。

技术分析很好很有用,必定是要继续存在的,量化交易也会与之红尘作伴、策马奔腾。

这是『打开天窗说量化』的第4期,扯闲篇瞎聊,下期再会~

文章首发链接:《都有量化交易了,还要技术分析干嘛?》

<think>嗯,用户现在问的是关于SentenceTransformer的用途,之前他们已经在问如何用Faiss对中文文本进行向量化和查询了。所以用户可能是在继续深入理解他们之前项目中的某个组件,也就是SentenceTransformer。 首先,我需要确认用户已经了解Faiss的基本用途,现在可能在使用过程中遇到了SentenceTransformer,想知道它具体是做什么的。他们可能在使用过程中需要优化文本向量化的步骤,或者在选择模型时遇到困惑。 用户可能是开发者或者数据科学家,正在处理中文文本的相似性搜索或语义匹配任务。他们可能对自然语言处理有一定的了解,但需要更详细的信息来选择合适的模型和工具。比如,他们可能想知道为什么选择SentenceTransformer而不是其他模型,比如普通的BERT。 接下来,我需要解释SentenceTransformer的基本功能,即它将句子或文本转换为向量表示。需要强调它的优势,比如专门为句子嵌入设计,支持多语言模型,适合处理相似性任务。还要对比传统的BERT模型,说明SentenceTransformer在计算句子相似度时的改进,比如使用孪生网络结构和更好的池化方法。 另外,用户之前提到了中文文本,所以需要特别提到SentenceTransformer支持多语言模型,比如他们之前用的paraphrase-multilingual-MiniLM-L12-v2,这样用户知道在处理中文时应该选择哪些模型。可能还需要举例说明应用场景,比如语义搜索、聚类、信息检索等,帮助用户更好地理解如何将其应用到实际项目中。 还要注意用户可能的潜在需求,比如性能优化。比如,他们可能关心模型的大小、推理速度,或者如何在不同语言之间处理文本。需要提到不同的预训练模型选择,以及如何根据任务需求调整模型。 最后,确保回答结构清晰,分点说明,让用户能快速抓住重点。可能需要避免过于技术化的术语,但考虑到用户之前已经使用过相关工具,适当的术语是可以接受的。同时,提供代码示例或安装步骤可能对他们有帮助,但在这个问题中可能更倾向于解释概念而非具体实现。</think>**Sentence Transformer** 是一种专门用于生成**句子或文本嵌入向量**(Embedding)的模型,能够将文本转换为高维向量,从而用于衡量句子之间的语义相似度。它在自然语言处理(NLP)任务中广泛应用,尤其适合需要语义匹配、相似性搜索或聚类的场景。 --- ### **1. 核心功能** - **文本向量化**:将句子、段落或文档转换为固定长度的稠密向量(例如 384 维或 768 维)。 - **语义相似度计算**:通过向量距离(如余弦相似度)衡量两段文本的语义相关性。 -- ### **2. 与普通 BERT 的区别** - **传统 BERT**:输出的是词级别的向量(Token Embeddings),需手动聚合(如取词向量的平均值)才能得到句子向量,效果较差。 - **Sentence Transformer**: - 直接优化句子级别的向量表示,通过**孪生网络(Siamese Network)**或**三重态损失(Triplet Loss)**训练,使语义相似的句子向量在空间中更接近。 - 内置高效的池化方法(如 `mean-pooling`、`max-pooling`),直接生成高质量的句子向量。 --- ### **3. 典型应用场景** | 场景 | 说明 | |--|------| | **语义搜索** | 根据查询语句,从海量文本中快速找到语义最相关的结果(如 Faiss + Sentence Transformer)。 | | **文本聚类** | 将相似文本自动分组(如新闻分类、用户评论分析)。 | | **问答系统** | 匹配问题与候选答案的相似度。 | | **去重/消歧** | 识别重复内容或语义冲突的文本。 | | **多语言任务** | 支持跨语言的语义匹配(需使用多语言预训练模型)。 | --- ### **4. 关键特性** - **预训练模型丰富**:提供多种预训练模型,支持多语言(如 `paraphrase-multilingual-*` 系列)、特定领域(如法律、医学)的模型。 - **高效推理**:优化模型结构(如 `MiniLM`、`DistilBERT`),在保持性能的同时降低计算成本。 - **简单易用**:通过几行代码即可完成文本向量化: ```python from sentence_transformers import SentenceTransformer model = SentenceTransformer("paraphrase-multilingual-MiniLM-L12-v2") sentences = ["你好,世界!", "深度学习的应用非常广泛"] embeddings = model.encode(sentences) # 输出 shape: (2, 384) ``` --- ### **5. 常用预训练模型** | 模型名称 | 特点 | |--| | `paraphrase-multilingual-MiniLM-L12-v2` | 多语言通用模型,支持中文,平衡精度与速度 | | `all-mpnet-base-v2` | 英文高精度模型,向量维度 768 | | `distiluse-base-multilingual-cased-v2` | 多语言轻量模型,适合低资源场景 | | `stsb-xlm-r-multilingual` | 跨语言语义相似度任务专用 | -- ### **6. 性能优化建议** - **轻量化模型**:若需低延迟,选择 `MiniLM` 或 `DistilBERT` 架构的模型。 - **批量处理**:使用 `model.encode(texts, batch_size=64)` 加速大规模数据推理。 - **多语言场景**:优先选择名称包含 `multilingual` 的模型。 --- ### **7. 简单示例(语义相似度计算)** ```python from sentence_transformers import SentenceTransformer, util model = SentenceTransformer("paraphrase-multilingual-MiniLM-L12-v2") # 输入两组句子 sentences1 = ["今天天气很好", "我爱编程"] sentences2 = ["今天阳光明媚", "我喜欢写代码"] # 生成向量 embeddings1 = model.encode(sentences1) embeddings2 = model.encode(sentences2) # 计算余弦相似度 similarities = util.cos_sim(embeddings1, embeddings2) # 输出结果 print("相似度矩阵:") print(similarities) # 输出示例: # tensor([[0.9215, 0.1032], # [0.2140, 0.8567]]) ``` --- ### **总结** Sentence Transformer 是处理**文本语义表示**的核心工具,特别适合需要将文本转化为向量并量化语义关系的任务。与 Faiss、Milvus 等向量数据库结合,可轻松构建高性能的语义搜索系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值