如何实现基于Excel/CSV成交时间的TradingView图表自动截图?
解决方案:自动批量截取TradingView成交时间点图表
一、Pine Script 辅助定位方案(轻量但非完全自动化)
Pine Script本身无法读取本地文件或自动保存截图,但可以帮你快速定位成交时间点,减少手动找位置的工作量:
- 把Excel/CSV里的成交时间转换成TradingView兼容的时间格式(注意和图表时区一致),批量输入到脚本中
- 在对应时间点的K线上绘制醒目标记,同时触发提示,你只需要按快捷键完成截图即可
- 示例代码片段:
//@version=5 indicator("成交点定位标记", overlay=true) // 批量输入成交时间(格式:YYYY-MM-DD HH:MM,多时间用逗号分隔) tradeTimeList = input.string("2024-05-20 09:30,2024-05-20 10:15", title="成交时间列表") timeArr = str.split(tradeTimeList, ",") // 遍历时间列表,匹配K线时间并绘制标记 for timeStr in timeArr targetTime = timestamp(timeStr) if bar.time == targetTime label.new(bar_index, high, "成交", color=color.new(color.red, 0), textcolor=color.white, size=size.large) alert("已到达成交时间点", alert.freq_once_per_bar_close)
- 局限性:无法自动读取本地文件或保存截图,仅能辅助定位,适合不想折腾复杂工具的场景。
二、Python + Selenium 完全自动化方案
通过Python读取本地Excel/CSV,结合Selenium控制浏览器完成全流程自动化:
- 步骤1:用
pandas读取成交记录,转换时间格式并处理时区 - 步骤2:用Selenium启动浏览器,打开你的TradingView图表(需提前登录并保存图表配置)
- 步骤3:遍历每个成交时间,输入到TradingView的时间跳转框,等待图表加载后自动截图保存
- 核心逻辑示例:
import pandas as pd from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC import time # 读取本地成交记录 df = pd.read_excel("trade_log.xlsx") trade_times = df["成交时间"].tolist() # 初始化浏览器(需下载对应浏览器驱动) driver = webdriver.Chrome() driver.maximize_window() driver.get("https://www.tradingview.com/chart/你的图表ID/") # 等待页面加载完成(需根据实际页面调整等待条件) WebDriverWait(driver, 15).until(EC.presence_of_element_located((By.CSS_SELECTOR, "div[data-name='bar-replay-button']"))) time.sleep(3) # 遍历每个成交时间点 for idx, t in enumerate(trade_times): # 定位时间输入框并跳转 time_input = driver.find_element(By.CSS_SELECTOR, "input[aria-label='Jump to date and time']") time_input.clear() time_input.send_keys(t.strftime("%Y-%m-%d %H:%M")) time_input.send_keys("\n") # 等待图表加载稳定 time.sleep(2) # 截图保存到指定路径 driver.save_screenshot(f"./trade_screenshots/trade_{idx+1}.png") driver.quit()
- 注意:需要处理TradingView的登录验证,建议提前在浏览器中保存登录状态;页面元素选择器可能随TradingView更新变化,需自行核对。
三、Node.js + Puppeteer 自动化方案
和Python方案逻辑一致,但Puppeteer对单页应用的交互支持更稳定,适合熟悉Node.js的用户:
- 用
csv-parser读取本地成交记录 - 启动无头浏览器,加载TradingView图表
- 遍历时间点完成跳转和截图
- 优势:内置页面等待机制,截图精度更高,适合复杂页面交互场景。
四、低代码工具方案(无需写代码)
如果不想开发脚本,可以用低代码工具实现:
- 把Excel转成Google Sheets在线表格,用Make(原Integromat)或Zapier连接表格与Browserless等截图工具
- 配置自动化流程:读取表格中的成交时间→打开TradingView图表→跳转时间点→截图保存到指定云存储或本地
- 局限性:需付费使用高级功能,灵活性不如自定义脚本。
内容的提问来源于stack exchange,提问作者Sai Sowmith
相关产品推荐
相关产品推荐

