Skip to content

Solana PumpSwap automated trading bot with consecutive buy pattern detection. Auto-executes follow trades with 15% take-profit and 10% stop-loss management.

License

Notifications You must be signed in to change notification settings

0xfnzero/trading-bot-ts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Solana DEX 连续买入跟单机器人

专业的 Solana PumpSwap 交易机器人,基于连续买入模式识别和跟单策略。当检测到某个代币连续大额买入时,自动跟单买入并进行止盈止损管理。

✨ 核心特性

  • 🎯 智能跟单: 检测连续买入模式,自动跟单交易
  • 📊 实时监控: 毫秒级延迟监听链上 PumpSwap 交易事件
  • 💰 自动止盈止损: 15% 止盈,10% 止损,全自动执行
  • 🛡️ 风险管理: 多重风险控制,保护资金安全
  • ⚙️ 灵活配置: 所有参数可通过环境变量自定义
  • 📈 实时统计: 持仓跟踪、盈亏统计、性能分析

🚀 快速开始

环境要求

  • Node.js 16.0+
  • NPM 7.0+
  • Solana 交易代理服务正在运行

安装依赖

# 克隆项目后进入目录
cd trading-bot-ts

# 安装依赖
npm install

配置策略参数

# 复制配置模板
cp .env.example .env

# 编辑配置文件
nano .env  # 或使用其他编辑器

核心配置说明

🔗 服务连接

HTTP_API_URL=http://localhost:3000     # 交易代理 HTTP API
WS_URL=ws://127.0.0.1:9001            # WebSocket 数据流
REQUEST_TIMEOUT=30000                  # 请求超时 (毫秒)

📈 交易策略

CONSECUTIVE_BUYS=3                     # 连续买入次数检测
TOTAL_AMOUNT_THRESHOLD=5.0             # 总金额阈值 (SOL)
TIME_WINDOW_MINUTES=5                  # 时间窗口 (分钟)
BUY_AMOUNT_SOL=0.01                   # 跟单买入金额 (SOL)

💰 止盈止损

TAKE_PROFIT_PERCENT=15.0              # 止盈百分比
STOP_LOSS_PERCENT=-10.0               # 止损百分比
CHECK_INTERVAL_SECONDS=10             # 检查间隔 (秒)

🛡️ 风险控制

MAX_POSITIONS=5                        # 最大同时持仓数
COOLDOWN_MINUTES=5                     # 代币冷却时间 (分钟)
SLIPPAGE_BPS=500                      # 滑点保护 (5%)

🎯 运行机器人

启动交易机器人

# 开发模式 (实时日志)
npm run bot

# 生产模式 (编译后运行)
npm run bot:prod

# 构建项目
npm run build

# 仅监听事件 (不执行交易)
npm run subscribe

启动输出示例

🚀 启动交易机器人...
✅ 服务器状态: healthy
🚀 交易机器人已连接到数据流
📡 正在监听链上交易事件...
📊 当前状态: 0 个持仓, 总投资 0 SOL

📊 分析买入事件: A1B2C3D4... Amount: 2.5000 SOL
📊 分析买入事件: A1B2C3D4... Amount: 1.8000 SOL
📊 分析买入事件: A1B2C3D4... Amount: 3.2000 SOL

🎯 检测到连续买入模式!
   代币: A1B2C3D4E5F6G7H8...
   连续买入: 3次
   总金额: 7.5000 SOL
🚀 执行跟单买入!
   我们买入: 0.01 SOL
✅ 买入成功: 5YoP8xT2M...
📊 当前状态: 1 个持仓, 总投资 0.01 SOL

📈 A1B2C3D4... PnL: +12.50%
🎯 触发止盈: 16.20% >= 15.00%
✅ 止盈成功: 3KpL9vN8Q...
   盈亏: +16.20% (+0.00162 SOL)

💡 使用方式

🤖 自动交易模式 (推荐)

import { TradingBot } from 'trading-proxy-client';

const bot = new TradingBot();
await bot.start();

// 机器人自动执行:
// ✅ 监听 PumpSwap 买入事件
// ✅ 检测连续买入模式
// ✅ 自动跟单买入
// ✅ 实时止盈止损管理
// ✅ 风险控制和仓位管理

📊 仅数据监控

import { EventSubscriber } from 'trading-proxy-client';

const subscriber = new EventSubscriber();

subscriber.on('pumpswap', (event, latency) => {
  const action = event.is_buy ? '🟢 BUY' : '🔴 SELL';
  console.log(`${action} ${event.mint} ${latency?.latency_ms}ms`);
});

subscriber.connect();

🔧 手动交易

import { TradingProxyClient } from 'trading-proxy-client';

const client = new TradingProxyClient();

// 健康检查
const health = await client.health();

// 手动买入
const result = await client.buy(dexParams, {
  mint: 'token_address',
  amount_sol: 0.01,
  slippage_bps: 500
});

🧠 策略详解

连续买入跟单策略

机器人采用智能的连续买入模式识别策略,通过检测短时间内的大额买入行为来发现潜在的交易机会。

📊 工作原理

时间轴: 00:00 ────────────► 00:05 ────────────► 00:10

代币 ABC:
├─ 00:01  🟢 买入 2.5 SOL  (用户A)
├─ 00:02  🟢 买入 1.8 SOL  (用户B)
├─ 00:03  🟢 买入 3.2 SOL  (用户C)
└─ 00:04  🎯 触发跟单!总计 7.5 SOL > 5.0 SOL 阈值

🎯 触发条件 (全部满足)

  1. 连续买入检测: 在时间窗口内检测到连续买入
  2. 金额阈值: 累计买入金额达到设定阈值
  3. 时间限制: 所有买入发生在指定时间窗口内
  4. 风险检查: 通过持仓限制、冷却时间等风险控制

⚡ 执行流程

graph TD
    A[监听PumpSwap买入事件] --> B[记录买入数据]
    B --> C{是否达到连续买入次数?}
    C -->|否| A
    C -->|是| D{总金额是否超过阈值?}
    D -->|否| A
    D -->|是| E[风险检查]
    E --> F{通过风险检查?}
    F -->|否| A
    F -->|是| G[执行跟单买入]
    G --> H[开始持仓管理]
    H --> I[监控止盈止损]
    I --> J{触发止盈/止损?}
    J -->|否| I
    J -->|是| K[自动卖出]
Loading

💰 止盈止损机制

  • 实时监控: 每10秒检查一次持仓收益
  • 止盈触发: 达到15%收益时自动卖出
  • 止损保护: 亏损达到10%时自动止损
  • 精确计算: 基于买入价格实时计算收益率

🛡️ 多重风险控制

  1. 持仓限制: 最多同时持有5个代币仓位
  2. 冷却机制: 同一代币5分钟内只能买入一次
  3. 滑点保护: 交易时设置5%滑点保护
  4. 金额控制: 固定小额买入,控制单笔风险
  5. 时间窗口: 限制在短时间窗口内的买入行为

📈 性能特性

⚡ 低延迟优势

  • 毫秒级响应: WebSocket实时数据流,延迟<100ms
  • 高效处理: 异步事件处理,不阻塞主线程
  • 智能缓存: 价格历史缓存,快速计算收益

🔄 自动化管理

  • 无人值守: 7x24小时自动运行
  • 自动清理: 定期清理过期数据,保持性能
  • 异常恢复: 网络断线自动重连,容错性强

📊 实时统计

// 获取实时统计
const stats = bot.getStats();
console.log(`
持仓数量: ${stats.totalPositions}
总投资: ${stats.totalInvested} SOL
总盈亏: ${stats.totalPnL} SOL
平均收益: ${stats.avgPnL.toFixed(2)}%
`);

⚠️ 注意事项

💡 使用建议

  1. 测试先行: 建议先在小金额下测试策略效果
  2. 参数调优: 根据市场情况调整连续买入阈值
  3. 风险意识: 设置合理的持仓上限和买入金额
  4. 网络稳定: 确保网络连接稳定,避免错过交易机会

🚨 风险提示

  • 加密货币交易具有高风险,可能导致本金损失
  • 机器人交易无法保证盈利,请理性投资
  • 建议设置合理的资金上限,控制整体风险
  • 定期监控机器人运行状态,及时处理异常

🔧 故障排除

常见问题

Q: 机器人无法连接到服务器

# 检查服务器状态
curl http://localhost:3000/health

# 检查WebSocket连接
wscat -c ws://127.0.0.1:9001

Q: 交易执行失败

  • 检查钱包余额是否充足
  • 验证滑点设置是否合理
  • 确认代理服务正常运行

Q: 未检测到买入机会

  • 降低 TOTAL_AMOUNT_THRESHOLD 阈值
  • 增加 TIME_WINDOW_MINUTES 时间窗口
  • 检查 WebSocket 连接是否正常

📚 API 文档

TradingBot 类

class TradingBot {
  constructor()                        // 创建机器人实例
  async start(): Promise<void>         // 启动机器人
  stop(): void                        // 停止机器人
  getPositions(): Map<string, Position> // 获取当前持仓
  getStats(): Stats                   // 获取统计信息
}

事件监听

bot.on('buy-success', (data) => {
  // 买入成功事件
});

bot.on('sell-success', (data) => {
  // 卖出成功事件
});

bot.on('error', (error) => {
  // 错误事件处理
});

License

MIT

About

Solana PumpSwap automated trading bot with consecutive buy pattern detection. Auto-executes follow trades with 15% take-profit and 10% stop-loss management.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published