English Русский 中文 Español Deutsch 日本語
preview
Algoritmo de recompra: modelo matemático para aumentar a eficiência

Algoritmo de recompra: modelo matemático para aumentar a eficiência

MetaTrader 5Negociação | 23 agosto 2023, 09:13
289 0
Evgeniy Ilin
Evgeniy Ilin

Conteúdo


Introdução

Este método de negociação é ativamente utilizado em uma ampla variedade de Expert Advisors. Além disso, possui muitas variedades e híbridos. Ademais, a julgar pelo número de referências a tais sistemas, é evidente que este tema é muito popular não apenas neste site, mas também em quaisquer outros recursos da web. Todas as variedades do método têm um conceito comum que envolve negociar contra o movimento do mercado. Em outras palavras, o EA utiliza recompras para poder comprar o mais baixo possível e vender o mais alto possível.

Este é um esquema de negociação clássico que é tão antigo quanto o mundo. Em um dos artigos anteriores, toquei parcialmente neste tema, destacando possíveis maneiras de hibridizar tais métodos. Neste artigo, daremos uma olhada mais aprofundada no conceito, indo mais fundo do que os usuários de fóruns costumam ir. No entanto, o artigo será mais geral e muito mais abrangente, já que o algoritmo de recompra é muito apropriado para destacar algumas características muito interessantes e úteis.


Métodos para aprimorar características de negociação baseadas no algoritmo de média

"Ajude-me a sair do rebaixamento" (dos autores de "meu EA dá bom dinheiro, mas às vezes zera toda a conta")

Este é um problema comum de muitos traders algorítmicos e manuais. No momento em que escrevi este artigo, tive uma conversa com uma pessoa assim, mas ela não compreendeu minha perspectiva por completo. Infelizmente, parece-me que ele tem praticamente nenhuma chance de entender a comédia completa de tal situação. Afinal, se eu pudesse fazer uma pergunta semelhante ao meu eu mais velho e mais experiente, também provavelmente não seria capaz de entender a resposta. Eu até sei como as verdadeiras respostas a mim mesmo me fariam sentir. Eu pensaria que estou sendo humilhado ou desencorajado a continuar no trading algorítmico.

Na realidade, tudo é muito mais simples. Eu apenas tive a paciência de seguir um certo caminho e ganhar alguma sabedoria, se é que podemos chamar assim. Isso não é uma idealização e auto-elogio, mas sim um mínimo necessário. É uma pena que esse caminho tenha levado anos, em vez de semanas e meses.

Aqui, temos um mundo inteiro de sonhos e autoengano, e, para ser honesto, já estou começando a ficar cansado da simplicidade de algumas pessoas. Por favor, parem de fazer bobagens e de pensar que são os reis do mercado. Em vez disso, entrem em contato com uma pessoa experiente e peçam para ela escolher um EA de acordo com o seu orçamento. Acreditem em mim, vocês economizarão muito tempo e dinheiro assim, sem mencionar a sua sanidade. Uma dessas pessoas escreveu este artigo. As provas são fornecidas abaixo.

Pensamentos gerais sobre o algoritmo de média

Se dermos uma olhada no algoritmo de recompra, ou "média", pode parecer inicialmente que este sistema não tem risco de perda. Houve um tempo em que eu não sabia nada sobre tais artifícios e ficava surpreso com as enormes expectativas matemáticas que superavam quaisquer spreads. Agora, está claro que isso é apenas uma ilusão; contudo, há um fundamento racional nesta abordagem, mas falaremos mais sobre isso mais tarde. Para começar, para ser capaz de avaliar objetivamente tais sistemas, precisamos conhecer alguns parâmetros indiretos que podem nos dizer um pouco mais do que uma simples imagem de lucros crescentes.

Os parâmetros mais relevantes no relatório do testador de estratégia podem até ajudar a entender que o sistema está obviamente perdendo, apesar do fato de que a curva de saldo parece ótima. Como vocês já devem ter entendido, tudo se resume à curva de rentabilidade. Na verdade, todos os indicadores importantes do sistema de negociação são secundários em relação às primeiras e mais básicas características matemáticas, que, claro, são a expectativa matemática e suas características primárias. Mas vale ressaltar que a expectativa matemática é um valor tão flexível que você sempre pode cair na armadilha do pensamento ilusório.

De fato, para usar corretamente um conceito como expectativa matemática, é necessário primeiramente entender que esta é a terminologia da teoria da probabilidade, e qualquer cálculo desta quantidade deve ser realizado de acordo com as regras da teoria da probabilidade, a saber:

  • Os cálculos são mais precisos quanto maior a amostra analisada; idealmente, o valor exato é calculado com base em uma amostra infinita.
  • Se dividirmos o infinito em várias partes, obteremos várias infinidades.

Alguém pode pensar em como calcular a exata expectativa matemática de uma estratégia particular, se só temos uma amostra limitada de cotações reais à nossa disposição. E alguém vai pensar: por que precisamos destes infinitos afinal? O fato é que todas as estimativas de certos valores médios, como a expectativa matemática, são válidas apenas na área onde esses cálculos foram feitos, mas não têm relação com outra área. Qualquer característica matemática tem relevância apenas onde é calculada. No entanto, algumas técnicas podem ser destacadas para refinar as características da rentabilidade de uma estratégia particular, o que possibilitará obter os valores mais próximos dos verdadeiros valores dos parâmetros requeridos.

O que quero dizer com isso? Isso está diretamente relacionado à nossa tarefa. Depois de perceber que não podemos ver o futuro de uma estratégia infinitamente longa, o que por si só já soa como um completo absurdo. No entanto, este é um fato matemático e uma condição necessária e suficiente para calcular as verdadeiras características matemáticas. Chegamos à ideia de como fazer o número calculado em uma amostra limitada se aproximar do número que poderia ser calculado em uma amostra infinita. Aqueles que estão familiarizados com matemática sabem que existem dois conceitos matemáticos que podem ser aplicados para calcular somas infinitas:

  • Integral
  • Soma de séries infinitas

Acredito que esteja claro para todos que, para calcular o integral, bem como a soma da série, é necessário obter todos os pontos da função, cujo integral precisa ser calculado, dentro da área considerada de integração, ou todos os elementos da sequência de números dentro da série em questão. Ainda existe a opção mais perfeita - obter as expressões matemáticas apropriadas para a função que vamos integrar e a expressão para gerar os elementos da série. Em muitos casos, se tivermos as expressões matemáticas apropriadas, podemos obter as equações exatas para o integral finalizado ou a soma da série, mas no caso de negociação real, não poderemos aplicar cálculo diferencial, e em geral isso não nos ajudará muito, mas é importante entender.

A conclusão de tudo isso é que, para a avaliação direta de qualquer sistema, temos apenas uma amostra limitada e certos parâmetros que obtemos no testador de estratégia. Na verdade, sua importância é muito exagerada. Surge a questão sobre se é possível julgar a rentabilidade de uma estratégia particular usando os parâmetros do testador de estratégia, se esses parâmetros são suficientes para uma resposta unívoca e, o mais importante, como usar esses parâmetros corretamente e se realmente os usamos corretamente.

Além disso, precisamos entender que para cada estratégia, qualquer parâmetro, pelo qual possamos avaliar corretamente a rentabilidade real e a segurança da estratégia, pode ser completamente diferente. Isso está diretamente relacionado à avaliação da curva de lucro. Para entender isso, vamos primeiro traçar uma visão geral aproximada da curva de negociação que obtemos ao usar o algoritmo de recompra:

Fig. 1

reequipamento com 1 instrumento

Vamos começar com a implementação de uma recompra para um instrumento. Se você implementar corretamente este algoritmo, sua negociação, em qualquer caso, consistirá em ciclos. Idealmente, todos os ciclos devem ser positivos. Se alguns ciclos fecharem na zona negativa, então ou você está implementando este algoritmo incorretamente, ou não é mais um algoritmo puro e já existem modificações nele. Mas consideraremos a recompra clássica. Vamos definir alguns parâmetros característicos da curva de negociação para denotar uma recompra clássica:

  • A curva de balanço deve ser ascendente e consistir em N ciclos.
  • Todos os ciclos têm lucro positivo.
  • Ao interromper a negociação, provavelmente estaremos no último ciclo incompleto.
  • O ciclo incompleto tem rentabilidade negativa.
  • Os ciclos têm retrações características em termos de recursos.

Parece que a aparência geral da curva deveria deixar claro, à primeira vista, que tal sistema é lucrativo, mas nem tudo é tão simples. Se você olhar para o último ciclo de negociação não concluído, que eu intencionalmente fechei abaixo do ponto de partida, verá que em alguns casos você terá sorte e aguardará a conclusão bem-sucedida do ciclo, enquanto em outros casos você pode nem esperar até o final e enfrentar uma grande perda ou liquidar todo o seu depósito. Por que isso acontece? O problema é que a imagem pode dar uma falsa impressão de que a quantidade de redução de fundos é limitada em seu valor absoluto e, como consequência, o tempo gasto nessa redução também deve ser limitado.

Na realidade, quanto mais longa a área de teste, mais longa é a área média de rebaixamento. Não há absolutamente nenhum limite aqui. O limite existe apenas na forma do seu depósito e na qualidade da sua gestão de dinheiro. No entanto, uma abordagem competente para configurar seu sistema com base neste princípio pode apenas levar a um aumento na vida útil do seu depósito antes que ele eventualmente seja consumido ou, no melhor dos casos, gere um lucro muito pequeno.

Quando se trata de testar sistemas baseados no algoritmo de recompra (média), para avaliar corretamente sua sobrevivência, confiabilidade e rentabilidade real, deve-se aderir a uma estrutura de teste especial. A questão principal é que o valor de um único teste nesta abordagem é minimizado por uma simples razão: ao testar qualquer estratégia "normal", seu lucro para todo o teste no testador de estratégia está muito próximo ao valor "normalmente" distribuído. Isso significa que ao testar qualquer estratégia média sem manter uma posição por muito tempo, você obterá um número aproximadamente igual de áreas de teste lucrativas e não lucrativas, o que permitirá que você saiba rapidamente que a estratégia é instável ou que a estratégia tem uma correta compreensão do mercado e funciona em todo o histórico.

Quando estamos lidando com uma estratégia de recompra, essa distribuição pode ser fortemente deformada, porque para o teste correto deste sistema é preciso definir o depósito máximo possível. Além disso, o resultado do teste é altamente dependente do comprimento da seção de teste. De fato, nesta abordagem, toda a negociação é baseada em ciclos de negociação, e cada configuração única deste sistema pode ter tanto um parâmetro completamente diferente da redução média quanto o parâmetro da duração média da redução associada a ele. Dependendo desses indicadores, seções de teste muito curtas podem mostrar um resultado de teste muito alto ou muito baixo. Como regra, poucos desses testes são realizados, e isso pode, na maioria dos casos, ser a causa de uma confiança excessiva no funcionamento desses sistemas.

Subtilezas de uma avaliação mais precisa dos sistemas de recompra


Agora, vamos aprender como avaliar corretamente o desempenho dos sistemas usando o algoritmo de recompra, enquanto aplicamos os parâmetros conhecidos dos sistemas de negociação. Primeiramente, com tal avaliação, eu aconselharia usar uma única característica - fator de recuperação. Vamos descobrir como contá-lo:

  • Recovery Factor = Total Profit / Max Equity Drawdown
  • Total Profit - lucro total da parcela de negociação
  • Max Equity Drawdown - rebaixamento máximo dos fundos em relação ao ponto conjunto anterior para saldo e fundos (pico do saldo)

Como podemos ver, trata-se do lucro final dividido pela máxima redução dos fundos. A interpretação matemático deste indicador no sentido clássico é que, de acordo com a ideia, ele deveria mostrar a capacidade do sistema de restaurar sua redução pelo patrimônio. A condição limite para a lucratividade de um sistema de negociação ao usar tal característica é o seguinte fato:

  • Recovery Factor > 1

Se traduzido para uma linguagem humana compreensível, isso significará que, para obter lucro, podemos arriscar não mais do que a mesma quantia do depósito. Esse parâmetro, em muitos casos, fornece uma avaliação precisa da qualidade da negociação para um sistema específico. Use-o, mas tenha muito cuidado, pois este é um valor bastante controverso em relação ao seu significado matemático.

No entanto, terei que revelar a você todas as suas desvantagens, para que entenda que esse parâmetro também é muito arbitrário e o nível de seu significado matemático também é muito baixo. Claro, você pode dizer que, se critica algo, então ofereça uma alternativa. Certamente farei isso, mas só depois de analisarmos esse parâmetro. Este parâmetro está ligado à redução máxima, que, por sua vez, pode estar ligada a qualquer ponto na curva de negociação, o que significa que, se recalcularmos essa redução em relação ao saldo inicial e a substituirmos pela redução máxima, quase sempre obteremos um fator de recuperação superestimado. Vamos apresentar tudo corretamente:

  • Recovery Factor Variation 1 =  Total Profit / Max Equity Drawdown From Start
  • Max Equity Drawdown From Start - rebaixamento máximo contado a partir do saldo inicial (e não do máximo anterior)

Claro, este não é um fator de recuperação clássico, mas em sua essência, ele determina a rentabilidade de forma muito mais correta em relação à condição limite geralmente aceita. Vamos primeiro representar visualmente ambas as opções para calcular esse indicador - a clássica e a minha: 

Fig. 2

recovery factor variation

Pode-se ver que, no primeiro caso, esse parâmetro assumirá valores mais altos, o que, obviamente, é o que queremos. Mas do ponto de vista da avaliação de rentabilidade, podem ser seguidas duas abordagens. O parâmetro clássico é mais adaptado à abordagem, na qual é melhor considerar a duração da seção de teste o mais longa possível. Neste caso, um valor mais alto de "Max Equity Drawdown" compensa o fato de que essa redução não começa desde o início da curva de negociação, e assim, esse parâmetro na maioria dos casos está próximo da estimativa verdadeira. Meu parâmetro é mais eficiente ao avaliar múltiplos backtests.

Em outras palavras, esse parâmetro é mais preciso quanto mais testes da sua estratégia você tiver feito. Os testes da sua estratégia devem ser em tantas áreas diferentes quanto possível. Isso significa que os pontos de início e fim devem ser escolhidos com máxima variabilidade. Para uma avaliação correta, é necessário selecionar "N" das áreas mais diferentes e testá-las, e então calcular a média aritmética deste indicador para todas as áreas de teste. Esta regra nos permitirá refinar ambas as versões do fator de recuperação, tanto a minha quanto a clássica, com a única emenda de que serão necessários menos backtests independentes para refinar a versão clássica.

No entanto, dizer que tais manipulações esclarecedoras são poucas para esclarecer esses parâmetros seria um eufemismo. Eu demonstrei minha própria versão do fator de recuperação para mostrar que qualquer um pode criar seu próprio parâmetro similar, e ele até pode ser adicionado como uma das características calculadas para backtesting no MetaTrader. Mas nenhum desses parâmetros possui qualquer prova matemática, e além disso, qualquer um desses parâmetros tem seus próprios erros e limites de aplicabilidade. Tudo isso significa que no momento não existe um indicador matemático exato para uma avaliação absolutamente precisa de um ou outro algoritmo usando recompra. No entanto, meu parâmetro tenderá à precisão absoluta com um aumento no número de vários testes. Eu apresentarei mais detalhes na próxima seção.


Entendimento profundo e universal da lucratividade

Avaliação universal


Acredito que todos saibam que parâmetros como a expectativa matemática do lucro e o fator de lucro existem em qualquer relatório de testador de estratégia ou nas características de um sinal de negociação, mas acho que ninguém lhe disse que essas características também podem ser usadas para calcular a lucratividade de sistemas de negociação nos quais não há análise suficiente de negócios. Assim, você pode usar esses parâmetros substituindo a unidade "posição" por "teste no segmento". Ao calcular este indicador, você precisará fazer muitos testes independentes sem considerar qualquer estrutura interna. Esta abordagem ajudará a avaliar as reais perspectivas do sistema de negociação usando apenas os dois parâmetros mais populares. Além disso, pode incutir em você um hábito extremamente útil - múltiplos testes.  Para usar esta abordagem, você só precisa conhecer a seguinte equação:

math waiting

onde:

  • M - expectativa matemática de lucro
  • Wp - lucro desejado
  • Investments - quanto você está disposto a investir para alcançar o lucro desejado
  • P - probabilidade de que nosso investimento seja suficiente até atingir o lucro
  • (1-P) - probabilidade de que nosso investimento não será suficiente até alcançarmos o lucro (perda do depósito)

A seguir, uma equação semelhante para o fator de lucro:

profit factor

Tudo o que você precisa saber é que, com negociações aleatórias e a ausência de obstáculos como spread, comissão e swap, bem como deslizamento, essas variáveis sempre assumirão os seguintes valores para qualquer sistema de negociação:

  • M=0
  • Pf=1
  • Essas características podem mudar a seu favor apenas se houver um momento preditivo. Portanto, a probabilidade de obtermos lucro sem perder o depósito assumirá o seguinte valor:

    profit probability

    Se você substituir essa expressão pela probabilidade em nossas equações, obterá as identidades que forneci. Se considerarmos spread, comissão e swap, obtemos o seguinte:

    probability correction 1

    O spread, a comissão e o swap reduzem a probabilidade final, o que, no final, leva as identidades a perderem sua validade. As seguintes desigualdades aparecem em seu lugar:

    • M < 0
    • Pf < 1

    Este será o caso com qualquer sistema de negociação, e o algoritmo de recompra aqui não é de forma alguma melhor do que qualquer outro sistema. Ao testar ou operar um sistema desse tipo, ele é capaz de deformar fortemente a função de distribuição do valor aleatório do lucro final do sinal ou do backtest, mas normalmente este cenário ocorre com mais frequência durante testes ou operações de curto prazo.

    Isso ocorre porque a probabilidade de se deparar com uma grande retração é muito menor se você testar em um segmento curto. Mas, uma vez que você começa a fazer esses testes em segmentos mais longos, geralmente verá coisas que não havia visto antes. Mas tenho certeza de que a maioria conseguirá se tranquilizar pensando que isso é apenas um acidente, e você só precisa de alguma forma contornar essas áreas perigosas. O mesmo geralmente ocorrerá com múltiplos testes em segmentos curtos. Há apenas uma maneira de superar a falta de lucratividade de qualquer sistema.

    Vamos adicionar um componente adicional à equação de cálculo da probabilidade: Como podemos ver, o novo componente "dP(Predição)" apareceu na equação.

    probability correction 2

    Ele tem um sinal de mais, o que fiz de propósito para mostrar que apenas esse componente é capaz de compensar o efeito dos spreads, comissões e swaps. Isso significa que precisamos, antes de tudo, de qualidade de previsão suficiente para superar os efeitos negativos e alcançar o lucro:

    break-even condition

    Podemos obter nossas desigualdades desejadas apenas se fornecermos esta desigualdade específica:

    • M > 0
    • Pf > 1
    Como você pode ver, essas expressões são muito simples, claras e tenho certeza de que ninguém duvidará de sua correção. O próximo subitem será mais fácil de entender usando essas fórmulas e, em geral, recomendo memorizá-las ou pelo menos lembrar sua lógica para que, se desejar, você possa sempre recriá-las. O principal aqui é compreendê-las, e não simplesmente decorá-las. Em geral, uma dessas fórmulas seria suficiente, mas achei que seria melhor mostrar as duas como exemplo. Quanto aos outros indicadores, se considerarmos no contexto desta seção, eles são redundantes.

    Exemplos de métodos de esclarecimento


    Nesta subseção, quero oferecer algumas manipulações adicionais de refinamento que permitirão obter um valor mais correto do fator de recuperação. Sugiro voltar ao "Figura 1" e observar os segmentos numerados. Para refinar o fator de recuperação, é necessário imaginar que esses segmentos são testes independentes. Assim, podemos dispensar os múltiplos testes, supondo que já tenhamos realizado esses testes. Podemos fazer isso porque esses segmentos são ciclos que têm tanto um ponto de partida quanto um ponto final, o que proporciona equivalência ao backtest. 

    No âmbito desta seção, acredito que também vale a pena complementar a primeira imagem com seu equivalente, considerando o fato de que estamos testando ou negociando em vários instrumentos simultaneamente. É assim que a curva de negociação ficará ao usar o algoritmo de recompra para negociação paralela em múltiplos instrumentos:

    Fig. 3

    multiple instruments cycles

    Podemos ver que esta curva difere em sua estrutura da curva para recompra em um único instrumento. Adicionei pontos azuis intermediários aqui, o que significa que antes da retração podem existir segmentos que têm uma "retração ao contrário". A questão é que não podemos considerar isso uma retração. Mas, no entanto, não temos o direito de considerar esses segmentos fora da análise. É por isso que eles devem fazer parte de um ciclo.

    Acredito que seria mais correto adiar cada novo ciclo a partir do final do anterior. Neste caso, o final do ciclo anterior deve ser considerado o ponto de recuperação da última retração em patrimônio. Na imagem, esses ciclos são separados por pontos vermelhos. Mas, na realidade, essa definição de ciclo não é suficiente. Também é importante determinar que não basta apenas fixar a retração pelo patrimônio, mas é importante que ela seja menor do que o início do ciclo atual. Caso contrário, que tipo de retração é essa?

    Após destacar esses ciclos, você pode considerá-los como testes independentes separados e calcular o fator de recuperação para cada um deles. Isso pode ser feito da seguinte maneira: Isso pode ser feito da seguinte maneira:

    Average Recovery Factor

    Nesta equação, os pontos correspondentes na curva de saldo (o valor final do saldo no segmento e o inicial) são usados como "B", enquanto o delta representa nossa retração. Também gostaria que o leitor voltasse à última imagem. Nela, tracei o delta a partir do ponto inicial vermelho de cada ciclo, e não do azul, como é geralmente o caso, pelas razões que listei acima. Mas, se você precisar esclarecer o fator de recuperação original, então o delta deve ser traçado a partir do ponto azul. Neste caso, o método de refinamento dos parâmetros é mais importante do que os próprios parâmetros. A média aritmética simples é tomada como a ação de média.

    No entanto, mesmo após esclarecer um ou outro parâmetro personalizado ou clássico, você não deve considerar o fato de que o valor deste indicador seja maior que um, ou mesmo dois ou três, como sinais de um sistema de negociação lucrativo.

    Exatamente a mesma equação deve ser aplicada com múltiplos backtests. O ponto é que qualquer backtest neste caso é equivalente a um ciclo. Podemos até primeiro calcular as médias para os ciclos e, depois de tudo isso, calcular a média das médias em relação aos backtests. Ou podemos fazê-lo de uma forma muito mais simples, maximizando a duração do segmento de teste. Esta abordagem irá poupar-lhe pelo menos de múltiplos testes devido ao fato de que o número de ciclos será o máximo, o que significa que o fator médio de recuperação será calculado da forma mais precisa possível.


    Recursos úteis em termos do uso paralelo de múltiplos instrumentos

    Limites úteis

    Após considerar as possibilidades de refinar certas características dos backtests, você está, sem dúvida, melhor preparado, mas ainda não sabe o principal. A base reside na resposta à pergunta - por que é necessário realizar todos esses múltiplos testes ou divisões em ciclos? A questão é realmente complexa até você investir tanto esforço quanto eu investi no meu tempo. Infelizmente, isso é necessário, mas com a minha ajuda, você pode reduzir significativamente o tempo necessário para fazer isso.

    Esta seção permitirá avaliar a objetividade de um determinado parâmetro. Tentarei explicar tanto teoricamente quanto usando as equações. Vamos começar com a equação geral:

    Linear Factor Limit

    Vamos considerar uma equação similar com algumas pequenas alterações:

    Linear factor limit v2

    A essência dessas equações é a mesma. Elas demonstram que, em qualquer sistema de negociação lucrativo, quando a duração da seção de teste tende ao infinito, obteremos uma fusão completa das linhas de saldo e lucro atual, com uma determinada linha representando nosso lucro médio. Na maioria dos casos, a natureza desta linha é determinada pela estratégia que escolhemos. Vamos observar a seguinte imagem para um entendimento mais profundo:

    Fig. 4

    Lines

    Se você observar atentamente esta imagem, verá nela todas as quantidades que estão presentes em nossas equações. Ela revela o significado geométrico de nossos limites matemáticos. A única coisa que falta em nossas equações é o intervalo de tempo dT. Com este intervalo, discretizamos nossos passos de saldo e damos origem a todos os pontos de nossa série numérica para o saldo e lucro desses intervalos, e também calculamos os valores de nossa linha média nos mesmos pontos. Estas equações são o equivalente matemático da seguinte declaração:

    • Ao combinar vários testes ou curvas de negociação juntos, quanto mais se assemelham a uma linha crescente suave (apenas se o sistema for realmente lucrativo)

    Em outras palavras, qualquer sistema de negociação lucrativo parece mais atraente na parte gráfica do testador de estratégia ou sinal, quanto mais longa a área de teste escolhemos. Alguns podem dizer que nenhum sistema pode alcançar tais indicadores, no entanto, há muitos exemplos no Mercado, então seria tolo negar isso. Tudo depende da universalidade do algoritmo e de quão bem você entende a física do mercado. Se você conhece a matemática que está sempre presente no mercado em que está negociando, então de fato você obtém uma curva de lucro que cresce infinitamente, e você não precisa esperar por uma infinidade inteira para confirmar a eficácia do sistema. Claro, é evidente que esta é uma tarefa extremamente difícil, mas, no contexto de muitos algoritmos, essa tarefa é alcançável.

    Vamos concluir esta introdução teórica aprendendo a usar corretamente as técnicas recebidas. Você pode se perguntar, como usar essas técnicas com somas infinitas, quando temos apenas amostras limitadas e, consequentemente, também somas incompletas inevitáveis:

    1. Dividimos o histórico inteiro em segmentos
    2. Distinguimos vários segmentos com comprimentos cada vez maiores em termos de duração do teste até o segmento de todo o histórico
    3. Escolhemos uma metodologia de teste
    4. Testamos
    5. Buscamos melhorias no fator de recuperação e/ou nas reduções relativas

    A essência deste esquema de teste astuto é revelar sinais indiretos de que nossos limites realmente tendem ao infinito e a zero, respectivamente. Para aumentar a eficiência do nosso esquema de teste, devemos entender que a seção de teste mais longa deve pelo menos parecer mais bonita do que a mais curta, e idealmente cada seção subsequente deve ser tanto maior quanto parecer mais bonita. Eu uso o conceito de "mais bonito" apenas para deixar claro a todos que isso é de fato equivalente aos nossos limites.

    No entanto, nossos limites são apenas bons durante considerações teóricas ou preparações (o que você preferir). Neste contexto, surge a questão - como descobrir esses fatos sem recorrer à "análise visual"? Precisamos de alguma forma adaptar nossos limites aos parâmetros que temos no relatório do testador de estratégia. Em outras palavras, precisamos de limites alternativos para alguns parâmetros do relatório do testador de estratégia ou sinal para que nossa estrutura de teste possa ser usada. Deixe-me mostrar o conjunto necessário e suficiente de limites alternativos:

    Alternative limits combination

    O que devemos entender aqui:

    1. Em um teste infinito, o fator de recuperação (de qualquer estratégia lucrativa) tende ao infinito.
    2. Em um teste infinito, a retração relativa dos fundos (de qualquer estratégia lucrativa) tende a zero.
    3. Em um teste infinito, o fator de lucro das operações (de qualquer estratégia lucrativa) tende ao seu valor médio e possui um limite real e finito.
    4. Em um teste infinito, a expectativa matemática (de qualquer estratégia lucrativa) sem lotes automáticos ativados (com lote fixo) tende ao seu valor médio e possui um limite real e finito.

    Tudo isso tem a ver com testes infinitos, no entanto, é útil entender o significado matemático desses limites antes de prosseguir para adaptá-los a uma amostra finita. A adaptação dessas expressões à nossa metodologia deve começar com o fato de que devemos selecionar vários segmentos de teste, cada um dos quais deve ser significativamente maior do que o anterior, preferencialmente pelo menos o dobro. Isso é necessário para podermos notar a diferença nas leituras entre testes mais curtos e mais longos. Se numerarmos nossos testes de forma que, à medida que o índice aumenta, seu comprimento cresce no tempo, então obtemos a seguinte adaptação para o caso de amostras finitas:

    Adaptation

    Em outras palavras, um aumento no fator de recuperação e uma diminuição no rebaixamento relativo em termos de fundos é uma evidência indireta de que, muito provavelmente, o aumento contínuo do segmento de teste ou da duração do sinal faz nossa curva se tornar visualmente mais bonita. Isso significa que confirmamos o cumprimento de nossos limites infinitos. Caso contrário, se a curva de lucro não se tornar mais reta, podemos afirmar que o resultado obtido está muito próximo do aleatório e a probabilidade de perdas no futuro é extremamente alta.

    Claro, muitos dirão que podemos simplesmente otimizar o sistema com mais frequência e tudo ficará bem. Em alguns casos extremamente raros isso é possível, mas essa abordagem exigirá uma metodologia de teste completamente diferente. Eu não aconselho ninguém a recorrer a essa abordagem, porque neste caso você não tem nenhuma matemática, enquanto aqui você tem tudo de forma clara e objetiva.

    Todas essas nuances devem convencer você de que testar o algoritmo de recompra requer ainda mais o uso desta abordagem. Em particular, podemos até simplificar a tarefa e testar o sistema de recompra imediatamente no segmento de maior duração. Podemos reverter essa lógica. Se não gostarmos do desempenho da negociação no segmento mais longo, então um desempenho ainda melhor nos segmentos curtos indicará que nossas desigualdades não estão mais satisfeitas e o sistema não está pronto para negociação nesta fase.

    Recursos úteis em termos do uso paralelo de múltiplos instrumentos


    Ao testar em um histórico limitado, certamente surgirá a questão - temos histórico suficiente para usar corretamente nossa metodologia de teste? O fato é que em muitos casos a estratégia tem peso, mas sua qualidade não é alta o suficiente para uso confortável. Para começar, devemos pelo menos entender se ela realmente tem um início preditivo e se podemos começar a nos envolver em sua modernização. Em alguns casos, literalmente não temos histórico de negociação disponível o suficiente. O que devemos fazer? Como muitos já adivinharam, a julgar pelo título da subseção, devemos usar múltiplos instrumentos para esse propósito. 

    Pareceria um fato óbvio, mas infelizmente, como sempre, não há matemática em lugar algum. A essência de testar em múltiplos instrumentos é equivalente à mesma essência para aumentar a duração do teste. A única ressalva é que seu sistema deve ser multimoeda. O sistema pode ter configurações diferentes para diferentes instrumentos de negociação, mas é desejável que todas as configurações sejam semelhantes. A similaridade das configurações representará o fato de que o sistema usa princípios físicos que funcionam no maior número possível de instrumentos de negociação.

    Com esta abordagem e a correta implementação desses testes, o índice "i" deve ser entendido como o número de instrumentos testados simultaneamente em um segmento de teste fixo. Então, as expressões significarão o seguinte:

    1. Ao aumentar a quantidade de instrumentos negociados, quanto mais instrumentos, maior o fator de recuperação.
    2. Ao aumentar a quantidade de instrumentos negociados, quanto mais instrumentos, menor a retração relativa dos fundos.

    De fato, um aumento no número de testes pode, para simplificar, ser interpretado como um aumento na duração total dos testes, como se considerássemos cada teste para cada ferramenta como parte de um enorme teste geral. Essa abstração só ajudará você a entender por que essa abordagem também tem o mesmo poder. Mas se considerarmos essa questão com mais precisão e entendermos mais profundamente por que uma linha que consiste em várias será muito mais bonita, então devemos usar os seguintes conceitos da teoria da probabilidade:

    • Variável aleatória.
    • Dispersão de uma variável aleatória.
    • Expectativa matemática de uma variável aleatória.
    • Lei de distribuição normal de uma variável aleatória.

    Para explicar completamente por que precisamos de tudo isso, primeiro precisamos de uma imagem que nos ajudará a olhar para um backtest ou um sinal de negociação de maneira um pouco diferente:

    Fig. 5

    Delta equity random distribution

    Não estou desenhando uma linha de saldo aqui, porque ela não decide nada aqui, e só precisamos de uma linha de lucro. O significado desta imagem é que para cada linha de lucro, é possível selecionar um número infinito de segmentos independentes de comprimento fixo, nos quais é possível construir a lei de distribuição de uma variável aleatória do incremento da linha de lucro. A presença de uma variável aleatória significa que, no futuro, o incremento do lucro na área selecionada pode ter valores completamente diferentes na mais ampla faixa.

    Pode parecer complicado, mas na verdade é simples. Acredito que muitas pessoas já ouviram falar sobre a lei de distribuição normal. Supostamente, ela descreve quase todos os processos aleatórios na natureza. Acho que isso não passa de uma ilusão inventada para impedir que você "pense". Brincadeiras à parte, as razões para a popularidade da lei de distribuição são que ela é uma equação artificialmente compilada e muito conveniente para descrever distribuições simétricas em relação à expectativa matemática de uma variável aleatória. Será útil para nós em futuras transformações matemáticas e experimentos.

    No entanto, antes de começar a trabalhar com esta lei, devemos definir a principal propriedade para qualquer lei de distribuição de uma variável aleatória:

    Probability density integral

    Qualquer lei de distribuição de variável aleatória é essencialmente o análogo do grupo completo de eventos não conjuntos. A única diferença é que não temos um número fixo desses eventos e, a qualquer momento, podemos selecionar qualquer evento de interesse assim:

    Arbitrary non-joint event

    Falando estritamente, este integral considera a probabilidade de encontrar uma variável aleatória no intervalo indicado de uma variável aleatória, e naturalmente, ela não pode ser maior que um. Nenhum evento total de um dado espaço de evento pode ter uma probabilidade maior que um. No entanto, isso não é o mais importante. O único importante aqui é que você deve entender que o evento, neste caso, é determinado apenas por um conjunto de dois números. Estes são exemplos para variáveis aleatórias de dimensão mínima.

    Existem análogos dessas equações para a dimensão "N", quando um evento pode ser determinado por "N*2" números, e até construções mais complexas (no âmbito de integrais de região multidimensional). Estas são seções bastante complexas da matemática, mas aqui são redundantes. Todas as leis obtidas aqui são auto-suficientes para a variante unidimensional.

    Antes de passar para construções mais complexas, vamos relembrar algumas características populares dos parâmetros das leis de distribuição de valor aleatório:

    Standard deviation and variance

    Para definir qualquer uma dessas equações, precisamos determinar a coisa mais importante - a expectativa matemática de uma variável aleatória. No nosso caso, ela é assim:

    Mathematical expectation of a random variable


    A expectativa matemática é simplesmente a média aritmética. Os matemáticos gostam de dar nomes muito inteligentes a coisas simples para que ninguém entenda nada. Eu forneci duas equações. A única diferença entre elas é que a primeira funciona com um número finito de variáveis aleatórias (quantidade limitada de dados), e no segundo caso, o integral sobre a "densidade de probabilidade" é usado.

    Um integral é o equivalente de uma soma, com a única diferença de que ele soma um número infinito de variáveis aleatórias. A lei de uma distribuição de variável aleatória, que está localizada sob o integral e contém toda a infinidade de variáveis aleatórias. Existem algumas diferenças, mas em geral a essência é a mesma.

    Agora, voltemos às equações anteriores. Estas são apenas algumas manipulações com as leis de distribuição de variáveis aleatórias que são convenientes para a maioria dos matemáticos. Como no último exemplo, existem duas implementações - uma para um conjunto finito de variáveis aleatórias e outra para um infinito (a lei de uma distribuição de variável aleatória). Afirma que "D" é o quadrado médio da diferença entre todas as variáveis aleatórias e a variável aleatória média (a expectativa matemática da variável aleatória). Esse valor é chamado de "dispersão". A raiz desse valor é chamada de "desvio padrão".

    Distribuição normal de uma variável aleatória


    São esses valores que são geralmente aceitos na matemática de variáveis aleatórias. Eles são considerados os mais convenientes para descrever as características mais importantes das leis de distribuição aleatória. Discordo dessa noção, mas, no entanto, sou obrigado a mostrar a você como eles são calculados. No final, essas quantidades serão necessárias para entender a lei de distribuição normal. É improvável que você encontre facilmente essa informação, mas direi que a lei de distribuição normal foi inventada artificialmente com apenas alguns objetivos:

    • Uma maneira simples de definir a lei de distribuição simétrica em relação à expectativa matemática.
    • Possibilidade de definir dispersão e desvio padrão.
    • Possibilidade de definir a expectativa matemática.

    Todas essas opções nos permitem obter uma equação pronta para a lei de uma distribuição de variável aleatória chamada lei de distribuição normal:

    Normal distribution

    Existem outras variações das leis de distribuição de variáveis aleatórias, cada uma inventada para um espectro específico de tarefas, mas como a lei normal é a mais popular e conhecida, usaremos ela como exemplo para provar e compor o equivalente matemático das seguintes afirmações:
    • Quanto mais instrumentos forem negociados em paralelo para um sistema lucrativo, mais bonito e reto será nosso gráfico de lucro (um caso particular de diversificação).
    • Quanto mais longo o segmento escolhido para teste ou negociação, mais bonito e reto será nosso gráfico de lucro.
    • Quanto mais sistemas forem negociados em paralelo com rentabilidade comprovada, mais reto e bonito será nosso gráfico geral de rentabilidade.
    • A combinação de tudo o que foi dito acima resulta em diversificação perfeita e um gráfico extremamente atraente.

    Tudo o que foi dito aplica-se apenas a sistemas de negociação cuja rentabilidade foi comprovada matemática e praticamente. Vamos começar definindo o que "o gráfico mais bonito" significa em termos matemáticos. O "desvio padrão", cuja equação já mostrei acima, pode nos ajudar com isso.

    Se tivermos uma família de curvas de densidade de distribuição para uma variável aleatória do incremento de lucro com a mesma expectativa matemática, que simbolizam dois segmentos da mesma duração no tempo, para dois gráficos praticamente idênticos, então preferiríamos aquele com o menor desvio padrão. A curva perfeita nessa família poderia ser uma com desvio padrão zero. Essa curva só é alcançável se soubermos o futuro, o que é impossível; no entanto, devemos entender isso para comparar curvas dessa família.

    Beleza da curva de lucro no âmbito da lei de distribuição de valores aleatórios


    Esse fato é compreensível quando lidamos com uma família de curvas, onde as expectativas matemáticas do incremento de lucro no período de tempo selecionado são as mesmas, mas o que fazer quando lidamos com curvas de distribuição completamente arbitrárias? Não está claro como compará-las. Nesse aspecto, o desvio padrão já não é perfeito e precisamos de outro valor de comparação mais universal que leve em consideração a escala, ou devemos elaborar algum algoritmo para reduzir essas leis de distribuição a um certo valor relativo, onde todas as distribuições terão a mesma expectativa matemática e, portanto, critérios clássicos se aplicarão a todas as curvas. Eu desenvolvi tal algoritmo. Um dos truques nele é a seguinte transformação:

    First transformation

    A família dessas curvas parecerá algo assim:

    Fig. 6

    Family of scaled curves

    Um fato muito interessante é que, se submetermos a lei de distribuição normal a essa transformação, ela é invariante em relação a essa transformação e se parecerá com isso:

    Transformed normal law


    A invariância consiste nas seguintes substituições:

    Replacement for invariance

    Se substituirmos essas substituições na equação anterior, obteremos a mesma lei de distribuição operando com os valores correspondentes com asteriscos:

    Invariant

    Esta transformação é necessária para garantir não apenas a invariância da lei de transformação, mas também a invariância do seguinte parâmetro:

    Relative standard deviation

    Tive que inventar esse parâmetro. É impossível escalar adequadamente a lei de distribuição normal, como qualquer outra lei, sem ele. Este parâmetro também será invariante para qualquer outra lei de distribuição. Na verdade, a lei normal é mais fácil de perceber e entender. Sua ideia é que ela pode ser usada para quaisquer distribuições com diferentes expectativas matemáticas e sua essência será semelhante ao desvio padrão, só que sem a exigência de que todas as distribuições comparadas devam ter a mesma expectativa matemática. Acontece que nossa transformação é projetada para obter uma família de distribuições onde um determinado parâmetro tem o mesmo valor. Parece bem conveniente, não parece?

    Esta é uma maneira de definir a chamada beleza do gráfico. O sistema que possui o menor parâmetro é "o mais bonito". Isso é tudo muito bom, mas precisamos desse parâmetro para um propósito diferente. Estabelecemos a tarefa de comparar a beleza dos dois sistemas. Imagine que temos dois sistemas que operam independentemente. Então, nosso objetivo é unir esses sistemas e entender se haverá um efeito desta fusão, ou melhor, esperamos o seguinte:

    Hope 

    Essas proporções serão observadas ao usar qualquer lei de distribuição. Isso significa automaticamente que faz sentido diversificar se nossos instrumentos ou sistemas comercializados em paralelo têm rentabilidade semelhante. Vamos provar esse fato de uma maneira um pouco diferente. Como eu disse, inventei um algoritmo para reduzir todas as distribuições a um valor aleatório relativo. Vamos usá-lo, mas primeiro analisaremos o processo geral de fusão de várias linhas, dentro da estrutura da lei de distribuição de uma variável aleatória representando a soma de dois deltas. Usaremos a lógica recorrente para fusões em pares. Para fazer isso, supomos que temos "n+1" curvas, cada uma das quais tem uma expectativa matemática definida. Mas, para chegarmos à variável aleatória simbolizando a fusão, precisamos entender que:

    Recurrent transformation steps

    Na verdade, esta é uma expressão recorrente que não faz sentido matemático, mas mostra a lógica de fusão de todas as variáveis aleatórias presentes na lista. Simplificando, temos "n+1" curvas, que devemos combinar usando "n" transformações sucessivas. Na verdade, isso significa que devemos obter a lei de distribuição da variável aleatória total em cada um dos passos usando algum tipo de operadores de transformação.

    Não vou entrar em longas explicações. Em vez disso, simplesmente mostrarei esses operadores de conversão para que você possa tirar suas próprias conclusões. Estas equações implementam a fusão de duas curvas de lucro dentro do período de tempo selecionado e calculam a probabilidade de que o lucro total dos dois segmentos das curvas "dE1 + dE2" seja menor (Pl) e maior (Pm) do valor "r" selecionado, respectivamente:

    Transformation integrals

    Existem duas opções para implementar essas quantidades aqui. Ambas são completamente similares. Após calcular esses valores, eles podem ser usados para obter a lei de distribuição da variável aleatória "r", que é o que nos é exigido para trabalhar toda a cadeia de fusão recorrente. Por definição de uma variável aleatória, podemos obter as leis de distribuição correspondentes a partir destas equações da seguinte maneira:

    Obtaining the law of distribution

    Como você deve ter adivinhado, após obter a lei de distribuição, podemos prosseguir para a próxima etapa dentro da cadeia recorrente de transformações. Depois de trabalhar toda a cadeia, obtemos a distribuição final, que já podemos comparar com uma das distribuições que usamos para a cadeia de fusão recorrente. Vamos criar um par de distribuições com base nas leis que temos e executar uma etapa de fusão como exemplo para demonstrar o fato de que cada fusão é "mais bonita que a anterior":

    Fig. 7

    Proof

    A imagem demonstra a fusão matemática que aplica nossas equações de fusão. A única coisa não mostrada lá é a diferenciação para transformar integrais em leis de uma distribuição de valor de fusão aleatório. Observaremos o resultado da diferenciação um pouco mais tarde, no âmbito de uma ideia mais geral, mas por enquanto, vamos lidar com o que está na imagem.

    Preste atenção nos retângulos vermelhos. Eles são a base aqui. O integral mais baixo diz que pegamos o integral de acordo com a lei de distribuição original de tal maneira a calcular a probabilidade de que a variável aleatória assumirá um valor menor do que a expectativa matemática dividida por "Kx". Acima, você verá integrais similares para as fusões de duas distribuições ligeiramente diferentes. Em todos os casos, é importante manter essa proporção (Kx) entre a expectativa matemática e o valor limite escolhido do integral, que é expresso no correspondente "Kx". 

    Note que ambas as opções de fusão estão apresentadas ali, de acordo com as equações que lhe dei anteriormente. Além disso, há uma fusão da distribuição base consigo mesma, como se estivéssemos fundindo duas curvas de lucro semelhantes. Semelhante não significa idêntico na imagem, mas sim tendo leis de distribuição idênticas para a variável aleatória do incremento da curva de lucro no período de tempo selecionado. A prova é que encontramos uma menor probabilidade de um desvio relativo da variável aleatória de fusão em relação à original. Isso significa que temos uma lei mais "bonita" para o incremento de um valor de lucro aleatório em qualquer fusão. Claro, existem exceções que requerem um aprofundamento no tópico, mas acredito que essa abordagem seja suficiente para o artigo. Provavelmente você não encontrará nada melhor em lugar nenhum, pois este é um material muito específico.

    A maneira alternativa de comparar a beleza é transformar tudo, tanto as leis de distribuição originais quanto o resultado da cadeia recorrente considerada acima. Para conseguir isso, só temos que usar nossa transformação, que nos permitiu obter uma família de curvas de distribuição escaláveis e fazer o seguinte:

    transformação em uma variável aleatória relativa

    O truque dessa transformação é que, com essa abordagem, todas as leis de distribuição submetidas à transformação correspondente terão a mesma expectativa matemática e, portanto, podemos usar apenas o desvio padrão para avaliar sua "beleza" sem ter que inventar quaisquer critérios exóticos. Eu mostrei a você dois métodos. Cabe a você escolher o que mais lhe convém. Como você deve ter adivinhado, as leis de distribuição de todas essas curvas relativas se parecerão com isto:

    Relative random variable

    Esta abordagem também é aplicável a testes mais extensos. Por testes estendidos, nos referimos a testes em um segmento mais longo. Esta aplicação só é adequada para confirmar o fato de que, quanto mais longo o teste, mais belo é o gráfico. O único truque para esta prova que você deve aplicar é aceitar que, se aumentarmos a duração do teste, fazemos isso em múltiplos de um número inteiro, e em múltiplos deste número consideramos não 1 etapa, mas "n" e aplicamos as equações de fusão. Esta fusão será ainda mais simples, já que a cadeia de fusão recorrente conterá apenas um único elemento que é duplicado, e será possível comparar o resultado apenas com este elemento.


    Considerações finais

    No artigo, consideramos não o algoritmo de recompra em si, mas um tópico muito mais importante que fornece as equações e métodos matemáticos necessários para uma avaliação mais precisa e eficiente dos sistemas de negociação. Mais importante ainda, você obtém a prova matemática do valor da diversificação e do que a torna eficaz, e como aumentá-la de uma maneira natural e saudável, sabendo que está fazendo tudo corretamente.

    Também provamos que o gráfico de qualquer sistema lucrativo é mais belo, quanto mais longa a área de negociação que usamos, e também, quanto mais sistemas lucrativos negociam simultaneamente em uma única conta. Até agora, tudo está enquadrado na forma de uma teoria, mas no próximo artigo consideraremos os aspectos aplicados. Simplificando, construiremos um modelo matemático funcional para simulação de preços e simulação de negociação multimoeda e confirmaremos todas as nossas conclusões teóricas. Você provavelmente não encontrará essa teoria em lugar nenhum, então tente se aprofundar mais nessa matemática ou, pelo menos, entender sua essência.

    Traduzido do russo pela MetaQuotes Ltd.
    Artigo original: https://www.mql5.com/ru/articles/12445

    Teoria das Categorias em MQL5 (Parte 7): Domínios Multiconjuntos, Relativos e Indexados. Teoria das Categorias em MQL5 (Parte 7): Domínios Multiconjuntos, Relativos e Indexados.
    A teoria das categorias é um ramo diversificado e em expansão da matemática que só recentemente começou a ser abordado na comunidade MQL5. Esta série de artigos tem como objetivo analisar alguns de seus conceitos para criar uma biblioteca aberta e utilizar ainda mais essa maravilhosa seção na criação de estratégias de negociação.
    Negociação automatizada em grade usando ordens pendentes de stop na Bolsa de Moscou (MOEX) Negociação automatizada em grade usando ordens pendentes de stop na Bolsa de Moscou (MOEX)
    Uso da abordagem de negociação em grade com ordens pendentes de stop em um Expert Advisor usando a linguagem de estratégias de negociação MQL5 para o MetaTrader 5 na Bolsa de Valores de Moscou (MOEX). Ao negociar no mercado, uma das estratégias mais simples é uma grade de ordens projetada para "capturar" o preço de mercado.
    Experimentos com redes neurais (Parte 6): O perceptron como uma ferramenta de previsão de preços autossuficiente Experimentos com redes neurais (Parte 6): O perceptron como uma ferramenta de previsão de preços autossuficiente
    Veja um exemplo do uso do perceptron como um meio autossuficiente de previsão de preços. Esse artigo aborda conceitos gerais, apresenta um Expert Advisor simples e pronto para uso e os resultados de sua otimização.
    Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 23): FOREX (IV) Desenvolvendo um sistema de Replay - Simulação de mercado (Parte 23): FOREX (IV)
    A criação, agora, é efetuada no mesmo ponto que fazemos a conversão dos tickets em barras. Então se algo vim a dar errado durante a conversão, iremos logo notar o erro. Pois o mesmo código que lança as barras de 1 minuto no gráfico, quando fazemos um avanço rápido, também é utilizando pelo sistema de posicionamento, e também é usado para lançar as barras durante o avanço normal. Ou seja, agora o código responsável por tal tarefa, não esta mais sendo duplicado em ponto algum. Desta forma, já temos um sistema bem mais adequado, tanto para manutenção, quanto para melhorias.