返回
使用 Selenium 从 TradingView 自动提取指标结果:提升交易策略
python
2024-03-14 04:21:32
使用 Selenium 从 TradingView 提取指标结果:一个全面的指南
简介
对于技术分析师和交易者而言,TradingView 是一款强大的图表工具,可提供丰富的指标和分析工具。然而,手动从网站提取指标结果可能会既耗时又容易出错。本文介绍了使用 Selenium + Python 自动化此过程的分步指南,从而提高效率并节省宝贵时间。
登录和打开多个会话
- 登录 TradingView: 使用 Selenium 的 WebDriver 模拟浏览器,登录 TradingView 网站。
- 打开多个会话: 使用
multiprocessing
或threading
模块创建多个进程或线程。每个进程或线程将被分配一个不同的交易对符号。
添加指标
- 查找并点击指标标签: 使用
find_element_by_id
和click
方法,找到并点击 TradingView 界面中的“指标”标签。 - 将指标添加到图表: 使用
execute_script
方法,将所需的指标添加到图表中。
点击“数据窗口”按钮
- 查找并点击按钮: 使用
find_element_by_class_name
方法,找到并点击 TradingView 图表工具栏中的“数据窗口”按钮。
提取结果
- 查找数据窗口: 使用
find_element_by_xpath
方法,找到并定位数据窗口。 - 提取结果: 从数据窗口中提取指标结果。可以使用
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 中的指标结果,从而为您的交易策略提供更有力的见解。
常见问题解答
-
是否需要编写单独的代码来提取不同的指标?
不,本指南中介绍的代码可以提取任何 TradingView 指标的结果。 -
如何将结果存储到文件中?
您可以使用pandas
库的to_csv
方法将提取的结果存储到 CSV 文件中。 -
如何处理数据窗口中的多页结果?
您可以使用 Selenium 的find_elements_by_xpath
方法和页面导航按钮来处理多页结果。 -
我可以同时提取多个交易对的结果吗?
是的,您可以使用多线程或多进程来同时提取多个交易对的结果。 -
该过程是否需要高级编程技能?
虽然 Selenium 需要一些编程基础,但本指南中的代码示例易于理解和实现,即使对于初学者来说也是如此。