пятница, 11 мая 2018 г.

Sistemas de negociação adaptativos


SISTEMAS DE NEGOCIAÇÃO.
Sistemas de Negociação Adaptativa.
Sistemas de negociação adaptativa (ATS) podem significar muitas coisas para os traders. Geralmente, é um sistema de negociação automatizado que "se adapta". para comercializar mudanças de alguma forma.
Definindo ATS.
Quais são os componentes de um Sistema de Negociação Adaptativa? Alguns componentes podem incluir:
&touro; Capacidade de um sistema se adaptar às mudanças do mercado de alguma forma.
&touro; Sistemas que são de autoaprendizagem.
&touro; Sistemas de controle mestre que monitoram vários subsistemas, selecionando o melhor sistema para o tipo de mercado.
&touro; Indicadores dinâmicos que derivam valor com base em tipos de mercado ou outros indicadores derivados.
&touro; Deve conter algum tipo de "inteligência".
O que o ATS não é:
&touro; Regras de negociação estáticas.
&touro; Sistema baseado em indicadores simples (como crossover de MA)
ATS não precisa ser automatizado, embora por necessidade eles provavelmente seriam.
Dados sobre o ATS.
O problema de fazer qualquer pesquisa sobre o estado da ATS é que os comerciantes não divulgam publicamente sua metodologia de negociação, e é impossível rastrear com base em seus resultados. Por exemplo, um comerciante pode alegar ter um sistema adaptativo, quando na verdade é apenas um crossover da SMA, ou um comerciante colocando operações manualmente. Nós sempre podemos ver seus resultados (pelo menos o corretor ou banco carregando sua conta pode ver) & ndash; mas às vezes até isso não está disponível. Assim, ficamos lendo artigos acadêmicos, que geralmente estão muito desconectados do mundo econômico real, ou confiando em sites que eles estão realmente fazendo o que afirmam. Em nossa experiência, isso é mais falso do que é verdade. Por exemplo, existem 10x & ndash; 20x (magnitude) mais sites promovendo sistemas de negociação vencedoras do que sistemas de negociação realmente vitoriosos. Isto não é sempre desonestidade & ndash; Às vezes, os sistemas funcionam e depois param de funcionar, e os webmasters deixam o site. Ou os comerciantes de sistemas vão exagerar os retornos, ou "cherry pick & rsquo; bons resultados não exibindo as 20 contas que o sistema explodiu. O Google se tornou a melhor ferramenta de pesquisa do escritor e do pesquisador; no entanto, para esta aplicação, não será suficiente para realizar qualquer estudo.
A questão sobre Sistemas de Negociação Adaptativa tem uma história profunda na negociação; é uma questão de desenvolvimento em chamas, que é muito mais profunda do que qualquer sistema ou metodologia de negociação individual. É sobre o funcionamento fundamental da sociedade neste planeta. É sobre a evolução dos sistemas de máquinas que a indústria, por setor, está substituindo os processos envolvidos pelos humanos.
Negociação é financiamento em tempo real. Os mercados são uma matriz em tempo real que descreve matematicamente o planeta Terra e a existência humana. Porque no capitalismo, tudo o que pode ser quantificado aparece nos balanços das empresas em algum momento. Algumas coisas, como Boa Vontade e Amor, não podem ser quantificadas, mas elas ainda aparecem no balanço (amamos a Coca-Cola e compramos, criando uma transação econômica).
Os mercados são a alocação em tempo real de recursos econômicos e quantificáveis. Na forma mais óbvia e crua, os mercados de commodities determinam os preços de muitos bens e serviços consumidos pelos consumidores globalmente. Um sistema de negociação automatizado poderia teoricamente afetar os preços dessas commodities, eles estão envolvidos no mecanismo de precificação, executando seu próprio algoritmo para determinar não apenas o preço, mas onde eles sentem que o preço irá (como os ATS são especulativos por natureza, eles têm um elemento de previsão inerente embutido nelas.) Assim, a evolução do ATS é a evolução dos próprios mercados. Quanto mais ATS forem usados, os mercados se tornarão mais "rsquo; ideal, ou, para ser mais preciso, o processo de otimização evoluirá para se tornar mais preciso, mais rápido e mais eficiente.
Os mercados são um processo constante de otimização. Desde real & rsquo; ótimo & rsquo; os níveis são áreas, e não pontos exatos, os mercados se movem (não há um nível ótimo exato, de fato, cada tick é o nível mais próximo ao "ótimo" para o mercado).
Portanto, o longo prazo & lsquo; objetivo & rsquo; O ATS verdadeiramente inteligente é a distribuição automatizada, altamente calculada e ideal de recursos em uma economia global conectada eletronicamente pela Internet. O objetivo individual & rsquo; do ATS provavelmente será para especulação e lucro. Mas em seu processo de obtenção de lucro, como eles negociam capital nos mercados, equilibrarão os preços, otimizando assim os preços de mercado e, assim, decidindo quem recebe o quê? no mercado.
Esta conseqüência não intencional de ATS não deve ser desconsiderada; é o alto nível moral de um sistema capitalista sofisticado. Embora o sistema produza muitos perdedores econômicos, também impulsiona o crescimento, a inovação e a especulação, o que impulsiona o desenvolvimento do ATS, que impulsiona o desenvolvimento de uma alocação sistematizada inteligente de recursos.
Assim, enquanto os motivos individuais, desejos e outros fatores humanos emocionais levam os humanos a desenvolver sistemas sofisticados de ATS, o resultado operacional é um sistema mais eficiente e otimizado.
É claro que fatores como a riqueza arbitrária e a destruição de recursos, como visto com o recente colapso econômico, podem derrotar os esforços da ATS.
Exemplos de sistemas de negociação adaptativos.
Este é o ATS mais comum que muitos comerciantes usam e provavelmente não percebem o que estão usando é adaptativo.
EES emprega uma infinidade de parâmetros baseados em volatilidade que são modificados de acordo com a volatilidade. Por exemplo, ao determinar o tamanho do lote, aumentará à medida que a volatilidade diminui. Isso ocorre porque, quando o mercado está menos volátil, há menos movimento de preço, o que significa tanto menos risco quanto menos oportunidade de lucro. Assim, em dias tranquilos, o sistema deve aumentar o tamanho do lote para compensar a falta de oportunidade de negociação. Isso pode ser tão simples quanto usar ATR (Average True Range) e multiplicá-lo por um valor para determinar o tamanho do lote.
V Speed ​​é um indicador que calcula a volatilidade com base nas faixas de preço ao longo do tempo. Isso produz uma variável oscilante, que pode ser usada como um multiplicador para níveis de perda de parada ou tamanhos de lote. Por exemplo, conforme V Speed ​​aumenta, divida o tamanho do lote pelo valor de V Speed ​​(com uma função de normalização para suavizar os resultados para níveis aceitáveis). Isso cria um indicador dinâmico que poderia ser considerado um ATS, porque ele sabe que o & rsquo; se o mercado for mais volátil, negocie tamanhos menores. Se o mercado for menos volátil, negocie tamanhos maiores. Este é um & lsquo; suavização & rsquo; função que pode ser descrita como adaptativa, porque se adapta ao mercado.
Evolução ATS.
Não é difícil especular sobre a evolução do ATS. O que ainda precisa ser desenvolvido e implementado é uma ampla variedade de sistemas de negociação inteligentes que se ajustam com base nas condições do mercado. Uma comunidade global de comerciantes de hobbies subiu do nada em vários anos usando a plataforma Meta Trader 4. Esses operadores desenvolvem principalmente sistemas baseados em regras simples que negociam automaticamente. Enquanto a maioria deles são perdedores, muitos deles são bem sucedidos, e várias técnicas surgiram usando a plataforma 4 que implementam a filosofia ATS.
Um artigo publicado pela 4 Community explica que “supõe-se que um Expert Advisor com insumos ajustado ao histórico trará lucro para o primeiro tempo (bastante curto).
Confirmações indiretas desta sugestão apareceram após eu ter assistido ao Automated Trading Championship 2006.
Quando o Campeonato começou, havia Expert Advisors muito mais lucrativos do que mais tarde, quando alguns deles se tornaram não competitivos. É por isso que suponho que a maioria dos Expert Advisors que não chegaram ao final foram ajustados ao histórico. A ideia de verificar essa suposição na prática nasceu no fórum russo deste site, na seção Ideal Automated Trading System. A idéia principal é iniciar a otimização de um EA automaticamente uma vez por dia e, em seguida, analisar os resultados de otimização obtidos e registrá-los nas variáveis ​​do EA. Para implementar essa idéia, decidimos usar o Expert Advisor, o MACD Sample, pronto para uso, a partir do 4 Terminal do Cliente e inserir nossa própria função de otimização automatizada nele. Um pouco mais tarde, o código desse otimizador automatizado estava pronto e carregado no mesmo fórum, na seção Automated Optimizer. Depois de mais algum tempo, as primeiras confirmações da ideia apareceram no ramo do Automated Optimizer. Mais tarde, o otimizador foi transformado em uma biblioteca mqh para melhor usabilidade. & Rdquo;
Embora o otimizador automatizado não seja um sistema inteligente, certamente não é estático, é mais que dinâmico e tem a maioria dos critérios de um ATS. Este desenvolvimento está crescendo exponencialmente, à medida que o número de 4 traders subiu de dezenas de milhares para milhões em todo o mundo. Como os corretores não publicam seus registros financeiros, essas estatísticas são difíceis de rastrear. O crescimento é inegável. Combinados com acessibilidade de conexões rápidas à internet e alto poder de processamento por um preço baixo, esses fatores poderiam contribuir para uma corrida armamentista eletrônica para criar sistemas automatizados inteligentes para lucro, gerenciamento de dinheiro e diversão (alguns desenvolvedores claramente não desenvolvem sistemas por dinheiro). À medida que sistemas mais inteligentes são desenvolvidos, isso pode afetar os mercados (eles podem já estar afetando o mercado de ações) e a inteligência ante será aumentada, fazendo com que outros sistemas requeiram ajustes e atualizações. O processo de evolução desses sistemas será contínuo; nenhum sistema funcionará sem ser constantemente refinado e reequipado. Automatizar o refino, a otimização e a autoaprendizagem é o objetivo de qualquer ATS bem-sucedido, mas como fazer isso é bem difícil.
À medida que o ATS evolui, o primeiro sistema capaz de se auto-evoluir com sucesso dominará o mercado. Para um sistema como este, praticamente não há limite para o seu sucesso potencial.

Sistemas de negociação adaptativos e seu uso no terminal de 5 clientes.
Introdução.
Centenas de milhares de traders em todo o mundo usam as plataformas de negociação desenvolvidas pela MetaQuotes Software Corp. O principal fator que leva ao sucesso é a superioridade tecnológica baseada na experiência de muitos anos e nas melhores soluções de software.
Muitas pessoas já estimaram novas oportunidades que se tornaram disponíveis com o novo idioma 5. Suas principais características são o alto desempenho e a possibilidade de usar programação orientada a objetos. Além disso, com a aparição do testador de estratégia multi-moeda no terminal de 5 clientes, muitos traders adquiriram ferramentas indevidas para desenvolver, aprender e usar sistemas de negociação complexos.
O Campeonato de Trading Automatizado 2010 começa neste outono; milhares de robôs de negociação escritos em 5 vão participar. Um Expert Advisor que ganhar o máximo lucro durante a competição vencerá. Mas qual estratégia será a mais eficaz?
O testador de estratégia do terminal 5 permite encontrar o melhor conjunto de parâmetros, usando o sistema para obter o máximo lucro durante um período de tempo especificado. Mas isso pode ser feito em tempo real? A idéia do comércio virtual usando várias estratégias em um Expert Advisor foi considerada no artigo "Contest of Expert Advisors dentro de um Expert Advisor", que contém sua implementação em 4.
Neste artigo, mostraremos que a criação e análise de estratégias adaptativas se tornou significativamente mais fácil em 5 devido ao uso de programação orientada a objetos, classes para trabalhar com dados e classes de comércio da Biblioteca Padrão.
1. Estratégias de Negociação Adaptativa.
Os mercados mudam constantemente. As estratégias comerciais precisam de sua adaptação às condições atuais do mercado.
Os valores dos parâmetros que proporcionam a máxima rentabilidade da estratégia podem ser encontrados sem utilizar a otimização através de alteração sequencial de parâmetros e análise dos resultados dos testes.
A Figura 1 demonstra as curvas de patrimônio para dez Expert Advisors (MA_3. MA_93); cada um deles negociado pela estratégia de médias móveis, mas com períodos diferentes (3,13. 93). O teste foi realizado no EURUSD H1, o período de testes é 4.01.2010-20.08.2010.
Figura 1. Diagramas de curvas de capital próprio de dez Expert Advisors na conta.
Como você pode ver na Figura 1, os Expert Advisors tiveram quase os mesmos resultados durante as duas primeiras semanas de trabalho, mas seus lucros começaram a divergir significativamente. No final do período de testes, os melhores resultados de negociação foram mostrados pelos Expert Advisors com os períodos 63, 53 e 43.
O mercado escolheu os melhores. Por que não devemos seguir a sua escolha? E se combinarmos todas as dez estratégias em um único Expert Advisor, fornecer a possibilidade de negociação "virtual" para cada estratégia e periodicamente (por exemplo, no início de cada nova barra) determinar a melhor estratégia para a negociação e comércio reais de acordo com seus sinais?
Os resultados da estratégia adaptativa obtida são mostrados na Figura 2. A curva patrimonial da conta com negociação adaptativa é mostrada com a cor vermelha. Note que durante mais de meio período a forma de curva de capital para a estratégia adaptativa é a mesma que a da estratégia MA_63, que finalmente parece ser a vencedora.
Figura 2. Curvas de equidade na conta com a estratégia adaptativa que usa sinais de 10 sistemas de negociação.
As curvas de balanço têm a dinâmica similar (Fig. 3):
Figura 3. Curvas de equilíbrio da estratégia adaptativa que utiliza sinais de 10 sistemas de negociação.
Se nenhuma das estratégias for lucrativa no momento, os sistemas adaptativos não devem realizar operações de comércio. O exemplo de tal caso é mostrado na fig. 4 (período de 4 a 22 de janeiro de 2010).
Figura 4. Período de tempo em que a estratégia adaptativa parou de abrir novas posições devido à ausência de estratégias lucrativas.
A partir de janeiro de 2010, a melhor eficácia é mostrada pela estratégia MA_3. Como o MA_3 (azul) tinha o montante máximo de dinheiro ganho naquele momento, a estratégia adaptativa (vermelho) seguia seus sinais. No período de 8 a 20 de janeiro, todas as estratégias consideradas tiveram um resultado negativo, por isso a estratégia adaptativa não abriu novas posições de mercado.
Se todas as estratégias tiverem um resultado negativo, é melhor ficar longe da negociação. Esta é a coisa significativa que permite parar o comércio não rentável e manter seu dinheiro economizar.
2. Implementação da Estratégia de Negociação Adaptativa.
Nesta seção, vamos considerar a estrutura da estratégia adaptativa que realiza a negociação "virtual" usando várias estratégias de negociação simultaneamente e escolhe a mais lucrativa para negociação real de acordo com seus sinais. Observe que o uso da abordagem orientada a objetos facilita a solução desse problema.
Primeiro de tudo vamos investigar o código do Expert Advisor adaptativo, então vamos dar uma olhada detalhada no CAdaptiveStrategy onde a funcionalidade do sistema adaptativo é implementada, e então vamos mostrar a estrutura da classe CSampleStrategy - a classe base das estratégias de negociação onde a funcionalidade da negociação virtual é implementada.
Além disso, vamos considerar o código de dois de seus filhos - as classes CStrategyMA e CStrategyStoch que representam as estratégias de negociação por médias móveis e o oscilador estocástico. Depois de analisar sua estrutura, você poderá escrever e adicionar facilmente suas próprias turmas que realizam suas estratégias.
2.1. Código do Expert Advisor.
O código do Expert Advisor parece muito simples:
As três primeiras linhas definem as propriedades do programa e, em seguida, vem a diretiva #include que informa ao pré-processador para incluir o arquivo CAdaptiveStrategy. mqh. Os colchetes de ângulo especificam que o arquivo deve ser retirado do diretório padrão (normalmente, é terminal_pasta \ 5 \ Include).
A próxima linha contém a declaração do objeto Adaptive_Expert (instância da classe CAdaptiveStrategy); e o código das funções OnInit, OnDeinit e OnTick do Expert Advisor consiste nas chamadas das funções correspondentes Expert_OnInit, Expert_OnDeInit e Expert_OnTick e o objeto Adaptive_Expert.
2.2. A classe CAdaptiveStrategy.
A classe do Advisor Expert adaptativo (classe CAdaptiveStrategy) está localizada no arquivo CAdaptiveStrategy. mqh. Vamos começar com os arquivos include:
O motivo pelo qual incluímos o arquivo ArrayObj. mqh é a conveniência de trabalhar com classes de estratégias diferentes usando o objeto da classe CArrayObj, que representa uma matriz dinâmica de ponteiros para as instâncias de classe geradas pela classe base CObject e seus filhos. Este objeto será o array m_all_strategies, será utilizado um "container" de estratégias de negociação.
Cada estratégia é representada como uma classe. Neste caso, incluímos os arquivos que contêm as classes CStrategyMA e CStrategyStoch, que representam as estratégias de negociação por médias móveis e negociação pelo oscilador estocástico.
Para solicitar propriedades de posições atuais e para realizar operações de negociação, usaremos as classes CPositionInfo e CTrade da biblioteca Standard, é por isso que incluímos os arquivos PositionInfo. mqh e Trade. mqh.
Vamos dar uma olhada na estrutura da classe CAdaptiveStrategy.
Para implementar uma abordagem unificada aos objetos de classes diferentes, as estratégias de negociação (ou melhor, as instâncias de suas classes) são armazenadas no array dinâmico m_all_strategies (do tipo CArrayObj), que é usado como um "container" de classes do tipo. estratégias. Esta é a razão pela qual a classe de estratégias de negociação SampleStrategy é gerada a partir da classe CObject.
A função ProceedSignalReal implementa a "sincronização" da direção e do volume de uma posição real com a direção e o volume fornecidos:
Observe que é mais fácil trabalhar com a posição comercial usando as classes de negociação. Usamos os objetos das classes CPositionInfo e CTrade para solicitar as propriedades de posição de mercado e para executar operações comerciais respectivamente.
A função RealPositionDirection solicita os parâmetros da posição real aberta e retorna sua direção:
Agora vamos dar uma olhada nas principais funções da classe СAdaptiveStrategy.
Vamos começar com a função Expert_OnInit:.
O conjunto de estratégias de negociação é preparado na função Expert_OnInit. Primeiro de tudo, o objeto da matriz dinâmica m_all_strategies é criado.
Neste caso, criamos dez instâncias da classe CStrategyMA. Cada um deles foi inicializado (neste caso, definimos períodos diferentes e permitimos negociação "virtual") usando a função de inicialização.
Então, usando a função SetStrategyInfo, definimos o instrumento financeiro, o nome da estratégia e o comentário.
Se necessário, usando a função Set_Stops (TP, SL), podemos especificar um valor (em pontos) de Take Profit e Stop Loss, que será executado durante a negociação "virtual". Nós temos esta linha comentada.
Depois que a classe de estratégia é criada e ajustada, nós a adicionamos ao contêiner m_all_strategies.
Todas as classes de estratégias de negociação devem ter a função CheckTradeConditions () que executa as verificações das condições de negociação. Na classe da estratégia adaptativa, essa função é chamada no início de cada nova barra, assim, damos às estratégias a possibilidade de verificar os valores dos indicadores e realizar as operações de negociação "virtuais".
Em vez de dez médias móveis especificadas (3, 13, 23. 93) podemos adicionar centenas de médias móveis (instâncias se a classe CStrategyMA):
Ou podemos adicionar as classes de estratégia que funcionam pelos sinais do oscilador estocástico (instâncias da classe CStrategyStoch):
Neste caso, o contêiner inclui 10 estratégias de médias móveis e 5 estratégias do oscilador estocástico.
As instâncias de classes de estratégias de negociação devem ser os filhos da classe CObject e devem conter a função CheckTradeConditions (). É melhor herdá-los da classe CSampleStrategy. As classes que implementam estratégias comerciais podem ser diferentes e seu número não é limitado.
A função Expert_OnInit termina com a lista de estratégias que estão presentes no contêiner m_all_strategies. Observe que todas as estratégias no contêiner são consideradas como filhos da classe CSampleStrategy. As classes de estratégias de negociação CStrategyMA e CStrategyStoch também são seus filhos.
O mesmo truque é usado na função Expert_OnDeInit. No container, chamamos a função SaveVirtualDeals para cada estratégia; Ele armazena o histórico de transações virtuais realizadas.
Usamos o nome da estratégia para o nome do arquivo que é passado como um parâmetro. Em seguida, desinicializamos as estratégias chamando a função Deinitialization () e excluindo o contêiner m_all_strategies:
Se você não precisa saber sobre os negócios virtuais realizados pelas estratégias, remova a linha em que tStrategy. SaveVirtualDeals é chamado. Observe que, ao usar o testador de estratégia, os arquivos são salvos no diretório / tester_directory / Files /.
Vamos considerar a função Expert_OnTick da classe CAdaptiveStrategy que é chamada toda vez que um novo tick aparece:
O código é muito simples. Cada estratégia, localizada no contêiner, deve ser capaz de recalcular o resultado financeiro atual de suas posições virtuais usando os preços atuais. Isso é feito chamando a função UpdatePositionData (). Aqui, mais uma vez, chamamos as estratégias de herdeiros da classe CSampleStrategy.
Todas as operações de negociação são realizadas no início de uma nova barra (a função IsNewBar () permite determinar este momento, bem como os outros métodos de verificação da nova barra). Neste caso, o fim da formação de uma barra significa que todos os dados da barra anterior (preços e valores de indicadores) não serão mais alterados, de modo que possam ser analisados ​​na correspondência com as condições de negociação. Para todas as estratégias, damos a oportunidade de realizar essa verificação e executar suas operações de comércio virtual, chamando sua função CheckTradeConditions.
Agora devemos encontrar a estratégia mais bem sucedida entre todas as estratégias no array m_all_strategies. Para fazê-lo, usamos o array Performance [], os valores retornados pela função StrategyPerformance () de cada estratégia são colocados nele. A classe base CSampleStrategy contém essa função como a diferença entre os valores atuais da equidade e do saldo "virtuais".
A busca do índice da estratégia mais bem sucedida é realizada usando a função ArrayMaximum. Se a melhor estratégia tem um lucro negativo no momento e não tem posições reais abertas, então é melhor não negociar, essa é a razão pela qual saímos da função (veja a seção 1).
Além disso, solicitamos a direção da posição virtual dessa estratégia (best_direction). Se for diferente da direção atual da posição real, a direção atual da posição real será corrigida (usando a função ProceedSignalReal) de acordo com a direção best_direction.
2.3. Classe CSampleStrategy.
As estratégias colocadas no contêiner m_all_strategies foram consideradas como herdeiras da classe CSampleStrategy.
Esta classe é a base para as estratégias de comércio; contém a implementação de negociação virtual. Neste artigo, vamos considerar um caso simplificado de implementação de negociação virtual, os swaps não são levados em consideração. As classes de estratégias de negociação devem ser herdadas da classe CSampleStrategy.
Vamos mostrar a estrutura dessa classe.
Não analisaremos sua descrição detalhada, informações adicionais podem ser encontradas no arquivo CSampleStrategy. mqh. Lá você também pode encontrar a função de verificar a nova barra - IsNewBar.
3. Classes de Estratégias Comerciais.
Esta seção é dedicada à estrutura de classes de estratégias de negociação que são usadas no Expert Advisor adaptativo.
3.1. Classe CStrategyMA - Estratégia de Negociação por Médias Móveis.
A classe CStrategyMA é filha da classe CSampleStrategy, onde toda a funcionalidade da negociação virtual é implementada.
A seção protegida contém variáveis ​​internas que serão usadas na classe da estratégia. São eles: m_handle - identificador do indicador iMA, m_period - período da média móvel, m_values ​​[] - array que será usado na função CheckTradeConditions para obter os valores atuais do indicador.
A seção pública contém três funções que fornecem a implementação da estratégia comercial.
Função de inicialização. A estratégia é inicializada aqui. Se você precisar criar indicadores, crie-os aqui.
O conceito é simples - com base nos estados do indicador e nos preços, o tipo de sinal (new_state) é determinado, então o estado atual da negociação virtual é solicitado (usando a função GetSignalState); e se não forem iguais, a função SetSignalState é chamada para "corrigir" a posição virtual.
3.2. Classe CStrategyStoch - a estratégia de negociação pelo estocástico.
O código da classe que executa a negociação com base na interseção das linhas principal e de sinal do oscilador iStochastic é dado abaixo:
Como você pode ver, as únicas diferenças entre a estrutura da classe CStrategyStoch e a da CStrategyMA são a função de inicialização (parâmetros diferentes), o tipo de indicador usado e os sinais de negociação.
Assim, para usar suas estratégias no Expert Advisor adaptativo, você deve reescrevê-las na forma de classes desse tipo e carregá-las no contêiner m_all_strategies.
4. Resultados da Análise das Estratégias de Comércio Adaptativo.
Nesta seção, discutiremos vários aspectos do uso prático das estratégias adaptativas e os métodos para melhorá-las.
4.1. Aprimorando o sistema com estratégias que usam sinais inversos.
As médias móveis não são boas quando não há tendências. Já encontramos esse tipo de situação - na figura 3, você pode ver que não houve tendência no período de 8 a 20 de janeiro; Assim, todas as 10 estratégias que usam médias móveis na negociação tiveram uma perda virtual. O sistema adaptativo parou de negociar como resultado da ausência de uma estratégia com quantidade positiva de dinheiro ganho. Existe alguma maneira de evitar esse efeito negativo?
Vamos adicionar às nossas 10 estratégias (MA_3, MA_13, MA_93) outras 10 classes CStrategyMAinv, cujos sinais de negociação são invertidos (as condições são as mesmas, mas SIGNAL_OPEN_LONG / SIGNAL_OPEN_SHORT e SIGNAL_CLOSE_LONG / SIGNAL_CLOSE_SHORT trocaram seus lugares). Assim, além de dez estratégias de tendência (instâncias da classe CStrategyMA), temos outras dez estratégias de contra-tendência (instâncias da classe CStrategyMAinv).
O resultado do uso do sistema adaptativo que consiste em vinte estratégias é mostrado na figura 5.
Figura 5. Diagramas de equidade por conta da estratégia adaptativa que utiliza 20 sinais de negociação: 10 médias móveis CAdaptiveMA e 10 "espelhadas" CAdaptiveMAinv.
Como você pode ver na figura 5, durante o período em que todas as estratégias do CAdaptiveMA tiveram um resultado negativo, seguir as estratégias do CAdaptiveMAinv permitiu que o Expert Advisor evitasse rebotes indesejados logo no início da negociação.
Figura 6. Período de tempo em que a estratégia adaptativa utilizou os sinais das estratégias CAdaptiveMAinv de "contra-tendência".
Esse tipo de abordagem pode parecer inaceitável, já que perder o depósito é apenas uma questão de tempo ao usar uma estratégia de contra-tendência. No entanto, no nosso caso, não estamos limitados a uma única estratégia. O mercado sabe melhor quais estratégias são eficazes no momento.
O lado forte dos sistemas adaptativos é o mercado sugere por si só qual estratégia deve ser usada e quando deve ser usada.
Dá a possibilidade de abstrair da lógica das estratégias - se uma estratégia é eficaz, então o modo como ela funciona não tem significado. A abordagem adaptativa usa o único critério de sucesso de uma estratégia - sua eficácia.
4.2. Vale a pena inverter os sinais da pior estratégia?
O truque com a inversão mostrado acima leva a um pensamento sobre a possível possibilidade de usar os sinais da pior estratégia. Se uma estratégia não é rentável (e a pior delas), então podemos obter lucro agindo de forma inversa?
Podemos transformar uma estratégia perdida em lucrativa por uma simples mudança de seus sinais? Para responder a essa pergunta, precisamos alterar ArrayMaximum com ArrayMinimum na função Expert_OnTick () da classe CAdaptiveStrategy, bem como implementar a mudança de direção multiplicando o valor da variável BestDirection por -1.
Além disso, precisamos comentar a limitação do comércio virtual em caso de eficácia negativa (já que vamos analisar o resultado da pior estratégia):
O diagrama de equidade do Expert Advisor adaptativo que usa os sinais invertidos da pior estratégia é mostrado na figura 7:
Figura 7. Diagramas de equidade nas contas de dez estratégias e o sistema adaptativo que utiliza os sinais invertidos do pior sistema.
Neste caso, a estratégia menos bem sucedida na maior parte do tempo foi aquela baseada na intersecção de médias móveis com o período 3 (MA_3). Como você pode ver na figura 7, a correlação reversa entre MA_3 (de cor azul) e a estratégia adaptativa (de cor vermelha) existe, mas o resultado financeiro do sistema adaptativo não impressiona.
Copiar (e reverter) os sinais da pior estratégia não leva a melhorar a eficácia da negociação.
4.2. Por que o Bunch of Moving Averages não é tão eficaz quanto parece?
Em vez de 10 médias móveis, você pode usar muitas delas adicionando outras centenas de estratégias CStrategyMA com períodos diferentes ao contêiner m_all_strategies.
Para fazer isso, mude ligeiramente o código na classe CAdaptiveStrategy:
No entanto, você deve entender que as médias móveis próximas inevitavelmente se cruzam; o líder mudará constantemente; e o sistema adaptativo mudará seus estados e abrir / fechar posições mais freqüentemente do que é necessário. Como resultado, as características do sistema adaptativo se tornarão piores. Você pode se certificar por conta própria comparando as características estatísticas do sistema (a aba "Resultados" do testador de estratégias).
É melhor não fazer sistemas adaptativos baseados em muitas estratégias com parâmetros próximos.
5. O que deve ser considerado
O contêiner m_all_strategies pode ter milhares de instâncias de estratégias sugeridas incluídas, você pode até adicionar todas as estratégias com diferentes parâmetros; no entanto, para vencer o Campeonato de Negociação Automática 2010, você precisa desenvolver o sistema avançado de gerenciamento de dinheiro. Observe que usamos o volume de negociação igual a 0,1 lotes para testar dados de histórico (e no código de classes).
5.1 Como aumentar a lucratividade do Expert Advisor Adaptativo?
A classe CSampleStrategy tem a função virtual MoneyManagement_CalculateLots:
Para gerenciar o volume para negociação, você pode usar as informações estatísticas sobre os resultados e características dos negócios virtuais registrados no array m_deals_history [].
Se você precisar aumentar o volume (por exemplo, dobrá-lo se os últimos negócios virtuais em m_deals_history [] forem lucrativos ou diminuí-lo), altere o valor retornado da maneira correspondente.
5.2 Usando as estatísticas de ofertas para o cálculo do desempenho da estratégia.
A função StrategyPerformance (), implementada na classe CSampleStrategy, destina-se ao cálculo do desempenho da estratégia,
A fórmula de eficácia de uma estratégia pode ser mais complexa e, por exemplo, incluir a eficácia de entrar, sair, a eficácia de negócios, lucros, rebaixamentos, etc.
O cálculo da efetividade da entrada, saída e da efetividade das ofertas (os campos entry_eff, exit_eff e trade_eff das estruturas da matriz m_deals_history []) é executado automaticamente durante a negociação virtual (veja a classe CSampeStrategy). Essa informação estatística pode ser usada para criar suas próprias taxas mais complexas de eficácia da estratégia.
Por exemplo, como uma característica de eficácia, você pode usar o lucro das últimas três transações (use o campo pos_Profit no arquivo de transações m_deals_history []):
Se você quiser alterar essa função, altere-a apenas na classe CSampleStrategy, ela deve ser a mesma para todas as estratégias de negociação do sistema adaptativo. No entanto, você deve se lembrar que a diferença entre Equity e Balance também é um bom fator de eficácia.
5.3 Usando o Take Profit e o Stop Loss.
Você pode alterar a eficácia dos sistemas de negociação definindo níveis fixos de parada (isso pode ser feito chamando a função Set_Stops; ela permite definir os níveis de parada em pontos para negociação virtual). Se os níveis forem especificados, o fechamento de posições virtuais será realizado automaticamente; essa funcionalidade é implementada na classe CSampleStrategy.
Em nosso exemplo (veja 2.2, a função de classes de médias móveis), a função de definir níveis de parada é comentada.
5.4. Zerar Periódico do Lucro Virtual Cumulativo.
A abordagem adaptativa tem a mesma desvantagem que as estratégias comuns. Se a estratégia líder começa a perder, o sistema adaptativo também começa a perder. Essa é a razão pela qual às vezes você precisa "zerar" os resultados do trabalho de todas as estratégias e fechar todas as suas posições virtuais.
Para fazer isso, as seguintes funções são implementadas na classe CSampleStrategy:
O CheckPoint deste tipo pode ser usado de tempos em tempos, por exemplo, após cada N barras.
Você deve se lembrar que o sistema adaptativo não é um graal (USDJPY H1, 4.01.2010-20.08.2010):
Figura 8. Curvas de equilíbrio e patrimônio do sistema adaptativo que usa os sinais das melhores de 10 estratégias (USDJPY H1)
As curvas de equidade de todas as estratégias são mostradas na figura 9.
Figura 9. Curvas de equidade na conta com o sistema adaptativo baseado em 10 estratégias (USDJPY H1)
Se não houver estratégias lucrativas no sistema adaptativo, usá-las não é efetivo. Use estratégias lucrativas.
Devemos considerar outra coisa importante e interessante. Preste atenção ao comportamento da estratégia adaptativa no início da negociação:
Figura 10. Curvas de equidade na conta com 10 estratégias da estratégia adaptativa.
No início, todas as estratégias tiveram resultados negativos e a estratégia adaptativa parou de negociar; então começou a alternar entre estratégias que tiveram um resultado positivo; e então todas as estratégias se tornaram não-lucrativas novamente.
Todas as estratégias têm o mesmo equilíbrio no começo. E somente depois de um tempo, uma ou outra estratégia se torna líder; portanto, é recomendado definir uma limitação na estratégia adaptativa para evitar negociar nas primeiras barras. Para fazer isso, complemente a função Expert_OnTick da classe CAdaptiveStrategy com uma variável, cujo valor é aumentado toda vez que uma nova barra chegar.
No começo, até que o mercado escolha a melhor estratégia, você deve ficar longe da negociação real.
Conclusões
Neste artigo, consideramos um exemplo do sistema adaptativo que consiste em várias estratégias, cada uma das quais faz suas próprias operações de comércio "virtuais". A negociação real é realizada de acordo com os sinais de uma estratégia mais rentável no momento.
Graças ao uso da abordagem orientada a objetos, classes para trabalhar com classes de dados e de comércio da biblioteca Padrão, a arquitetura do sistema pareceu ser simples e escalonável; Agora você pode criar e analisar facilmente os sistemas adaptativos que incluem centenas de estratégias comerciais.
P. S. Para a análise de conveniência do comportamento de sistemas adaptativos, a versão de depuração da classe CSampleStrategy está anexada (o archive adaptive-systems-mql5-sources-debug-en. zip). A diferença desta versão é a criação de arquivos de texto durante seu funcionamento; eles contêm os relatórios resumidos sobre a dinâmica da mudança do equilíbrio / patrimônio virtual das estratégias incluídas no sistema.
Traduzido do russo por MetaQuotes Software Corp.

Sistemas de negociação adaptativos
Sistemas de negociação Swing adaptáveis:
Workshop Avançado de Negociação.
Neste novo workshop de três dias, o Dr. Ken Long apresenta uma série de sistemas de negociação avançados e adaptáveis ​​que funcionam bem no período de tempo de espera - de dois dias a duas semanas.
Clique para preços ou para registrar.
Sistemas de Negociação Adaptativa & ndash; Um rápido Q & amp; UMA.
O que é um sistema de negociação adaptativo?
Os sistemas de negociação adaptativos têm regras e parâmetros de regras que se ajustam às condições de mercado e às condições de preço, em vez de permanecerem constantes.
Quais parâmetros de regra funcionam melhor, adaptativos ou mecânicos?
Ambos funcionam bem, eles apenas funcionam de maneira diferente. As regras mecânicas são mais facilmente entendidas, são mais fáceis de programar e são mais fáceis de executar. Os sistemas baseados em regras mecânicas normalmente não se ajustam às condições de mercado variáveis ​​e, portanto, estão fora do mercado nos momentos em que os critérios de condição não são atendidos. Estes são os tipos de sistemas detalhados no Curso de Elearning de Swing Trading.
As regras adaptativas requerem uma melhor compreensão pelo comerciante da ação do preço, do self e do mercado. Esses sistemas também podem levar mais tempo para monitorar e executar.
Agora você tem dois Workshops Swing, um ao vivo e um recado. Que curso devo fazer, o curso de negociação de swing online ou o workshop de negociação de swing ao vivo?
Não há uma resposta simples porque os cursos abrangem diferentes sistemas em diferentes níveis de conhecimento e experiência assumidos. Se você ainda não negociou muito ou se ainda não foi rentável durante algum tempo, Ken recomenda que os traders comecem como ele fez com sistemas baseados em regras mecânicas.
Sistemas mecânicos e baseados em regras são os tipos de sistemas ensinados no curso de e-learning Swing Trading Systems. Uma vez que você é competente negociando esses tipos de sistemas, então você pode progredir para os sistemas adaptativos & mdash; se você quiser. Há um nível de habilidade ou ofício e conhecimento que você desenvolverá a partir da experiência de seguir suas regras, o que prova seu valor à medida que você entra em negociações menos mecânicas.
Se você já está negociando há algum tempo, especialmente os sistemas de negociação de swing ou day trading do Ken, você descobrirá que os sistemas avançados do workshop de swing são uma extensão do que você já vem fazendo.
Se eu não tenho negociado há muito tempo ou não tenho negociado mais sistemas mecânicos, ainda posso participar?
Com um aviso & mdash; Este é um workshop técnico avançado destinado a traders com um nível intermediário ou avançado de experiência. Ken seguirá em ritmo acelerado neste workshop, concentrando-se em tópicos mais avançados, em vez de tópicos introdutórios. Comerciantes mais novos se sentirão em desvantagem no workshop. Fazer o curso Swing Elearning seria um caminho muito melhor para os novos operadores.
Preciso fazer algum outro curso ou workshop antes deste?
Não, nenhum outro curso é necessário como um pré-requisito. Recomendamos que você tenha participado de um workshop anterior de negociação de giro, de um workshop de negociação diária ou de ter concluído o curso de elearning de negociação de giro. Quanto mais experiência de negociação ou conhecimento você tiver, mais você se beneficiará com esse workshop avançado e mais provavelmente negociará eficazmente esses sistemas avançados depois de voltar para casa. Estamos oferecendo um desconto atraente no curso Swing Elearning para os participantes deste workshop. Mas entenda, este workshop avançado não é uma extensão dos sistemas no curso de elearning, mas sim sistemas completamente diferentes com objetivos diferentes.
Qual é o desconto no curso de Swing Elearning para os participantes deste workshop ao vivo?
Quando você se inscrever para este workshop, você terá a opção de comprar o E-Course do Swing Trading Systems por mais de 20% de desconto. O Ecourse é de US $ 2.540, mas quando você se inscrever para este workshop, você terá a opção de comprar por US $ 1.995. Este é o menor preço que oferecemos no estudo em casa.
Lembre-se, tomar o e-curso primeiro é dar-lhe mais experiência em conhecimento de negociação. Os Sistemas de Balanço Adaptativo ensinados na oficina NÃO SÃO SIMILARES para os sistemas no curso E. O E-Course NÃO é requerido para o workshop, mas a experiência de negociação é.
Neste vídeo de 4 minutos, Ken discute as condições de mercado desafiadoras para os sistemas de negociação swing no segundo semestre de 2015 e no primeiro semestre de 2016. Ken tem evoluído seu pensamento sobre sistemas e estratégias, de estritamente mecânico a mais adaptável. Ele discute essas ideias no vídeo a seguir.
Durante anos, Ken tem procurado linhas de regressão para ajudá-lo a entender as tendências mais amplas do mercado. Recentemente, ele começou a aplicar métodos de regressão linear a índices individuais e a preços de ações individuais para ver o que poderia encontrar. Ken está constantemente descobrindo o que funciona e, em seguida, estendendo-o. Ele sabia que uma linha de regressão dava a melhor descrição linear de um conjunto de dados usando sua inclinação, e sua figura R2 fornecia informações muito úteis. Não se preocupe se você não entender estes termos ou estatísticas básicas - apenas saiba que as linhas de regressão podem ser muito úteis quando aplicadas em um sistema de negociação apropriado. Na linguagem mais simples, eles funcionam!
Como a maioria dos traders, Ken tem ouvido falar bastante sobre sistemas baseados em crossover de médias móveis ao longo dos anos. A ideia tem muito mérito para encontrar oportunidades de curto prazo dentro de tendências de longo prazo. Isto é, quando há tendências. Um grande problema para a movimentação de sistemas de crossover médios é o período fixo. Os comerciantes podem ficar "picados" & rdquo; quando o preço sobe e desce, fazendo com que as médias se cruzem e depois voltem novamente. Ken se perguntou se as linhas de regressão funcionariam melhor. Eles fizeram & ndash; mas não é bom o suficiente para ter um ótimo sistema de negociação ainda.
Depois de pensar mais, uma boa quantidade de pesquisa e testar várias estratégias, Ken encontrou dois insumos adicionais que acrescentaram muita confiança aos seus sinais de entrada e saída. O primeiro trabalho de Ken negociou o conceito por um tempo e então começou um teste de negociação de protótipo com pequenas posições de dinheiro real e períodos de posse intraday. Conforme ele negociava e evoluía os conceitos, eles ganharam mais clareza e evoluíram para uma estrutura para um tipo de negociação com várias entradas possíveis e várias saídas possíveis. Hoje, ele negocia várias variações de crosslines de regressão de linha (RLCO) em uma base intraday com um & ldquo; nível de produção & rdquo; estratégia de dimensionamento de posição.

Sistemas de negociação adaptativos
O PowerFlow é um sistema de negociação de moeda totalmente automatizado e pode ser usado com todos os corretores que suportem a plataforma de negociação Meta Trader. Sua lógica algorítmica é baseada em leis físicas universais e se adapta às condições de mercado em constante mudança automaticamente. Isso torna o sistema muito robusto, mantém o risco nos níveis mais baixos possíveis e maximiza o potencial de lucro ao mesmo tempo.
ProFx 5.0 é um sistema de negociação forex semi-automatizado baseado em ação de preço e momentum. O software analisa continuamente as condições técnicas e fundamentais do mercado em vários prazos e fornece sinais de negociação precisos. Construído em recursos como o dinheiro adaptativo, take profit e stop loss management explica por que a ProFx é um dos softwares mais populares entre os traders de câmbio.
Anos no negócio.
Nossos principais recursos.
Corretora Independente.
Nossos sistemas de negociação Forex e ferramentas gratuitas podem ser usados ​​com todos os corretores que suportam negociar com a popular plataforma Meta Trader. Atualmente, a plataforma é suportada por mais de 98% de todos os corretores.
Atualizações gratuitas.
Nossa equipe trabalha continuamente em melhorias e recursos adicionais para a nossa gama de sistemas de negociação de moeda. Como nosso cliente, você receberá atualizações de build e regularmente e de forma totalmente gratuita.
Estamos aqui por você.
O sucesso ou o fracasso depende de sua mentalidade, das ferramentas certas e de ter alguém por perto que esteja realmente interessado em seu sucesso. Estamos aqui para você e fornecer suporte por e-mail, fórum, bate-papo e conexões remotas.
Política de Reembolso Incondicional.
Tornar-se nosso cliente é um processo livre de risco. É porque o seu pedido é apoiado pela nossa política incondicional de reembolso "Sem perguntas". Se você não estiver 100% satisfeito com isso, informe-nos e emitiremos um reembolso total.
Auto Adaptativo.
Volatilidade, Tendências, Ação de Preços. Essas e outras condições de mercado mudam continuamente. Nossos sistemas monitoram as condições de negociação e se adaptam automaticamente, resultando em resultados comerciais mais consistentes.
Fácil de usar.
Todos os nossos sistemas de negociação Forex vêm interface de usuário intuitiva e uma documentação detalhada. Isso garante que você possa começar a usá-las eficientemente desde o início, sem a necessidade de passar horas estudando as configurações.
O que nossos clientes dizem
Indicadores Forex Gratuitos.
FxPulse 4.0.
Fx Pulse 4.0 fornece-lhe em tempo real Forex News e dados econômicos em seu idioma. Além disso, permite filtrá-los e interpretar os dados para você. Isso significa que você saberá imediatamente se as notícias são positivas ou negativas para o par de moedas. Em última análise, isso leva a decisões comerciais mais rápidas, melhores e mais lucrativas quando é mais importante. Baixe sua cópia agora, é grátis e sempre será.
Forex Insider.
Forex Insider é um aplicativo Meta Trader que permite que você veja as posições de negociação de outros comerciantes de moeda. Ele permite que você detecte desequilíbrios de ordem, condições extremas de sobrevenda / sobrecompra e aperte movimentos antes que eles aconteçam. Experimente por si mesmo. Estamos certos que você vai adorar a vantagem extra que o Forex Insider lhe oferece. Assim como o Fx Pulse 4.0, o Forex Insider é 100% gratuito e sempre será.

Sistemas de negociação adaptativos
CRIATIVO. INTELIGENTE. ADAPTATIVO
& # 65279; & # 65279; Sistemas sofisticados de negociação e investimento.
Esta coleção de modelos oferece oportunidades não correlacionadas que persistem em todas as condições de mercado. As estratégias resultantes podem ser aplicadas em classes de ativos e mercados globais. Em mercados altamente líquidos e em constante mudança, é essencial ter uma metodologia adaptativa. Nosso objetivo é fornecer retornos absolutos elevados, consistentes com o gerenciamento eficaz de riscos.

Комментариев нет:

Отправить комментарий