周日开仓限制

This commit is contained in:
薇薇安 2026-03-01 17:40:39 +08:00
parent 1e55365d43
commit e2c37e6d62
2 changed files with 23 additions and 5 deletions

View File

@ -431,7 +431,12 @@ async def get_global_configs(
for k, meta in FIXED_RISK_CONFIG_DEFAULTS.items():
if k not in result:
result[k] = meta
# 周日/晚间控制(周六 21 点~周日 06 点等),确保全局配置页可见可改
for k, meta in RISK_KNOBS_DEFAULTS.items():
if k not in result:
result[k] = meta
# 添加更多核心策略配置的默认值(确保前端能显示所有重要配置)
ADDITIONAL_STRATEGY_DEFAULTS = {
"BETA_FILTER_ENABLED": {

View File

@ -40,6 +40,12 @@ const KEY_LABELS = {
SYNC_RECOVER_MISSING_POSITIONS: '同步时补建缺失持仓',
SYNC_RECOVER_ONLY_WHEN_HAS_SLTP: '仅当有止损/止盈单时补建',
SYSTEM_ORDER_ID_PREFIX: '系统单 clientOrderId 前缀',
SUNDAY_MAX_OPENS: '周日开仓上限',
SUNDAY_MIN_SIGNAL_STRENGTH: '周日最低信号强度',
NIGHT_HOURS_NO_OPEN_ENABLED: '晚间禁止开新仓',
NIGHT_HOURS_START: '禁止开仓开始(时)',
NIGHT_HOURS_END: '禁止开仓结束(时)',
NIGHT_HOURS_ONLY_SUNDAY: '仅周六21点周日06点',
SCAN_STAGGER_BY_ACCOUNT: '多账号错峰扫描',
SCAN_STAGGER_RANDOM: '错峰随机模式',
SCAN_STAGGER_MIN_SEC: '错峰最小延迟(秒)',
@ -614,6 +620,13 @@ const GlobalConfig = () => {
SCAN_STAGGER_MIN_SEC: { value: 10, type: 'number', category: 'scan', description: '随机错峰模式下的最小延迟秒数。例如 10 表示至少延迟 10 秒。' },
SCAN_STAGGER_MAX_SEC: { value: 120, type: 'number', category: 'scan', description: '随机错峰模式下的最大延迟秒数。例如 120 表示至多延迟 120 秒。' },
SCAN_STAGGER_SEC: { value: 60, type: 'number', category: 'scan', description: '固定错峰模式下每个账号之间的步长(秒)。延迟 = (account_id-1)*SCAN_STAGGER_SEC。' },
// / 21 06
SUNDAY_MAX_OPENS: { value: 3, type: 'number', category: 'risk', description: '周日最多开仓次数0=不限制2-3 可降低周日亏损。' },
SUNDAY_MIN_SIGNAL_STRENGTH: { value: 8, type: 'number', category: 'risk', description: '周日最低信号强度(0-10),仅当>=此值才开仓0=不提高。' },
NIGHT_HOURS_NO_OPEN_ENABLED: { value: true, type: 'boolean', category: 'risk', description: '晚间/凌晨禁止开新仓。开启后 21:0006:00北京不开新仓。' },
NIGHT_HOURS_START: { value: 21, type: 'number', category: 'risk', description: '禁止开仓开始小时(北京),含。从周六晚 21 点开始控制。' },
NIGHT_HOURS_END: { value: 6, type: 'number', category: 'risk', description: '禁止开仓结束小时(北京),不含。' },
NIGHT_HOURS_ONLY_SUNDAY: { value: true, type: 'boolean', category: 'risk', description: 'True=仅周六21:00周日06:00禁止False=每天21:0006:00禁止。' },
}
const loadConfigs = async () => {
@ -1922,11 +1935,11 @@ const GlobalConfig = () => {
//
const filteredConfigs = Object.entries(configs).filter(([key, config]) => {
// 1. API Key
// 1. API Key/
if (!config || typeof config !== 'object') return false
const RISK_KNOBS_KEYS = ['MIN_MARGIN_USDT', 'MIN_POSITION_PERCENT', 'MAX_POSITION_PERCENT',
'MAX_TOTAL_POSITION_PERCENT', 'AUTO_TRADE_ENABLED', 'MAX_OPEN_POSITIONS', 'MAX_DAILY_ENTRIES', 'SUNDAY_MAX_OPENS', 'SUNDAY_MIN_SIGNAL_STRENGTH', 'NIGHT_HOURS_NO_OPEN_ENABLED', 'NIGHT_HOURS_START', 'NIGHT_HOURS_END', 'NIGHT_HOURS_ONLY_SUNDAY']
if (RISK_KNOBS_KEYS.includes(key)) return false
const HIDDEN_RISK_KNOBS = ['MIN_MARGIN_USDT', 'MIN_POSITION_PERCENT', 'MAX_POSITION_PERCENT',
'MAX_TOTAL_POSITION_PERCENT', 'AUTO_TRADE_ENABLED', 'MAX_OPEN_POSITIONS', 'MAX_DAILY_ENTRIES']
if (HIDDEN_RISK_KNOBS.includes(key)) return false
if (key === 'BINANCE_API_KEY' || key === 'BINANCE_API_SECRET' || key === 'USE_TESTNET') return false
// 2. Tab