Tushare 收费 2000 元一年合理吗?量化行情数据源应该怎么选?

Tushare 量化数据接口技术选型 对比了量化交易数据源的四种方案:Wind(昂贵但全面)、Choice(中等价位)、聚宽(免费但受限)和Tushare(性价比高)。最终选择Tushare作为个人开发者的最优解,因其开源、支持数据导出且成本低廉(200-500元/年)。 技术实现方面: 采用Python封装Tushare API,统一处理异常和数据清洗 提供股票列表和日线数据获取的示例代码 建议SQLite用于开发。 阅读详情

一句话回答

Tushare 收费 2000 元一年是否合理,不能只看价格,还要看购买的是历史分钟线、实时行情还是其他数据权限;是否合法,则需要结合服务协议、收费告知、数据授权和具体交易行为判断,不能仅凭价格下结论。对量化开发者来说,更重要的是评估数据覆盖率、接口稳定性和长期维护成本。如果主要需求是获取历史 K 线、计算指标和运行回测,可以考虑通过 QuantDash Python SDK 接入行情数据,再结合实际业务需求决定是否需要付费数据服务。

为什么会有这个问题 / 传统做法有什么问题?

不少个人量化开发者最初接触 Tushare,是因为它提供了方便的 Python 数据接口。

例如,要开发一个简单的 A 股趋势策略,通常只需要完成几项工作:

  • 获取股票的历史日 K 线。
  • 计算 5 日和 20 日移动平均线。
  • 根据均线关系生成研究信号。
  • 使用历史行情验证策略表现。

这些任务看起来并不复杂,但随着策略需要更长时间范围、更高频率或更多种类的数据,开发者可能遇到积分权限、单独授权以及订阅费用等限制。

关于网上讨论的“2000 元一年”,需要先明确一点:不能把某类数据权限的价格理解成 Tushare 所有接口的统一年费。 不同数据产品可能采用不同的授权和收费方式,具体费用与权益应以购买时的官方说明为准。

还有一个常见误区,就是直接拿 Tushare 和券商 Level-2 行情比较。

实际上,两者不一定提供相同的数据产品。

比较维度历史行情数据服务券商 Level-2 行情
主要用途历史研究、指标计算、策略回测盘中观察、盘口分析
数据重点长周期 K 线、历史序列实时盘口及相关行情
历史深度取决于具体订阅权限取决于券商提供的服务
Python 接入取决于 API 能力取决于券商接口权限
使用授权需要确认数据使用范围需要确认账户和行情授权

因此,某项历史数据服务比券商 Level-2 价格更高,并不能直接说明它不合理。

真正值得量化开发者计算的是总成本。

假设某项数据服务年费为 2000 元,同时开发者每月需要投入 4 小时维护接口,按每小时 100 元估算:

年总成本 = 2000 + 4 × 12 × 100 = 6800 元。

这里的维护时间和人力单价只是用于说明成本模型的假设,并非实际统计结果。

如果替代数据源能够满足研究需求,减少不必要的订阅项目,开发者就有机会调整预算。

不过,不能因为一个 SDK 提供了历史 K 线接口,就认为所有数据都可以免费获取。可访问的数据范围、调用限制及收费情况,仍然需要根据实际服务权益确认。

分步骤解决:使用 QuantDash 进行实践

下面以单只股票的日线研究为例,看看如何建立不依赖某一家数据提供商的基础行情处理流程。

第 1 步:安装 SDK 并初始化客户端

安装 QuantDash:

# 在 Python 环境或终端中执行
# pip install quantdash

实际安装命令为 pip install quantdash。

初始化客户端:

import os
from quantdash import QuantDash

api_key = os.getenv("QUANTDASH_API_KEY")

if not api_key:
    raise RuntimeError(
        "请先设置 QUANTDASH_API_KEY 环境变量"
    )

try:
    qd = QuantDash(api_key=api_key)
except Exception as exc:
    raise RuntimeError(
        f"QuantDash 客户端初始化失败: {exc}"
    ) from exc

API Key 使用环境变量管理,避免直接写入代码仓库。

初始化成功只表示客户端对象已经创建,并不代表账户一定具备所有市场和数据类型的访问权限。

第 2 步:获取与主题相关的数据

对于只需要研究日频策略的开发者,可以先获取单只股票的历史日 K 线。

import pandas as pd

symbol = "600519.SH"

try:
    df = qd.klines.get(
        symbol,
        period="1d",
        count=100,
        adjust="forward",
        to_dataframe=True,
    )
except Exception as exc:
    raise RuntimeError(
        f"{symbol} 历史行情获取失败: {exc}"
    ) from exc

if not isinstance(df, pd.DataFrame):
    raise TypeError("行情返回结果不是 DataFrame")

if df.empty:
    raise ValueError("行情数据为空,请检查权限或参数")

print("返回字段:", df.columns.tolist())
print("数据行数:", len(df))
print(df.head())

这里使用的几个参数:

  • period=“1d”:获取日线数据。
  • count=100:请求最近 100 根 K 线。
  • adjust=“forward”:使用前复权价格。
  • to_dataframe=True:将返回结果转换为 Pandas DataFrame。

需要注意,前复权价格适合部分连续价格序列研究,但不是历史真实成交价格。

代码中的 close 等字段必须通过实际返回结果确认,不能默认不同数据提供商的字段完全一致。

第 3 步:处理数据并展示核心逻辑

获取行情以后,可以计算一个简单的均线研究指标。

以下代码承接第二步的 df。示例假设返回结果包含 close 字段;如果实际名称不同,需要先完成字段映射。

import numpy as np
import pandas as pd

if "close" not in df.columns:
    raise KeyError(
        f"缺少 close 字段,实际字段: {df.columns.tolist()}"
    )

close = pd.to_numeric(
    df["close"],
    errors="coerce"
)

if close.isna().any():
    raise ValueError("收盘价包含缺失值或非数值")

if not np.isfinite(close.to_numpy()).all():
    raise ValueError("收盘价包含无穷大")

if (close <= 0).any():
    raise ValueError("收盘价存在非正数")

# 均线计算需要保证时间顺序
# 以下代码要求 df 已按交易时间升序排列
# 排序字段需根据实际返回结构确认
if len(df) < 20:
    raise ValueError("计算20日均线至少需要20条记录")

result = df.copy()
result["close"] = close

result["ma5"] = close.rolling(
    window=5,
    min_periods=5
).mean()

result["ma20"] = close.rolling(
    window=20,
    min_periods=20
).mean()

result["above_ma20"] = (
    result["ma5"] > result["ma20"]
)

print(result[[
    "close",
    "ma5",
    "ma20",
    "above_ma20"
]].tail())

这里有一个重要前提:K 线必须先按照真实交易时间升序排列。

由于不同 SDK 版本和数据接口可能使用不同的日期字段,实际运行时应先检查返回结构,再使用正确的日期字段排序。

如果没有确认时间顺序,计算出来的均线可能看起来正常,但实际上毫无研究意义。

第 4 步:展示完整业务示例或进阶处理

选择行情数据源时,不能只检查能否成功请求,还应验证价格序列的基本质量。

下面构造一个可复用的数据质量检查函数。

import numpy as np
import pandas as pd

def check_daily_prices(data):
    required = ["open", "high", "low", "close"]

    missing = [
        col for col in required
        if col not in data.columns
    ]

    if missing:
        raise ValueError(
            f"缺少必要字段: {missing}"
        )

    if data.empty:
        raise ValueError("输入行情为空")

    prices = data[required].apply(
        pd.to_numeric,
        errors="coerce"
    )

    invalid_number = ~np.isfinite(
        prices.to_numpy()
    )

    non_positive = (
        prices.to_numpy() <= 0
    )

    invalid_high = (
        prices["high"] <
        prices[["open", "low", "close"]].max(axis=1)
    )

    invalid_low = (
        prices["low"] >
        prices[["open", "high", "close"]].min(axis=1)
    )

    return {
        "total_rows": len(data),
        "invalid_number_rows": int(
            invalid_number.any(axis=1).sum()
        ),
        "non_positive_rows": int(
            non_positive.any(axis=1).sum()
        ),
        "invalid_high_rows": int(
            invalid_high.sum()
        ),
        "invalid_low_rows": int(
            invalid_low.sum()
        ),
    }

report = check_daily_prices(df)

print("行情质量检查结果:")
for key, value in report.items():
    print(key, value)

这段代码由业务层自行执行,并不是 SDK 自动提供的数据审计功能。

此外,OHLC 价格关系检查属于基础结构检查,不能代替复权一致性检查。若不同价格字段使用了不同调整口径,还需要单独排查。

实际部署时,还需要增加交易日期重复检查、缺失交易日检查和数据版本记录。

关键坑与注意事项

  • 不要把 2000 元理解为所有接口的统一价格。 不同数据类型可能对应不同权限,实际购买前应核对权益、期限和退款条款。
  • 历史行情不能直接替代 Level-2。 日线和分钟 K 线不能提供所有逐笔成交、逐笔委托或订单簿信息。
  • 复权方式必须明确。 前复权、后复权和不复权的价格序列不同,混合计算容易产生错误指标。
  • 返回成功不等于数据完整。 即使接口没有报错,也需要检查交易日期和预期数量。
  • 不要直接信任价格字段。 数值转换、非正价格、缺失数据和极端波动都需要验证。
  • 注意数据授权边界。 个人研究、企业使用、对外展示和数据再分发可能具有不同的许可要求。
  • 回测需要保存数据版本。 如果历史行情后来发生修订,缺少原始数据快照就可能无法复现当时的研究结果。

常见问题(FAQ)

Q:Tushare 收费 2000 元一年合法吗?

A:收费本身不当然违法。是否合法,需要结合服务协议、收费信息披露、用户权益、合同变更、数据授权等具体事实判断。如果涉及原有服务条款变更或争议收费,应保留购买页面、协议版本和交易记录,必要时咨询专业法律人士。

Q:2000 元的历史行情服务和券商 Level-2 谁更划算?

A:无法仅凭价格判断。历史策略研究更关注数据跨度、复权和历史完整性;盘口策略更关注实时深度、延迟和逐笔数据。

Q:QuantDash 可以直接替代 Tushare 吗?

A:对于已确认支持的历史 K 线获取场景,可以作为候选数据源。但接口字段、覆盖市场、历史范围、更新速度及实际权限需要逐项验证,不能假定全部兼容。

Q:为什么不同数据源计算的均线会不一样?

A:常见原因包括复权方式不同、停牌处理不同、缺少交易日、数据修订以及时间顺序不一致。

Q:只做个人日线回测,有必要购买高价数据吗?

A:应先明确标的数量、历史跨度、数据种类和使用频率。如果现有合法授权的数据已经满足需求,就不一定需要额外购买更高等级的数据服务。

小结

Tushare 收费 2000 元一年的争议,表面上是价格问题,实际上涉及数据产品差异、使用授权和开发者的长期成本。单纯拿它与券商 Level-2 比价,并不能得出完整结论。对于量化研究,数据是否符合实际策略需求,比名义价格更值得关注。

QuantDash Python SDK 可以作为历史行情数据接入的一种实现方式,帮助开发者获取 K 线并开展后续指标计算。但数据质量检查、字段适配、复权验证、授权确认和历史版本管理仍然需要由工程系统完成。只有建立可检查、可替换的数据接入流程,才能降低对单一供应商的依赖,提高研究结果的可靠性。

参考

QuantDash Python SDK 文档:https://docs.quantdash.net/zh-Hans/sdk/python-quickstart

股票实时行情API实战:混合架构设计与Python实现 在量化交易和金融数据分析领域,获取稳定、低延迟的实时行情数据是构建策略和工具的基础。其核心原理是通过API接口从数据源获取结构化的市场信息,如价格、成交量等。这项技术的价值在于为自动化交易、风险监控和投资决策提供可靠的数据输入。典型的应用场景包括个人量化策略回测、实时价格监控系统和投资分析工具开发。本文聚焦于解决数据获取中的实时性与稳定性痛点,通过设计一套融合Tushare Pro与新浪财经等数据源的混合架构,并详细阐述了使用Python实现主备切换、错误重试和缓存策略的工程实践,为开发者构建高可用的金融数 阅读详情

相关推荐

Tushare Pro量化数据获取与回测实战:从增量同步到避坑指南

在量化投资与A股数据分析中,Python生态提供了丰富的数据接口,而Tushare Pro凭借规范字段和稳定接口成为个人研究者搭建数据链路的热门选择。理解数据获取的原理,是构建可靠策略的第一步:从交易日历规划增量同步,到处理财务公告日期以避免未来函数,再到利用复权因子修正除权跳空,每一个环节都直接影响回测结论的真实性。技术价值体现在将原始行情、财务指标与涨跌停等盘后数据统一管理,形成可复用的本地数据库;工程实践则需关注接口限流、数据去重与权限分级。应用场景涵盖盘后涨停梯队复盘、板块联动分析以及双均线等策略的

weixin_29046035的博客 282

上交所股票行情数据API接口接入实战:从选型到性能优化

量化交易与程序化盯盘场景下,稳定获取股票行情数据是策略研发的起点。行情接口按时效性可分为实时推送与历史批量两类,前者依赖WebSocket长连接实现低延迟盘口监控,后者则通过HTTP接口拉取日线、分钟线用于回测与因子分析。理解token权限、限频规则、复权因子等基础概念,是避免接入踩坑的关键。本文从接口选型、密钥管理、Python代码实现、本地缓存与增量更新、性能优化到排错实录,完整梳理一套可落地的上交所股票行情数据API接口接入方案,帮助个人研究者与产品开发者快速搭建稳定、高效的行情数据链路。

weixin_34345753的博客 256

Pandas入门教程(二十二):股票数据分析实战——yfinance 获取数据、技术指标与收益率分析

把 Pandas 用在真实场景,才能体会它的价值。本文以茅台股票为例,用 yfinance 获取历史行情,完成缺失值处理与列筛选,绘制收盘价曲线,计算 SMA 移动平均线与 RSI 相对强弱指数,并通过日收益率、累计收益率和波动率完成完整的量化分析流程。

Smell_of_earth的博客 322

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 405

如何处理动态语言(Python / JS)的“隐形”调用链?

本文揭示动态语言(Python/JS)中静态AST解析导致调用链“断链”的核心问题,提出通过运行时追踪补全图谱的解决方案。基于Code-Graph-RAG的cgr trace机制,分别利用pytest插件与V8 Profiler捕获真实调用路径,将动态边合并至静态图谱,并在权重体系中提升动态边优先级。实践表明,该方法可显著提升图谱覆盖率,实现“结构+行为”双视角理解代码,为MCP与Rerank系统提供可靠支持。

xianyinsuifeng的博客 402

设置Solidworks导出文件的坐标系,stl坐标系平移

使用solidworks输出的模型坐标不再原点,怎么平行坐标系,这个方法很简单

weixin_45650767的博客 1万+

从一段视频到可漫游的 4D 有声场景:思路拆解与最小复现手记

只需一段手机视频,你就能生成可"走进去"的 4D 有声场景:转头时狗叫声方向随之变化,走近时声音更清晰。本文拆解 Video-to-4DAVScene 的核心思路,手把手带你用几十行 Python 搭出最小管线,把视频中的运动物体变成带空间位置的声源,并附上三个真实踩坑的排障经验,代码可直接跑。🎧

helloagent的博客 234

SqlSugar避坑指南:C#操作MySQL时你可能会忽略的5个细节

本文分享了使用C#和SqlSugar框架操作MySQL数据库时的实战避坑指南。针对连接配置、实体映射、查询性能、事务处理等关键环节,深入剖析了5个容易被忽略但至关重要的细节,帮助开发者提升项目稳定性和执行效率,避免常见陷阱。

delta的博客 276

【每天一个 Python 小案例30】Python 基础知识综合小项目:我的工具盒

作为系列收官,本篇把前 29 篇的知识点合成一个能直接用的命令行工具"我的工具盒":计算器(用 ast 解析表达式,不碰 eval)、单位换算与温度转换(一张换算表 + 特例分支)、记账与分类统计(Decimal + JSON 持久化)、以及用"字典当命令表"把菜单和业务逻辑解耦的主循环。文中对比了 eval 的安全隐患与 ast 白名单的做法,解释了 lambda 闭包在字典里的写法与晚绑定陷阱,并在最后给出整个系列的知识地图,把变量、数据结构、控制流、函数、类、异常、文件、标准库八块内容对应到具体篇目。

xinjiyaya的博客 426

别再只用真彩色了!手把手教你用ENVI主成分分析(PCA)给遥感图像‘美颜’与‘瘦身’

本文详细介绍了如何利用ENVI主成分分析(PCA)技术优化遥感图像处理,实现数据‘美颜’与‘瘦身’。通过PCA的维度压缩、噪声分离和特征增强三大优势,显著提升高光谱数据的可视化效果和分析效率。文章还提供了ENVI操作的最佳实践和常见问题解决方案,帮助读者掌握这一遥感图像处理的游戏规则改变者。

weixin_28465009的博客 276

高通Camera PDAF调试实战:从Type2到Type3的避坑指南与Log分析技巧

本文深入解析高通Camera平台PDAF调试实战,重点对比Type2与Type3的核心差异,提供详细的配置迁移方案和Log分析技巧。针对常见兼容性问题如对焦速度变慢、低光失效等,给出具体解决方案,并分享性能优化案例与高级调试工具链,帮助开发者快速提升PDAF调试效率。

weixin_29164185的博客 411

详解Python条件语句

在 Python 中,if...else 是一种条件语句,可以根据给定的条件执行不同的操作。这个语句通常用于控制程序的流程。

2601_96798737的博客 206

华为自研 ERP、Oracle EBS 与 SAP 上线时系统配置思路设计差异深度分析

本文对比分析了华为自研ERP、Oracle EBS和SAP S/4HANA三大ERP系统在上线配置思路上的核心差异。从架构设计看,华为采用分布式微服务架构,SAP采用分层服务架构,Oracle采用集中式一体化架构;在模块配置上,华为以业务场景为导向,SAP基于行业模板,Oracle强调模块独立性;数据迁移方面,华为侧重业务规则清洗,SAP注重数据质量监控,Oracle依赖标准化工具;流程适配上,华为系统随流程调整,SAP在框架内优化,Oracle需定制开发;定制开发模式差异明显,华为采用插件化扩展,SAP使

金牌架构师 1453

Python3 协程:异步编程的核心机制与实战

协程是解决I/O密集型任务等待瓶颈的高效机制,相比线程更轻量、无锁开销。从yield到async/await的演进,使异步编程语义清晰、易于理解。通过async/await可实现并发执行多个任务(如gather、create_task),显著提升网络请求、爬虫等场景性能。关键在于使用异步库(如aiohttp)替代同步库,避免阻塞事件循环。合理控制超时与并发数,才能发挥协程最大优势。

Lxn2zh的博客 159

基于 Logistic 混沌映射和 Arnold 变换 的变换域水印改进算法【高级网络与信息安全技术-信息隐藏期末课程论文】

摘要:\textbf{摘要:}摘要:本文提出了一种新的水印算法是一种图像认证的新方法。算法首先使用Logistic混沌映射加密水印图像,然后使用Arnold变换置乱水印。同时改变了水印图像的像素位置和像素值,大大提高了算法的安全性。再使用DCT变换嵌入水印,并且结合人类视觉系统的特点来提升水印嵌入的透明性。实验结果表明,本文提出的水印算法可以大幅度提高水印嵌入的透明性与安全性的同时,并不降低算法的鲁棒性。注:完整的代码和论文在文末,百度网盘链接。

zik的博客 893

自监督学习原理与代码实战案例讲解

自监督学习原理与代码实战案例讲解 作者:禅与计算机程序设计艺术 1. 背景介绍 1.1 自监督学习的起源与发展 1.1.1 监督学习的局限性

AI天才研究院 624

二进制木马免杀-Python 分离免杀与 Web 挂马

二进制木马免杀-Python 分离免杀与 Web 挂马

2503_94637398的博客 268

YOLO26引入ECA-Net的改进版变体:1D卷积在2026目标检测的极致压榨

摘要: 2026年发布的YOLO26通过移除DFL模块、支持无NMS推理等革新成为边缘计算新标杆。为进一步提升性能,研究聚焦轻量级通道注意力机制ECA-Net,其核心创新在于用1D卷积替代传统全连接层,仅需5个参数即可实现高效通道交互。数学分析表明,ECA模块在ResNet50上仅增加80个参数,却能带来2%以上的精度提升。这种"极致压榨"的设计理念与YOLO26的轻量化特性高度契合,为在几乎不增加计算开销的前提下提升模型性能提供了可行方案。技术验证显示,该组合在COCO数据集上实现了检测精度与推理效率的双

ZDQ58818的博客 262

torch.compile 差异仅 1e-6,边界样本预测为何翻转

torch.compile 加速后输出与 eager 不一致,部分预测翻转。逐层对比与 graph break 分析定位到动态分支翻转根因。容差回归仅适用于无分支翻转场景,零容忍场景应禁用编译。

昨日种种,皆成今我。今日种种,皆成新我。 159

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级 备考:莫队算法离线区间查询详解

备赛进行时:第十八届蓝桥杯软件赛报名已于 2026-10-08 10:00 开启、12-18 14:00 截止,省赛定在 2027-04-10(C/C++·Python 程序设计 9:00–13:00);中国电子学会 2026 年 12 月软件编程(C/C++ 一级至十级、Python 一级至六级)考级报名 9/23–12/2 16:00、统考 12-12;全国青少年信息素养大赛 2026—2027 赛季算法应用主题赛也已进入复盘练兵窗口。

IT_Scratch的博客 128

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【Python】国家中小学智慧教育平台电子教材批量下载与 PDF 合成实战

成果:两本语文电子课本(一年级上册 118 页 / 23MB、三年级上册 130 页 / 30.3MB),合计 248 页、约 54MB,单本下载加合成 40~60 秒,PDF 页数校验全部通过。经验教训SPA 站点的数据接口优先从 bundle 里挖,比抓页面稳得多;资源链接要按 private/public 分组看待,只取平台公开部分;页数、目录名这类“可推断”的信息,永远用实际响应验证一次;受限环境里“能不能跑浏览器”要在方案定稿前确认。后续计划:这版 PDF 是图片版,没有文字层;

木头大左的博客 134

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

魔塔社区微调训练Qwen2-1.5B-Instruct模型并烧录到‌RK3568开发板教程

本文基于Ubuntu 22.04 + CUDA 13.0.3环境,使用LLaMA-Factory框架对Qwen2-1.5B-Instruct模型进行LoRA微调,训练儿童故事生成专用模型。通过配置qwen模板、制作alpaca格式数据集、执行sft训练并合并LoRA权重,最终将模型转换为GGUF格式,并量化为Q4_K_M以适配RK3568嵌入式平台。全程支持国产镜像加速下载与显存优化,实现高效轻量化部署。

浅清秋慕夏的博客 186

【回眸】DeepSeek V4.1 Flash 快速上手与实战

本文介绍如何高效本地部署开源大模型,通过现代化工具链实现分钟级环境搭建。聚焦显存优化、一键安装、代码调用与多轮对话实现,解决“显存不足”“连接超时”等痛点,提供参数调优与结构化输出技巧,助力开发者在离线场景下快速构建稳定、高效的本地推理系统。

啤酒鸭的物联网开发记录博客 223

智叟云集-手机证据抓取系统的工程结构与应用入口

本文系统阐述手机证据抓取系统的工程结构与应用入口,涵盖四大层面:工程目录划分(Android、Python服务、Web页面、测试与构建工具);Android组件通过Manifest声明可启动页面,主界面由MainActivity管理;Python服务通过run.py解析参数并启动FastAPI应用,支持远程访问;浏览器页面采用HTML/CSS/JS分离架构,静态资源通过路径关联,实现动态交互。各模块分工明确,协同构建可运行的采集系统。

2301_77178996的博客 232

Java Arrays.asList 常见坑详解|UnsupportedOperationException、数组联动、基本类型 bug

解析 Arrays.asList 常见开发陷阱,演示 UnsupportedOperationException、底层数组引用共享、基本类型数组问题,区分 Arrays 内部 ArrayList 与 java.util.ArrayList,给出数组转 List 的各种场景正确代码。

weixin_42617033的博客 472

利用python中matplotlib.pyplot库绘制图

plt.plot(x,y) # x,y是每个点的坐标,plot()把每个点按顺序画折线。plt.subplots(2,2)表示绘制2*2的子图布局,axs[0,0]表示在第0行第0列绘制子图...coordinates_i[:,0]表示获取每一行(每一个spot)的第0列(x坐标)coordinates_i[:,1]表示获取每一行(每一个spot)的第0列(y坐标)plot.subplot(2,2,1) 表示子图布局是2*2的,开始绘制第一个。也可以导入数据绘制。可以设置color属性,设置颜色。

qq_46147236的博客 102
上一篇: 五档盘口怎么用 Python 稳定读取:封装一个可复用的盘口函数,附校验清单与 6 个易错点
下一篇: 国内哪些平台提供比较全的金融数据接口?Python 量化开发如何选型?
quantdash_cc
博客等级 码龄105天 38粉丝 233原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值