8000 GitHub - cryptocj520/madingperps420: madingperps420
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

cryptocj520/madingperps420

Repository files navigation

合约马丁交易策略系统说明文档

1. 系统概述

合约马丁交易策略系统是一个自动化的加密货币合约交易系统,采用改良版马丁格尔策略执行交易。系统基于Node.js开发,支持Backpack交易所的合约交易,具有自动开仓、止盈止损、风险控制等功能。

核心特点

  • 马丁格尔策略:价格下跌时分批增仓,摊低持仓成本
  • 实时价格监控:通过WebSocket保持价格数据实时更新
  • 自动止盈止损:可配置的止盈止损机制,保护资金安全
  • 风险控制体系:多重风险控制措施,避免资金过度损失
  • 完善的日志系统:详细记录交易过程,利于追踪和分析

2. 程序架构

系统采用模块化设计,主要由以下组件构成:

                   +------------------+
                   |  配置管理模块    |
                   +--------+---------+
                            |
                            v
+---------------+  +--------+---------+  +------------------+
|  价格监控模块  |->|   核心交易模块   |<-|   交易服务模块    |
+---------------+  +--------+---------+  +------------------+
                            |
                            v
                   +--------+---------+
                   |   日志记录模块   |
                   +------------------+

2.1 主要组件

  • 配置管理:读取和解析配置文件,提供系统参数
  • 价格监控:通过WebSocket和REST API监控市场价格变动
  • 核心交易模块:实现交易策略逻辑,包括订单计算、开仓平仓决策
  • 交易服务模块:与交易所API交互,发送订单请求
  • 日志记录模块:记录系统运行状态和交易活动

2.2 工作流程

  1. 系统启动并加载配置
  2. 初始化交易环境(设置杠杆、检查持仓)
  3. 执行交易策略创建订单序列
  4. 启动价格和持仓监控
  5. 根据监控结果执行止盈止损或调整策略
  6. 记录完整交易过程

3. 文件结构

bpmading/
├── backpack_futures_config.json     // 配置文件
├── start_futures_trading.js         // 入口文件
├── src/
│   ├── app.js                       // 应用基类
│   ├── futuresTradingApp.js         // 合约交易应用主类
│   ├── core/
│   │   ├── tradingStrategy.js       // 交易策略基类
│   │   ├── futuresTradingStrategy.js// 合约交易策略
│   │   ├── priceMonitor.js          // 价格监控模块
│   ├── services/
│   │   ├── backpackFuturesService.js// Backpack合约API服务
│   ├── utils/
│   │   ├── logger.js                // 日志工具
│   │   ├── timeUtils.js             // 时间处理工具
│   │   ├── formatter.js             // 格式化工具
│   │   ├── ed25519Utils.js          // 签名工具
│   ├── network/
│   │   ├── webSocketManager.js      // WebSocket管理
├── logs/
│   ├── trading_yyyy-mm-dd.log       // 交易日志
│   ├── error_yyyy-mm-dd.log         // 错误日志
└── node_modules/                    // 依赖模块

4. 使用方法

4.1 环境准备

  • Node.js v14.0.0或更高版本
  • npm或yarn包管理器

4.2 安装依赖

npm install
#
yarn install

4.3 配置系统

编辑backpack_futures_config.json文件,设置交易参数:

{
  "apiKeys": {
    // Backpack交易所API公钥,从交易所个人中心-API管理获取
    "publicKey": "你的API公钥",
    // Backpack交易所API私钥,请妥善保管避免泄露
    "privateKey": "你的API私钥"
  },
  "futures": {
    // 交易币种,支持BTC、ETH、SOL等Backpack支持的合约币种
    "tradingCoin": "BTC",
    // 最大下跌百分比,决定从当前价格向下最多下跌多少百分比设置订单,范围1-10
    "maxDropPercentage": 3,
    // 总投资金额(USDC),所有订单使用的总资金,实际会根据杠杆倍数放大
    "totalAmount": 100,
    // 订单数量,分批下单的总数量,推荐3-5个
    "orderCount": 3,
    // 递增百分比,决定每批订单金额的增加比例,越大则低价位订单资金占比越高
    "incrementPercentage": 50,
    // 止盈百分比,达到此盈利百分比时自动平仓,小值利于快速回本
    "takeProfitPercentage": 0.5,
    // 杠杆倍数,1-20之间,越高风险越大
    "leverage": 5,
    // 持仓方向,"LONG"为做多,"SHORT"为做空
    "positionSide": "LONG"
  },
  "actions": {
    // 启动时是否取消已有的未成交订单,true则会取消并重新创建订单
    "cancelExistingOrdersOnStart": true,
    // 止盈平仓后是否自动重新开始新一轮交易
    "restartAfterTakeProfit": true,
    // 程序停止时是否自动平仓,如需长期持仓则设为false
    "closePositionsOnStop": false
  },
  "advanced": {
    // 最小订单金额(USDC),单个订单的最小资金
    "minOrderAmount": 10,
    // 价格最小变动单位,根据交易所规则设置
    "priceTickSize": 0.1,
    // 检查订单状态的间隔时间(分钟)
    "checkOrdersIntervalMinutes": 5,
    // 价格监控间隔(秒),决定多久检查一次价格变动
    "monitorIntervalSeconds": 30,
    // 无成交重新下单的等待时间(分钟),过短会频繁取消重下单
    "noFillRestartMinutes": 30,
    // 最大持仓风险比例,控制单次交易的最大风险敞口
    "maxPositionRisk": 0.5,
    // 资金费率限制,超过此值会提示警告
    "fundingRateLimit": 0.01,
    // 滑点容忍度,市价单成交的允许滑点百分比
    "slippageTolerance": 0.05,
    // API请求超时时间(毫秒)
    "apiTimeout": 10000
  },
  "riskManagement": {
    // 止损百分比,亏损达到此百分比时触发止损平仓,范围1-20
    "stopLossPercentage": 3,
    // 是否启用动态止损,开启后会随着盈利增加自动调整止损位
    "dynamicStopLoss": false,
    // 追踪止损激活点(百分比),盈利达到此百分比后才开始追踪止损
    "trailingStopActivation": 1.0,
    // 追踪止损距离(百分比),价格回撤此百分比时触发止损
    "trailingStopDistance": 0.5,
    // 最大允许杠杆,限制系统使用的最大杠杆倍数,保障资金安全
    "maxLeverage": 10,
    // 最大回撤百分比,总资金回撤超过此百分比会触发风险预警
    "maxDrawdownPercentage": 10
  }
}

4.4 启动系统

node start_futures_trading.js

4.5 监控和管理

  • 系统启动后会自动执行交易策略
  • 交易日志保存在logs/trading_yyyy-mm-dd.log
  • 错误日志保存在logs/error_yyyy-mm-dd.log
  • 使用Ctrl+C可安全停止程序

5. 配置参数说明

5.1 API配置

  • publicKey: Backpack交易所API公钥
  • privateKey: Backpack交易所API私钥

5.2 合约交易配置

  • tradingCoin: 交易币种(如BTC、ETH、SOL等)
  • maxDropPercentage: 最大下跌百分比,决定订单价格范围
  • totalAmount: 总投资金额(USDC)
  • orderCount: 订单数量,决定分批买入的次数
  • incrementPercentage: 递增百分比,决定每批订单金额的增加比例
  • takeProfitPercentage: 止盈百分比,达到此盈利时自动平仓
  • leverage: 杠杆倍数,1-20之间
  • positionSide: 持仓方向,"LONG"为做多,"SHORT"为做空

5.3 操作配置

  • cancelExistingOrdersOnStart: 启动时是否取消现有订单
  • restartAfterTakeProfit: 止盈后是否自动重新下单
  • closePositionsOnStop: 停止程序时是否平仓

5.4 高级配置

  • minOrderAmount: 最小订单金额
  • priceTickSize: 价格最小变动单位
  • checkOrdersIntervalMinutes: 检查订单状态的间隔(分钟)
  • monitorIntervalSeconds: 监控间隔(秒)
  • noFillRestartMinutes: 无成交重新下单的等待时间(分钟)
  • maxPositionRisk: 最大持仓风险比例
  • fundingRateLimit: 资金费率限制
  • slippageTolerance: 滑点容忍度
  • apiTimeout: API请求超时时间(毫秒)

5.5 风险管理配置

  • stopLossPercentage: 止损百分比
  • dynamicStopLoss: 是否启用动态止损
  • trailingStopActivation: 追踪止损激活点(百分比)
  • trailingStopDistance: 追踪止损距离(百分比)
  • maxLeverage: 最大允许杠杆
  • maxDrawdownPercentage: 最大回撤百分比

6. 交易策略详解

6.1 马丁格尔策略基本原理

马丁格尔策略基于"价格回归均值"理论,通过在价格下跌时增加投资,降低平均成本,从而在价格回升时获利。

6.2 系统实现的改良版马丁格尔策略

  1. 分批下单:根据配置的订单数量,在不同价位分批设置买单
  2. 金额递增:越低价位的订单金额越大,符合马丁格尔加码原则
  3. 止盈设置:有较小的止盈点,保证盈利及时落袋
  4. 止损保护:设置合理止损,控制最大风险

6.3 订单计算逻辑

订单1(最高价):totalAmount / (1 + incrementPercentage% + incrementPercentage%^2 + ...)
订单2:订单1金额 * (1 + incrementPercentage%)
订单3:订单2金额 * (1 + incrementPercentage%)
...

7. 风险控制机制

7.1 止损机制

  • 固定止损:根据入场价格设置固定百分比止损
  • 动态止损:随着盈利增加动态调整止损点
  • 追踪止损:价格达到激活点后跟踪价格变动设置止损

7.2 持仓风险控制

  • 最大杠杆限制:防止过高杠杆导致的强平风险
  • 资金费率监控:在资金费率过高时提供警告
  • 最大持仓限制:控制单一持仓的最大规模

7.3 系统安全控制

  • API错误处理:完善的错误捕获和处理机制
  • 网络异常处理:WebSocket自动重连,REST API重试
  • 持仓获取保障:无法获取持仓信息时不执行新订单创建

8. 日志系统

8.1 日志类型

  • 交易日志:记录所有交易活动和系统运行状态
  • 错误日志:记录系统错误和异常情况

8.2 日志内容

  • 开仓记录:包含开仓时间、价格、数量、原因
  • 平仓记录:包含平仓时间、价格、盈亏、原因
  • 系统事件:程序启动、停止、重新配置等
  • 价格更新:重要的价格变动信息

8.3 日志查看

日志文件保存在logs目录下,可使用文本编辑器查看,也可使用以下命令实时查看:

tail -f logs/trading_yyyy-mm-dd.log

9. 常见问题与故障排除

9.1 API连接问题

症状:无法连接到交易所API 解决方案

  • 检查API密钥是否正确
  • 确认API访问IP是否受限
  • 检查网络连接是否稳定

9.2 订单创建失败

症状:系统无法创建订单 解决方案

  • 检查账户余额是否充足
  • 确认订单参数是否符合交易所要求
  • 查看错误日志获取详细错误信息

9.3 止盈止损不触发

症状:价格达到止盈止损点但未执行平仓 解决方案

  • 检查监控间隔是否过长
  • 确认WebSocket连接是否正常
  • 验证止盈止损配置是否正确

9.4 系统资源使用

症状:系统占用资源过高 解决方案

  • 增加监控间隔时间
  • 减少日志输出频率
  • 优化WebSocket消息处理

10. 联系与支持

如有问题或需要支持,请通过以下方式联系:

11. 免责声明

本系统仅供学习和研究使用,不构成投资建议。使用本系统进行实盘交易存在风险,用户应自行承担所有交易风险和损失。开发者不对使用本系统造成的任何直接或间接损失负责。


最后更新:2025年4月16日

About

madingperps420

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0