打造Crypto市场分析AI工具
在最近的一个业余项目中,我构建了一个人工智能工具,它可以监控加密货币市场上的各种信号,并通过易于使用的每日电子邮件报告提供可操作的见解。
一键发币: SUI | SOL | BNB | ETH | BASE | ARB | OP | POLYGON | AVAX | FTM | OK
在最近的一个业余项目中,我构建了一个人工智能工具,它可以监控加密货币市场上的各种信号,并通过易于使用的每日电子邮件报告提供可操作的见解。我还很好奇如何利用生成式AI模型(如 GPT4o)的强大功能来对市场进行更深入的分析。开源社区似乎很少在这种功能上开展工作。
为了解决这个问题,我创建了 CryptoPanda ,这是一个在 GitHub 上提供的开源工具,它可以提取新闻、价格和链上开发数据,并将这些信号组合成一个新的累积激增分数,这个分数基本上是一个数字,突出显示了代币即将上涨的潜力。激增分数允许根据代币的潜力对其进行排名和优先排序。
本文简要介绍了如何使用 GPT4o API、Python 和几种流行的加密货币数据 API 构建该工具。我总结了在设计过程中学到的主要经验教训,这是一个有趣的经历,涉及加密货币、人工智能和云部署。
1、加密货币市场分析的挑战
众所周知,加密货币市场波动性很大,变化迅速。变化的速度令人惊叹。单个代币的价格甚至可以在一天甚至一小时内发生巨大变化。市场受到许多因素的影响,包括一般投资者的恐惧和贪婪、全球事件的新闻报道、鲸鱼的存在等等。然而,有大量的数据可用,一个有趣的问题出现了,即加密货币市场在所有这些数据中有多可预测或可理解。
我感兴趣的关键问题是,现代、高度强大的人工智能能否帮助提供可操作的见解?
由于我找不到现有的编写良好的开源工具来完成这项任务,因此我开始了一段旅程,看看如何利用所有可用数据来理解市场。
2、我的解决方案:CryptoPanda
结果是一个开源工具(GitHub),我将其命名为 CryptoPanda,主要是因为它使用了流行的 Pandas Python 库,并且专门用于分析加密货币趋势,那么为什么不将两者结合起来为该工具创建一个可爱的名字呢?
CryptoPanda 的输出是一份格式清晰的 HTML 电子邮件报告,可以每天发送,请参阅下面的示例:
在上面的报告中,每个推荐的代币都与 AI(在本例中为 GPT4o)列出的选择该代币的原因一起列出。代币必须在多个维度上都是积极的,例如新闻情绪、交易量变化、流动性等,才能被标记。通常,激增分数超过 50% 的代币是值得注意的。我们将在本文后面深入探讨这个分数的构建,这本身就是 AI 模型设计中一个有趣的练习。
你会注意到,上面的报告中还提供了一个链接,该链接指向代币的价格图表,以便可以验证推荐是否正确。与高级人工智能一样,人机交互是必需的——至少目前是这样。
我也非常有兴趣跟踪随着时间的推移累积的激增分数,因为它自然会日复一日地发展。我觉得这种模式本身可以突出显示代币的有趣趋势,这有助于对任何被发现的模式建立更多的信心。结果是报告中包含的一张图表,该图表绘制了代币随时间推移的累积激增分数,并在图表上突出显示了人工智能策划的推荐代币。
最后,CrytoPanda 的剩余组件是其由 GPT4o 驱动的新闻摘要功能。不可否认的事实是,新闻是加密货币市场强大的信息来源。当 Jump Trading 将价值超过 2 亿美元的 ETH 转移到中心化交易所时,比特币和以太坊等主要资产受到了利空影响,导致市场普遍下跌。最近一个典型的例子是 FTX 交易所因欺诈而倒闭,这让市场陷入恐慌。从积极的一面来看,新闻和推文,例如特斯拉投资比特币或埃隆马斯克谈论狗狗币,可能会对市场产生相反的影响,将其推向新的高度。
除了与累积激增分数相关的 AI 建议外,我还发现将当天的主要新闻浓缩到电子邮件报告中很有用,从而创建了一份“日落摘要”,可以立即了解市场动向。GPT4o 被要求将新闻总结为简洁的要点。正如你在下面看到的,它出色地完成了这项总结任务:
现在你已经了解了 CryptoPanda 的主要组件,我将介绍如何构建该工具以提供此输出,这是实用 AI 工具设计的一次有趣旅程。
3、设计 AI 驱动的加密货币市场分析工具
我将首先描述用 Python(GitHub)实现的工具的组成,然后再详细介绍库底层的关键 AI 设计决策。分析工作流分为几个组件,总结如下:
- 配置(config.py)处理整个工具中使用的环境变量和设置。
- API 客户端(api_clients.py)从外部来源获取数据,包括市场、情绪和新闻 API,并利用 helpers.py 和 config.py 中的函数来处理响应。
- 数据管理(data_management.py)负责提取、清理和规范化这些数据,使其准备好进行分析。
- 然后,代币分析 (coin_analysis.py) 模块使用指标对数据进行评分,并依赖于 api_clients.py。
- 助手 (helpers.py) 提供用于数据转换的实用函数。
- 报告生成 (report_generation.py) 将分析编译成报告,生成通过绘图 (plotting.py) 创建的可视化效果。
- 监控 (monitor.py) 模块协调管道,与其他组件协调以构建和发送报告。
此工作流程总结在以下流程图中:
4、AI 设计模式:监督 vs. 无监督
让我们转向工具背后的主要设计决策:AI 本身的选择。
事实上,在着手创建 AI 工具时,首先要做出的关键决定之一就是决定模型应该是无监督的(不需要标记加密货币价格飙升的样子)还是监督的(需要标记)。对于 CryptoPanda 工具,我决定采用无监督模型,因为我预计整理可靠的标签来表明市场开始飙升会很困难。
在我描述我最终采用的无监督方法之前,让我先谈谈为什么我选择不使用监督式 AI 方法。
由于我最感兴趣的是确定任何给定代币的价格飙升的开始时间,因此可以将监督式方法定义为根据历史信息(例如代币的新闻、情绪和价格历史)计算在给定时间发生上涨的概率。要计算这个概率,需要对大量代币的许多现有飙升事件进行标注,这将是一项高度手动且相当艰苦的工作。此外,由于这是一个高度动态领域中的时间序列估计问题,数据格局可能会迅速变化。
一个典型的例子是输入数据中的协变量偏移,例如,如果我们使用新闻信息,那么随着时间的推移,新词(例如第 2 层扩展”)可能开始与激增的开始产生更好的相关性,而不是特征集中权重较高的现有词(例如“NFT”)。为了抵消这种影响以及其他与数据漂移相关的影响(例如概念漂移、标签分布漂移、采样漂移、数据质量漂移),监督模型需要随着时间的推移用新标签进行刷新,这需要一个重复且大量手动的过程。
对我来说,作为一名独立黑客,简单和最少的重复工作是关键,同时为更广泛的加密社区快速构建一个有用的工具。我想不惜一切代价避免收集标签的需要,所以我决定用一种更简单的算法来代替它,这种算法大量利用静态(但合理设置)阈值和人类直觉,判断哪些事件组合可能预示着即将到来的激增。我设想的无监督模型(“CryptoPanda”)将采用与监督模型相同的数据,但不需要定义明确的标签。
相反,它将使用投票的概念,根据一组静态设置的阈值或决策树桩来聚合来自每个可用数据源的信号,以得出二元结果。虽然这种无监督模型不能免受数据漂移问题的影响,但它具有引人注目的优势:它易于理解,而且重要的是,它易于解释,同时允许快速轻松地调整每个决策树桩,以抵消观察到的性能随时间的任何衰减。
5、将 GPT4o 与决策树桩相结合
在生成式人工智能时代,决策树桩似乎已消失在机器学习时代的迷雾中。但是,如果使用得当并了解其局限性,它们可以成为用例的有效工具。此外,决策树桩还具有可解释性,允许对决策进行直接解释。决策树桩是一个简单的决策树模型,由单个分割或
单个决策节点,使其成为单级决策树。它可用于二分类或多分类任务。它的工作原理如下:
- 模型从数据集中选择一个特征和一个阈值或值进行拆分。
- 基于该单个拆分,将数据分为两组(用于二分类)或多组(用于多分类)。
- 预测基于每个组中的多数类或回归情况下的平均值进行。
在 CryptoPanda 的情况下,我们有一个简单的二分类任务,但没有标签。在我的实现中,决策树投票支持即将到来的激增,如果特征值落在正类(激增)的范围内,则为累积激增分数提供正增量(+1),否则为零(无激增)。
例如,如果加密货币的交易量变化超过一定百分比,我会为其分配一个标签,如“高交易量激增”,而不需要历史结果数据,也就是说不需要明确标签。为了获得最终结果,使用决策树桩的集合或集合来得出代币的估计累积激增分数。
CryptoPanda 很可能是有史以来第一个结合现有最强大的 AI 模型之一(GPT4o)和最不强大的模型(决策树桩)的用例😊
GPT4o 的作用是总结日落文摘中的新闻数据,并根据其整理的数据突出显示哪些高累积分数代币子集特别有吸引力。这向用户显示为绿色(推荐)和黄色(不推荐)。
GPT4o 根据代币整理的数据提出建议。如果 GPT4o 认为某种代币很有可能激增,它会用绿色突出显示该代币。
为了具体说明决策树桩如何用于加密货币分析,我们可以看一个涉及交易量变化的例子。在这个例子中,我们希望评估加密货币的交易量是否正在激增,这可能表明兴趣增加或潜在的价格变动。我们可以创建一个简单的交易量变化决策树,使用不同时间段的交易量数据。
- 特征:三个时间段(短期、中期和长期)的交易量百分比变化。
- 示例阈值:短期阈值:20%;中期阈值:15%;长期阈值:10%
超过这些阈值中的任何一个,都会为最终的累积激增分数增加一个正投票。就这么简单!
但是,设置这些阈值的值至关重要,应该非常谨慎地实施。
波动性和市值在交易量阈值的定义中起着非常重要的作用。波动性衡量加密货币价格变化的速度和不可预测性,这会影响交易量变化的解释方式:波动性越高通常意味着交易量波动越大越常见,越不令人担忧。另一方面,市值反映了加密货币在市场中的总体价值,有助于确定对交易量变化的敏感度;与市值较小的代币相比,市值较大的代币通常需要更显著的交易量变化才能引发相同程度的兴趣。CryptoPanda 对市值和波动性进行分类,并以这种方式设置细微的阈值,以区分不同代币之间有意义的交易量活动。
类似的谨慎领域特定逻辑驱动着 CryptoPanda 中其他关键决策树桩阈值的设置。
有了这个令人尴尬的简单模型,我最终想要一个易于构建和易于维护的工具,为用户提供一个很好的提示,即代币可能发生了一些有趣的事情,并让用户保持主导地位,让人类做出是否投资的最终决定,或者只是跟踪和密切关注特定代币。与典型的监督式 AI 模型相比,该模型的活动参数数量非常少,因此很容易根据对其随时间输出的观察来改变其行为,只需改变静态阈值即可。
就像生活中一样,在 AI 中,有时少即是多。
6、将它们结合在一起:CryptoPanda 累积评分系统
首先,我决定根据关键的加密货币市场数据创建五个核心决策树桩。各个决策树桩(即公共 GitHub 中的 analyze_volume_change、analyze_price_change 等函数)都组合在一个累积评分系统中,为每个币提供总分。
6.1 分数计算
测试加密货币数据的特定方面(例如,成交量变化、价格变化、情绪、事件发生),并根据是否满足特定触发条件返回分数 0 或 1。
a) 成交量变化测试:
- 分析短期、中期和长期成交量变化。
- 我们之前已经详细了解过这一点。此测试根据预设阈值对成交量是否有显著增长进行分类。
- 结果:表示成交量重要性的分数和解释。
b) 价格变化测试:
- 评估短期、中期和长期价格变化。
- 使用阈值确定价格增长是否显著。
- 结果:价格变化重要性的分数和详细解释。
c) 趋势币测试:
- 使用模糊匹配通过将币与高分趋势代码列表进行比较来确定币是否正在流行。
- 匹配基于币的名称或 ID 与代码之间的相似性。
- 结果:如果找到匹配项,则显示趋势分数。
d) Santiment 数据树桩:
- 分析来自 Santiment 指标的开发活动和每日活跃地址。
- 应用阈值来分配二进制分数并提供评分原因。
- 结果:Santiment 分数和描述性解释。
e) 持续增长树桩:
- 检查代币的价格或交易量是否显示出持续的每周增长。
- 在过去 7 天中至少有 4 天出现正增长,则产生二进制分数。
- 结果:持续增长的二进制分数,表示稳定性。
f) 恐惧和贪婪树桩:
- 分析当前的恐惧和贪婪指数以评估市场情绪。
- 该指数分为以下范围:0–22:极度恐惧;23–49:恐惧;50–74:贪婪;75–100:极度贪婪。
- 如果指数超过预设阈值,则表示“贪婪”状态;否则,它显示“恐惧”。
- 结果:代表市场情绪的二进制分数,以及对如何确定分数的解释。
每个决策树桩都充当弱学习者,专注于加密货币表现的特定方面。请注意,CryptoPanda 中实际上没有一个阈值是可以学习的,它们是基于直觉和历史市场动态静态设置的。如果有标签,那么原则上可以学习和优化阈值。
6.2 累积激增分数
将决策树桩中的所有单个分数相加以获得累积分数。该分数表示基于 CryptoPanda 中分析的所有不同信号的加密货币的整体强度或吸引力。将累积分数除以最大可能分数,然后乘以 100 以计算累积分数百分比。该百分比给出了总体评估的标准化视图。
6.3 综合起来:LLM 提示
到目前为止,根据市场数据整理了每种代币的指标,然后将推荐决策委托给 LLM,LLM 会考虑所有汇总信息,并被要求给出是/否决定并附上简短解释。为了本文的目的,我使用了 GPT4o,但原则上可以使用任何相当强大的 LLM。
# Prepare prompt
prompt = f"""
You are provided with detailed analysis data for several cryptocurrency coins. Using this data, evaluate each coin individually and provide a recommendation on whether it should be considered for purchase based on the potential for a breakout or surge in value.
**Key requirements:**
1. If the analysis indicates a surge or breakout potential for a coin, the recommendation must always be "Yes". Ensure this is clearly stated and supported by the data.
2. If a coin does not show immediate potential, include it in the output with a detailed explanation, and the recommendation must be "No". Ensure the reasoning reflects the lack of a surge or breakout potential and is grounded in the data.
**Do not repeat or summarize the dataset.** Instead, return the recommendations in structured JSON format for each coin, whether recommended for purchase or not, with clear reasoning for your recommendation based on the data.
Ensure the explanation explicitly references key factors from the data, such as liquidity risk, cumulative score, sentiment, or other relevant metrics, to justify the recommendation.
Format your response as follows:
{{
"recommendations": [
{{
"coin": "Coin Name",
"liquidity_risk": "Low/Medium/High",
"cumulative_score": "Score Value",
"recommendation": "Yes/No",
"reason": "Provide a fluent, specific, and data-driven reason based on the analysis provided. Clearly explain why this coin is or is not recommended for purchase, citing relevant metrics or trends from the data."
}},
...
]
}}
Here is the data for your analysis:
{json.dumps(df_json, indent=2)}
"""
为了便于解释,要求 LLM 根据给定的数据证明其决策的合理性。提供结构化输出以 JSON 格式进行解析以创建最终的电子邮件报告。此响应在电子邮件报告中显示给用户:
7、CryptoPanda 评估
在我撰写本文时,世界正处于 2024 年美国总统大选的最后几天。鉴于这一重大的世界事件,还有什么比看看它是否正确感知到选举带来的总体市场活力以及对特朗普即将获胜的预期更好的方法来测试该模型的敏感性?
以比特币为例,由于投资者押注特朗普获胜,以及随后特朗普总统任期对加密货币的支持,比特币的价格在 2024 年大选活动的最后几天稳步上涨。如果我们看一下 CryptoPanda 在选举前几天最热门的代币的累计得分,我们清楚地看到一个积极的上升趋势,表明人们的兴趣在增加,尤其是对比特币及其包装变体的兴趣:
我们看到在 2024 年美国总统大选前的这段时间里,累计激增得分呈健康上升趋势。
选举后,比特币的价格实际上创下了新高。水涨船高,其他代币(例如虚拟协议)也经历了上升趋势。将其与同一时期(2024 年 10 月 25 日至 11 月 5 日)的 CoinPaprika 比特币图表进行比较,我们看到随着时间的推移出现了类似的积极趋势,这表明存在良好的相关性,让我们对该工具的有效性充满信心。
这是对 CryptoPanda 方法的积极验证,表明它可以通过汇总来自加密货币社区的各种数据源来突出市场的重要趋势。我为未来的工作留有余地,对该工具的性能进行更可靠的评估。
与往常一样,对于新的 AI 功能,需要非常谨慎地进行审查和验证,并且人工循环验证是必需的。
8、CryptoPanda 的云部署
我发现一种成功的模式是使用 CloudFormation 脚本部署 EC2 实例(t2.micro)(以实例化 VPC 和子网以及安全组和 IAM 角色)。然后通过 EventBridge 安排一个事件来启动 Lambda 函数,该函数将定期在 EC2 实例上调用脚本(我选择每天一次并监控前 100 种硬币)。当然,你也可以在 EC2 实例上使用简单的 Cron 作业。但是,作为本练习的一部分,我特意想了解有关 Lambda 和 EventBridge 的更多信息,这就是我选择使用这些 AWS 功能的原因,这些功能需要额外的但非常小的财务成本。
在基础设施方面,成本通常很低,每月约 30 美元,不包括 CoinPaprika 和 CryptoNews 的数据 API 成本。
另请注意,你将产生一些访问 CoinPaprika 和 CryptoNews API 的费用,总计每月约 100 美元。这些是运行该工具的大部分费用。这两项服务都有值得最初探索的免费套餐,但是任何认真的工作都可能需要订阅,因为我发现我很快就达到了免费 API 的限制。
总的来说,每天运行 CryptoPanda 服务每月将花费约 130 美元的云基础设施成本和数据 API 成本。通过利用其他提供商并优化代码以提高效率,可以稍微削减这些成本。
9、展望未来
CryptoPanda 的进一步开发和改进选项多种多样。
在构建此工具时,我选择将当今存在的最简单的(我们谦逊的朋友,决策树桩)和最先进的(在撰写本文时,GPT4o)AI 模型之一统一起来,以创建两种技术的独特融合,标记出加密货币市场的有用见解和趋势。这种组合本身可能是一种独特的 AI 设计模式。正如本文所总结的那样,我发现这种 AI 设计模式非常适合分析加密货币市场,并且发现这些见解与代币的未来价格走势密切相关。
CryptoPanda 在 GitHub 上完全开源,供社区使用并在新颖的方向上构建。在将强大的 AI 应用于区块链和加密货币方面,现在有一个令人兴奋且尚未开发的前沿领域触手可及,而我们在这篇介绍性文章中只是触及了表面。
套用牛顿的话,随着强大人工智能的崛起,我们正站在可能性的海岸线上,将小鹅卵石投向广阔的未知海洋。
我期待看到社区如何在这个工具的基础上进行构建。
原文链接:I used LLMs to Analyse The Cryptocurrency Market. These are my Lessons Learnt.
DefiPlot翻译整理,转载请标明出处
免责声明:本站资源仅用于学习目的,也不应被视为投资建议,读者在采取任何行动之前应自行研究并对自己的决定承担全部责任。