[TOC]

O mercado de criptomoedas apresenta uma história diferente a cada dia. Hoje o Bitcoin lidera os ganhos, amanhã o Ethereum assume a liderança e, depois de amanhã, até mesmo moedas obscuras como o ZEC podem apresentar valorização. Diversas moedas se alternam em altas e baixas, com o foco mudando tão rapidamente que chega a ser vertiginoso. Para as instituições, existem equipes profissionais monitorando o mercado 24 horas por dia, 7 dias por semana, e informações privilegiadas para se posicionarem com antecedência; mas para os investidores individuais, essa rápida rotação do mercado muitas vezes significa perder oportunidades ou comprar no pico e ficar preso.
As estratégias tradicionais de rotação são clássicas no setor financeiro — instituições as utilizam para rotação setorial e de ativos com bons resultados. No entanto, o problema é que a rotação tradicional exige uma perspectiva macro; é preciso avaliar quais setores irão subir e quando mudar de estratégia. Para investidores individuais, sem informações privilegiadas e com tempos de reação mais lentos, a estratégia se baseia basicamente na intuição, e a taxa de sucesso é previsivelmente baixa. Então, e se a IA fizesse isso? Ela pode monitorar indicadores técnicos, coletar notícias e analisar carteiras 24 horas por dia, 7 dias por semana, sem tomar decisões impulsivas baseadas em flutuações emocionais. Hoje, utilizarei o fluxo de trabalho da Plataforma Quantitativa Inventor para implementar um sistema de rotação com IA e compartilharei a lógica completa de implementação com vocês.

O conceito central do projeto deste sistema de rodas com inteligência artificial é:Deixe que os indicadores técnicos façam a triagem, que a análise de notícias faça a verificação e que a IA faça a seleção final.Todo o sistema está dividido em três módulos principais:
O sistema primeiro classifica cada criptomoeda de alta liquidez (ordenada pelo volume de negociação em 24 horas) usando um sistema de média móvel de múltiplos períodos. Este sistema de classificação compreende três dimensões:
padrão de alinhamento da média móvel(pontuação do arranjo: -4 a +4)
espaçamento de divergência da média móvel(gapScore)
mudanças na série temporal da média móvel(timeSeriesScore: -4 a +4)
Fórmula para o cálculo da pontuação final geral:
\[ \text{pontuação} = \text{espaçamento de difusão} \times \text{pontuação do padrão de arranjo} \times \text{pontuação de variação da série temporal} \]
A beleza desta fórmula reside em:A pontuação só será significativa quando os três indicadores estiverem em consonância simultaneamente.Se as médias móveis estiverem bem alinhadas, mas o espaçamento entre elas estiver diminuindo, isso indica uma tendência de enfraquecimento e a pontuação não será muito alta.
1. Projeto multicíclico
var s = exchange.GetRecords(processedSymbol, wheelPeriod / 4); // 短期
var ms = exchange.GetRecords(processedSymbol, wheelPeriod / 2); // 中短期
var ml = exchange.GetRecords(processedSymbol, wheelPeriod * 2); // 中长期
var ls = exchange.GetRecords(processedSymbol, wheelPeriod * 4); // 长期
Se wheelPeriod=60 minutos, os intervalos de tempo reais são: 15 minutos, 30 minutos, 120 minutos e 240 minutos, abrangendo tendências de curto, médio e longo prazo.
2. Lógica de pontuação para padrões de arranjo
if (bullCount == 3) {
arrangementScore = 4; // 完美多头排列
} else if (bearCount == 3) {
arrangementScore = -4; // 完美空头排列
} else if (bullCount == 2) {
// 连续的两个条件得分更高
if ((compare1 > 0 && compare2 > 0) || (compare2 > 0 && compare3 > 0)) {
arrangementScore = 3;
} else {
arrangementScore = 2;
}
}
A ideia aqui é que uma disposição contínua de médias móveis pontua melhor do que uma disposição dispersa, porque uma disposição contínua indica uma tendência mais clara.
3. Projeto não linear de pontuação abrangente
if (gapScore > 0) {
comprehensiveScore = gapScore * arrangementScore * timeSeriesScore;
} else if (gapScore < 0) {
comprehensiveScore = gapScore * Math.abs(arrangementScore) * Math.abs(timeSeriesScore);
}
Este projeto garante que:
O sistema filtrará automaticamente dois conjuntos de moedas:
Mas existe um elemento de design fundamental aqui:Se você já possui uma posição comprada em uma determinada criptomoeda, o sistema a adicionará ao grupo positivo, mesmo que ela não esteja entre as 5 principais.O mesmo se aplica a não ter posições. Isso permite que a IA monitore continuamente seus ativos e determine se você precisa acionar o stop loss ou reverter sua posição.
Os sinais técnicos por si só não bastam; também precisamos entender o mercado.Por queO processo funcionará da seguinte forma: o sistema recuperará automaticamente as 5 notícias mais recentes para cada criptomoeda (através da API do CryptoCompare), que podem incluir o progresso do projeto, atividades institucionais, notícias regulatórias, etc.
O papel da cobertura jornalística éVerificar a confiabilidade dos sinais técnicos:
É importante observar que a obtenção de notícias pode sofrer atrasos ou omissões (limitações da API, criptomoedas menos populares, etc.). No entanto, o princípio de funcionamento do sistema é:As notícias são complementares, não essenciais.Caso faltem notícias, a IA irá rotulá-las como “Notícias ausentes, julgamento puramente técnico” e, em seguida, tomará uma decisão com base em indicadores técnicos e participações.
Essa é a essência de todo o sistema. A IA não é a principal executora da estratégia, mas…Consultor de supervisão—Fornecer uma segunda camada de avaliação em momentos críticos para identificar riscos que os sinais técnicos não conseguem captar.
O sistema fornecerá à IA todas as seguintes informações:
A IA precisa lidar com três cenários principais:
Cenário 1: Sem posições em aberto → Determine se deve abrir uma posição
| intensidade do sinal técnico | Cobertura jornalística | Riscos | tomada de decisão por IA |
|---|---|---|---|
| Forte (pontuação absoluta > 0,05) | Apoio/Neutro/Sem Notícias | nenhum | Aberto longo/aberto curto |
| poderoso | contradição | nenhum | Aguarde e verá. |
| Fraco (,02) | Qualquer um. | nenhum | Aguarde e verá. |
Cenário 2: Mantendo posições na mesma direção → Determine se deve continuar mantendo a posição.
Aqui, “na mesma direção” significa que a direção da posição é consistente com o sinal técnico (por exemplo, manter uma posição comprada e o indicador técnico mostrar uma tendência de alta). O sistema marcará especificamente “manter uma posição comprada, mas a força do indicador não está entre as melhores”, o que significa que, embora essa posição comprada ainda esteja na lista de posições de alta, ela não está mais entre as 5 melhores e a tendência está enfraquecendo.
| status do sinal | Cobertura jornalística | Lucro e prejuízo | tomada de decisão por IA |
|---|---|---|---|
| Nos primeiros 5/últimos 5 | Estável/Com suporte/Sem novidades | Qualquer um. | segurar |
| Nos primeiros 5/últimos 5 | Fatores de reviravolta/negativos | lucro | Posições equilibradas |
| Não está entre os melhores. | Estável/Sem notícias | lucro | Observando (mantendo) |
| Não está entre os melhores. | Estável/Sem notícias | Perda | Feche a posição (stop loss) |
| Não está entre os melhores. | Fatores de reviravolta/negativos | Qualquer um. | Posições equilibradas |
Cenário 3: Inverter posição → Determinar se deve fechar/inverter a posição
Este é um supervisor de IA.Cenários de valores essenciaisUma posição reversa refere-se a uma posição mantida na direção oposta a um sinal técnico (por exemplo, manter uma posição comprada mesmo que os indicadores técnicos tenham se tornado baixistas).
| valor absoluto da pontuação | Cobertura jornalística | tomada de decisão por IA |
|---|---|---|
| Forte (>0,05) | Confirmar reversão | Posição inversa (abrir uma posição inversa após fechar uma posição anterior) |
| Forte (>0,05) | Neutro/Sem notícias | dorso da mão |
| Forte (>0,05) | contradição | Posições de fechamento (abordagem conservadora quando há conflito entre análises técnicas e notícias) |
| Médio (0,02-0,05) | Confirmar reversão | dorso da mão |
| Médio (0,02-0,05) | Neutro/Sem notícias | Posição próxima (sinal não suficientemente forte) |
| Médio (0,02-0,05) | contradição | Posições equilibradas |
| Fraco (,02) | Qualquer um. | Aguarde (observe, sinal muito fraco) |
Condições rigorosas para operação de backhand(Condições simultâneas devem ser atendidas):
Se a direção estiver errada, corrija-a. Sinal forte + reversão confirmada = reverta a posição decisivamente; sinal forte + notícias contraditórias = feche a posição de forma conservadora; sinal médio = reverta a posição somente quando as notícias confirmarem a reversão, caso contrário, feche a posição; sinal fraco = continue observando e não se precipite em operar.
O formato da decisão gerada pela IA é o seguinte:
[
{
"symbol": "BTCUSDT",
"currentPosition": "无持仓",
"score": 0.0856,
"newsAnalysis": "机构增持,生态扩张",
"overallJudgment": "技术多头强劲,新闻面支持,开多",
"decision": "开多"
},
{
"symbol": "ETHUSDT",
"currentPosition": "持有空仓",
"score": 0.0623,
"newsAnalysis": "质押增加,资金流入",
"overallJudgment": "反向持仓亏损,技术已转多,止损",
"decision": "平仓"
}
]
Após a IA tomar uma decisão, o sistema executa automaticamente a transação. Isso utiliza…Transações de valor fixomecanismo:
Supondo que você defina cada transação em 100 USDT, independentemente de o preço da moeda ser 100 USDT ou 10.000 USDT, o sistema calculará quantos contratos abrir com base em 100 USDT. A fórmula de cálculo é:
合约张数 = 金额(U) / 当前价格 / 合约面值(CtVal)
Por exemplo:
O sistema irá processá-lo automaticamente:
Existem duas vantagens em fazer isso:
Após a execução de uma transação, o controle de risco ainda é necessário. Este sistema utiliza…Parada traseira independenteÉ um sistema independente da estratégia principal que realiza verificações de posição em alta frequência, uma vez por segundo.
Um stop móvel não é simplesmente um stop fixo, mas sim:Proteja os ganhos não realizados e deixe os lucros correrem.。
Fluxo de trabalho:
Implementação de código:
function monitorPositionWithTrailingStop(coin) {
const pos = getPosition(coin); // 获取持仓
if (!pos) return;
const currentPnl = calculatePnl(pos); // 当前盈亏百分比
// 获取历史最高盈利
const symbolKey = `${coin}_USDT.swap_maxprofit`;
let maxProfit = _G(symbolKey);
// 如果当前盈利更高,更新最高盈利
if (maxProfit === null || currentPnl > maxProfit) {
maxProfit = currentPnl;
_G(symbolKey, maxProfit);
Log(`📈 ${coin} 更新最高盈利:${(maxProfit * 100).toFixed(2)}%`);
}
// 计算回撤
const drawdown = maxProfit - currentPnl;
// 触发止损
if (drawdown >= CONFIG.TRAILING_STOP_PERCENT) {
closePosition(coin, pos, "移动止损");
_G(symbolKey, null); // 清除记录
}
}
Devido à alta volatilidade do mercado de criptomoedas, a estratégia principal pode ser executada apenas uma vez a cada 4 horas (para selecionar novas criptomoedas e determinar as posições de abertura e fechamento), mas é necessário inserir ordens de stop-loss.Proteção em tempo realSe você esperar 4 horas para verificar, os lucros podem já ter sido perdidos. Portanto, o sistema de stop-loss é um fluxo de trabalho independente, executado a cada 15 segundos em paralelo com a estratégia principal.
A estratégia é executada automaticamente, mas você precisa saber o que ela está fazendo. O sistema foi projetado com três tabelas de monitoramento:

Você pode visualizar o lucro e o prejuízo totais, bem como o status do sistema, rapidamente.

Esta tabela informa:

Esta tabela mostra:
Essas três tabelas permitem que você veja a qualquer momento o que o sistema está fazendo, por que está fazendo isso e quais são os resultados.
Nenhuma estratégia é perfeita, e este sistema também tem limitações óbvias:
Embora o recurso de modelos grandes seja muito poderoso e funcione bem na maioria das vezes,Erros de julgamento podem ocorrer em condições extremas de mercado.。
Por exemplo:
Afinal, a IA aprende com dados históricos e pode ficar confusa quando confrontada com situações sem precedentes (eventos do cisne negro).
O sistema captura dados de APIs de notícias públicas. Pode ser que não capture os primeiros minutos após a publicação de uma notícia importante e, quando os dados forem capturados, o preço já pode ter mudado.
Por exemplo:
Este é um problema comum em todos os sistemas automatizados: informações privilegiadas sempre chegam mais rápido do que informações disponíveis publicamente.
As médias móveis e as tendências são todas baseadas emPreços históricosOs cálculos sempre resultam em uma resposta lenta a eventos inesperados.
Por exemplo:
Portanto, este sistema é mais adequado.Siga a tendênciaNão é adequadoAproveitando a oportunidadeSua vantagem é que pode seguir uma tendência de forma constante depois que ela se forma, mas não pode comprar na baixa nem vender na alta.
Embora as transações de valor fixo ofereçam um risco administrável, elas também significam:
Se sua conta aumentar de 10.000 USDT para 50.000 USDT, teoricamente o valor da transação deveria aumentar, mas o sistema não ajusta isso automaticamente. Você precisa modificar manualmente.$vars.Amountvariável.
coinNumberNúmero de moedas altamente circulantes selecionadaswheelPeriodparâmetros do período de cálculo da média móvelmeanPeriodPeríodo da média móvelAmountValor por transaçãolossPercentTaxa de trailing stopAinda existem muitas áreas em que este sistema pode ser melhorado:
O valor atual é fixo e pode ser alterado para:
Em vez de depender de um único modelo grande, use de 3 a 5 modelos para tomar decisões simultaneamente:
As transações só são executadas quando a maioria dos modelos concorda, reduzindo o risco de erro de julgamento por parte de um único modelo.
Além de preços e notícias, você também pode adicionar:
Esses dados frequentemente refletem mudanças de tendência antes dos indicadores técnicos.
O trailing stop atual é uma porcentagem fixa, que pode ser otimizada da seguinte forma:
Registre o lucro e o prejuízo de cada transação e analise-os.
Utilize dados históricos para otimizar parâmetros.
Isso conclui a explicação completa da lógica por trás deste sistema de rotação baseado em IA. Da triagem de tecnologia à verificação de notícias, da tomada de decisão por IA à execução de negociações, das ordens de stop-loss dinâmico ao monitoramento visual, cada etapa possui sua própria filosofia de design.
Mas devo enfatizar novamente:Qualquer estratégia é apenas uma ferramenta; o mercado é complexo e contém muitos fatores imprevisíveis.。
Este sistema pode fazer o seguinte:
Este sistema não pode fazer o seguinte:
O que precisamos fazer é usar bem essa ferramenta, combinando-a com nossa própria tolerância ao risco, gestão de capital e controle mental para formar um sistema de negociação completo. Por fim, o código-fonte completo deste sistema foi disponibilizado gratuitamente na plataforma quantitativa do criador. Se você tiver alguma dúvida ou sugestão de melhoria, sinta-se à vontade para discuti-las na comunidade. Vamos explorar juntos as possibilidades da negociação quantitativa e encontrar nosso próprio ritmo neste mercado volátil.
Alerta de riscoEste artigo tem fins meramente informativos e não constitui aconselhamento de investimento. A negociação de criptomoedas envolve riscos significativos; por favor, tome decisões ponderadas e invista apenas dentro das suas possibilidades.
O código que acompanha este artigo é de código aberto. Acesse a Plataforma Quantitativa do Inventor para o fluxo de trabalho completo: https://www.fmz.com/strategy/524103