关于Pine Script调用API获取交易信号及搭建端点的技术咨询
Pine Script 与外部API交互的可行方案
一、从外部API获取买卖信号并绘制
Pine Script本身没有原生支持直接发起HTTP请求调用外部API——这是TradingView的安全机制限制,但有两种间接可行的方案:
1. 用Webhook中转(最实用)
- 逻辑:搭一个简单的后端脚本当中间层,先让你的信号API把数据推给这个后端,后端再通过TradingView的Webhook把信号传到Pine Script里。
- 具体步骤:
- 用Python/Node.js搭个极简后端,开个接口接收你的信号API的数据。
- 后端收到信号后,按TradingView Webhook的格式,把信号内容(比如买卖方向、触发价格)通过POST请求发给TradingView的Webhook地址(在Pine Script的警报设置里生成)。
- Pine Script里用全局变量配合
request.params接收Webhook传的参数,然后绘制信号://@version=5 indicator("API信号展示", overlay=true) var string signal_type = "none" var float trigger_price = na // 仅在最后一根K线读取Webhook参数 if barstate.islast signal_type := request.params.get("signal", "none") trigger_price := request.params.getfloat("price", na) // 绘制买入信号 if signal_type == "buy" and not na(trigger_price) plotshape(trigger_price, location=location.belowbar, color=color.new(color.green, 0), style=shape.labelup, text="BUY", textcolor=color.white) // 绘制卖出信号 if signal_type == "sell" and not na(trigger_price) plotshape(trigger_price, location=location.abovebar, color=color.new(color.red, 0), style=shape.labeldown, text="SELL", textcolor=color.white) - 注意:Webhook的消息要写成Pine能解析的键值对格式,比如
signal=buy,price=150.2。
2. 自定义数据源导入(限Pro及以上权限)
如果你的信号API能生成CSV格式的历史信号数据,可以把文件上传到TradingView的自定义数据源,然后在Pine Script里用request.security()读取这个数据源的数据,再进行绘制。
二、Pine Script实现接收数据的端点:完全不可行
Pine Script是运行在TradingView云端的脚本,根本没有对外暴露网络端口或HTTP端点的能力,也不支持监听外部请求——TradingView的安全模型从底层就不允许脚本当服务端收数据。要给TradingView传数据,只能用上面的Webhook反向推送。
内容的提问来源于stack exchange,提问作者SM2A
相关产品推荐
相关产品推荐

