sexta-feira, 27 de março de 2009

Testando Sistemas de Operação (Parte 2)

O capítulo 10 do livro do Perry J. Kaufman (sim, aquele das médias móveis adaptativas - A.M.A.) é um bom tutorial para quem gosta de desenhar sistemas de operação (trading systems). (Ref.: Smarter Trading - Kaufman, Perry J.)

Um sistema de operações é robusto se tiver sucesso em diferentes condições. É especialmente bom se consegue funcionar em condições que são completamente diferentes daquelas usadas para testes.

Todo sistema criado é testado e adaptado/ajustado (tailored) para trabalhar de forma optimizada em um período de dados históricos (dados passados), e deve ser feito dessa forma. Ninguém é louco de não testar com dados passados (back testing), mesmo sabendo que não serão garantia para mesmo desempenho futuro.

Aqui segue um checklist para teste de robustês do sistema de operação proposto por Perry Kaufman:

Cheklist para teste de robustês:

Part 1: Decidindo O QUÊ testar

1. A lógica da estratégia é válida?

2. As regras podem ser programáveis? (para evitar que o "achismo" ou feeling interfiram)

3. A estratégia tem bom senso em algumas condições específicas? (ex.: tendência de alta, de baixa, etc)

4. Tente imaginar o resultado esperado.

Parte 2: Decidindo COMO testar

5. Escolher as ferramentas e métodos de teste

6. Você tem a quantidade de dados "corretos" suficiente para testar?

7. Você incluiu custos de transação realistas (corretagem, outras taxas, etc...)?

8. Você irá testar um conjunto completo de parâmetros? (Não elimine parâmetros perdedores, saiba o que ocorre em todo o range dos parâmetros)

9. Em qual ordem os parâmetros serão testados?

10. Os parâmetros estão distribuidos de forma adequada?

11. Você definiu o critério de avaliação?

12. Como os "dados de saída" (resultados) serão apresentados?

Parte 3: Avaliando os Resultados

13. Os cálculos estão corretos?

14. Existe quantidade de operações (trades) suficientes para o resultado ser significante (ter resultado estatísticamente válido)?

15. O sistema de operações produz lucro para a maioria de combinações dos parâmetros?

16. As mudanças na lógica do sistema melhora a performance geral do sistema?

17. Como o sistema se comporta com dados fora da amostragem? (Considere o teste com a base de dados escolhida separando os 10% iniciais dos dados e os 10% finais dos dados. Assim que validar o sistema, teste com esses dados out-of-sample e compare os resultados).

Parte 4: Escolhendo os Parâmetros específicos para operar

18. Os últimos testes incluem os dados mais recentes?

19. Você escolheu os parâmetros de uma região de operações com maior índice de sucesso?

20. Os lucros estão distribuídos de forma regular durante todo o período de back-test?

21. Os lucros por operação são grandes o suficiente para absorver erros?

22. Os resultados históricos mostram alguma perda grande devido a "choque de preços"?

23. Você fez os ajustes de risco para que sejam de acordo com sua tolerância de aceite a riscos?

Parte 5: Operando e Monitorando a performance

24. Você está seguindo as mesmas regras que foram testadas?

25. Você está operando o mesmo ativo que foi testado?

26. Você tem monitorado a diferença entre as entradas/saídas reais com o sistema testado?

O livro entra em detalhes de cada item do checklist e vale a pena ser lido para quem gosta ou está se inciando em sistemas de operação (Trading systems) ou pensa em implementar um "robot trader".

Nenhum comentário: