You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术问询:获取用于动量排名投资组合的Top100/200加密货币列表

获取TradingView加密货币Top100/200列表并在Pine脚本中使用

由于Pine脚本本身无法直接抓取网页内容,我们需要先用Python获取动态更新的榜单,再将其导入Pine脚本中使用。以下是针对你的需求的分步解决方案:

一、用Python获取Top100/200加密货币列表

TradingView的榜单是动态渲染的,普通HTTP请求无法拿到完整内容,因此我们用selenium模拟浏览器加载页面并提取数据:

1. 安装依赖

打开终端运行:

pip install selenium webdriver-manager

2. 运行获取脚本

执行以下代码,会自动加载页面、滚动获取更多币种,最后将去重后的币种名称保存到本地文件:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
import time

# 初始化Chrome浏览器
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get("https://www.tradingview.com/markets/cryptocurrencies/prices-all/")

# 等待页面加载完成(可根据网速调整时长)
time.sleep(5)

# 滚动页面加载更多币种(3次滚动足够加载Top200)
for _ in range(3):
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(2)

# 提取币种元素并去重
coin_elements = driver.find_elements(By.CSS_SELECTOR, ".tv-screener__symbol")
unique_coins = []
seen_symbols = set()

for elem in coin_elements[:200]:
    # 提取币种简称(比如从"BTC/USDT"中取"BTC")
    symbol = elem.text.split()[0]
    if symbol not in seen_symbols:
        seen_symbols.add(symbol)
        unique_coins.append(symbol)

# 保存到本地文件
with open("top_crypto_coins.txt", "w") as f:
    f.write("\n".join(unique_coins))

print(f"成功获取{len(unique_coins)}个币种,已保存到top_crypto_coins.txt")
driver.quit()

二、在Pine脚本中使用币种列表

Pine脚本无法读取本地文件,因此我们将获取到的币种列表转换成Pine数组格式,硬编码到脚本中:

示例Pine脚本框架

//@version=5
indicator("动量排名投资组合", overlay=false)

// 将top_crypto_coins.txt中的币种复制到这里,构建数组
top_coins = array.new_string(
    "BTC", "ETH", "BNB", "XRP", "ADA", "SOL", "DOT", "DOGE", "AVAX", "TRX",
    // 继续添加剩余的币种,直到覆盖你需要的Top100/200
)

// 示例:遍历数组输出币种名称(仅在最后一根K线显示)
if barstate.islast
    for i = 0 to array.size(top_coins) - 1
        var label coin_label = na
        coin_label := label.new(bar_index, i * 10, array.get(top_coins, i), color=color.teal, textcolor=color.white)

关键提示

  • 如果TradingView页面结构更新导致提取失败,右键页面上的币种名称,选择"检查"查看新的CSS选择器,替换代码中的.tv-screener__symbol即可。
  • 若你不需要频繁更新榜单,也可以手动复制页面上的币种名称,直接整理成Pine数组格式,省去Python脚本的步骤。
  • 后续要计算动量时,可使用Pine的request.security()函数调用每个币种的K线数据,注意TradingView的API调用频率限制。

内容的提问来源于stack exchange,提问作者Manuel Hruby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 19:55:17