双向盈利挂单策略是一个智能化的刷量交易算法,通过同时在买卖两边挂出盈利订单,实现低成本、高效率的交易刷量,同时确保每笔交易都有盈利潜力。
BidirectionalProfitMakingStrategy (核心策略)
↓
SuccessRateMonitor (成功率监控)
↓
PacificaProxyClient (交易执行)
graph TD
A[市场数据获取] --> B[策略决策]
B --> C[双向挂单]
C --> D[订单监控]
D --> E{订单状态}
E -->|成交| F[盈利记录]
E -->|超时| G[撤单重试]
E -->|取消| H[统计更新]
F --> I[成功率分析]
G --> I
H --> I
# 复制环境变量模板
cp .env.example .env
# 编辑配置文件
nano .env
# Pacifica账户配置 (至少需要2个账户)
PACIFICA_ACCOUNT_1=your_account_1_address
PACIFICA_PRIVATE_KEY_1=your_private_key_1
PACIFICA_ACCOUNT_2=your_account_2_address
PACIFICA_PRIVATE_KEY_2=your_private_key_2
# 代理配置 (必需)
PROXY_ENABLED=true
PROXY_HOST=geo.iproyal.com
PROXY_PORT=12321
PROXY_USERNAME=your_username
PROXY_SESSION_PREFIX=your_session_prefix
PROXY_SESSION_SUFFIX=your_session_suffix
# 双向策略配置 (可选)
BIDIRECTIONAL_ENABLED=true
PROFIT_MARGIN=0.002 # 0.2% 盈利margin
ORDER_TIMEOUT=45 # 45秒超时
MAX_ACTIVE_ORDERS=6 # 最大活跃订单数
ORDER_AMOUNT=0.0001 # 单笔订单金额 (BTC)
MIN_PROFIT_AMOUNT=0.05 # 最小盈利金额 (USDT)
# 运行演示 (推荐)
npx tsx src/examples/bidirectional_profit_trading_demo.ts
# 或集成到主程序
npx tsx src/main-modular.ts
| 参数 | 默认值 | 说明 | 推荐范围 |
|---|---|---|---|
profitMargin |
0.002 | 盈利margin (0.2%) | 0.001-0.005 |
orderTimeout |
45s | 挂单超时时间 | 30-120s |
maxActiveOrders |
6 | 最大活跃订单数 | 4-12 |
orderAmount |
0.0001 | 单笔金额 (BTC) | 0.0001-0.001 |
spreadThreshold |
0.001 | 最小价差阈值 | 0.0005-0.002 |
volatilityLimit |
0.04 | 波动率限制 | 0.02-0.08 |
minProfitAmount |
0.05 | 最小盈利 (USDT) | 0.01-0.20 |
// 自定义策略配置
const customConfig = {
// 基础配置
enabled: true,
profitMargin: 0.0025, // 更高的盈利要求
orderTimeout: 60, // 更长的等待时间
maxActiveOrders: 8, // 更多并发订单
// 风险控制
spreadThreshold: 0.0015, // 更严格的价差要求
volatilityLimit: 0.03, // 更低的波动率限制
minProfitAmount: 0.10, // 更高的最小盈利
// 高级策略
adaptiveMargin: true, // 自适应margin调整
marketMaking: true, // 深度做市模式
riskManagement: {
maxDrawdown: 0.05, // 最大回撤5%
stopLoss: 0.10, // 止损10%
positionLimit: 0.01, // 仓位限制1%
}
}
成功率 (Success Rate)
盈利率 (Profit Rate)
执行效率 (Execution Efficiency)
平均盈利 (Average Profit)
╔════════════════════════════════════════════════════════════════╗
║ 📊 双向盈利挂单策略监控面板 ║
╚════════════════════════════════════════════════════════════════╝
📈 基础统计
─────────────────────────────────────────────────────────────────
🎯 总订单数: 156
✅ 成交订单: 128 (82.1%)
❌ 取消订单: 18
⏰ 超时订单: 10
🔄 活跃订单: 4
💰 盈利统计
─────────────────────────────────────────────────────────────────
💵 总盈利: $12.45
📊 盈利率: 85.2%
⏱️ 平均成交时间: 23.4秒
🕐 小时盈利: $2.10
📅 日盈利: $24.80
📈 ROI: 3.2%
🔄 活跃订单详情
─────────────────────────────────────────────────────────────────
1. BID 0.0001 BTC @$99,850.00 | 剩余: 25s | 预期: +$0.20
2. ASK 0.0001 BTC @$100,150.00 | 剩余: 31s | 预期: +$0.20
3. BID 0.0001 BTC @$99,825.00 | 剩余: 12s | 预期: +$0.25
4. ASK 0.0001 BTC @$100,175.00 | 剩余: 18s | 预期: +$0.25
// src/modules/trading/TradingEngine.ts
import { BidirectionalProfitMakingStrategy } from './BidirectionalProfitMakingStrategy.js'
export class TradingEngine implements TradingService {
private bidirectionalStrategy?: BidirectionalProfitMakingStrategy
async initialize(): Promise<void> {
// 现有初始化代码...
// 添加双向策略
if (process.env.BIDIRECTIONAL_ENABLED === 'true') {
this.initializeBidirectionalStrategy()
}
}
private initializeBidirectionalStrategy(): void {
const config = {
profitMargin: parseFloat(process.env.PROFIT_MARGIN || '0.002'),
orderTimeout: parseInt(process.env.ORDER_TIMEOUT || '45'),
maxActiveOrders: parseInt(process.env.MAX_ACTIVE_ORDERS || '6'),
orderAmount: parseFloat(process.env.ORDER_AMOUNT || '0.0001'),
minProfitAmount: parseFloat(process.env.MIN_PROFIT_AMOUNT || '0.05'),
}
this.bidirectionalStrategy = new BidirectionalProfitMakingStrategy(
this.getClientMap(),
config
)
this.bidirectionalStrategy.start()
}
}
// src/modules/dashboard/DashboardService.ts
import { SuccessRateMonitor } from '../trading/SuccessRateMonitor.js'
export class DashboardService implements TradingService {
private successRateMonitor?: SuccessRateMonitor
private updateDashboard(): void {
// 现有仪表板代码...
// 添加双向策略统计
if (this.successRateMonitor) {
const metrics = this.successRateMonitor.getKeyMetrics()
this.displayBidirectionalStats(metrics)
}
}
private displayBidirectionalStats(metrics: any): void {
console.log('🎯 双向挂单策略')
console.log('────────────────────────────────────────────────────────────────')
console.log(`📊 成功率: ${(metrics.successRate * 100).toFixed(1)}%`)
console.log(`💰 盈利率: ${(metrics.profitRate * 100).toFixed(1)}%`)
console.log(`💵 总盈利: $${metrics.totalProfit.toFixed(2)}`)
console.log(`🔄 活跃订单: ${metrics.activeOrders}`)
console.log()
}
}
# 策略功能测试
yarn test:bidirectional
# 成功率监控测试
yarn test:success-rate
# 完整集成测试
yarn test:integration:bidirectional
# 启动双向策略演示
npx tsx src/examples/bidirectional_profit_trading_demo.ts
# 启动主程序 (包含双向策略)
BIDIRECTIONAL_ENABLED=true npx tsx src/main-modular.ts
# 查看实时统计
yarn trading:bidirectional:stats
# 查看成功率报告
yarn trading:success-rate
# 导出历史数据
yarn trading:export-history
# 生成性能报告
yarn trading:performance-report
// 自动告警配置
const alertConfig = {
successRate: {
warning: 0.7, // 成功率<70%时警告
critical: 0.5, // 成功率<50%时紧急
},
profitRate: {
warning: 0.6, // 盈利率<60%时警告
critical: 0.4, // 盈利率<40%时紧急
},
activeOrders: {
warning: 10, // 活跃订单>10时警告
critical: 15, // 活跃订单>15时紧急
}
}
# 紧急停止所有策略
yarn emergency:stop
# 取消所有活跃订单
yarn emergency:cancel-orders
# 生成紧急报告
yarn emergency:report
PROFIT_MARGIN=0.001 # 降低盈利要求
ORDER_TIMEOUT=90 # 增加等待时间
SPREAD_THRESHOLD=0.002 # 提高价差要求
VOLATILITY_LIMIT=0.02 # 降低波动率限制
PROFIT_MARGIN=0.005 # 提高盈利要求
ORDER_TIMEOUT=30 # 减少等待时间
MAX_ACTIVE_ORDERS=12 # 增加并发订单
MIN_PROFIT_AMOUNT=0.20 # 提高最小盈利
PROFIT_MARGIN=0.002 # 0.2% 适中盈利
ORDER_TIMEOUT=45 # 45秒适中等待
MAX_ACTIVE_ORDERS=6 # 6个适中并发
SPREAD_THRESHOLD=0.001 # 0.1% 适中价差
// 性能指标跟踪
interface PerformanceMetrics {
orderLatency: number // 订单延迟
fillRate: number // 成交率
profitMargin: number // 实际利润率
riskAdjustedReturn: number // 风险调整收益
sharpeRatio: number // 夏普比率
maxDrawdown: number // 最大回撤
}
可能原因:
解决方案:
# 降低盈利要求
PROFIT_MARGIN=0.001
# 增加超时时间
ORDER_TIMEOUT=90
# 降低波动率限制
VOLATILITY_LIMIT=0.02
可能原因:
解决方案:
# 提高最小盈利
MIN_PROFIT_AMOUNT=0.10
# 优化价格策略
SPREAD_THRESHOLD=0.0015
可能原因:
解决方案:
# 减少活跃订单
MAX_ACTIVE_ORDERS=4
# 缩短超时时间
ORDER_TIMEOUT=30
# 查看策略日志
tail -f logs/bidirectional-strategy.log
# 过滤错误信息
grep "ERROR" logs/bidirectional-strategy.log
# 分析成功率趋势
grep "成功率" logs/bidirectional-strategy.log | tail -20
📊 双向盈利策略日报 - 2025-09-27
═══════════════════════════════════════════
📈 基础指标:
• 总订单数: 345
• 成交率: 82.3%
• 盈利率: 85.7%
• 执行效率: 94.2%
💰 财务指标:
• 总盈利: $28.45
• 平均每单: $0.085
• 手续费节约: $12.30 (43.2%)
• ROI: 4.2%
⏱️ 性能指标:
• 平均成交时间: 31.2s
• 最快成交: 8.5s
• 最慢成交: 89.2s
• 超时率: 5.8%
🎯 建议:
• 策略表现优秀,建议保持当前参数
• 可考虑小幅提高盈利margin至0.0025
📊 双向盈利策略周报 - Week 39, 2025
═══════════════════════════════════════════
📈 趋势分析:
• 成功率趋势: 78.2% → 82.3% (↑4.1%)
• 盈利率趋势: 83.1% → 85.7% (↑2.6%)
• 日均盈利: $25.30 → $28.45 (↑12.5%)
🏆 最佳表现日:
• 日期: 2025-09-25
• 成交率: 89.4%
• 日盈利: $34.20
⚠️ 风险事件:
• 2025-09-23: 成功率降至62.1% (高波动期)
• 处理: 自动降低活跃度,快速恢复
🔧 参数优化记录:
• 2025-09-24: profitMargin 0.002→0.0022
• 2025-09-26: orderTimeout 45s→50s
• 效果: 成功率提升3.2%
TRADING_STRATEGY_IMPROVEMENT.mddocs/PACIFICA_API_REFERENCE.mdSYSTEM_STATUS_UPDATE.mdlogs/bidirectional-strategy.loglogs/success-rate.loglogs/error.log.envsrc/config/tradingStrategy.tssrc/config/riskManagement.ts🎯 开始使用:
npx tsx src/examples/bidirectional_profit_trading_demo.ts
📊 实时监控: 系统将自动显示详细的成功率统计和盈利报告