# ScalpingBot **Repository Path**: HeyQiangZi/scalping-bot ## Basic Information - **Project Name**: ScalpingBot - **Description**: okx刮头皮策略自动化交易机器人 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2026-03-20 - **Last Updated**: 2026-05-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OKX交易所头皮策略交易机器人 一个基于OKX交易所API的自动化头皮(Scalping)交易策略机器人。支持现货和永续合约交易、多时间框架分析、回测、模拟盘等功能。 ## 功能特性 ✅ **多时间框架分析** - 支持5分钟、15分钟、1小时、4小时K线 - 多时间框架信号确认 ✅ **头皮策略实现** - 基于RSI超买超卖 - MACD金叉死叉信号 - 布林带突破 - 自动止损止盈 - 交易周期限制(最多20根5分钟K线) ✅ **交易执行** - 现货交易 - 永续合约交易 - 杠杆设置支持 - 多交易对并发 ✅ **成本管理** - 交易手续费计算(Maker/Taker) - 永续合约资金费用计算 - 盈亏平衡点自动计算 - 净盈亏统计 ✅ **风险管理** - 单笔止损止盈 - 最大日亏损限制 - 最大回撤控制 - 最大并发持仓限制 ✅ **三种运行模式** - 🔄 **回测模式**:历史数据回测策略 - 📊 **模拟盘模式**:实时模拟交易,验证策略 - 🚀 **实盘模式**:真实交易(谨慎使用) ✅ **数据处理** - 技术指标计算(RSI、MACD、布林带、ATR等) - K线数据缓存管理 - 实时数据更新 ## 项目结构 ``` ScalpingBot/ ├── config/ # 配置文件 │ └── default.yaml # 默认配置 ├── src/ │ ├── okx/ # OKX API封装 │ │ ├── client.py # API客户端 │ │ └── models.py # 数据模型 │ ├── data/ # 数据处理 │ │ ├── kline.py # K线获取 │ │ └── processor.py # K线处理 │ ├── strategy/ # 策略模块 │ │ ├── base.py # 基础策略 │ │ ├── scalping.py # 头皮策略 │ │ └── indicators.py # 技术指标 │ ├── trading/ # 交易执行 │ │ ├── executor.py # 交易执行器 │ │ ├── position.py # 仓位管理 │ │ └── risk.py # 风险管理 │ ├── backtesting/ # 回测引擎 │ │ └── engine.py # 回测逻辑 │ ├── simulator/ # 模拟交易所 │ │ └── mock_exchange.py # 模拟交易 │ ├── costs/ # 成本计算 │ │ └── calculator.py # 费用计算 │ └── utils/ # 工具函数 │ ├── logger.py # 日志 │ └── config.py # 配置加载 ├── logs/ # 日志文件(自动创建) ├── reports/ # 回测报告(自动创建) ├── main.py # 主程序 ├── requirements.txt # 依赖 ├── .env.example # 环境变量示例 └── README.md # 项目说明 ``` ## 快速开始 ### 1. 环境安装 ```bash # 克隆或进入项目目录 cd ScalpingBot # 安装依赖 pip install -r requirements.txt # 创建环境变量文件 cp .env.example .env ``` ### 2. 配置API密钥 编辑 `.env` 文件,填入你的OKX API密钥: ```bash OKX_API_KEY=your_api_key OKX_SECRET_KEY=your_secret_key OKX_PASSPHRASE=your_passphrase ``` 也可以编辑 `config/default.yaml` 修改其他配置。 ### 3. 运行回测 ```bash # 回测模式(推荐先测试) python main.py --mode backtest # 使用自定义配置 python main.py --mode backtest --config config/default.yaml ``` ### 4. 运行模拟盘 ```bash # 模拟盘模式(实时数据,虚拟交易) python main.py --mode simulate ``` ### 5. 运行实盘 ```bash # ⚠️ 实盘模式 - 谨慎使用! python main.py --mode live ``` ## 配置说明 编辑 `config/default.yaml`: ### API配置 ```yaml api: environment: sandbox # live/sandbox api_key: ${OKX_API_KEY} secret_key: ${OKX_SECRET_KEY} passphrase: ${OKX_PASSPHRASE} ``` ### 交易配置 ```yaml trading: mode: backtest # live/backtest/simulate trade_type: perpetual # spot/perpetual leverage: 2 # 杠杆倍数 position_size: 100 # 单笔交易金额(USDT) max_position_bars: 20 # 最大持仓K线数 max_concurrent_symbols: 5 # 最大并发交易对 ``` ### 策略配置 ```yaml strategy: timeframes: [5, 15, 60, 240] # K线周期(分钟) primary_timeframe: 5 rsi_period: 14 rsi_overbought: 70 rsi_oversold: 30 macd_fast: 12 macd_slow: 26 macd_signal: 9 ``` ### 风险管理 ```yaml risk: stop_loss: 1.0 # 单笔止损(%) take_profit: 2.0 # 单笔止盈(%) max_daily_loss: 5.0 # 最大日亏(%) max_drawdown: 10.0 # 最大回撤(%) max_positions: 3 # 最大并发持仓数 ``` ### 成本配置 ```yaml costs: maker_fee: 0.02 # Maker手续费(%) taker_fee: 0.05 # Taker手续费(%) funding_rate: 0.03 # 资金费率(%) ``` ### 回测配置 ```yaml backtest: start_date: "2024-01-01" end_date: "2024-01-31" initial_balance: 10000 symbols: - BTC-USDT - ETH-USDT ``` ## 策略逻辑 ### 多时间框架确认 1. **4小时** - 确定大方向(趋势) 2. **1小时** - 次级趋势确认 3. **15分钟** - 入场时机 4. **5分钟** - 精确入场点 ### 入场信号 - **买入信号** - RSI从超卖区(<30)反弹上升 - MACD金叉(直方图从负变正) - 价格突破布林带下轨 - **卖出信号** - RSI从超买区(>70)回落 - MACD死叉(直方图从正变负) - 价格突破布林带上轨 ### 出场条件 - 止盈:单笔收益 ≥ 2% - 止损:单笔亏损 ≤ -1% - 超时:持仓时间 ≥ 20根5分钟K线(100分钟) - 手动:用户主动平仓 ## 成本计算 ### 交易手续费 ``` 手续费 = 交易金额 × 手续费率 Maker费率: 0.02%(被动成交) Taker费率: 0.05%(主动成交) ``` ### 资金费用(永续合约) ``` 资金费 = 持仓价值 × 资金费率 × 持仓时长(天数) / 3 资金费率: 0.03% (每8小时结算) 多头支付,空头收取 ``` ## 回测报告 回测完成后会在 `reports/` 目录生成JSON报告,包含: - 初始资金 & 最终资金 - 总收益 & 收益率 - 最大回撤 - 交易总数 & 胜率 - 平均单笔盈亏 - 盈利因子(总收益 / 总亏损) ## API速率限制 OKX API限制: - 公开接口:40个请求/秒 - 私有接口:10个请求/秒 程序内置速率限制器,自动控制请求频率。 ## 风险提示 ⚠️ **免责声明** 1. 本程序仅供学习和研究使用 2. 策略过往表现不代表未来结果 3. 交易存在风险,可能导致全额损失 4. 使用前充分理解交易机制 5. 建议先在模拟盘和回测中验证 6. 实盘交易前多次检查配置 7. 合理设置止损止盈和风险参数 ## 常见问题 ### Q: 如何修改策略参数? A: 编辑 `config/default.yaml` 中的 `strategy` 部分,修改RSI、MACD、布林带等参数。 ### Q: 如何添加新的交易对? A: 在配置中的 `backtest.symbols` 或程序中修改交易对列表。 ### Q: 如何查看交易日志? A: 日志保存在 `logs/scalping_bot.log`,实时输出到控制台。 ### Q: 模拟盘和实盘有什么区别? A: 模拟盘使用虚拟资金,不消耗真实资金,用于测试策略。 ### Q: 如何处理API连接失败? A: 检查网络连接、API密钥有效性,查看日志文件获取详细错误信息。 ## 技术指标说明 ### RSI (相对强弱指标) - 范围:0-100 - 超买:>70 - 超卖:<30 - 用于:判断价格极端位置 ### MACD (移动平均收敛散度) - 金叉:MACD上穿信号线 ➜ 买入信号 - 死叉:MACD下穿信号线 ➜ 卖出信号 - 用于:确认趋势方向 ### 布林带 (Bollinger Bands) - 上轨:中轨 + 2倍标准差 - 中轨:20周期简单移动平均 - 下轨:中轨 - 2倍标准差 - 用于:判断超买超卖和支撑阻力 ### ATR (平均真实波幅) - 衡量市场波动率 - 用于:设置动态止损止盈 ## 性能优化 - 使用pandas进行批量数据处理 - K线数据缓存管理 - 异步API请求(可选) - 内存高效的指标计算 ## 贡献指南 欢迎提交Issue和Pull Request改进项目! ## 许可证 MIT License ## 联系方式 如有问题或建议,请提交Issue。 --- **最后更新**:2024年10月29日 **版本**:1.0.0 **作者**:ScalpingBot Team