Hi!大众好,我是Lucy, @FinTech 社区创始人。FinTech 社区是一个5万+会员的量化、AI、金融科技招聘赋能社区。欢迎大众加入咱们,与同行共成长!
找出过去 3 年收入增幅最大的 5 只半导体或人工智能股票。从大到小排序
此查找的 Google 搜索结果
当您在网络上搜索时,您会找到信息。但它们将是受欢迎的结果,重点基于趋势或其他人的“专家意见”。在投资股票时,重要的是要有冷酷的事实。金融平台不会为您供给所需的所有信息。那样,怎样得到真实的事实呢?
今天,我将概述NexusTrade平台中一项新功能的设计-- 运用大型语言模型的智能股票筛选。这项新功能将准许您做几件事。首要,您能够查找属于某些行业的股票。其次,您能够查找拥有必定市值、收入、收入、EDITBA 和其他重要财务指标的股票。经过此功能,您能够找到符合您的投资理念和财务目的的完美股票。再也不有有些人写的固执己见的文案,她们的投资组合充满了她们先令的股票。只是冷酷无情的事实。
NexusTrade简介
NexusTrade是我的人工智能投资科研平台。该软件可简化研发、测试和安排自动化和半自动化交易策略的过程。它的旗舰功能是其人工智能驱动的聊天,可将简单的英语翻译成平台理解的配置。
与“Aurora”互动 – 人工智能交易助手
除了能够创建和测试交易策略外,Aurora还能够进行金融科研。例如,倘若我让 Aurora 分析一家机构的收益,她会这般说。
需求 Aurora 分析 META 的收益
这种类型的财务分析非常有用。然而,它还需求您事先认识要搜索的股票。倘若您是投资新手,试图寻找新股票,或想寻找利基行业的股票,那样此功能无帮忙。怎样才可更好地找到符合其投资目的的股票?
智能库存筛选:实施
让咱们回到你打开这篇文案时我问你的第1件事:
找出过去 3 年收入增幅最大的 5 只半导体或人工智能股票。从大到小排序
咱们能够清楚地看到这般一个功能的价值。倘若我相信人工智能是将来,并且我亦相信盈利能力和加强盈利能力对我的投资论点很重要,那样能够按次序搜索这份股票列表将是无价的。另外,这种类型的查找亦能够扩展。例如,我能够添加类似“并且市盈率少于 30”之类的内容。只要我的数据结构恰当,我就能够智能地找到任何符合我目的的股票。
为了实现这一点,咱们需要
用咱们想要搜索的数据填充咱们的数据库
运用雅虎财经和大型语言模型生成数据
认识 MongoDB 的聚合框架
运用 LLM 函数调用执行小样本学习。
让咱们仔细介绍一下这些过程中的每一个。
填充咱们的数据库
咱们的智能搜索算法中最重要的一步是填充咱们的 MongoDB 数据库。这一步很关键,触及设计一个优雅、灵活的架构来存储咱们所有的关联股票信息。
这一步不仅对咱们的智能库存筛选功能很重要。此架构还可用于应用的其他基本功能。例如,它能够为咱们的算法交易策略中运用基本面指标奠定基本。出于这个原由,咱们必须非常小心地设计这个模式,并避免算法交易的平常陷阱,例如前瞻偏见。
架构的示例能够如下所示: const stockFundamentalDataSchema = new Schema({ date: Date, stockName: String, income: Number, revenue: Number, ebitda: Number, // other fundamental indicators});const stockIndustriesSchema = new Schema({ is_AI: Boolean, is_semiconductor: Boolean, is_biotechnology: Boolean, // other industries});
不幸的是,我找不到一个好的数据库来列出特定机构所属的行业。因此呢,为了收集这部分数据,咱们需要运用大型语言模型。
生成咱们的数据
咱们的目的是生成一个对象,其中包括咱们股票所在的行业列表。而后,咱们将此数据(和关联数据)保留到数据库中。例如,倘若咱们的输入是“CRISPR”,咱们想要生成以下 JSON。 Industries: { biotechnology: true, healthcare: true, pharmaceuticals: true, researchAndDevelopment: true, biomedicalEngineering:true}
大型语言模型 (LLM) 一般能够为许多股票生成令人满意的摘要。然则,针对某些专门的或近期引入的股票,这些模型可能无信息,由于它们的训练数据已然过时了几个月。这便是为何外边 API(如 Yahoo Finance)在生成数据时很重要的原由。
NexusGenAI的UI
NexusGenAI准许咱们在易于运用的UI中创建此AI工作流程。它包含给出模型的指令、咱们要运用的模型类型以及模型在其响应中必须遵循的架构。正如你所看到的,该模型生成为了一个JSON,其中包括CRISPR所属的行业列表。这些将保留在咱们的数据库中,以便咱们稍后查找。
然则,一次仅查找一家机构将花费很长期。NexusGenAI最大的优点是,在UI中配置了工作流程后,咱们能够直接在代码中将其用作API! async function main() { // check the open-source NextTrade for this function implementation const stockList = await StockData.getListOfAllStocks(); for (const stock of stockList) { try { console.log("Fetching data for ", stock.name); // using the yahoo-finance2 library const quote = await yahooFinance.quoteSummary(stock.name, { modules: ["summaryProfile"], }); const summary = quote["summaryProfile"]["longBusinessSummary"]; const prompt = "Identify Company Industries"; const response: ChatMessage []= await nexusgenaiServiceClient.chatWithPrompt(prompt, summary); const description = response[0].content; const data = response[0].data?.industries; if (!data) { throw new Error("No industries found for company"); } // Save the description and data into the database } catch (e) { console.error("Error fetching data for ", stock.name, e); } }}
这使咱们能够将提示排除在源代码之外,并放在一个集中的、可管理的位置。它还使咱们能够在几分钟内向NexusTrade添加新功能,而不是几个月。名额有限的候补名单现已开放!
MongoDB 聚合框架
执行智能股票筛选算法的下一个重要过程是充分认识MongoDB聚合框架。这个框架将准许咱们执行数据库的繁杂查找。该框架的平常操作包含 $$lookup$$unwind、$match、$sort、$group、$project 和 $limit。综合起来,这些操作准许咱们从文案的开头起始执行咱们的请求。在代码中表示聚合管道的示例后,我将简要介绍每一个字段。
查找:查询过去 3 年收入增幅最大的 5 只半导体或人工智能股票。从大到小排序 const pipeline = [ {$lookup: { from: "stockIndustries", // Assuming this is the collection name localField: "stockName", foreignField: "stockName", as: "industryData" } }, { $unwind: "$industryData" }, { $match: { $or: [{"industryData.is_AI": true}, {"industryData.is_semiconductor": true}], date: {$gte: threeYearsAgo} } }, {$sort: {stockName: 1, date: 1}}, { $group: { _id: "$stockName", firstIncome: {$first: "$income"}, lastIncome: {$last: "$income"}, } }, { $project: { incomeIncrease: {$subtract: ["$lastIncome", "$firstIncome"]}} }, { $sort: {incomeIncrease: -1}}, { $limit: 5 }];
管道的组件如下:
$lookup:此周期运用指定字段联接来自区别集合的文档,其功能类似于 SQL JOIN,便于聚合关联数据。
$unwind:此周期将包括数组字段的文档拆分为每一个数组项的多个文档,从而实现单个项处理。
$match:此周期按照特定要求(类似于 SQL WHERE 子句)筛选文档,以缩小选取范围。
$sort:此周期按照指定字段对文档进行排序,类似于 SQL ORDER BY 子句,按升序或降序组织数据。
$group:此周期按指定的标识符聚合文档,类似于 SQL GROUP BY 子句,准许将聚合函数应用于每一个组。
$project:此周期将重新调节每一个文档的形状,类似于在 SQL 查找中选取字段,从而准许添加、删除或修改字段。
$limit:此周期限制传递到下一周期的文档数,类似于 SQL LIMIT 子句,可用于掌控结果集的体积。
这些周期结合在一块,创建了一个强大的框架,能够执行繁杂的数据聚合任务。倘若运用得当,它能够用作咱们智能库存筛选器功能的构建块。
函数调用和小样本学习
此刻咱们认识了聚合框架,咱们最终能够运用 NexusGenAI 来执行函数调用了。这与咱们在NexusTrade中的其他功能类似,咱们向模型发送请求,生成JSON对象,而后运用该JSON对象执行某些功能。
这一次,函数调用将把纯英文文本翻译成这个MongoDB聚合框架。运用 NexusGenAI,咱们能够供给许多查找示例,而后,类似的请求将被相应地处理。例如:
运用 NexusGenAI
从这儿起始,咱们将将其集成到NexusTrade应用程序中,并使咱们的用户能够执行繁杂的功能。
这使咱们能够运用自然语言执行繁杂的查找。结合所有内容,咱们几乎能够搜索任何符合咱们想要标准的股票。无论是人工智能、生物技术还是娱乐,咱们都能够找到符合咱们投资目的的业务。
大都数机构尚未完全认识到大型语言模型的强大功能。大都数用例都是“可有可无”的功能,它们向投资者展示,以证明她们正在与人工智能集成。
NexusTrade采用了一种区别的人工智能优先办法。我的目的是专注于怎样为我的用户供给价值,以及人工智能怎样帮忙我完成任务。这个新功能虽然尚未实现,但将非常有用。它将准许用户以前所未有的方式搜索股票。这与我的使命是创造和普及零售算法交易的新行业相一致。
期盼我的分享对大众有帮忙!欢迎加入咱们的社区,与同行共成长!
往期举荐
1.怎样运用 OpenAI + Python 构建 AI 助手
2. AI行业招聘合集 | 年薪30-200W,远程/沪/广/东京 |