一个完整的加密货币交易框架,提供多交易所API封装、配置管理、日志记录、通知服务等功能。适合快速开发交易机器人和量化策略。
- 🚀 多交易所支持 - Binance、Gate.io、Bybit 完整API封装
- ⚡ 异步高性能 - 基于asyncio的异步架构
- 🔧 完整框架 - 配置管理、日志记录、通知服务、Redis缓存
- 📊 实时数据 - WebSocket实时行情和交易数据
- 🛡️ 安全可靠 - 配置文件分离、完整的签名验证和错误处理
- 📱 多种通知 - 企业微信、Telegram、钉钉、邮件通知
- 🎯 开箱即用 - 一键初始化,快速开始交易开发
git clone https://github.com/4cya/pycoin-framework.git my_trading_bot
cd my_trading_bot# 创建虚拟环境
python -m venv .venv
# 激活虚拟环境
# Windows:
.venv\Scripts\activate
# macOS/Linux:
source .venv/bin/activate# 确保虚拟环境已激活,然后安装依赖
pip install -r requirements.txt# 运行初始化脚本 (确保虚拟环境已激活)
python setup_project.py或手动复制配置文件:
# 复制配置模板
cp config/app.example.yaml config/app.yaml
cp secrets/accounts.example.yaml secrets/accounts.yaml编辑 secrets/accounts.yaml 文件:
exchanges:
binance:
api_key: "your_binance_api_key"
api_secret: "your_binance_secret"import asyncio
from exchange.binance.binance_spot import BinanceSpotExchange
from utils.settings import Settings
async def main():
# 加载配置
settings = Settings()
# 获取Binance配置
binance_config = settings.get_account("binance")
# 创建交易客户端
client = BinanceSpotExchange(
api_key=binance_config["api_key"],
api_secret=binance_config["api_secret"]
)
# 获取账户信息
account, error = await client.get_account()
if not error:
print("✅ 账户连接成功")
print(f"账户余额: {account}")
else:
print(f"❌ 连接失败: {error}")
if __name__ == "__main__":
asyncio.run(main())pycoin-framework/
├── config/
│ ├── app.example.yaml # 应用配置模板
│ └── app.yaml # 应用配置 (用户创建)
├── secrets/
│ ├── accounts.example.yaml # 账户配置模板
│ └── accounts.yaml # 账户配置 (用户创建)
├── exchange/ # 交易所API封装
│ ├── binance/ # Binance API
│ ├── gate/ # Gate.io API
│ └── bybit/ # Bybit API
├── utils/ # 工具类
│ ├── settings.py # 配置管理
│ ├── log.py # 日志管理
│ ├── notifier.py # 通知服务
│ ├── redis_client.py # Redis客户端
│ └── http_client.py # HTTP客户端
├── examples/ # 示例代码
├── setup_project.py # 项目初始化脚本
├── requirements.txt # 依赖列表
└── README.md # 项目说明
- Binance: 现货、合约、WebSocket
- Gate.io: 现货、合约、WebSocket
- Bybit: 统一账户、WebSocket
- 配置管理: YAML配置文件,环境变量覆盖
- 日志记录: 多级别日志,文件轮转
- 通知服务: 企业微信、Telegram、钉钉、邮件
- Redis缓存: 数据缓存和状态管理
- 心跳监控: 服务状态监控
# Redis配置
redis:
host: localhost
port: 6379
# 代理配置
proxy:
enabled: false
http: "http://127.0.0.1:7890"
# 通知配置
notifications:
wxwork:
webhook_key: "your-webhook-key"exchanges:
binance:
api_key: "your_api_key"
api_secret: "your_api_secret"| 交易所 | 返佣比例 | 注册链接 | 特色 |
|---|---|---|---|
| Binance | 20% | 点击注册 | 全球最大,流动性最好 |
| Gate.io | 40% | 点击注册 | 老牌交易所,币种丰富 |
| Bybit | 33% | 点击注册 | 体验流畅,可交易美股 |
💡 提示: 使用上述邀请链接注册可享受手续费返佣优惠,降低交易成本
- 在企业微信群中添加机器人
- 获取Webhook Key
- 配置到
config/app.yaml
- 创建Telegram机器人 (@BotFather)
- 获取Bot Token和Chat ID
- 配置到
config/app.yaml
- ✅ 使用测试网进行开发测试
- ✅ API密钥设置只读权限(数据获取)
- ✅ 生产环境使用环境变量
- ✅ 定期轮换API密钥
- ✅ 设置IP白名单
- ✅ 不要将配置文件提交到代码仓库
查看 examples/ 目录获取更多示例:
basic_trading.py- 基础交易示例websocket_demo.py- WebSocket实时数据multi_exchange.py- 多交易所套利notification_test.py- 通知服务测试
加密货币交易存在极高风险,可能导致本金全部损失。本框架仅供学习和研究使用,请谨慎投资,理性交易。
欢迎提交Issue和Pull Request来改进这个项目。
MIT License - 详见 LICENSE 文件