ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

TradingView警报批量创建工具:对接3Commas自动化交易全流程

TradingView警报批量创建工具:对接3Commas自动化交易全流程 简介面向3Commas等自动交易平台用户这份TypeScript项目可在无官方API的情况下通过Chromium浏览器自动化方式批量添加TradingView自定义警报帮助量化交易者摆脱在数十个交易对上手动维护警报的繁琐流程。压缩包共18个文件涵盖ts核心源码、json配置与依赖声明、yml示例配置、sh部署脚本、csv黑名单列表、gif演示动图及png说明图等整体大小仅13.9MB。所有文件分工明确既可直接运行工具也可参考其页面自动化操作逻辑与交易对过滤思路进行二次开发。目前已有1442人学习下载适用于熟悉TradingView警报和机器人接入的TypeScript开发者快速上手。 先说结论这个工具解决的是一个非常具体但又极其磨人的痛点——在 TradingView 里批量创建警报。尤其是跑 3Commas 策略的人信号警报往往一挂就是十几个交易对手动点鼠标一个个建新建、填参数、选策略、再复制消息重复十几次之后手腕子和耐心基本同时报废。我最早看到 add-tradingview-alerts-tool 这个项目时第一反应是“这不就是把手动操作脚本化了吗”仔细看完才发现它踩中的点是 3Commas TV 警报集成的标准路径TradingView 出信号、webhook 推送、3Commas 接收并触发 bot。这篇文章就把这个工具的思路、用法和跟 3Commas 对接的全流程拆开聊适合跑量化策略、又不想在警报配置上浪费时间的交易者。1. 项目思路拆解为什么会有这种工具1.1 痛点从哪来高频重复的警报配置TradingView 的警报功能本身很好用但它的交互设计是给“偶尔建一两个警报”的人用的。打开图表右键、选择“添加警报”、设置条件、选择策略、填写消息、最后确认这一套流程走下来快的也要三十秒慢的几分钟也正常。问题是3Commas 这类自动交易 bot 的典型用法是让一个策略同时监控 BTC、ETH、SOL、BNB、AVAX 等十几个币种每个币种都要创建一个独立的警报指向同一个 webhook URL消息里再区分不同的交易对和 bot 标识。我在实际配置的时候算过一笔账一个策略监控 10 个交易对需要在 10 张不同的图表上分别添加警报每张图表重复相同步骤光是点掉那些没意义的弹窗就要花掉十几分钟。这还没算中途被打断、记错某个交易对、或者漏掉一个警报导致 bot 少跑一个币的情况。手动操作最大的问题不是慢而是简单步骤在不断重复之后特别容易出错一旦建错还得回头一个一个对。add-tradingview-alerts-tool 的核心思路就是把“重复点击”变成“一条命令”。你只需要把交易对列表、策略名称、警报条件这些参数一次性写在命令行里工具自动批量创建警报。表面上节约的是时间实际上节约的是注意力和出错率。1.2 工具的定位专为 3Commas 集成场景设计3Commas 的 TV 信号集成TradingView Signal Integration大概是这样的链路TradingView 警报触发后向一个指定的 webhook URL 发送 POST 请求3Commas 收到请求后解析消息体根据消息中带的 bot 标识和信号方向做多/做空触发对应 bot 的开单或平仓动作。这个链路里每个交易对都得有对应的警报而且警报的消息内容必须符合 3Commas 的格式要求否则 bot 要么不执行要么执行错方向。add-tradingview-alerts-tool 专门针对这个场景设计适合那些在 TradingView 写 Pine Script 策略、再用 3Commas 执行交易的用户群体。这类用户对批量创建的需求最强烈对警报格式的准确性要求也最高。工具本身不替代策略编写也不替代 3Commas 的 bot 配置它填补的恰好是中间那段“策略写好了、bot 配好了但警报还没挂全”的空白地带。这个定位非常精准做的是流程里最不起眼却又绕不过去的一环。2. 核心细节解析与实操要点2.1 前置条件与依赖环境使用 add-tradingview-alerts-tool 之前要确认几个前置条件缺一个都可能跑不通。我按实际操作顺序列一下TradingView 账号建议用有足够警报数量配额的计划免费版警报数量很有限批量创建的话大概率会被限流或直接失败Python 3.8 及以上环境目标交易对列表比如 BTCUSDT、ETHUSDT、SOLUSDT策略名称也就是你写在 TradingView 里的 Pine Script 策略名3Commas 账号以及已配置好的 botbot 的 ID 和对应的 webhook URL 要从 3Commas 后台获取。依赖环境方面工具通常依赖requests这类常见的 HTTP 库。安装命令很简单pip install requests有些版本的实现会用到selenium来模拟浏览器操作那个就要额外装 Chrome 浏览器和对应的驱动。我的建议是优先选择基于 API 的版本因为它比 UI 自动化稳定得多也不容易被 TradingView 的前端改版搞挂。2.2 命令行参数和使用方式这个工具的核心入口是命令行不同版本的参数命名可能略有差异但核心参数是稳定的。一个典型的使用命令大概长这样python add_tradingview_alerts.py \ --username your_tv_username \ --password your_tv_password \ --market BTCUSDT:ETHUSDT:SOLUSDT \ --strategy MySuperStrategy \ --timeframe 15m \ --signal-url https://webhook.3commas.io/webhook/xxxx \ --bot-id 123456参数含义按顺序看--username、--passwordTradingView 的登录凭证。有些实现也支持传 session token这种更安全一些不推荐在命令行里直接写明文密码能躲开的话尽量躲开--market交易对列表用冒号或逗号分隔。工具内部会把这个列表拆开逐个为每个交易对创建警报--strategy要挂警报的 Pine Script 策略名称。这个名字必须和 TradingView 图表上加载的策略名完全一致大小写和空格都不能错否则工具找不到策略--timeframe警报使用的时间周期比如5m、15m、1h。这个要和你策略的逻辑周期一致如果策略是 15 分钟级别的信号你却挂了个 5 分钟的警报信号频率会成倍增加很容易触发过度交易--signal-url3Commas 的 webhook URL从 3Commas 后台复制--bot-id接收信号的 bot 编号这个会写进警报消息里3Commas 靠它把信号路由到正确的 bot。2.3 批量创建的工作流程实际跑起来的时候工具内部的处理逻辑大致是登录 TradingView、获取账号信息、加载每个交易对图表、然后在图表上添加警报。如果用的是 TradingView 的后端接口每一步都会有响应结果工具会打印日志告诉你哪个交易对的警报创建成功、哪个失败了。我在 GitHub 上看到的实现里有的版本会在创建后主动拉取一次警报列表然后跟你输入的请求列表做比对确认哪些挂了、哪些没挂。这个设计很实用因为 TradingView 的接口偶尔会出现超时但实际已创建成功的情况如果只按响应判断容易重复创建。有确认机制的版本用起来会踏实很多。一个完整的批量创建输出大概是这样的[INFO] Logged in as: your_tv_username [INFO] Creating alert for BTCUSDT ... success [INFO] Creating alert for ETHUSDT ... success [INFO] Creating alert for SOLUSDT ... failed, retrying ... [INFO] Retry succeeded for SOLUSDT [INFO] All alerts created, verifying ... [INFO] Verified 3 alerts on account如果看到某个交易对失败工具一般会带重试机制自动重试几次。如果重试仍然失败日志会给出原因——最常见的无非是配额用完了、交易对不存在、或者会话过期。3. 实操过程从策略到 3Commas bot 全流程落地3.1 第一步在 3Commas 后台拿到 webhook URL 和 bot ID在运行工具之前先把 3Commas 这边的配置准备就绪。登录 3Commas 后台进入 Bots 页面选择你要对接的 bot点编辑或者详情找到 TradingView 相关的配置区。3Commas 会为你的 bot 生成一个专属的 webhook URL类似https://webhook.3commas.io/webhook/8h3yQvX5vL9tK2sA1dF这个 URL 是 bot 接收信号的门牌号。同时bot ID 在 URL 里也可能直接带或者在 bot 信息页能看到。记录下来备用。如果你想做更精细的控制3Commas 支持在 webhook URL 后面追加参数比如交易对的标识。但最通用的做法是把信息放在消息体里因为消息体可以带任意结构化内容3Commas 解析起来也最灵活。3.2 第二步确认消息格式让 bot 接得住信号add-tradingview-alerts-tool 创建的警报消息体可以自定义这一步比想象中重要。3Commas 的 TV bot 接收的信号消息我实测下来满足下面这种格式就能稳定触发{ message_type: bot_command, bot_id: 123456, email_token: , delay_seconds: 0, action: buy }message_type固定为bot_commandbot_id填你在 3Commas 后台拿到的 bot IDaction是信号方向buy表示开多sell表示平多或开空具体语义取决于你的 bot 配置delay_seconds可选填了之后 bot 会延迟执行这在担心信号抖动的场景下有点用。工具在创建警报时允许你在参数里定义消息模板模板里可以用{{ticker}}之类的占位符批量创建时自动替换成对应的交易对。这样一个模板就能覆盖所有交易对不用每个警报单独写消息内容省掉大量重复劳动。这是批量工具和手动操作拉开差距的核心点之一。3.3 第三步运行批量工具一次挂完全部的警报前置配置做完运行命令把警报批量挂上去。我自己跑过的完整命令大概是下面这样python add_tradingview_alerts.py \ --username my_tv_account \ --session-token xxxxxxxxxxxxxxxx \ --market BTCUSDT:ETHUSDT:SOLUSDT:BNBUSDT:AVAXUSDT \ --strategy RSI Momentum Strategy \ --timeframe 15m \ --message-template { \message_type\: \bot_command\, \bot_id\: 123456, \action\: \buy\ }跑完这一步用 TradingView 的警报管理页检查一下5 个警报应该都出现在列表里。这里有个细节如果账户里已经有一些旧的、不再需要的警报建议先手动清掉或者在工具里用--clear-existing参数清空后重建。批量工具只管创建不会自动替你清理旧警报而旧警报很容易混淆信号来源导致 bot 同时收到新策略和旧策略的指令交易逻辑就乱了。建议的操作顺序是登录 TradingView 网页版进入警报管理页先把不再使用的警报全部删除再跑批量工具。这个顺序能最大程度降低信号重复的风险。3.4 第四步从警报触发到 bot 下单的闭环验证警报挂完之后最忌讳的是直接撒手不管。务必先做一轮闭环验证确认链路真的通畅。我的做法是找一个价格容易触发的条件或者干脆临时把策略的触发参数放宽让它能快速出信号然后观察 3Commas 后台的 bot 是否收到消息并开始行动。具体来说去 3Commas 的 bot 活动记录页看有没有来自 TradingView 的信号记录。记录里会显示信号消息内容、接收时间、以及 bot 是否执行了对应操作。如果看到消息已接收但 bot 没动多半是消息格式解析失败去对一下 3Commas 官方文档的字段要求最常见的问题是action值写错不应该是BUY而应该是小写buy或者 bot_id 传成了字符串而 3Commas 要求的是数字类型。链路验证通过之后再把策略参数恢复正常值。整套流程到这里才算真正配置完成。4. 常见问题与排查技巧实录4.1 登录失败或会话过期怎么办批量工具登录 TradingView 时如果频繁请求可能会触发账号的安全验证机制。用--username/--password登录的模式最容易遇到这个问题。我的建议是优先使用--session-token登录TradingView 的登录 cookie 里有一种带sessionid的 token把它传给工具可以绕过密码登录的验证码风险。怎么拿到 session token登录 TradingView 网页版打开开发者工具在 Network 面板里随便点一个 API 请求查看 Request Headers 里的Cookie字段里面有一个sessionid字段值就长这样sessionidabcdef1234567890abcdef1234567890把abcdef1234567890abcdef1234567890这段传给工具的--session-token参数。这个 token 的有效期挺长的我实测能用很久过期后重新登录网页版抓一次就行。4.2 警报配额不够报错怎么解TradingView 对不同订阅等级有警报数量上限免费用户通常只能建个位数警报付费用户也分 10 个、30 个、无限等不同档位。如果批量工具创建到一半报配额不足八成是卡在这个限制上。这个问题的解法有两条路一是升级 TradingView 套餐二是减少批次数量、分多次创建。我更推荐分批次比如每次只挂 5 个警报等前面的产生信号确认没问题了再加挂下一批。考虑到 3Commas bot 的实际容量和安全边际单批次 5 到 10 个警报本来就比一口气铺几十个更合理。4.3 警报挂上了但 bot 不触发八成是消息格式问题这是集成场景里最隐蔽的坑。明明警报显示已触发3Commas 后台却没有任何反应。排查顺序我总结成了一个表排查点操作方式常见原因webhook URL 是否正确回 3Commas 后台核对复制时多了空格、漏了字符bot_id 是否正确核对 bot 信息面板复制了别的 bot 的 IDaction 值是否合法检查buy/sell/close拼写用成了大写BUYmessage 是否为合法 JSON在线 JSON 校验器验证引号转义错误、缺少括号延迟时间是否过长检查delay_seconds设置为 0 最稳妥之后再加我遇到过一次很诡异的情况警报消息里带了注释符//3Commas 解析时把整行吞掉了。后来所有消息模板统一用 JSON 格式不加任何多余注释问题才彻底消失。4.4 使用工具前后要注意的安全习惯命令行工具输入账号信息是最常见的安全隐患尤其是密码明文写在历史记录里后患不小。我实际操作时的做法是不用密码参数要么用 session token要么把密码放到环境变量里命令里的--password ${TV_PASS}只留一个变量引用避免 shell 历史记录里出现明文。另外批量工具跑完反弹出的日志内容如果包含账号信息记得处理掉别整段贴到公开的 issue 或论坛里。曾经有人把 sessionid 直接贴出来相当于把账户钥匙交了出去这是最低级的失误也是完全可以避免的。我的习惯是拿到日志先检查一遍凡是包含敏感字段的部分全部打码再保存。4.5 实测过程中的其他细节工具跑起来之后我发现一个值得注意的细节TradingView 对警报请求的频率存在限制如果一次性提交太多会出现部分成功部分失败的情况。解决办法是给工具加一点并发延迟或者在脚本里设置相邻请求之间的停顿。虽然耗时多几秒钟但成功率会明显提升。另外如果你用多个 TradingView 账号挂同一个策略注意区分各账号的 session token。混用一个 token 会导致账号 A 创建的警报出现在账号 B 里找问题的时候会怀疑人生。5. 从批量工具到可持续维护的方案工具本身能解决“一口气挂几百个警报”的问题但它只是自动化链路里的一环。跑一段时间之后我的体会是真正可持续的方案必须考虑策略更新和交易对调整。策略参数一旦调整旧警报如果仍然挂在原策略上等于在给 bot 发送过时信号。建议把批量工具的使用纳入策略更新的标准流程每次修改 Pine Script 策略后先清理旧警报再用工具批量重建确保所有警报指向的都是当前生效的策略版本。现在有一些项目会配合 GitHub Actions 或 cron job 定时同步警报列表把 TradingView 侧的数据源维护也自动化。这条路值得摸索但属于进阶玩法。用 add-tradingview-alerts-tool 把基础流程跑顺节省的时间已经足够明显了之后再按需叠加调度、巡检、通知就是水到渠成的事。我个人觉得这个工具最大的价值不只是那一行命令而是逼着你把零散的配置流程整理成标准化的操作模板建立一套自己的“交易基础设施”。本文还有配套的精品资源点击获取
返回列表