TradingView-Machine-Learning-GUI

GitHub
926 249 简单 2 次阅读 昨天MIT开发框架插件数据工具
AI 解读 由 AI 自动生成,仅供参考

TradingView-Machine-Learning-GUI(核心项目 HyperView)是一款面向量化交易者的终端策略实验室。它将 TradingView 上的图表想法转化为可验证的 Python 交易系统,有效解决了 Pine 脚本难以深度开发与本地回测的痛点。

传统模式下,开发者往往需要在 Pine 脚本、CSV 导出和自定义笔记本间反复切换,导致效率低下。它提供了一个流畅闭环:直接从 TradingView WebSocket 拉取历史数据,利用 TA-Lib 计算指标,并以接近 Pine 脚本的执行行为进行回测。这意味着在本地调优的参数,应用到 TradingView 时依然保持一致。

它特别适合希望像工程师一样构建策略的交易员和量化研究人员。无需复杂的 API 配置或浏览器自动化,付费账户甚至能下载 4 万根 K 线。内置的贝叶斯优化功能可自动搜索最佳止损止盈参数,配合 Rich 库生成的清晰终端报表,让策略验证更高效、更精准,真正实现快速迭代与严谨验证。

使用场景

量化交易员李明需要将他在 TradingView 上验证过的 Pine 脚本策略迁移到本地 Python 环境进行深度回测和参数优化,以确保策略在实盘中的稳定性。

没有 TradingView-Machine-Learning-GUI 时

  • 需手动导出 CSV 数据,格式清洗耗时且容易因编码问题丢失关键行情信息。
  • Pine 脚本与 Python 逻辑难以对齐,回测结果不一致导致策略信任度低,无法确认盈利来源。
  • 调整止损止盈参数需反复修改代码并重新运行,效率极低且容易在人工操作中引入错误。
  • 缺乏专业的终端输出,难以直观对比多标的组合表现和资金曲线统计。

使用 TradingView-Machine-Learning-GUI 后

  • 直接通过 WebSocket 下载历史 K 线,支持付费账号获取 4 万根 K 线,无需手动处理 CSV 文件。
  • 内置 TA-Lib 确保指标计算与 Pine 脚本完全一致,回测结果高度可信,填补了本地开发与平台测试的鸿沟。
  • 利用 Optuna 自动搜索最佳 SL/TP 参数组合,快速锁定最优解并生成预设文件,大幅缩短迭代周期。
  • 提供 Rich 库驱动的精美终端表格,直观展示盈亏、回撤及期望值,便于快速决策。

实现了从图表实验到工程化策略的快速闭环验证,让策略开发像工程师一样严谨高效。

运行环境要求

操作系统
  • Windows
  • macOS
  • Linux
GPU

未说明

内存

未说明

依赖
notes支持 Windows、macOS 和 Linux;Python 版本要求 3.11+;核心依赖包括 TA-Lib、rich 和 Optuna;付费 TradingView 账户需预先在 Firefox 登录以读取 Cookie 下载更多历史数据(最高 4 万根 K 线),否则限制为 5 千根;无需 API Key;无 GPU 加速需求。
python3.11+
ta-lib
rich
optuna
TradingView-Machine-Learning-GUI hero image

快速开始

HyperView

将 TradingView 的想法转化为可测试、终端级速度的交易系统。

HyperView 旨在解决这样一个时刻:当 TradingView 策略不再仅仅是图表实验,而是需要确凿证据时。它直接从 TradingView 的 websocket (Web 套接字) 获取历史 K 线,在 Python 中运行你的策略逻辑,并以紧密模仿 Pine Script (TradingView 脚本语言) 的成交行为进行回测,这样你在本地 Python 中调优的结果将与你在 TradingView 策略测试器中看到的结果一致。

无需在 Pine 脚本、CSV 导出和临时笔记本之间来回切换,HyperView 提供了一个简洁的流程:获取多达 40K 根 K 线,基于 TA-Lib (技术分析库) 的 150+ 指标构建,模拟真实的止损/止盈 (SL/TP) 执行,并让贝叶斯优化 (Bayesian optimization) (Optuna TPE) 搜索更好的参数范围。无需 API 密钥。无需浏览器自动化。无需清理电子表格。只需更快的迭代、更精准的验证,以及专为希望像工程师一样开发策略的交易者打造的流程。

前置要求

  • Python 3.11+
  • TA-Lib — 由 pip install 自动安装。Windows、macOS 和 Linux 上提供 Python 3.9–3.14 的预编译 wheel (Python 包格式) 包。
  • rich — 自动安装。用于驱动样式化的终端输出(彩色表格、进度指示器、面板)。
  • Firefox (可选) — 如果你有 TradingView 付费计划,HyperView 可以读取你的 Firefox 会话 cookie (会话凭证) 以下载多达 40K 根 K 线。如果没有,websocket 仍匿名下载多达 5K 根 K 线。要使用此功能,只需在下载数据前在 Firefox 中登录 tradingview.com

快速开始

# Install in editable mode (creates the `hyperview` CLI command, installs all dependencies including TA-Lib)
pip install -e .

# Download data for specific pairs
hyperview download-data --pairs NASDAQ:NFLX NASDAQ:AAPL --timeframe 1h --session extended

# Or define your pairs in config.json and download multiple timeframes at once:
hyperview download-data --timeframe 1h 15m

# Run a single backtest (uses config pairlist)
hyperview backtest --sl 3.23 --tp 13.06 --mode long

# Or target a specific symbol using values from a hyperopt preset file
hyperview backtest --symbol NASDAQ:NFLX --preset-file results/adx_stochastic_presets.json

# Hyper-optimize SL/TP across all pairs in config
hyperview hyperopt --mode long

# List cached data and registered strategies
hyperview list-data
hyperview list-strategies

你也可以通过 python -m hyperview 运行,而不是使用 hyperview 命令。

Python 字节码 (bytecode) 被重定向到项目级别的 .pycache/ 目录,因此运行时导入不会在 hyperview/strategy/ 下创建分散的 __pycache__ 文件夹。

工作原理

  1. 下载 — 使用现有的 Firefox 会话 cookie 连接到 TradingView 的 websocket。付费计划支持多达 40K 根历史 K 线,并支持自动回填。
  2. 信号 — 在纯 Python 中运行可插拔策略(例如包含的 MACD+RSI 或 ADX+Stochastic),并与 TA-Lib 指标保持对等。
  3. 回测 — 使用 TradingView 对等的成交假设逐根 K 线模拟交易(次根 K 线开盘入场,根内止损/止盈出场顺序)。多对交易会产生真正的 PORTFOLIO 聚合行,包含合并后的权益曲线统计信息。
  4. 超优化 — 在 SL/TP 组合上运行贝叶斯优化 (Optuna TPE),然后更新策略预设文件,为每对/上下文保存最佳结果。

终端输出

回测和超优化命令均使用 rich 生成样式化的终端输出:

  • 回测摘要 — 带有边框的表格,在收益率、回撤、期望值和最大单笔亏损上使用彩色方向箭头(▲ 绿色代表盈利,▼ 红色代表亏损),使用适合正常终端宽度的易读简短标签。当运行多个交易对时,会追加一个 PORTFOLIO 行,其中包含从合并权益曲线计算出的数学正确的聚合统计信息(而非简单平均值)。
  • 超优化结果 — 面板标题显示策略/模式/时间框架,每个交易对的要点数据和信号摘要,以及一个顶部 N 结果表,其中参数列(SL/TP)用青色高亮显示,并在视觉上与指标列分开。

仓库布局

pyproject.toml              Package metadata & CLI entry point
config.json                 Default configuration (timeframe, pairlist, opt ranges)
config.schema.json          JSON Schema for editor validation & autocompletion
data/                       Cached candle CSVs (auto-generated)
results/                    Optimization presets & reports (auto-generated)

strategy/ — 可插拔策略框架

strategy/
├── __init__.py             Plugin registry & auto-discovery
├── base.py                 BaseStrategy ABC & prepare_candles()
├── indicators.py           TA-Lib wrappers, conversion helpers & signal toolkit
├── adx_stochastic.py       ADX+Stochastic strategy
└── macd_rsi.py             MACD+RSI strategy

hyperview/ — 核心引擎

hyperview/
├── __main__.py             Module entry point (python -m hyperview)
├── config.py               Config loader (JSON + CLI overrides + env vars)
├── models.py               Shared dataclasses (CandleRequest, Trade, BacktestMetrics, …)
├── presets.py              Preset load/save for optimized SL/TP parameters
├── validators.py           Configuration & preset validation rules
├── runtime.py              Bytecode cache redirection
│
├── cli/                    CLI router & subcommand handlers
│   ├── __init__.py         Argument parser & main() dispatcher
│   ├── formatting.py       Shared formatting helpers (rich tables, arrow decorators)
│   ├── backtest.py         backtest command
│   ├── download.py         download-data command
│   ├── hyperopt.py         hyperopt command
│   └── list.py             list-data & list-strategies commands
│
├── backtest/
│   └── engine.py           TradingView-parity OHLC simulator
│
├── downloader/
│   ├── client.py           TradingView websocket downloader & cache orchestration
│   ├── cache.py            CSV-backed local candle cache
│   ├── credentials.py      Firefox credential extraction
│   ├── session.py          WebSocket chart session manager
│   └── timeframes.py       Timeframe constants & utilities
│
└── hyperopt/
    └── optimizer.py        Bayesian optimizer (Optuna TPE)

配置

HyperView 从项目根目录的 config.json 加载默认值。CLI(命令行界面)标志位始终覆盖配置值。

下方示例展示了自定义设置;如果省略某个键,HyperView 将回退到运行时默认值。

{
    "timeframe": "1h",
    "session": "regular",
    "mode": "long",
    "strategy": "adx_stochastic",
    "initial_capital": 100000,
    "data_dir": "data",
    "output_dir": "results",
    "pairlist": [
        "NASDAQ:NFLX",
        "NASDAQ:TSLA",
        "COINBASE:BTCUSD",
        "COINBASE:ETHUSD"
    ],
    "optimization": {
        "n_trials": 200,
        "objective": "net_profit_pct",
        "top_n": 10,
        "sl_range": { "min": 1.0, "max": 15.0 },
        "tp_range": { "min": 1.0, "max": 15.0 }
    }
}

使用 --config /path/to/custom.json 加载不同的文件。

交易对列表 (Pairlist)

pairlist(交易对列表)数组定义了你想要处理的目标符号。每个条目必须使用 EXCHANGE:SYMBOL 格式——这允许你在单个配置中混合来自不同交易所的交易对:

"pairlist": [
    "NASDAQ:NFLX",
    "NASDAQ:TSLA",
    "NASDAQ:AAPL",
    "COINBASE:BTCUSD"
]

当你运行命令时未指定 --pairs--symbol,HyperView 会自动使用配置中的 pairlist(交易对列表)——按顺序下载、回测 (backtesting) 或优化每个交易对。如果你在 CLI 上传递了 --pairs--symbol,则本次运行将忽略配置中的 pairlist。

你可以为不同的资产类别维护单独的配置文件:

hyperview --config stocks.json download-data
hyperview --config crypto.json hyperopt --mode long

CLI 参考

download-data — 获取 K 线数据

# 下载配置 pairlist 中的所有交易对
hyperview download-data

# 或直接指定交易对,包括多个时间周期
hyperview download-data --pairs NASDAQ:NFLX NASDAQ:AAPL NASDAQ:TSLA --timeframe 1h 15m --start 2023-01-03
标志位 必填 默认值 描述
--pairs 配置中的交易对列表 一个或多个 EXCHANGE:SYMBOL 交易对(覆盖 pairlist)
--timeframe 配置 一个或多个 K 线间隔 (timeframe):1m 5m 15m 1h 4h 1d
--start / --end 日期范围(ISO 格式)
--session 配置 常规或盘后 (session)
--adjustment splits 价格调整 (adjustment)(拆股、股息、无)

backtest — 单一策略评估

# 回测配置 pairlist 中的所有交易对
hyperview backtest --sl 5.0 --tp 5.0 --mode long --start 2023-01-03

# 或使用 hyperopt 创建的预设文件针对特定符号
hyperview backtest --symbol NASDAQ:NFLX --preset-file results/adx_stochastic_presets.json --start 2023-01-03

如果省略了 --sl--tp,HyperView 会使用 pair + timeframe + session + adjustment + mode 在提供的 --preset-file(预设文件)中查找匹配的条目。CLI 值仍然优先于 preset-file 的值。

标志位 必填 默认值 描述
--symbol 配置中的交易对列表 EXCHANGE:SYMBOL 交易对(覆盖 pairlist)
--sl 否* 止损百分比 (%) (*除非存在匹配的 --preset-file 条目,否则必填)
--tp 否* 止盈百分比 (%) (*除非存在匹配的 --preset-file 条目,否则必填)
--preset-file 自动检测 策略预设 JSON 路径(自动检测输出目录中的 <strategy>_presets.json
--strategy 配置 策略名称(例如 macd_rsi, adx_stochastic
--mode long 做多、做空或双向 (long, short, or both)
--timeframe, --session, --adjustment, --start, --end 配置 / 默认值 标准过滤器

hyperopt — 超参数优化 (hyperopt) SL/TP

# 优化配置 pairlist 中的所有交易对(每个交易对运行一次优化)
hyperview hyperopt --n-trials 300

# 或针对特定符号
hyperview hyperopt --symbol NASDAQ:NFLX --n-trials 300
标志位 必填 默认值 描述
--symbol 配置中的交易对列表 EXCHANGE:SYMBOL 交易对(覆盖 pairlist)
--sl-min, --sl-max 配置 止损百分比 (%) 搜索范围
--tp-min, --tp-max 配置 止盈百分比 (%) 搜索范围
--n-trials 配置 贝叶斯优化 (Bayesian optimization) 试验次数(默认:200)
--objective 配置 net_profit_pct profit_factor win_rate_pct max_drawdown_pct trade_count
--top-n 配置 保留的前 N 个候选数量
--strategy, --mode, --timeframe, --adjustment, 等 配置 / 默认值 标准过滤器

list-data — 显示缓存数据集

hyperview list-data

list-strategies — 显示可用策略

hyperview list-strategies

指标

HyperView 附带了 20 个由 TA-Lib(技术分析库)支持的封装指标,以及 4 个信号辅助函数。你还可以通过 to_numpy / wrap 转换辅助函数直接访问所有 150+ 个 TA-Lib 函数

封装指标

类别 函数
移动平均线 ema, sma, wma
动量 rsi, macd, stochastic, stochastic_rsi, cci, williams_r, momentum, roc
趋势 adx (返回 ADX, +DI, −DI), aroon (返回 down, up), psar
波动率 atr, bollinger_bands (返回 upper, middle, lower)
成交量 obv, mfi, ad, vwap

信号辅助函数

函数 描述
crossed_above(a, b) a 上穿 b 的 K 线上返回 True
crossed_below(a, b) a 下穿 b 的 K 线上返回 True
barssince(cond) 条件上次为 True 以来的 K 线数
to_unix_timestamp(dt) 将 ISO 日期字符串转换为 UTC Unix 时间戳

直接使用 TA-Lib

对于上述未封装的 TA-Lib 150+ 函数中的任何一个,直接调用 talib 并使用转换辅助函数:

import talib
from strategy.indicators import to_numpy, wrap

df["cci"] = wrap(talib.CCI(to_numpy(df["high"]),
                            to_numpy(df["low"]),
                            to_numpy(df["close"]), timeperiod=20), df.index)

添加自定义策略

  1. strategy/ 目录下创建一个新文件(例如 my_strategy.py
  2. 继承 BaseStrategy(基础策略)类并实现 generate_signals()default_settings() 以及 required_columns() 方法
  3. 使用 @register_strategy 装饰器装饰该类

策略会在启动时自动发现——无需手动导入。

from strategy import register_strategy
from strategy.base import BaseStrategy
from strategy.indicators import ema, crossed_above

@register_strategy
class MyStrategy(BaseStrategy):
    strategy_name = "my_strategy"

    def default_settings(self):
        return {"fast_period": 10, "slow_period": 20}

    def required_columns(self):
        return ["time", "open", "high", "low", "close"]

    def generate_signals(self, candles, settings):
        df = self.prepare_candles(candles)

        fast = ema(df["close"], settings["fast_period"])
        slow = ema(df["close"], settings["slow_period"])

        df["buy_signal"] = crossed_above(fast, slow)
        df["sell_signal"] = crossed_above(slow, fast)
        df["in_date_range"] = True
        df["enable_long"] = True
        df["enable_short"] = False

        return df

然后使用它:hyperview backtest --symbol NASDAQ:NFLX --strategy my_strategy --sl 5 --tp 5

输出文件

Hyperopt(超参数优化)会更新 results/ 目录下的策略预设文件:

results/macd_rsi_presets.json

每个文件为该策略存储每个精确的 pair + timeframe + session + adjustment + mode 组合的一个最佳预设。重新运行 Hyperopt 仅替换匹配的条目,并保留文件中已保存的其他上下文。

回测假设

模拟器近似模拟 TradingView(交易平台)的 intrabar(K 线内)填充行为:

  • 入场:由信号生成的市价单将在下一根 K 线开盘时成交
  • K 线内路径:如果一根 K 线开盘价更接近其最高价,路径是 open → high → low → close;更接近其最低价,路径是 open → low → high → close
  • 仓位管理:每笔交易使用 100% 权益,无 pyramiding(金字塔式加仓)
  • SL/TP(止损/止盈)离场:在同一根 K 线内根据 intrabar 价格路径进行检查

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架