Quando o sistema de negociação de IA Alpha Arena foi lançado, foi um grande sucesso. Os novatos acharam que era uma ótima oportunidade para começar a quantificar, os veteranos acharam que era simples, mas também queriam experimentar.
Mas com a chegada do mercado de ações, o público ficou muito quieto. Os amigos que antes compartilhavam os lucros todos os dias ficaram mais calmos, e provavelmente experimentaram algo chamado “perdas que nem a IA pode salvar”.
Depois de algum tempo, os problemas começaram a se revelar:
O problema mais grave é que o stop loss não é acionado a tempo. A estratégia da versão original só executa uma verificação a cada 3 minutos.
Seja uma moeda relativamente estável, como o BTC, ou uma variedade de moedas pequenas e altamente voláteis, o sistema usa o mesmo conjunto de parâmetros e não tem nenhum tipo de foco.
O sistema não aprende com o histórico de transações. Se você perder em uma moeda hoje, você vai usar a mesma estratégia para negociar essa moeda amanhã, e não vai se ajustar.
Os usuários só podem ver os sinais de compra e venda, mas não têm conhecimento sobre a lógica de julgamento da IA e não sabem como ajustar os sinais em caso de problemas.
Otimização de ideias: A versão original tinha toda a lógica em um gatilho de 3 minutos, incluindo análise de dados, geração de sinais, execução de transações e monitoramento de risco. Isso faz com que o controle de risco dependa totalmente do ciclo de estratégia principal e a resposta seja muito atrasada.
A solução é dividir o sistema em dois gatilhos independentes:
Código chave:
// 风控触发器的核心逻辑
function monitorPosition(coin) {
// 获取实时价格和持仓信息
const pos = exchange.GetPositions().find(p => p.Symbol.includes(coin));
const ticker = exchange.GetTicker();
const currentPrice = ticker.Last;
// 检查止盈止损条件
const exitPlan = _G(`exit_plan_${coin}_USDT.swap`);
if (exitPlan?.profit_target && exitPlan?.stop_loss) {
const shouldTP = isLong ? currentPrice >= exitPlan.profit_target : currentPrice <= exitPlan.profit_target;
const shouldSL = isLong ? currentPrice <= exitPlan.stop_loss : currentPrice >= exitPlan.stop_loss;
// 立即执行平仓
if (shouldTP || shouldSL) {
return closePosition(coin, pos, shouldTP ? "止盈" : "止损");
}
}
}
Com essa melhoria, o controle de risco foi reduzido de um máximo de 3 minutos de atraso para um máximo de 1 minuto, reduzindo significativamente a perda de pontos de deslizamento em um ambiente de alta volatilidade da moeda.
Otimização de ideias: A versão original era uma transação “amnesia” para cada moeda, sem nenhuma lembrança do desempenho histórico. A nova versão estabelece um sistema completo de análise do histórico de transações, permitindo que a IA aprenda e otimize a partir da experiência passada.
O projeto principal inclui:
Código chave:
// 历史表现驱动的风险调整
function calculateRiskAllocation(baseRisk, performance, confidence) {
let finalRisk = baseRisk;
// 基于历史表现调整
if (performance.totalTrades >= 10) {
if (performance.winRate > 70 && performance.profitLossRatio > 1.5) {
finalRisk *= 1.3; // 表现优秀,增加30%资金
} else if (performance.winRate < 40 || performance.profitLossRatio < 1.0) {
finalRisk *= 0.6; // 表现较差,减少40%资金
}
}
// 基于方向偏好调整
const historicalBias = calculateDirectionBias(performance);
if (goingWithBias) finalRisk *= 1.1;
else if (goingAgainstBias) finalRisk *= 0.8;
return Math.max(200, Math.min(1500, finalRisk));
}
Otimização de ideias: A versão original usava um stop loss fixo de 1 a 2%, o que era pouco eficaz em diferentes moedas de volatilidade. A nova versão introduziu o indicador ATR, que calcula a distância de stop loss de acordo com a dinâmica real da volatilidade do mercado.
Código chave:
// ATR动态止损计算
function calculateDynamicStop(entryPrice, isLong, marketData) {
const atr14 = marketData.longer_term_4hour.atr_14;
const currentPrice = marketData.current_price;
const atrRatio = atr14 / currentPrice;
// 动态调整止损距离
let stopDistance = Math.max(0.025, atrRatio * 2); // 最小2.5%
if (atrRatio > 0.05) stopDistance = Math.min(0.05, atrRatio * 2.5); // 高波动放宽
return isLong ? entryPrice * (1 - stopDistance) : entryPrice * (1 + stopDistance);
}
Otimização de ideias: A versão original só pode processar uma moeda, a nova versão suporta análise paralela de várias moedas, permitindo uma distribuição inteligente de fundos e gerenciamento de riscos. O sistema analisa todas as moedas ao mesmo tempo, priorizando e distribuindo riscos de acordo com o desempenho histórico e os sinais técnicos.
Código chave:
// 多币种决策处理
function processMultipleCoins(coinList, marketDataMap, performanceMap) {
const decisions = [];
coinList.forEach(coin => {
const performance = performanceMap[coin] || { totalTrades: 0 };
const technicalSignal = analyzeTechnicals(marketDataMap[coin]);
// 综合历史表现和技术分析
const decision = {
coin: coin,
signal: technicalSignal.signal,
confidence: technicalSignal.confidence,
risk_usd: calculateRiskAllocation(baseRisk, performance, technicalSignal.confidence),
historical_bias: performance.longWinProfit > performance.shortWinProfit * 1.5 ? "LONG" :
performance.shortWinProfit > performance.longWinProfit * 1.5 ? "SHORT" : "BALANCED",
justification: `技术面:${technicalSignal.reason};历史:${performance.winRate || 0}%胜率`
};
decisions.push(decision);
});
return decisions;
}
Otimização de ideias: A versão original do processo de decisão é completamente de caixa preta, a nova versão cria um painel multidimensional, incluindo uma tabela de análise de sinais de AI, monitoramento de posições em tempo real, estatísticas de desempenho histórico e indicadores de estratégia geral, para que todas as informações sejam exibidas de forma transparente.
Otimização de Stop Loss:
O que a História nos ensina:
Transparência na tomada de decisões:
Esta otimização resolve principalmente alguns dos problemas mais fundamentais da versão original: atraso de bloqueio, falta de capacidade de aprendizagem e falta de transparência nas decisões. Embora ainda não seja perfeito, pelo menos o sistema evoluiu de um simples executor de indicadores técnicos para um assistente de negociação que aprende e otimiza.
O que é mais importante é a validação de um conceito: encontrar problemas, analisá-los, resolvê-los. Em um mercado em rápida mudança, os sistemas que podem ser continuamente melhorados são os mais valiosos.