feat(cryptotail): 尾盘策略多市场与币安按需订阅
- 新增 ETH/SOL/XRP 市场选项(5m/15m),Binance 多币种 K 线支持 - 币安 K 线按策略按周期订阅:仅在有启用策略时建连,只订阅用到的市场+周期(如仅 btc 5m 只建 btc 5m) - BinanceKlineAutoSpreadService 支持完整 slug(如 eth-updown-5m)解析 - 尾盘服务 PreDestroy 与内存/缓存清理(OrderbookWs、Notification、Settlement、Execution) - 健康检查:无策略时币安 WS 显示「未订阅」;前端币安提醒仅在有启用策略时展示 - 前端:up/down 标签去掉箭头图标 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -26,7 +26,7 @@ import {
|
||||
} from 'antd'
|
||||
import type { Dayjs } from 'dayjs'
|
||||
import dayjs from 'dayjs'
|
||||
import { PlusOutlined, EditOutlined, UnorderedListOutlined, InfoCircleOutlined, WarningOutlined, CalendarOutlined, ArrowUpOutlined, ArrowDownOutlined, FileTextOutlined } from '@ant-design/icons'
|
||||
import { PlusOutlined, EditOutlined, UnorderedListOutlined, InfoCircleOutlined, WarningOutlined, CalendarOutlined, FileTextOutlined } from '@ant-design/icons'
|
||||
import { useTranslation } from 'react-i18next'
|
||||
import { useMediaQuery } from 'react-responsive'
|
||||
import { apiService } from '../services/api'
|
||||
@@ -555,7 +555,7 @@ const CryptoTailStrategyList: React.FC = () => {
|
||||
{t('cryptoTailStrategy.list.configGuide')}
|
||||
</Button>
|
||||
</div>
|
||||
{binanceUnhealthy.length > 0 && (
|
||||
{binanceUnhealthy.length > 0 && list.some((s) => s.enabled) && (
|
||||
<Alert
|
||||
type="error"
|
||||
showIcon
|
||||
@@ -960,9 +960,9 @@ const CryptoTailStrategyList: React.FC = () => {
|
||||
align: 'center',
|
||||
render: (i: number) =>
|
||||
i === 0 ? (
|
||||
<Tag icon={<ArrowUpOutlined />} color="green">{t('cryptoTailStrategy.triggerRecords.up')}</Tag>
|
||||
<Tag color="green">{t('cryptoTailStrategy.triggerRecords.up')}</Tag>
|
||||
) : (
|
||||
<Tag icon={<ArrowDownOutlined />} color="volcano">{t('cryptoTailStrategy.triggerRecords.down')}</Tag>
|
||||
<Tag color="volcano">{t('cryptoTailStrategy.triggerRecords.down')}</Tag>
|
||||
)
|
||||
},
|
||||
{
|
||||
@@ -1035,9 +1035,9 @@ const CryptoTailStrategyList: React.FC = () => {
|
||||
align: 'center',
|
||||
render: (i: number) =>
|
||||
i === 0 ? (
|
||||
<Tag icon={<ArrowUpOutlined />} color="green">{t('cryptoTailStrategy.triggerRecords.up')}</Tag>
|
||||
<Tag color="green">{t('cryptoTailStrategy.triggerRecords.up')}</Tag>
|
||||
) : (
|
||||
<Tag icon={<ArrowDownOutlined />} color="volcano">{t('cryptoTailStrategy.triggerRecords.down')}</Tag>
|
||||
<Tag color="volcano">{t('cryptoTailStrategy.triggerRecords.down')}</Tag>
|
||||
)
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user