如何在Python中使用TradingView自定义Pine Script指标?
在Python中复用TradingView自定义Pine Script指标的可行方案
核心前提说明
TradingView官方未开放直接调用自定义Pine Script计算逻辑的API,无论官方还是非第三方库,都无法实现“无缝将Pine Script逻辑移植到Python DataFrame”的需求——因为Pine Script的编译与执行完全在TradingView封闭的服务器环境中运行,外部无法直接调用其执行引擎。
替代实现路径
1. Webhook推送实时指标数据
- 在你的Pine Script中添加webhook逻辑,当指标计算出最新值时,将K线时间、指标数值等数据推送到你自己搭建的简易服务(比如用FastAPI编写的接口)
- 把接收到的指标数据存储后,导入Python DataFrame与原有行情数据做时间匹配
- 示例Pine Script片段:
//@version=5 indicator("自定义指标", overlay=true) my_indicator = ta.sma(close, 20) - ta.sma(close, 50) // 仅在最后一根K线触发推送 if barstate.islast var string webhook_url = "你的Webhook接口地址" data_str = "time=" + str.tostring(time) + "&indicator_val=" + str.tostring(my_indicator) request.post(url=webhook_url, body=data_str) - 局限:仅能获取实时或最新的指标值,无法批量回溯历史数据。
2. 导出历史指标数据后导入Python
- 在TradingView图表加载你的自定义指标,手动或通过Selenium等工具自动化导出包含指标列的CSV文件
- 将CSV文件导入Python DataFrame,与本地行情数据做时间对齐
- 优点:可获取完整历史指标数据;缺点:自动化程度低,频繁操作可能触发TradingView的访问限制。
3. 非官方API的有限支持
- 部分非官方库(如
tradingview-ta的扩展版本)支持调用公开的指标,但私有自定义指标无法直接调用 - 若愿意将指标设为公开,可尝试用这类库获取计算结果,但依然无法在本地DataFrame上直接运行Pine Script逻辑
总结
若不想重写Pine Script逻辑,最可行的方式是通过webhook获取实时数据,或导出历史数据后导入Python。目前没有工具能实现“直接在本地DataFrame上复用Pine Script逻辑”的需求,核心原因是TradingView未开放其Pine Script执行引擎的外部调用权限。
内容的提问来源于stack exchange,提问作者bigidulka
相关产品推荐
相关产品推荐

