| Sistemas adaptativos |
|
|
| Artigos - Investimentos | |||
| Escrito por Melao | |||
| Sexta, 27 Novembro 2009 17:14 | |||
|
Em artigos anteriores já comentamos sobre as dificuldades de se desenvolver sistemas que se adaptem às condições do Mercado, porque se eles reagirem muito rápido às mudanças, existe a possibilidade de se modificarem perante ruídos que não indiquem reais mudanças de cenário, e se se modificarem muito lentamente, quando eles tiverem concluído a adaptação o cenário já estará diferente daquele para o qual se adaptaram. Como as mudanças ocorrem a ritmos diferentes em ocasiões diferentes, não há um meio termo que possa resolver esse tipo de situação.
Porém, em circunstâncias bem específicas, pode-se fazer um sistema adaptativo. Este é o caso do Saturno V 5.0. Inicialmente deveria ser 4.02.1 ou 4.4, no entanto estamos implementando outras mudanças importantes além dessa, por isso nos pareceu mais apropriado chamar de "5.0".
A idéia consiste em não tentar adaptar o sistema a todas as condições relevantes de Mercado, como volatilidade e dimensão fractal, mas apenas a algumas das mudanças que podem ser previstas com boa precisão, entre as quais o tamanho do spread. Citaremos como exemplo o caso do spread por ser o mais simples e estável:
Os tamanhos dos spreads se repetem com excelente regularidade, obedecendo a uma sazonalidade diária e outra semanal. Como os spreads oscilam, no momento da compra ele pode não ser o mesmo no momento da venda e isso torna perigoso definir um critério com base apenas no tamanho do spread. Definir o critério com base no tamanho médio do spread em determinado horário é muito mais estável e fornece como resultado uma função de densidade de probabilidade de que o spread se encontre dentro de um certo intervalo, semelhante ao que se usa em Mecânica Quântica para definir a região de máxima probabilidade para se encontrar uma partícula, com a diferença que em MQ a região tem 3 dimensões.
Sabendo o tamanho médio dos spreads em cada horário e cada dia da semana, bem como a dispersão dos tamanhos em torno dessa média, podemos adotar o seguinte procedimento:
1) Otimizar o sistema com spread fixo de 1 pip, 2 pips, 3 pips etc.
2) Entre os melhores genótipos encontrados em cada otimização com cada tamanho de spread, procurar por aqueles cujos valores dos parâmetros otimizados estejam aproximadamente alinhados (fortemente correlacionados) com o tamanho do spread.
Exemplo.:
Otimização com 1 pip: 6 melhores genótipos entre 10496 testados: Gen1256_1p, Parâmetros (p1=26, p2=237, p3=56) Gen144_1p, Parâmetros (p1=178, p2=221, p3=56) Gen32_1p, Parâmetros (p1=90, p2=287, p3=49) Gen4770_1p, Parâmetros (p1=872, p2=199, p3=54) Gen3562_1p, Parâmetros (p1=12, p2=217, p3=51) Gen15_1p, Parâmetros (p1=142, p2=294, p3=52)
Otimização com 2 pips: 6 melhores genótipos entre 10496 testados: Gen789_2p, Parâmetros (p1=124, p2=188, p3=67) Gen57_2p, Parâmetros (p1=89, p2=167, p3=89) Gen358_2p, Parâmetros (p1=144, p2=119, p3=112) Gen123_2p, Parâmetros (p1=75, p2=215, p3=67) Gen45_2p, Parâmetros (p1=156, p2=287, p3=90) Gen9318_2p, Parâmetros (p1=110, p2=256, p3=87)
Otimização com 3 pips: 6 melhores genótipos entre 10496 testados: Gen4276_3p, Parâmetros (p1=19, p2=321, p3=77) Gen8_3p, Parâmetros (p1=22, p2=212, p3=11) Gen982_3p, Parâmetros (p1=126, p2=246, p3=67) Gen539_3p, Parâmetros (p1=261, p2=237, p3=65) Gen174_3p, Parâmetros (p1=264, p2=207, p3=74) Gen615_3p, Parâmetros (p1=208, p2=186, p3=72)
Entre estes, vamos constatar que Gen1256_1p, Gen123_2p Gen615_3p se alinham bem, porque conforme o tamanho do spread aumenta, o parâmetro p1 aumenta numa proporção aproximadamente constante, o parâmetro p2 diminui numa proporção aproximadamente constante e o parâmetro 3 aumenta numa proporção aproximadamente constante, ou seja, nestes genótipos, cada um destes parâmetros evolui na mesma direção conforme o tamanho do spread aumenta ou diminui. Isso possibilita interpolar os valores de cada parâmetro de maneira suave em função do tamanho dos spreads e assim definir tamanhos razoáveis para cada parâmetro personalizado para cada tamanho de spread. Na verdade há algumas simplificações nisso tudo, porque é necessário levar em conta a dispersão em cada parâmetro, como no caso de p1, que é muito maior do que a dispersão nos outros dois parâmetros, o que o torna menos relevante para atender ao quesito de correlacionar fortemente com o tamanho do spread (positivamente ou negativamente).
Desse modo o sistema passa a ter parâmetros dinâmicos que mudam de valor conforme mudam o spread e outras propriedades relativamente estáveis e previsíveis do Mercado. Há outras maneiras de se fazer isso, algumas mais elaboradas e outras mais simples, porém esta é uma das mais rápidas e práticas entre as boas. Mesmo assim é um processo um tanto demorado e a versão 5 não deve ficar pronta tão cedo, já que nos sistemas reais a quantidade de parâmetros é maior e a quantidade de sistemas aparentemente promissores nos testes preliminares é muito maior que 6, embora após as filtragens reste em torno de 6 mesmo.
Esse tipo de aprimoramento constitui um avanço importante para maximizar o desempenho, mantendo o risco inalterado ou até mesmo reduzindo um pouco o nível de risco. Também pretendemos introduzir mais algumas inovações no Saturno V 5.0, algumas das quais divulgaremos à medida que nos parecer conveniente.
Um detalhe importante, sobre o qual convém chamar a atenção, é que a ESCOLHA dos genótipos que serão usados para determinar a variação de cada parâmetro em função do tamanho dos spreads não pode ser arbitrária. Por exemplo: se escolher o melhor genótipo da otimização com 1 pip, o melhor da otimização com 2 pips etc., pode acontecer que ao mudar de 1 para 2 pips, um determinado parâmetro aumenta de valor, mas ao passar de 2 para 3 pips este mesmo parâmetro diminui de valor. Quando isso acontece, a modelagem ainda é possível, porém muito mais incerta porque os máximos e míninos locais serão muito estreitos. Além disso é necessário considerar a amplitude dentro da qual cada parâmetro pode variar.
|