Binance Price Node
Binance Price Node 是一个数据输入节点,用于从 Binance 交易所获取实时市场数据,包括 K 线(蜡烛图)数据和当前价格。
节点信息
节点类型
binance_price_node
显示名称
Binance Price
节点分类
Input(数据输入)
图标
🕯️ 蜡烛图图标
句柄颜色
Amber(橙色)
功能说明
Binance Price Node 通过 Binance API 获取指定交易对的历史 K 线数据和当前价格。节点支持多种时间间隔(1 分钟到 1 年),并可以指定获取的 K 线数量。
主要用途:
获取加密货币价格数据用于技术分析
监控特定交易对的价格变化
为交易策略提供实时市场数据
生成价格图表和趋势分析
输入参数
参数列表
symbol
searchSelect
✅
BTCUSDT
见交易对列表
要查询的交易对符号
interval
searchSelect
✅
1m
见时间间隔列表
K 线时间间隔
limit
number
❌
100
1-1000
获取的 K 线数量
支持的交易对
BTCUSDT
BTC/USDT
比特币对 USDT
BTCUSDC
BTC/USDC
比特币对 USDC
ETHUSDT
ETH/USDT
以太坊对 USDT
ETHUSDC
ETH/USDC
以太坊对 USDC
ETHBTC
ETH/BTC
以太坊对比特币
APTUSDT
APT/USDT
Aptos 对 USDT
APTUSDC
APT/USDC
Aptos 对 USDC
APTxBTC
APT/xBTC
Aptos 对 xBTC
USDCUSDT
USDC/USDT
USDC 对 USDT
注意:实际可用交易对以 Binance 交易所支持为准。
时间间隔选项
1m
1 minute
1 分钟 K 线
1h
1 hour
1 小时 K 线
1d
1 day
1 天 K 线
1w
1 week
1 周 K 线
1M
1 month
1 月 K 线
1y
1 year
1 年 K 线
Binance API 还支持其他间隔如 3m, 5m, 15m, 30m, 2h, 4h, 6h, 8h, 12h, 3d 等,但前端界面未全部列出。
输出参数
输出列表
data
Data
object
完整的市场数据对象,包含当前价格和 K 线数据
data 输出
数据类型: object
完整数据结构:
{
symbol: string; // 交易对符号
interval: string; // K 线时间间隔
limit: number; // K 线数量
header: string[]; // K 线数据列名
kline_data: Array[]; // K 线数据数组
current_price: string; // 当前价格
}实际示例:
{
"symbol": "BTCUSDT",
"interval": "1h",
"limit": 3,
"header": [
"open_time",
"open",
"high",
"low",
"close",
"volume",
"close_time",
"quote_volume",
"count",
"taker_buy_volume",
"taker_buy_quote_volume"
],
"kline_data": [
[
1672531200000, // open_time: 开盘时间(毫秒时间戳)
"16590.00000000", // open: 开盘价
"16650.00000000", // high: 最高价
"16580.00000000", // low: 最低价
"16620.00000000", // close: 收盘价
"1234.56789000", // volume: 成交量(基础货币)
1672534799999, // close_time: 收盘时间(毫秒时间戳)
"20498765.43210000", // quote_volume: 成交额(计价货币)
15234, // count: 成交笔数
"617.28394500", // taker_buy_volume: 主动买入成交量
"10249382.71605000", // taker_buy_quote_volume: 主动买入成交额
"0" // 忽略字段
],
[...], // 更多 K 线数据
[...]
],
"current_price": "16620.00000000"
}K 线数据字段说明
0
open_time
number
开盘时间(Unix 毫秒时间戳)
1
open
string
开盘价
2
high
string
最高价
3
low
string
最低价
4
close
string
收盘价
5
volume
string
成交量(基础货币,如 BTC)
6
close_time
number
收盘时间(Unix 毫秒时间戳)
7
quote_volume
string
成交额(计价货币,如 USDT)
8
count
number
成交笔数
9
taker_buy_volume
string
主动买入成交量
10
taker_buy_quote_volume
string
主动买入成交额
信号传输
发送的信号
信号句柄: data
信号类型: SignalType.PRICE_DATA
信号负载(Payload): 完整的市场数据对象,包含交易对、K 线数据和当前价格(见上文 data 输出结构)
信号流向示例
Binance Price Node
↓ (data 信号)
↓ payload: { symbol, interval, limit, header, kline_data, current_price }
↓
其他节点(如 Code Node、AI Model Node 等)工作流程
节点执行流程
1. 初始化
├─ 创建 Binance API 客户端
├─ 支持有/无 API Key 两种模式
└─ 连接到 Binance 服务器并验证
2. 获取数据
├─ 调用 get_klines API 获取历史 K 线数据
└─ 调用 get_symbol_ticker API 获取当前价格
3. 处理数据
├─ 整合 K 线数据和当前价格
├─ 添加数据头部信息(header)
└─ 构建完整的输出对象
4. 发送信号
├─ 通过 data 句柄发送 PRICE_DATA 信号
└─ 传递完整的市场数据对象(包含 K线数据和当前价格)给下游节点
5. 完成
└─ 设置节点状态为 COMPLETED错误处理
节点具有完善的错误处理机制:
API 连接失败
指数退避重试(1s, 2s, 4s)
3 次
API 调用异常
记录错误日志,设置节点状态为 FAILED
0 次
数据获取失败
记录警告日志,设置节点状态为 FAILED
0 次
任务被取消
设置状态为 TERMINATED,清理资源
N/A
使用示例
示例 1:获取 BTC 价格用于交易决策
场景: 监控 BTC/USDT 1 小时 K 线,获取最近 50 根 K 线用于趋势分析。
配置:
{
"symbol": "BTCUSDT",
"interval": "1h",
"limit": 50
}工作流连接:
Binance Price Node (BTCUSDT, 1h)
↓ data
Code Node (计算移动平均线)
↓ ma_signal
Condition Node (判断买入信号)
↓ decision
Buy Node (执行买入)示例 2:多交易对价格监控
场景: 同时监控多个交易对的价格变化。
工作流结构:
Binance Price Node (BTCUSDT, 1m) ─┐
Binance Price Node (ETHUSDT, 1m) ─┼─→ Code Node (价格对比分析)
Binance Price Node (APTUSDT, 1m) ─┘示例 3:K 线数据可视化
场景: 获取日 K 线数据并输出到 Google Sheets 生成图表。
配置:
{
"symbol": "ETHUSDT",
"interval": "1d",
"limit": 30
}工作流连接:
Binance Price Node (ETHUSDT, 1d, 30根)
↓ data
Code Node (格式化数据为表格)
↓ formatted_data
Dataset Output Node (写入 Google Sheets)API 配置
环境变量
节点使用以下环境变量配置 Binance API:
BINANCE_API_KEY
Binance API 密钥
❌
BINANCE_API_SECRET
Binance API 密钥(Secret)
❌
注意:
如果不提供 API Key,节点会使用 Binance 公共 API 接口
公共 API 有访问频率限制,建议高频使用时配置 API Key
获取 K 线数据和当前价格不需要 API Key
API 限制
根据 Binance API 文档:
请求频率
较低
较高
权重限制
共享池
独立配额
最大 K 线数量
1000 根
1000 根
注意事项
⚠️ 重要提示
交易对有效性
交易对符号必须是 Binance 支持的有效交易对
建议从预设列表中选择,避免输入无效符号
交易对符号会自动转换为大写
时间间隔选择
不同时间间隔返回的数据量和精度不同
1m 间隔适合短期交易策略
1d 或更长间隔适合长期趋势分析
数据量控制
limit 参数最大值为 1000
获取大量历史数据可能增加响应时间
建议根据实际需求设置合理的 limit 值
API 稳定性
节点内置了连接重试机制(最多 3 次)
使用指数退避策略避免频繁重试
网络不稳定时可能导致节点执行失败
数据精度
价格和成交量等数值以字符串格式返回
保持 Binance API 原始精度
进行数值计算时需要转换为数字类型
常见问题
Q: 如何处理 K 线数据进行技术分析?
A: 可以连接 Code Node,使用 Python 的 pandas 库处理数据:
import pandas as pd
# 输入数据来自 Binance Price Node
kline_data = input_data.get('kline_data', [])
header = ['open_time', 'open', 'high', 'low', 'close', 'volume', ...]
# 转换为 DataFrame
df = pd.DataFrame(kline_data, columns=header)
df['close'] = df['close'].astype(float)
# 计算移动平均线
df['ma_20'] = df['close'].rolling(window=20).mean()
df['ma_50'] = df['close'].rolling(window=50).mean()
# 输出处理后的数据
output_data = {
'prices': df['close'].tolist(),
'ma_20': df['ma_20'].tolist(),
'ma_50': df['ma_50'].tolist()
}Q: data 输出中的 current_price 和 kline_data 中的 close 价格有什么区别?
A:
data.current_price来自实时 ticker 接口,是最新的成交价格data.kline_data中最后一根 K 线的close价格是该时间段的收盘价如果当前 K 线未收盘,最后一根 K 线的 close 可能与 current_price 不同
Q: 节点执行失败如何调试?
A: 检查以下几点:
交易对符号是否正确且被 Binance 支持
网络连接是否正常
API Key 是否有效(如果配置了)
查看节点日志获取详细错误信息
确认 Binance API 服务是否正常运行
Q: 如何获取实时价格而不是 K 线数据?
A: data 输出中包含 current_price 字段,可以在下游节点中访问 input_data.get('current_price') 来获取实时价格。如果只需要价格而不需要完整的 K 线数据,可以在 Code Node 中提取该字段。
相关节点
Code Node - 用于处理和分析 K 线数据
Condition Node - 根据价格数据触发条件判断
AI Model Node - 使用 AI 分析价格趋势
Dataset Output Node - 将价格数据导出到外部存储
技术规格
节点版本
1.0.0
支持的 API 版本
Binance API v3
最大并发执行
取决于 API 限制
执行模式
单次执行(获取一次数据后完成)
资源清理
自动清理 API 客户端
日志级别
DEBUG, INFO, WARNING, ERROR
相关文档:
节点与工作流 - 节点基础概念
Weather 语法 - 工作流文件格式
Last updated