Monday 18 December 2017

Adaptive trading strategies


MetaTrader 5 - Sistemas de Negociação Sistemas Adaptativos de Negociação e Seu Uso no Terminal de MetaTrader 5 Introdução As centenas de milhares de comerciantes em todo o mundo usam as plataformas de negociação desenvolvidas pela MetaQuotes Software Corp. O fator chave que leva ao sucesso é a superioridade tecnológica baseada no Experiência de muitos anos e as melhores soluções de software. Muitas pessoas já estimaram novas oportunidades que se tornaram disponíveis com a nova linguagem MQL5. Suas principais características são o alto desempenho ea possibilidade de usar a programação orientada a objetos. Além disso, com a aparição do testador de estratégia multi-moeda no terminal do cliente MetaTrader 5, muitos comerciantes adquiriram ferramentas exclusivas para desenvolver, aprender e usar sistemas de negociação complexos. Automated Trading Championship 2018 começa este Outono milhares de robôs comerciais escritos em MQL5 vão participar nele. Um Expert Advisor que ganha o máximo de lucro durante a competição vai ganhar. Mas qual estratégia aparecerá a mais eficaz? O testador de estratégia do MetaTrader 5 terminal permite encontrar o melhor conjunto de parâmetros, usando o qual o sistema ganha a quantidade máxima de lucro durante um período de tempo especificado. Mas 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 Concurso de Consultores Especialistas dentro de um artigo Expert Advisor, que contém a sua implementação em MQL4. Neste artigo, vamos mostrar que a criação e análise de estratégias adaptativas tornou-se significativamente mais fácil em MQL5 devido ao uso de programação orientada a objetos. Classes para trabalhar com dados e classes comerciais da Biblioteca Padrão. 1. Adaptive Trading Strategies Os mercados mudam constantemente. As estratégias comerciais precisam de sua adaptação às atuais condições de mercado. Os valores dos parâmetros que dão a rentabilidade máxima da estratégia podem ser encontrados sem usar a otimização através da mudança seqüencial de parâmetros e análise dos resultados dos testes. A Figura 1 demonstra as curvas patrimoniais para dez Consultores Especialistas (MA3, MA93), cada um deles negociado pela estratégia de médias móveis, mas com períodos diferentes (3,13.93). O teste foi realizado em EURUSD H1, o período de teste é 4.01.2018-20.08.2018. Como pode ver na Figura 1, os Expert Advisors tiveram quase os mesmos resultados durante as duas primeiras semanas de trabalho, mas os seus lucros começaram a divergir significativamente. No final do período de teste, os melhores resultados comerciais 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 o real Negociação e comércio de acordo com seus sinais Os resultados da estratégia de adaptação obtidos são mostrados na Figura 2. A curva de equidade da conta com negociação adaptativa é mostrada com a cor vermelha. Note-se, que durante mais de metade do período a forma de curva de equidade para a estratégia de adaptação é o mesmo que o da estratégia MA63, que apareceu para ser finalmente o vencedor. Figura 2. Curvas de equidade na conta com a estratégia adaptativa que utiliza sinais de 10 sistemas de comércio As curvas de equilíbrio têm a dinâmica similar (Figura 3): Figura 3. Curvas de equilíbrio da estratégia adaptativa que usa sinais de 10 sistemas de comércio Se nenhum Das estratégias é rentável no momento, os sistemas adaptativos não devem realizar operações comerciais. O exemplo de tal caso é mostrado na fig. 4 (período de 4 a 22 de janeiro de 2018). Figura 4. O período em que a estratégia adaptativa parou de abrir novas posições devido à ausência de estratégias rentáveis ​​A partir de janeiro de 2018, a melhor estratégia é a estratégia MA3. Como o MA3 (azul) tinha a quantidade máxima de dinheiro ganhada naquele momento, a estratégia adaptativa (vermelha) seguiu seus sinais. No período de 8 a 20 de janeiro todas as estratégias consideradas tiveram um resultado negativo, é por isso que a estratégia adaptativa não abriu novas posições comerciais. Se todas as estratégias têm um resultado negativo, é melhor ficar longe de negociação. Esta é a coisa significativa que permite parar negociação não rentável e manter o seu dinheiro salvar. 2. Implementação da Estratégia de Negociação Adaptativa Nesta seção, vamos considerar a estrutura da estratégia adaptativa que realiza o comércio virtual usando simultaneamente várias estratégias comerciais e escolhe a mais rentável para a negociação real de acordo com seus sinais. Observe que o uso da abordagem orientada a objeto torna a solução deste problema significativamente mais fácil. Em primeiro lugar 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 comerciais onde a funcionalidade de negociação virtual é implementada. Além disso, iriam considerar o código de duas de suas crianças - as classes CStrategyMA e CStrategyStoch que representam as estratégias de negociação por médias móveis eo oscilador estocástico. Depois de analisar sua estrutura você será capaz de escrever facilmente e adicionar você próprias classes que percebem 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. Então vem a diretiva include que informa o pré-processador para incluir o arquivo CAdaptiveStrategy. mqh. Critérios de ângulo especificar que o arquivo deve ser retirado do diretório padrão (geralmente, é terminalfolderMQL5Include). A próxima linha contém a declaração do objeto AdaptiveExpert (instância da classe CAdaptiveStrategy) eo código do OnInit. OnDeinit e OnTick funções do Expert Advisor consiste nas chamadas de funções correspondentes ExpertOnInit, ExpertOnDeInit e ExpertOnTick eo objeto AdaptiveExpert. 2.2. A classe CAdaptiveStrategy A classe de thr Expert Advisor adaptativo (classe CAdaptiveStrategy) está localizada no arquivo CAdaptiveStrategy. mqh. Vamos começar com os arquivos de inclusão: A razão pela 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 base Classe CObject e seus filhos. Este objeto será o array mallstrategies, será usado um recipiente de estratégias de comércio. Cada estratégia é representada como uma classe. Nesse 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 comerciais, usaremos as classes CPositionInfo e CTrade da biblioteca Standard, por isso incluímos os arquivos PositionInfo. mqh e Trade. mqh. Vamos dar uma olhada na estrutura da classe CAdaptiveStrategy. Para implementar uma abordagem unificada para os objetos de diferentes classes, as estratégias comerciais (ou melhor, as instâncias de suas classes) são armazenadas nas estratégias mall do array dinâmico (do tipo CArrayObj), que é usado como um recipiente de classes das estratégias. Esta é a razão pela qual a classe de estratégias de comércio 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: Note que é mais fácil trabalhar com a posição de negociação usando as classes trade. Utilizamos os objetos das classes CPositionInfo e CTrade para solicitar as propriedades de posição no mercado e para realizar operações comerciais, respectivamente. A função RealPositionDirection solicita os parâmetros da posição aberta real e retorna sua direção: Agora íamos dar uma olhada nas principais funções da classe AdaptiveStrategy. Vamos começar com a função ExpertOnInit: O conjunto de estratégias de negociação é preparado na função ExpertOnInit. Em primeiro lugar, o objeto da matriz dinâmica mallstrategies é criado. Nesse caso, criamos dez instâncias da classe CStrategyMA. Cada um deles foi inicializado (neste caso, definimos períodos diferentes e permitimos a negociação virtual) usando a função Inicialização. Em seguida, utilizando a função SetStrategyInfo definimos o instrumento financeiro, o nome da estratégia eo comentário. Se necessário, usando a função SetStops (TP, SL), podemos especificar um valor (em pontos) de Take Profit e Stop Loss, que será executado durante a negociação virtual. Temos essa linha comentada. Uma vez que a classe de estratégia é criada e ajustada, nós adicioná-lo ao container mallstrategies. Todas as classes de estratégias comerciais devem ter a função CheckTradeConditions () que executa as verificações das condições de negociação. Na classe da estratégia adaptativa esta função é chamada no início de cada nova barra, assim nós damos às estratégias a possibilidade de verificar os valores dos indicadores e fazer as operações comerciais virtuais. Em vez de dez médias móveis especificadas (3, 13, 23. 93), podemos adicionar centenas de médias móveis (casos se a classe CStrategyMA): Ou podemos adicionar as classes de estratégia que funciona pelos sinais do oscilador estocástico (instâncias de A 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 as crianças da classe CObject e devem conter a função CheckTradeConditions (). É melhor herdá-los da classe CSampleStrategy. Classes que implementam estratégias comerciais podem ser diferentes e seu número não é limitado. A função ExpertOnInit termina com a lista de estratégias que estão presentes no contêiner mallstrategies. Observe que todas as estratégias no contêiner são consideradas como as crianças da classe CSampleStrategy. As classes de estratégias comerciais CStrategyMA e CStrategyStoch também são seus filhos. O mesmo truque é usado na função ExpertOnDeInit. No contêiner, chamamos a função SaveVirtualDeals para cada estratégia que armazena o histórico de negócios virtuais executados. Usamos o nome da estratégia para o nome do arquivo que é passado como um parâmetro. Então desinitialhamos as estratégias chamando a função Deinitialization () e excluindo o container mallstrategies: Se você não precisa saber sobre os negócios virtuais realizados pelas estratégias, remova a linha onde tStrategy. SaveVirtualDeals é chamado. Observe que, ao usar o testador de estratégia, os arquivos são salvos no diretório / testerdirectory / Files /. Vamos considerar a função ExpertOnTick da classe CAdaptiveStrategy que é chamada cada vez que um novo carrapato vem: 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. É feito chamando a função UpdatePositionData (). Aqui, mais uma vez chamamos as estratégias como herdeiras da classe CSampleStrategy. Todas as operações comerciais 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 de nova barra). Neste caso, o fim da formação de uma barra significa que todos os dados da barra anterior (preços e valores indicadores) não vai mudar mais, para que possa ser analisado sobre a correspondência com as condições de negociação. A todas as estratégias damos a oportunidade de realizar essa verificação e realizar 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 mallstrategies. Para obtê-lo feito, usamos a matriz Performance, valores que são retornados pela função StrategyPerformance () de cada estratégia são colocados nele. A classe base CSampleStrategy contém esta função como a diferença entre os valores atuais de equidade virtual e equilíbrio. 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 (ver seção 1). Além disso, solicitamos a direção da posição virtual desta estratégia (bestdirection). Se difere da direção atual da posição real, então a direção atual da posição real será corrigida (usando a função ProceedSignalReal) de acordo com a melhor direção de direção. 2.3. Class CSampleStrategy As estratégias colocadas no contêiner de mallstrategies foram consideradas como herdeiras da classe CSampleStrategy. Esta classe é a base para as estratégias de comércio que contém a implementação do comércio virtual. Neste artigo vamos considerar um caso simplificado de implementação de negociação virtual, os swaps arent aken em consideração. As classes de estratégias comerciais devem ser herdadas da classe CSampleStrategy. Vamos mostrar a estrutura dessa classe. Nós não vamos analisar 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 nova barra - IsNewBar. 3. Classes de Estratégias de Comércio Esta seção é dedicada à estrutura de classes de estratégias de comércio que são usados ​​no Expert Advisor adaptativo. 3.1. Classe CStrategyMA - Estratégia de Negociação por Médias Móveis A classe CStrategyMA é uma criança da classe CSampleStrategy onde toda a funcionalidade de 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: mhandle - handle do indicador iMA, mperiod - período da média móvel, mvalues ​​- 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 Inicialização. A estratégia é inicializada aqui. Se você precisa criar indicadores, crie-os aqui. Função Deinitialization. A estratégia é desinitialized aqui. As alças dos indicadores são lançadas aqui. Função heckTradeConditions. Aqui, a estratégia verifica as condições de negociação e gera sinais de comércio que são usados ​​para o comércio virtual. Para executar operações de comércio virtual, a função SetSignalState da classe pai do CStrategy é chamada de um dos quatro sinais comerciais seguintes são passados ​​para ele: O sinal para abrir uma posição longa (SIGNALOPENLONG) O sinal para abrir uma posição curta (SIGNALOPENSHORT) O sinal para fechar uma posição curta (SIGNALCLOSELHORT) O conceito é simples - com base nos estados de indicadores e preços, o tipo de sinal (newstate) é determinado, então o estado atual do virtual Negociação é solicitada (usando a função GetSignalState) e se theyre não o mesmo, a função SetSignalState é chamado para corrigir a posição virtual. 3.2. Classe CStrategyStoch - Estratégia de Negociação por Estocástico O código da classe que realiza a negociação com base na intersecção das linhas principal e de sinal do oscilador iStochastic é dado abaixo: Como você vê, as únicas diferenças entre a estrutura da classe CStrategyStoch E o de CStrategyMA são a função de inicialização (diferentes parâmetros), o tipo de indicador utilizado e os sinais comerciais. Assim, para usar suas estratégias no Expert Advisor adaptativo, você deve reescrevê-los na forma de classes de tal tipo e carregá-los para o contêiner mallstrategies. 4. Resultados da Análise das Estratégias de Adaptação ao Comércio Nesta seção, discutiremos vários aspectos do uso prático das estratégias adaptativas e dos métodos de melhoria delas. 4.1. Melhorando 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. Nós 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, então todas as 10 estratégias que usam médias móveis na negociação tiveram uma perda virtual. O sistema adaptativo parou de operar como resultado da ausência de uma estratégia com quantidade positiva de dinheiro ganho. Existe alguma maneira de evitar esse efeito negativo Permite adicionar às nossas 10 estratégias (MA3, MA13. MA93) outras 10 classes CStrategyMAinv. Cujos sinais de comércio são invertidos (as condições são as mesmas, mas SIGNALOPENLONG / SIGNALOPENSHORT e SIGNALCLOSELONG / SIGNALCLOSESHORT 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 na conta da estratégia adaptativa que usa 20 sinais de comércio: 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 CAdaptiveMA tiveram um resultado negativo, seguindo as estratégias CAdaptiveMAinv permitiu que o Expert Advisor evitasse retiradas indesejadas no início da negociação. Este tipo de abordagem pode parecer inaceitável, uma vez que perder o depósito é apenas uma questão de tempo quando se usa uma estratégia de contra-tendência. No entanto, no nosso caso, não foram limitados com uma única estratégia. O mercado sabe melhor que estratégias são eficazes neste momento. O lado forte dos sistemas adaptativos é que o mercado sugere por si só qual estratégia deve ser usada e quando ela deve ser usada. Ele dá a possibilidade de abstrair da lógica das estratégias - se uma estratégia é eficaz, então a maneira como ela funciona não tem importância. A abordagem adaptativa utiliza 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 inversão mostrado acima leva a um pensamento sobre a possibilidade potencial de usar os sinais da pior estratégia. Se uma estratégia não é lucrativa (e a pior em que), então podemos obter um lucro, agindo em sentido inverso Podemos transformar uma estratégia perdedora em uma rentável por uma simples mudança de seus sinais Para responder a essa pergunta, precisamos mudar ArrayMaximum com ArrayMinimum na função ExpertOnTick () da classe CAdaptiveStrategy, bem como para implementar a alteração de direções multiplicando o valor da variável BestDirection por -1. Além disso, precisamos comentar a limitação da negociação virtual em caso de eficácia negativa (já que vamos analisar o resultado da pior estratégia): Diagrama de equidade do Advisor Especialista 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 eo sistema adaptativo que usa os sinais invertidos do sistema o mais mau Nesse caso, a estratégia menos bem sucedida para a maioria do tempo era aquela baseada na interseção De médias móveis com período 3 (MA3). Como você pode ver na figura 7, existe a correlação inversa entre MA3 (cor azul) e a estratégia adaptativa (cor vermelha). Mas o resultado financeiro do sistema adaptativo doesnt impressionar. 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 monte de médias móveis não é tão eficaz como parece Em vez de 10 médias móveis, você pode usar muitos deles, adicionando outras centenas de estratégias CStrategyMA com diferentes períodos para o recipiente mallstrategies. Para fazê-lo, altere um pouco o código na classe CAdaptiveStrategy: No entanto, você deve entender que próximas médias móveis inevitavelmente se cruzam o líder mudará constantemente eo 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 irão piorar. Você pode certificar-se nela por conta própria, comparando as características estatísticas do sistema (a guia Resultados do testador de estratégia). É 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 mallstrategies pode ter milhares de exemplos de estratégias sugeridas incluídas, você pode até mesmo adicionar todas as estratégias com parâmetros diferentes no entanto, para ganhar o Automated Trading Championship 2018. você precisa desenvolver o sistema avançado de gestão de dinheiro. Observe que usamos o volume de negociação igual a 0,1 lotes para testar os dados do histórico (e no código das classes). 5.1 Como aumentar a rentabilidade do Expert Advisor Adaptável A classe CSampleStrategy possui a função virtual MoneyManagementCalculateLots: Para gerenciar o volume para negociação, você pode usar as informações estatísticas sobre os resultados e as características dos negócios virtuais gravados na matriz mdealshistory. Se você precisar aumentar o volume (por exemplo, para duplicá-lo se os últimos negócios virtuais na mdealshistory forem lucrativos ou para diminuí-lo), você deve alterar o valor retornado da maneira correspondente. 5.2 Usando as estatísticas de promoções 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 da eficácia de uma estratégia pode ser mais complexa e incluir, por exemplo, a eficácia O cálculo da efetividade da entrada, saída e efetividade dos negócios (os campos de entrada, saída e negociação das estruturas da matriz histórica) é executado automaticamente durante o processo de entrada, saída e efetividade dos negócios, lucros, Negociação virtual (veja a classe CSampeStrategy). Esta informação estatística pode ser usada para fazer suas próprias taxas, mais complexas da eficácia da estratégia. Por exemplo, como características de eficácia, você pode usar o lucro dos últimos três negócios (use o campo posProfit do arquivo de negócios mdealshistory): Se você quiser mudar esta função, alterá-lo apenas na classe CSampleStrategy, ele deve ser o Para todas as estratégias comerciais do sistema adaptativo. No entanto, você deve se lembrar que a diferença entre Equidade e Equilíbrio é também um bom fator de eficácia. 5.3 Usando Take Profit e Stop Loss Você pode alterar a eficácia dos sistemas de negociação estabelecendo níveis de parada fixos (pode ser feito chamando a função SetStops, que 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á executado automaticamente, esta funcionalidade é implementada na classe CSampleStrategy. No nosso exemplo (ver 2.2, a função de classes de médias móveis), a função de definir níveis de parada é comentada. 5.4. Zeroização Periódica do Lucro Virtual Cumulativo A abordagem adaptativa tem a mesma desvantagem que as estratégias comuns têm. Se a estratégia líder começa a perder, o sistema adaptativo começa a perder também. Essa é a razão pela qual às vezes você precisa zeroizar os resultados do trabalho de todas as estratégias e fechar todas as suas posições virtuais. Para fazê-lo, as seguintes funções são implementadas na classe CSampleStrategy: CheckPoint deste tipo pode ser usado de vez em quando, por exemplo, após cada N barras. Deve-se lembrar que o sistema adaptativo não é um graal (USDJPY H1, 4.01.2018-20.08.2018): Figura 8. Curvas de equilíbrio e patrimônio do sistema adaptativo que usa os sinais da melhor das 10 estratégias (USDJPY H1) Equidade As curvas de todas as estratégias são mostradas na figura 9. Se não houver estratégias rentáveis ​​no sistema adaptativo, usá-las não é efetiva. Use estratégias rentáveis. 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, em seguida, ele começou a mudar Entre as estratégias que tiveram um resultado positivo e, em seguida, todas as estratégias tornaram-se inúteis novamente. Todas as estratégias têm o mesmo equilíbrio no início. E só depois de um tempo, uma ou outra estratégia se torna um líder, portanto, é recomendado para definir uma limitação na estratégia de adaptação para evitar a negociação nas primeiras barras. Para fazer isso, complete a função ExpertOnTick da classe CAdaptiveStrategy com uma variável, cujo valor é aumentado sempre que uma nova barra é exibida. No início, até que o mercado escolhe a melhor estratégia, você deve ficar longe de negociação real. Conclusões Neste artigo, consideramos um exemplo do sistema adaptativo que consiste em muitas estratégias, cada uma das quais faz suas próprias operações de comércio virtual. Real trading é realizado de acordo com os sinais de uma estratégia mais rentável no momento. Graças ao uso da abordagem orientada a objetos, as classes para trabalhar com dados e classes comerciais da biblioteca Standard, a arquitetura do sistema parecia ser simples e escalável agora você pode facilmente criar e analisar os sistemas adaptativos que incluem centenas de estratégias de comércio. P. S. Para a análise de conveniência do comportamento de sistemas adaptativos, a versão de depuração da classe CSampleStrategy é anexada (o arquivo adaptive-systems-mql5-sources-debug-en. zip). A diferença desta versão é a criação de ficheiros de texto durante o seu trabalho que contêm os relatórios de resumo sobre a dinâmica de mudança de equilíbrio virtual / equidade das estratégias incluídas no sistema. Trading Signals Trading Signals para SP Futures ATS Trading Signals são projetados para Prever as tendências de curto prazo do SP / ES futuros 1 dia de negociação com antecedência. Os sinais de negociação baixados à noite aplicam-se no encerramento da sessão diária no dia de negociação seguinte. Os sinais de negociação gerados por modelos individuais, bem como conjuntos de modelos estão incluídos. O período de negociação médio para modelos individuais varia de 3 a 350 dias de negociação. Os sistemas de negociação construídos com conjuntos de modelos individuais fornecem previsões das tendências a curto, médio e longo prazos. Indicadores Técnicos Os Indicadores Técnicos ATS são projetados para serem indicadores direcionados das tendências diárias de preços de segurança. Os indicadores SIP (Preditores de Índice de Ações) foram projetados para prever os contratos futuros do SP / ES. O conjunto de indicadores SIP inclui os seguintes sete indicadores: Pressão de Venda Pressão de Venda Pressão de Compra Alta Pressão de Venda Alta Pressão de Avanço Pressão de Declinação Os indicadores ATS podem ser mapeados juntamente com a segurança correspondente usando uma aplicação como AmiBroker. O poder preditivo dos indicadores pode ser facilmente avaliado. Outra abordagem é usar os indicadores como insumos na construção de modelos de redes neurais. Há muitas possibilidades. Como baixar os sinais de negociação ATS Mercury é o aplicativo que é usado para baixar o ATS Trading sinais e indicadores. Este aplicativo é fornecido gratuitamente. ATS Mercury é instalado com o ID de usuário padrão do convidado. A conta de convidado é capaz de baixar um histórico dos indicadores ATS, no entanto, será adiada por 1 dia de negociação. Por exemplo, ao usar a conta de convidado para baixar os valores de sinal em uma noite de quarta-feira apenas sinais até terça-feira (o dia de negociação anterior) estará disponível. Nota: Os arquivos de sinal serão salvos na pasta C: Indicadores do DataATS por padrão. Exemplo de Estratégia de Negociação O indicador SIP2 Net Pressure (SIP2NP) foi publicado pela primeira vez em 30 de maio de 2017 junto com os outros indicadores SIP2. A estratégia de negociação é ser longo os futuros SP quando o indicador SIP2NP é maior ou igual a 0,6 e curto o mercado quando é menor ou igual a -0,6. Todos os negócios são hipoteticamente preenchido MOC no dia de negociação após o dia em que os sistemas são atualizados. A curva de equidade gerada por esta regra simples segue. Os lucros acumulados são em pontos e não incluem comissões ou derrapagens. SIP2NP aplicado ao futuro do SP O gráfico acima é atualizado para 6/5/2017. A porcentagem de negociação perfeita é 18,65 eo sistema de negociação está no mercado cerca de 28 do tempo. Você pode baixar os indicadores e explorar esta estratégia de negociação ainda usando ATS Mercury. Os assinantes do serviço SP Trade Signal e SIP Indicator são capazes de baixar os valores de sinal atuais. Se pretender subscrever, pode fazê-lo na página Compras de produtos. NOTA. Resultados de desempenho hipotéticos ou simulados têm limitações inerentes. Ao contrário de um registro de desempenho real, os resultados simulados não representam a negociação real. Além disso, uma vez que os negócios não foram realmente executados, os resultados podem ter sub ou sobre compensado o impacto, se houver, de certos fatores de mercado, como a falta de liquidez. Programas de negociação simulados em geral também estão sujeitos ao fato de que eles são projetados com o benefício de retrospectiva. Nenhuma representação está sendo feita que qualquer conta vai ou é susceptível de atingir lucros ou perdas semelhantes aos mostrados. O desempenho passado de nossos sistemas de negociação, sinais de negociação e software de modelagem, seja real ou indicado por testes históricos simulados de estratégias de negociação, não é indicativo de resultados futuros. 0169 Copyright 2008-2017 AdaptiveTradingSystemsTop Razões pelas quais você deve usar o QuantShare: Trabalha com os mercados dos EUA e internacionais (estoque, forex, opções, futuros, ETF.) Oferece-lhe as ferramentas que irão ajudá-lo a se tornar um comerciante rentável Permite implementar quaisquer idéias de negociação Exchange itens e idéias com outros usuários QuantShare Nossa equipe de suporte é muito ágil e irá responder a qualquer uma das suas perguntas Vamos implementar todos os recursos que você sugere Muito baixo preço e muito mais recursos do que a maioria dos outros softwares de troca Grátis - Razões pelas quais você deve usar o QuantShare: Advanced Charting EOD, intraday, fundamental, notícias e dados de sentimento para cada mercado Poderoso ferramentas de análise quantitativa Backtest qualquer estratégia e gerar diariamente comprar e vender sinais Criar compósitos e indicadores de mercado Download de indicadores, Telas. Compartilhado por outros usuários Atualizado em 2017-11-07 Sistemas de negociação adaptativa são estratégias que podem aprender com o mercado e história de dados de ativos e conseqüentemente adaptar suas regras para a nova dinâmica do mercado. Um auto ou auto sistema de comércio adaptativo pode ajustar suas regras de compra e venda dependendo do desempenho dessas regras no passado. Um exemplo seria criar um sistema negociando baseado em uma única regra da compra e desligar então e nesta régua dependendo do desempenho do último nos 2 anos passados. O sistema de negociação pode ser tão simples como comprar um estoque quando seu índice de força relativa (RSI) de 14 bar é maior do que 70. Essa estratégia pode ser transformada em um sistema de negociação adaptativo, adicionando uma regra que analise ou backtest a primeira regra, em O passado e, em seguida, retornar seu desempenho ou qualquer outra métrica. Em seguida, verificamos a medida de simulação e tomamos uma decisão com base nela. Exemplo: Desligue a regra RSI se a medida for negativa. Aqui estão quatro indicadores comerciais que podem ajudá-lo a criar sistemas de negociação adaptativa. Estes indicadores foram criados utilizando a ferramenta Criar Função do software de negociação QuantShare. Eles estão disponíveis no servidor de compartilhamento e podem ser facilmente modificados para atender às suas necessidades. O Indicador de Compra é uma função muito poderosa que analisa o desempenho de uma regra de negociação sobre o número especificado de barras. Para cada barra de negociação, calcula o retorno médio dos diferentes negócios que foram gerados durante as barras N anteriores. Cada negociação é realizada quando a regra de compra fornecida é VERDADEIRA e é encerrada após um número específico de barras (regra de Parada de N-Barras). Comprar uma ação quando o preço for maior que sua média móvel de 30 bar e quando o retorno médio dos negócios gerados pela regra 1, no último ano , É positivo. A estratégia de negociação adaptativa usa uma parada de 20 barras como regra de saída. Durante uma simulação, este indicador permite que você execute backtests dentro de um backtest. Indicator link de download: Comprar Indicator Simulation / Backtest Trading Indicator Esta é uma variação do Buy Indicator. A função contém um parâmetro adicional que permite especificar um número mínimo de negócios. O retorno da estratégia é definido como zero se o número de negócios gerados por essa regra de adaptação (para cada barra de negociação) estiver abaixo desse número. Aqui está um exemplo baseado em duas regras de negociação: rule1 close hhv (close, 5) rule2 volume 2sma (volume, 20) comprar rule1 e rule2 e BuyInd1 (rule1, 5, 10, 250) 0 e BuyInd1 (rule2, 5, 10) , 250) 0 Um sinal de compra é gerado se: - O estoque está fazendo uma nova alta de 5 dias (Regra 1) - O volume é duas vezes maior que o volume médio das últimas 20 barras (Regra 2) - Retorno médio dos negócios gerados Buy Now Simulador de Compra Esta função de Simulação de Comprar / Vender é quase semelhante ao Indicador de Compra com a diferença que permite especificar uma regra de saída (por exemplo, O backtesting interno) e um número mínimo de negócios a considerar para validar o resultado da estratégia. Regra de Venda: Os retornos do comércio serão calculados com base na regra de compra e venda especificada. Observe que no Indicador de Compra a regra de venda era uma parada de N-Bar. Operações Mínimas: Após a realização do backtesting interno (para cada barra), a função verifica o número de negócios e compara-o a esse valor. Se o número de negócios é inferior ao limite mínimo, em seguida, o retorno da estratégia é definida para zero. Example: rule1 close sma(30) buy rule1 and BuySellSim(rule1. rule1, 10, 250) 0 In the above example, the exit rule of the adaptive strategy consists of selling the security if the simple moving average is higher or equal to the close price. Note that by using 10 as minimum number of trades, the simulator or portfolio will never enter a new position (no signal) if there are less than 10 similar trades for the security in the past year. Strategy Indicator - Percent winning trades for a trading rule As the previous ones, this indicator acts as a simulator or backtester and returns a measure based on trades generated in the past N-bars. The measure that is returned by this function is the percentage of winning trades. Adaptive trading rules can be used to trade stocks, ETFs, Forex, futures and any other financial assets. Besides the previous indicator, the other ones use the average trade returns as metric. Of course, adaptive trading systems can be based on other metrics, such as the annual return, Sharpe ratio, Sortino ratio, maximum drawdown, standard deviation. All you have to do is create new adaptive functions or modify the formula of the existing ones.

No comments:

Post a Comment