如何使用Python获取TradingView中CM_Ult_MacD_MTF指标的信号值
问题描述
我目前在使用TradingView上一款名为CM_Ult_MacD_MTF by ChrisMoody的热门指标,该指标整合了多种指标逻辑,会在图表上闪烁red或green圆点提示做多或做空的合适时机。我希望通过Python抓取或获取该闪烁信号,但暂时不知道实现方法。

上图中我圈出了对应的闪烁圆点信号。
我的需求是开发一个脚本,抓取或获取该指标的准确信号后通过telegram bot推送通知,但目前不清楚如何获取该指标数据,希望能得到可行的实现思路。该指标的源码是公开的,但为pine script语言编写。
我也考虑过自行获取行情数据后用Python复现该指标的计算逻辑(仅数值计算不需要可视化),但该方案复杂度较高,且担心复现结果和原指标有偏差。另外我还想到两种思路:一是每分钟截图后训练AI识别信号,工作量太大;二是通过request.get请求页面获取数值,也不知道具体实现方法。希望能得到相关建议,非常感谢。
可行实现方案
以下方案按开发成本、准确率优先级排序:
方案1:TradingView原生告警+Webhook(最优,零偏差)
直接利用TradingView自带的告警功能,不需要额外爬取或复现指标逻辑:- 打开该指标的Pine Script编辑器,找到原代码中绘制红绿圆点的触发变量(一般是
longCondition/shortCondition这类布尔变量,对应plotshape方法的判断条件) - 在代码末尾追加告警触发规则:
alertcondition(longCondition, title='做多信号', message='{{ticker}}|long|{{time}}') alertcondition(shortCondition, title='做空信号', message='{{ticker}}|short|{{time}}') - 保存指标后创建告警,触发条件选择你刚添加的指标告警规则,通知方式勾选Webhook,填写你本地Python服务的接收地址
- 用Python写个极简的Flask/FastAPI接口接收TradingView推送的信号,解析后直接调用Telegram Bot的发送消息接口即可完成推送
- 打开该指标的Pine Script编辑器,找到原代码中绘制红绿圆点的触发变量(一般是
方案2:用第三方库直接拉取指标计算结果
如果需要本地自主控制轮询逻辑、不依赖TradingView告警配额,可以用Python的tvdatafeed库实现:- 安装
tvdatafeed库后,将CM_Ult_MacD_MTF的完整Pine代码配置为自定义指标 - 按你需要的品种、周期定期拉取指标的计算结果,直接读取返回值里的多空信号字段
- 判断到新信号触发时,调用Telegram Bot接口推送即可,不需要自行复现指标计算逻辑,结果和TradingView页面完全一致
- 安装
方案3:浏览器自动化爬取页面信号(备选)
如果前两个方案无法使用,可以用Playwright/Selenium模拟浏览器操作:- 用工具模拟登录TradingView,打开对应品种的图表页面,提前加载好
CM_Ult_MacD_MTF指标 - 写定时任务,每隔固定时间定位最新K线对应位置的圆点元素,读取元素的CSS颜色属性判断是否出现新的红绿信号
- 检测到新信号后触发Telegram推送,该方案不需要修改指标代码,但需要维护浏览器运行环境,稳定性弱于前两个方案
- 用工具模拟登录TradingView,打开对应品种的图表页面,提前加载好
内容的提问来源于stack exchange,提问作者gklptrgt
相关产品推荐
相关产品推荐

