零基础搭建Binance行情预警机器人(Python版)
以下是零基础搭建 Binance行情预警机器人(Python版) 的详细步骤,无需编程经验,按流程操作即可实现价格监控与通知:
一、准备工作
1. 安装Python环境
访问 Python官网 下载并安装Python(勾选 Add Python to PATH)。
验证安装:打开命令行输入 python --version,显示版本号即成功。
2. 安装依赖库
在命令行中执行以下命令:
bash
复制
pip install ccxt python-dotenv requests telegram-send
ccxt:连接Binance API获取行情数据。
telegram-send:通过Telegram发送通知。
二、注册Binance并获取API密钥
登录 Binance官网,完成身份验证。
进入 用户中心 → API管理 → 创建API。
权限选择:启用读取(Read Only)(预警无需交易权限)。
记录生成的 API Key 和 Secret Key(切勿泄露)。
三、编写行情预警代码
1. 创建项目文件
新建文件夹(如binance-alert),在其中创建文件 alert.py。
2. 代码实现
python
复制
import ccxt
import time
from dotenv import load_dotenv
import os
import telegram_send
# 加载环境变量(存储API密钥)
load_dotenv()
# 初始化Binance连接
exchange = ccxt.binance({
'apiKey': os.getenv('BINANCE_API_KEY'),
'secret': os.getenv('BINANCE_SECRET_KEY'),
'enableRateLimit': True # 避免频繁请求被限制
})
# 设置监控参数
SYMBOL = 'BTC/USDT' # 交易对(如ETH/USDT、BNB/USDT)
PRICE_THRESHOLD = 60000 # 触发预警的价格阈值(示例:BTC超过60000美元报警)
CHECK_INTERVAL = 60 # 检查间隔(秒)
def get_price(symbol):
"""获取当前价格"""
ticker = exchange.fetch_ticker(symbol)
return ticker['last']
def main():
print("行情预警机器人已启动...")
while True:
try:
current_price = get_price(SYMBOL)
print(f"{SYMBOL} 当前价格: {current_price}")
# 触发预警条件
if current_price >= PRICE_THRESHOLD:
message = f"价格预警!{SYMBOL} 已突破 {PRICE_THRESHOLD},当前价:{current_price}"
telegram_send.send(messages=[message]) # 发送Telegram通知
print("已发送预警通知!")
time.sleep(CHECK_INTERVAL)
except Exception as e:
print(f"错误:{e}")
time.sleep(10)
if __name__ == "__main__":
main()
四、配置Telegram通知
1. 创建Telegram机器人
打开Telegram,搜索 @BotFather,发送 /newbot。
按提示设置机器人名称和用户名(如 MyBinanceAlertBot)。
记录生成的 Bot Token(格式为 123456789:ABCdefGHIJKLmnopQRSTUVWXYZ)。
2. 获取Chat ID
在Telegram中搜索你的机器人,发送任意消息(如 /start)。
访问 https://api.telegram.org/bot<你的Token>/getUpdates,替换Token。
在返回的JSON中找到 chat.id 字段的值(即你的Chat ID)。
3. 配置telegram-send
在命令行中运行:
bash
复制
telegram-send --configure
按提示输入 Bot Token 和 Chat ID,完成配置。
五、设置环境变量
在项目文件夹中创建 .env 文件,内容如下:
plaintext
复制
BINANCE_API_KEY=你的API Key
BINANCE_SECRET_KEY=你的Secret Key
替换为实际的API密钥。
六、运行机器人
在命令行中执行:
bash
复制
python alert.py
效果:机器人每60秒检查一次价格,当BTC价格超过60000美元时,通过Telegram发送预警。
七、扩展功能(可选)
多交易对监控
修改 SYMBOL 为列表,循环检查多个币种。
价格波动预警
计算价格变化率,如1小时内涨幅超过5%时报警。
邮件/Slack通知
使用 smtplib 或 slack_sdk 替换通知渠道。
图形化界面
用 tkinter 或 PyQt 添加简单UI操作界面。
八、注意事项
API调用频率
Binance API有调用限制(默认1200次/分钟),勿设置过短的检查间隔。
服务器部署
长期运行建议部署到云服务器(如AWS、阿里云)。
错误处理
增加网络重试逻辑,防止因断网导致程序终止。