12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- #!/usr/bin/env tsx
- import { PacificaAPIService } from '../src/services/PacificaAPIService';
- import { readFileSync } from 'fs';
- interface AccountConfig {
- name: string;
- privateKey: string;
- publicKey: string;
- }
- async function checkPositions() {
- console.log('📊 检查账户状态和持仓...\n');
- // 加载账户配置
- const accountsConfig: AccountConfig[] = JSON.parse(
- readFileSync('./config/accounts.json', 'utf-8')
- );
- for (const accountConfig of accountsConfig) {
- console.log(`\n${'='.repeat(60)}`);
- console.log(`📋 账户: ${accountConfig.name}`);
- console.log(`🔑 公钥: ${accountConfig.publicKey}`);
- console.log(`${'='.repeat(60)}\n`);
- const apiService = new PacificaAPIService(accountConfig.privateKey);
- try {
- // 获取账户信息
- const accountInfo = await apiService.getAccountInfo();
- console.log('💰 账户信息:');
- console.log(` 余额 (Balance): ${accountInfo.balance} USDC`);
- console.log(` 账户权益 (Equity): ${accountInfo.account_equity} USDC`);
- console.log(` 已使用保证金: ${accountInfo.total_margin_used} USDC`);
- console.log(` 可用余额: ${accountInfo.available_to_spend} USDC`);
- console.log(` 待处理余额: ${accountInfo.pending_balance} USDC`);
- console.log(` 可提现余额: ${accountInfo.available_to_withdraw} USDC`);
- console.log(` 手续费等级: ${accountInfo.fee_level}`);
- // 计算保证金使用率
- const equity = parseFloat(accountInfo.account_equity);
- const marginUsed = parseFloat(accountInfo.total_margin_used);
- const marginUsagePercent = equity > 0 ? (marginUsed / equity * 100).toFixed(2) : 'N/A';
- console.log(` 保证金使用率: ${marginUsagePercent}%`);
- // 获取持仓信息
- const positions = await apiService.getPositions();
- console.log(`\n📈 持仓数量: ${positions.length}`);
- if (positions.length > 0) {
- console.log('\n持仓详情:');
- for (const pos of positions) {
- const pnl = parseFloat(pos.funding);
- const pnlSign = pnl >= 0 ? '+' : '';
- console.log(`\n ${pos.symbol}:`);
- console.log(` 方向: ${pos.side === 'bid' ? '多单 (Long)' : '空单 (Short)'}`);
- console.log(` 数量: ${pos.amount}`);
- console.log(` 入场价: ${pos.entry_price}`);
- console.log(` 保证金: ${pos.margin} USDC`);
- console.log(` 未实现盈亏: ${pnlSign}${pnl} USDC`);
- console.log(` 隔离保证金: ${pos.isolated ? '是' : '否'}`);
- }
- }
- // 获取开放订单
- const openOrders = await apiService.getOpenOrders();
- console.log(`\n📋 开放订单数量: ${openOrders.length}`);
- if (openOrders.length > 0) {
- console.log('\n开放订单详情:');
- for (const order of openOrders) {
- console.log(`\n 订单 #${order.order_id}:`);
- console.log(` 交易对: ${order.symbol}`);
- console.log(` 方向: ${order.side === 'bid' ? '买入' : '卖出'}`);
- console.log(` 类型: ${order.order_type}`);
- console.log(` 数量: ${order.amount}`);
- console.log(` 价格: ${order.initial_price || order.average_filled_price}`);
- console.log(` 状态: ${order.order_status}`);
- console.log(` 已成交: ${order.filled_amount}`);
- console.log(` 只减仓: ${order.reduce_only ? '是' : '否'}`);
- }
- }
- } catch (error) {
- console.error(`❌ 获取账户信息失败:`, error instanceof Error ? error.message : error);
- }
- // 延迟避免限流
- await new Promise(resolve => setTimeout(resolve, 2000));
- }
- console.log(`\n${'='.repeat(60)}`);
- console.log('✅ 检查完成');
- console.log(`${'='.repeat(60)}\n`);
- }
- checkPositions().catch(console.error);
|