O software de negociação automatizada de criptomoedas deve ser especificado por comportamento observável. Um requisito como executar eficientemente parece útil mas não diz a um revisor o que o programa tem de fazer quando uma cotação expira, os fundos já estão reservados ou desaparece a resposta de um envio. Um requisito testável nomeia a entrada, a transição permitida e as provas que estabelecem o resultado.

Este guia desenvolve um teste de aceitação de automatização que considera custos usando uma conta fictícia à vista. Os números são inventados para tornar a contabilidade reprodutível. Não representam um preçário atual nem um rendimento esperado. O objetivo é determinar se o software obedece às regras declaradas e preserva o estado da conta. Passar esse teste estabelece comportamento operacional, não que a estratégia de negociação é lucrativa.

Requisitos de software de negociação automatizada de criptomoedas começam por invariantes

Uma invariante é uma condição que deve permanecer verdadeira em eventos comuns e falhas. Um exemplo útil é o total de caixa comprometida não exceder os recursos autorizados disponíveis. Outro é a mesma intenção duradoura não criar uma ordem adicional só porque um evento é entregue duas vezes. Estas afirmações são mais fortes do que um conjunto de capturas de ecrã de percursos bem-sucedidos porque se aplicam em todo o processo.

Escreva invariantes em linguagem que um revisor possa inspecionar. O sistema tem de identificar a conta antes de reservar capital. Um resultado desconhecido de ordem tem de manter a reserva. Uma configuração nova não pode reescrever a justificação associada a uma intenção anterior. Cada afirmação deve identificar provas que mostrariam uma violação. Se nenhuma observação possível pudesse refutar um requisito, provavelmente é demasiado vago para aceitação.

O guia anterior do ciclo de negociação automatizada separa configuração, observação e atividade da conta. Use essas fases ao atribuir requisitos. Um componente de estratégia pode propor uma ação, mas um componente independente de risco decide se cabe nos limites da conta. Manter separadas essas responsabilidades facilita explicar por que uma observação aparentemente atrativa não levou a execução.

Defina precisamente a conta fictícia

Presuma que uma conta hipotética começa com 2 000 unidades de cotação e nenhuma posição no ativo selecionado. Desse saldo, 200 unidades estão reservadas como margem operacional e 300 já estão comprometidas com outra intenção ativa. A nova decisão começa, portanto, com 1 500 unidades de capacidade segundo a política indicada. Estas categorias devem permanecer distinguíveis em cada ecrã e exportação.

A nova estratégia propõe comprar no máximo 80 unidades do ativo a um preço limite de 10 unidades de cotação cada. Para este exercício, presuma uma taxa de negociação de um décimo de um por cento cobrada no ativo de cotação e uma despesa de execução de 2 unidades modelada separadamente. A reserva nova máxima é 800 mais 0,80 mais 2, ou 802,80 unidades de cotação. Os custos reais da plataforma têm de ser verificados separadamente.

Registe o conjunto de dados de teste como entrada imutável. Inclua identificador da conta, identidade do ativo, identidade da cotação, saldos iniciais, compromissos existentes e pressupostos de taxas. Uma captura do resultado final não basta para reproduzir o teste. Um revisor posterior precisa de saber que recursos estavam disponíveis antes da nova decisão e que custos foram incluídos no orçamento de autorização.

Especifique o que o sinal pode propor

O sinal deve produzir uma proposta com motivo, marca temporal das provas e exposição pedida. Não deve criar um saldo, alterar a permissão da conta ou presumir que uma ordem executou. No caso fictício, o sinal propõe a compra de 80 unidades porque se cumpre uma condição de observação declarada antecipadamente. O exercício de aceitação não precisa de afirmar que essa condição tem valor preditivo.

Uma proposta deve identificar a versão das provas usada no cálculo. Se a observação subjacente for revista, preserve a proposta original e crie uma avaliação nova em vez de substituir silenciosamente o histórico. Isto importa ao rever por que o sistema agiu. Uma decisão não pode ser avaliada justamente face a informação que ficou disponível apenas depois de ser autorizada.

O guia de automatização de criptomoedas explica como dividir um objetivo amplo de automatização em responsabilidades limitadas. Aplique aqui essa divisão: o sinal propõe, a camada de risco verifica, a camada de reservas compromete capacidade e a camada de execução tenta a ação permitida. Os nomes podem variar entre implementações, mas as responsabilidades devem permanecer visíveis no registo de aceitação.

A autorização tem de incluir o orçamento completo

A verificação de risco compara a reserva máxima de 802,80 unidades com a capacidade disponível de 1 500. Segundo a política fictícia, a proposta cabe e deixa 697,20 unidades disponíveis para outra atividade nova. Um teste deve verificar ambos os números. Verificar apenas se o valor nominal pedido de 800 é inferior ao saldo total omitiria taxas, margem operacional e compromisso anterior.

Defina se a provisão para taxas é um limite rígido ou uma estimativa. Se a execução real puder exceder o orçamento autorizado, o software precisa de outra restrição que consiga impor ou de uma regra de recusa. Chamar estimado a um custo não concede autoridade ilimitada. O registo de aceitação deve explicar o que acontece se a cotação final ou despesa de transação exceder o pressuposto usado na autorização.

Teste também um valor de fronteira. Aumente o montante proposto até a reserva exceder a capacidade por uma pequena quantidade. O resultado esperado é uma rejeição documentada ou proposta nova explicitamente permitida pela política. Redimensionar silenciosamente não é automaticamente aceitável porque altera a decisão original. Se houver suporte de redimensionamento, as regras e o montante resultante devem fazer parte do requisito declarado.

O software automatizado precisa de identidades duradouras

Dê à decisão um identificador de intenção antes do envio. O identificador deve ligar observação original, autorização da conta, reserva de capital e tentativas resultantes de execução. Pode surgir um identificador separado de ordem ou transação após o pedido chegar ao sistema de execução. Preserve ambos para a aplicação distinguir a sua decisão duradoura de uma representação externa dessa decisão.

Entregue o mesmo evento de entrada duas vezes no teste. A segunda entrega deve encontrar a intenção existente, não reservar outras 802,80 unidades. É uma condição importante de aceitação porque muitos sistemas de dados podem voltar a entregar eventos após restabelecer a ligação. Transporte duplicado não é uma segunda oportunidade económica, e a conta não deve inferir uma autorização nova apenas da entrega repetida.

O guia anterior de coordenação de várias carteiras é útil quando participam vários processos de contas. Uma identidade de intenção tem de ter âmbito suficientemente cuidado para evitar confusão entre contas e impedir trabalho duplicado dentro da conta pretendida. Uma designação globalmente única ajuda, mas o requisito real é responsabilidade e interpretação consistentes em todo o processo.

Modele uma execução parcial sem perder o remanescente

Suponha agora que a ordem hipotética executa 50 unidades a 9,90. O custo nominal é 495. À taxa presumida, a taxa dessa execução é 0,495. Se a despesa de execução de 2 unidades for incorrida nesta tentativa, a parte concluída consumiu 497,495 unidades de cotação. A conta adquiriu 50 unidades, não as 80 originalmente pedidas.

As restantes 30 unidades continuam associadas à ordem ativa. O seu valor nominal máximo é 300 ao preço limite e a taxa máxima presumida é 0,30. Mantenha uma reserva de 300,30 unidades para esse remanescente segundo o modelo de custos deste exercício. A diferença entre a reserva original e os custos concluídos mais a reserva restante é 5,005 unidades, refletindo o melhor preço de execução e a taxa inferior sobre a quantidade executada.

O teste deve verificar explicitamente a política de libertação. Alguns sistemas mantêm toda a reserva original até à conclusão por simplicidade. Outros libertam incrementalmente capacidade excedentária confirmada. Qualquer abordagem precisa de especificação clara. O requisito crítico é o sistema nunca libertar dinheiro ainda necessário para um remanescente ativo ou por resolver e nunca tratar quantidade não executada como ativo detido.

Cancelar é um pedido com resultado próprio

Após a execução parcial, a estratégia pede cancelamento das restantes 30 unidades. Esse pedido não prova instantaneamente que a ordem desapareceu. O sistema de execução pode confirmar receção antes de reportar estado final e pode ocorrer outra execução no intervalo. O cenário de aceitação deve incluir essa possibilidade em vez de presumir que cancelar apaga tudo sincronamente.

Para os dados básicos do teste, estipule cancelamento confirmado sem execução adicional. A reserva remanescente de 300,30 unidades pode então ser libertada. A conta mantém as 50 unidades adquiridas e o custo concluído de 497,495 unidades. O compromisso independente de 300 unidades e a margem operacional de 200 permanecem inalterados. Cancelar um remanescente não reverte a compra anterior nem despesas incorridas.

Acrescente uma segunda variante em que mais cinco unidades executam antes de concluir o cancelamento. O sistema tem de incorporar essas unidades e os custos reais antes de determinar o montante final libertado. O resultado esperado deve ser calculado a partir das provas novas de execução, não da hora a que o operador clicou em cancelar. Esta variante testa se a implementação segue eventos económicos em vez de intenções da interface.

Teste um resultado desconhecido de envio

Um cenário de recuperação de negociação automatizada deve interromper comunicação imediatamente após o envio. O sistema de teste regista que o pedido pode ter chegado ao sistema de execução, enquanto a aplicação não recebe resposta definitiva. O estado exigido é por resolver, com reserva preservada. Não deve criar-se uma ordem económica nova apenas porque a chamada original devolveu erro ou atingiu o tempo limite.

A recuperação procura o resultado existente usando as referências duradouras suportadas pela integração. Pode inspecionar histórico da conta, ordens abertas ou estado da transação. A especificação deve descrever que provas bastam para classificar a tentativa como aceite, rejeitada, concluída ou ainda desconhecida. Também deve descrever como se encaminha a incerteza para intervenção quando fontes disponíveis discordam ou permanecem incompletas.

O guia de bots de arbitragem cripto mostra por que um envio por resolver é especialmente relevante quando outra perna pode ter executado. O mesmo princípio aplica-se a este exemplo de uma ordem. Um tempo limite altera o que a aplicação sabe. Não altera necessariamente o que a conta externa fez, pelo que o teste de aceitação tem de manter separados esses dois factos.

Meça custos sem transformar estimativa em facto

Após conciliação, substitua custos estimados de execução por montantes observados preservando a estimativa original para comparação. Isto permite a um revisor ver se o modelo de orçamento era conservador, correto ou incompleto. Um único campo sobrescrito de estimativa para valor real destrói essas provas e dificulta melhorar pressupostos futuros de custos.

No caso fictício de execução parcial, o custo total observado é 497,495 unidades sob os pressupostos declarados. Dividir por 50 dá 9,9499 unidades de cotação por unidade do ativo adquirido quando a despesa fixa é atribuída a essa compra. O preço médio de negociação permanece 9,90. Ambos os números podem ser úteis, mas devem ter designações diferentes porque um inclui custos e o outro não.

O guia de software de arbitragem cripto explora por que esta distinção importa quando uma diferença aparente de preços é pequena. Para aceitação, o comportamento importante é contabilidade reprodutível. O software não deve alternar entre medidas brutas e medidas com custos incluídos conforme a que parece melhor. Uma definição estável permite ao revisor comparar a economia esperada com o registo real da conta.

Teste provas desatualizadas e configuração em mudança

Crie dados de teste em que a observação expira entre proposta e autorização. O comportamento esperado deve ser nova verificação, recusa ou outra transição explicitamente permitida. A aplicação não deve interpretar a existência de um sinal que já foi válido como autoridade permanente. O limite de antiguidade das provas tem de pertencer à regra de decisão e aparecer no registo de rejeição.

Mude depois a configuração da estratégia enquanto uma intenção está pendente. A intenção existente deve permanecer associada à versão que a autorizou, salvo alteração por processo documentado. Uma configuração nova pode reger decisões futuras sem reescrever o passado. Isto é especialmente importante quando um revisor tenta posteriormente reproduzir por que o sistema comprometeu um montante específico.

Um teste útil distingue guardar configuração de a ativar. Guardar um limite revisto não significa necessariamente que todos os componentes em execução o adotaram. O software deve expor a versão ativa e o momento em que a mudança entra em vigor. Caso contrário, um operador pode acreditar que uma restrição vigora enquanto um processo continua a usar um conjunto anterior de permissões.

Teste provas desatualizadas e configuração em mudançaReserve BudgetSubmit OnceObserve ResultReconcile CostsTRADING FIELD NOTESEDUCATIONAL RESOURCE
O cenário resolvido separa autorização de envio, execuções e contabilidade final.

Inclua casos negativos que ensinem algo

Testes negativos devem visar modos de falha relevantes. Identidade de ativo não suportada, recurso de transação esgotado, imagem antiga do estado da conta e orçamento excessivamente comprometido testam limites diferentes. Um grande conjunto de entradas inválidas quase idênticas pode produzir uma contagem impressionante de testes sem melhorar confiança no comportamento económico do sistema.

Para cada caso negativo, especifique o que tem de permanecer inalterado. Uma proposta rejeitada não deve adquirir identificador de ordem real, consumir uma dotação de negociação ou aparecer como negociação concluída. Ainda pode criar registo de auditoria e custo operacional, dependendo do ponto de rejeição. A distinção deve ser explícita para o teste não confundir preservação de provas com atividade não autorizada da conta.

O quadro anterior de avaliação de provas para software de negociação fornece estrutura útil de avaliação. Aplique-o ao comportamento demonstrado em vez de cobertura alegada. Um teste falhado é informação valiosa quando identifica um requisito que pode ser clarificado ou um defeito de implementação que pode ser corrigido antes de utilização mais ampla.

Reproduza o resultado a partir do diário

No fim da sessão de aceitação, exporte o diário e reconstrua a conta sem depender da aplicação em direto. O revisor deve identificar saldo inicial de 2 000 unidades, reservas separadas, 50 unidades adquiridas, custo concluído e remanescente libertado. Cada conclusão deve apontar para um evento registado ou pressuposto declarado.

Esta reconstrução testa mais do que escrituração. Revela se o software preserva cronologia e se as designações de eventos significam o que alegam. Um evento enviado não deve ser contado como execução. Um pedido de cancelamento não deve ser contado como cancelamento confirmado. Uma atualização de avaliação não deve alterar o número de unidades detidas do ativo. O diário deve manter estas distinções mesmo depois de a interface as simplificar.

Um revisor também deve conseguir identificar lacunas. Se uma despesa de execução estiver indisponível, a exportação deve indicar contabilidade de custos incompleta em vez de inserir zero. Em falta é um estado diferente de zero medido. Preservar essa distinção permite ao titular da conta avaliar limites práticos do resultado sem inventar precisão.

Registe aceitação sem alegar sucesso da estratégia

Um relatório de aceitação deve nomear conjunto de requisitos, dados de teste, versão do software e resultados observados. Deve identificar limitações restantes e condições em que um resultado teria de voltar a ser testado. Uma mudança de semântica das ordens, permissões de conta ou tratamento de custos pode invalidar um resultado anterior de aceitação mesmo que as definições visíveis da estratégia permaneçam iguais.

Passar estes cenários estabelece que o sistema se comporta consistentemente com o processo especificado. Não estabelece que o sinal prevê preços futuros nem que a afetação selecionada é adequada a uma pessoa específica. São questões separadas de investigação e decisão. Mantê-las separadas impede uma demonstração tecnicamente bem-sucedida de se tornar uma alegação económica sem suporte.

O resultado prático é um pequeno pacote repetível de provas: requisitos, entradas fictícias, transições esperadas, registos observados e aritmética conciliada. Com esse pacote, outro revisor consegue compreender o que se pediu ao software e por que o resultado conta como aprovação ou falha. É uma base mais forte para automatização do que confiança construída a partir de uma demonstração sem interrupções.

Preserve a diferença entre relógio de teste e relógio de mercado

Um conjunto reprodutível de dados de teste deve controlar explicitamente o tempo. O teste precisa de saber quando ocorreu uma observação, quando ficou disponível para a aplicação e quando a ação proposta foi avaliada. Podem ser três momentos diferentes. Se uma repetição usa um valor histórico corrigido antes de a correção ter chegado originalmente, pode fazer a decisão parecer mais informada do que qualquer operador real poderia ter sido.

Use a mesma distinção ao simular interrupções. Avance o relógio do teste retendo uma atualização da conta e verifique depois se a política para estado antigo é ativada no limite pretendido. Retome o fluxo com eventos atrasados e verifique se a aplicação preserva as horas originais dos eventos. Este exercício pode revelar um sistema que classifica uma observação antiga como recente só porque foi recebida após restabelecer a ligação.

Por fim, preserve a ordem de eventos que partilham uma marca temporal apresentada. Segundos arredondados podem ocultar a sequência entre uma execução, um pedido de cancelamento e uma atualização de saldo. Uma referência duradoura de sequência ou registo temporal mais preciso ajuda a reproduzir o resultado. A aceitação deve estabelecer em que provas de ordenação a implementação se baseia e como se comporta quando estão incompletas.

Continue a aprender

Explorar todos os recursos