返回

使用 Selenium 从 TradingView 自动提取指标结果:提升交易策略

python

使用 Selenium 从 TradingView 提取指标结果:一个全面的指南

简介

对于技术分析师和交易者而言,TradingView 是一款强大的图表工具,可提供丰富的指标和分析工具。然而,手动从网站提取指标结果可能会既耗时又容易出错。本文介绍了使用 Selenium + Python 自动化此过程的分步指南,从而提高效率并节省宝贵时间。

登录和打开多个会话

  1. 登录 TradingView: 使用 Selenium 的 WebDriver 模拟浏览器,登录 TradingView 网站。
  2. 打开多个会话: 使用 multiprocessingthreading 模块创建多个进程或线程。每个进程或线程将被分配一个不同的交易对符号。

添加指标

  1. 查找并点击指标标签: 使用 find_element_by_idclick 方法,找到并点击 TradingView 界面中的“指标”标签。
  2. 将指标添加到图表: 使用 execute_script 方法,将所需的指标添加到图表中。

点击“数据窗口”按钮

  1. 查找并点击按钮: 使用 find_element_by_class_name 方法,找到并点击 TradingView 图表工具栏中的“数据窗口”按钮。

提取结果

  1. 查找数据窗口: 使用 find_element_by_xpath 方法,找到并定位数据窗口。
  2. 提取结果: 从数据窗口中提取指标结果。可以使用 pandas 库将结果解析为数据帧。

代码示例

import selenium
from selenium.webdriver.common.by import By
from multiprocessing import Process

def extract_indicator_results(symbol):
    # 打开 TradingView 浏览器并登录
    driver = selenium.webdriver.Chrome()
    driver.get("https://www.tradingview.com/")
    driver.find_element_by_id("login-button").click()
    driver.find_element_by_id("username").send_keys("my_username")
    driver.find_element_by_id("password").send_keys("my_password")
    driver.find_element_by_id("login-submit-button").click()

    # 打开交易对图表
    driver.get(f"https://www.tradingview.com/chart/?symbol={symbol}")

    # 添加指标
    driver.find_element_by_id("add_indicator_button").click()
    driver.find_element_by_xpath("//span[text()='Technical Analysis']").click()
    driver.find_element_by_xpath("//span[text()='Relative Strength Index']").click()

    # 点击“数据窗口”按钮
    driver.find_element_by_class_name("datawindow-button").click()

    # 提取结果
    data_window = driver.find_element_by_xpath("//div[@class='data-window']")
    results = data_window.find_elements(By.XPATH, ".//td")

    # 解析结果
    rsi_values = []
    for result in results:
        rsi_values.append(float(result.text))

    # 关闭浏览器
    driver.close()

    return rsi_values

# 创建多个进程来处理不同的交易对
symbols = ["EURUSD", "GBPUSD", "USDJPY"]
processes = [Process(target=extract_indicator_results, args=(symbol,)) for symbol in symbols]

# 启动进程
for process in processes:
    process.start()

# 等待进程完成
for process in processes:
    process.join()

结论

通过使用 Selenium 和 Python,我们可以轻松自动化从 TradingView 提取指标结果的过程。这不仅可以节省大量时间,还可以减少人为错误。掌握本指南中的步骤,您将能够高效地提取和分析 TradingView 中的指标结果,从而为您的交易策略提供更有力的见解。

常见问题解答

  1. 是否需要编写单独的代码来提取不同的指标?
    不,本指南中介绍的代码可以提取任何 TradingView 指标的结果。

  2. 如何将结果存储到文件中?
    您可以使用 pandas 库的 to_csv 方法将提取的结果存储到 CSV 文件中。

  3. 如何处理数据窗口中的多页结果?
    您可以使用 Selenium 的 find_elements_by_xpath 方法和页面导航按钮来处理多页结果。

  4. 我可以同时提取多个交易对的结果吗?
    是的,您可以使用多线程或多进程来同时提取多个交易对的结果。

  5. 该过程是否需要高级编程技能?
    虽然 Selenium 需要一些编程基础,但本指南中的代码示例易于理解和实现,即使对于初学者来说也是如此。