Tag: estratégia de negociação baseada em eventos.
Lei no mercado? Avaliando o impacto no mercado de valores mobiliários das decisões do Supremo Tribunal Federal (Katz, Bommarito, Soellinger & amp; Chen)
RESUMO: As decisões judiciais afetam os mercados de valores mobiliários de maneiras discerníveis e, talvez, previsíveis? Em outras palavras, existe “lei no mercado” (LOTM)? Essa é uma questão que foi levantada pelos comentaristas, mas respondida por muito poucos de maneira sistemática e financeiramente rigorosa. Utilizando dados intradiários e uma janela de eventos de vários dias, este estudo de eventos de grande escala procura determinar a existência, frequência e magnitude dos impactos no mercado de ações decorrentes das decisões da Suprema Corte.
Nós demonstramos que, embora certamente não esteja presente em todos os casos, "a lei no mercado" # 8221; eventos são bastante comuns. Em todos os casos decididos pela Suprema Corte dos Estados Unidos entre os períodos de 1999 a 2013, identificamos 79 casos em que o preço das ações de uma ou mais empresas de capital aberto mudou em resposta direta a uma decisão da Suprema Corte. No total, mais de quinze anos, as decisões da Suprema Corte foram responsáveis por mais de 140 bilhões de dólares em mudanças absolutas na riqueza. Nossa análise não apenas contribui para nossa compreensão da economia política da tomada de decisões judiciais, mas também para o conjunto mais amplo de pesquisas que exploram o desempenho nos mercados financeiros usando métodos de estudo de eventos.
Concluímos explorando a eficiência informacional do direito como um mercado, destacando a velocidade com que as informações das decisões da Suprema Corte são assimiladas pelo mercado. Relativamente falando, os eventos da LOTM historicamente exibiram baixas taxas de incorporação de informações para os títulos afetados. Isto implica um mercado maduro para a arbitragem, onde uma estratégia de negociação baseada em eventos pode ser bem sucedida.
Disponível no SSRN e no arXiv.
Apresentações
Cursos e Tutoriais.
A trilha da campanha.
Papéis Selecionados.
Daniel Martin Katz, Michael Bommarito & amp; Josh Blackman, uma abordagem geral para prever o comportamento do Supremo Tribunal dos Estados Unidos, PLoS ONE 12 (4): e0174698 (2017) & lt; PLoS One & gt;
Daniel Martin Katz, Michael Bommarito, Tyler Sollinger & amp; James Ming Chen, Lei do Mercado? Avaliando o impacto no mercado de valores mobiliários das decisões do Supremo Tribunal Federal & lt; SSRN & gt; & lt; arXiv & gt;
J. B. Ruhl & amp; Daniel Martin Katz, medindo, monitorando e controlando a complexidade legal, 101 revisão da lei de Iowa 191 (2015) & lt; SSRN & gt;
Daniel Martin Katz, Escola de Direito do MIT? Uma Perspectiva sobre a Educação Jurídica no Século 21, 2014 Lei de Illinois Review 1431 (2014) & lt; SSRN & gt; & lt; Slides & gt;
Daniel Martin Katz & amp; Michael Bommarito, Medindo a Complexidade da Lei: O Código dos Estados Unidos, 22 Journal of Artificial Intelligence & amp; Lei 1 (2014) & lt; Springer & gt; & lt; SSRN & gt;
Daniel Martin Katz, previsão jurídica quantitativa - ou - como aprendi a parar de me preocupar e começar a me preparar para o futuro orientado a dados da indústria de serviços jurídicos, 62 Emory Law Journal 909 (2013) & lt; SSRN & gt;
Daniel Martin Katz, Michael Bommarito, Marinheiro Juile, Adam Candeub, Eugene Agichtein, Legal N-Gramas? Uma Abordagem Simples para Rastrear a Evolução da Linguagem Jurídica nas Atas do JURIX: A 24ª Conferência Internacional sobre Conhecimento Jurídico e Sistemas de Informação (2011) & lt; SSRN & gt;
Daniel Martin Katz, Joshua Gubler, Jon Zelner, Michael Bommarito, Eric Provins & amp; Eitan Ingall, reprodução da hierarquia? Uma análise de redes sociais do American Law Professoriate, 61 Journal of Legal Education 76 (2011) & lt; SSRN & gt;
Michael Bommarito, Daniel Martin Katz, Jillian Isaacs-See, Um Inquérito Empírico das Decisões Escritas do Tribunal Fiscal dos Estados Unidos (1990-2008), 30 Virginia Tax Review 523 (2011) & lt; SSRN & gt;
Ahmet Duran & amp; Michael Bommarito, Uma Estratégia Lucrativa de Negociação e Gestão de Risco Apesar dos Custos de Transação, 11 Quantitative Finance 829 (2011) & lt; SSRN & gt;
Michael Bommarito & amp; Daniel Martin Katz, Uma Abordagem Matemática para o Estudo do Código dos Estados Unidos, 389 Physica A 4195 (2010) & lt; SSRN & gt; & lt; arXiv & gt;
Ahmet Duran & amp; Michael Bommarito, Análise Espectral da Matriz de Correlação de Retorno Ajustada pelo Mercado Dependente do Tempo (2010) & lt; SSRN & gt;
Daniel Martin Katz & amp; Derek Stafford, Hustle and Flow: Uma análise de redes sociais do judiciário federal americano, 71 Ohio State Law Journal 457 (2010) & lt; SSRN & gt;
Michael Bommarito, Daniel Martin Katz, Jonathan Zelner & amp; James Fowler, Medidas de Distância para Redes Dinâmicas de Citação 389 Physica A 4201 (2010) & lt; SSRN & gt; & lt; arXiv & gt;
Michael Bommarito, Daniel Martin Katz & amp; Jonathan Zelner, Sobre a Estabilidade de Algoritmos de Detecção Comunitária em Dados de Citação Longitudinal em Atas da 6ª Conferência sobre Aplicações de Análise de Redes Sociais (2009) & lt; SSRN & gt; & lt; arXiv & gt;
Michael Bommarito, Daniel Martin Katz & amp; Jonathan Zelner, o direito como uma web sem costura? Comparando Várias Representações de Rede do Corpus da Suprema Corte dos Estados Unidos (1791-2005) em Atas da 12ª Conferência Internacional sobre Inteligência Artificial e Direito (ICAIL 2009 - UAB Barcelona) & lt; SSRN & gt;
Marvin Krislov & amp; Daniel Martin Katz, levando a sério as Constituições Estaduais, 17 Cornell Journal of Law & amp; Políticas Públicas 295 (2008) & lt; SSRN & gt;
Daniel Martin Katz, Derek Stafford & amp; Eric Provins, Arquitetura Social, Efeitos Judiciais de Pares e a 'Evolução' do Direito: Para uma Teoria Positiva da Estrutura Social Judicial, 23 Revisão da Lei Estadual da Geórgia 975 (2008) & lt; SSRN & gt;
Daniel Martin Katz, Regras Institucionais, Comportamento Estratégico e Legado do Chefe de Justiça William Rehnquist: Estabelecendo o Registro Direto sobre Dickerson v. Estados Unidos, 22 Journal of Law & amp; Política 303 (2006) & lt; SSRN & gt;
Metodologia de Quantificação de Notícias para Negociação Automatizada.
A notícia é o principal fator que afeta os preços dos ativos financeiros, todo o resto é secundário. No entanto, devido ao enorme volume de informações noticiosas continuamente divulgadas pela comunicação eletrônica moderna, torna-se cada vez mais difícil processar todas as informações de maneira oportuna.
Para acompanhar eventos de notícias, um sistema de computador faria um trabalho melhor do que um par de olhos humanos, dada sua capacidade de (i) responder imediatamente em microssegundos, (ii) processar grande quantidade de informações e (iii) fazê-lo sem tempo de inatividade.
O desafio é, portanto, construir ferramentas analíticas lingüísticas inteligentes que possam converter um texto noticioso em números quantificados - números que uma estratégia de negociação pode usar para tomar decisões objetivas de negociação quantitativa.
Esta apresentação analisa as metodologias pelas quais os textos de notícias são convertidos em um conjunto de números. Os vários fatores quantificados são então explorados em detalhes amplos - as maneiras pelas quais são calculados, as prováveis armadilhas em seu uso e como evitá-los.
Fatores-chave na negociação baseada em notícias.
Relevância do sentimento Capacidade de impacto de mercado da novidade (tipo de notícia) Fatores secundários, como volume de notícias, tendências de mecanismos de pesquisa, mídia social.
Além das metodologias envolvidas na quantificação de notícias individuais, metodologias de quantificação de um grande conjunto de notícias (digamos, durante todo um período de tempo, para todo um conjunto de empresas / geografias) também são discutidas. Especificamente, o conceito de Market Psyche Index é discutido.
Na próxima seção da apresentação, a lucratividade das estratégias de negociação baseadas em análises de notícias quantificadas é discutida. A lucratividade é estudada w. r.t. vários períodos de participação, diferentes categorias de eventos de notícias (soft / hard, programados / não programados), a sensibilidade em relação aos setores de ações, beta de ações, mercado VIX, a capitalização de mercado do estoque, etc.
No último segmento da apresentação, analisamos as armadilhas e estudos de caso de falhas. O impacto de mercado de alguns desses fracassos também destaca o quanto a análise de notícias se tornou predominante em algumas das geografias de negociação desenvolvidas.
Se você é um profissional de varejo ou um profissional da área de tecnologia que deseja iniciar sua própria agência de negociação automatizada, comece a aprender o comércio de algoritmos hoje mesmo! Comece com conceitos básicos como arquitetura de negociação automatizada, microestrutura de mercado, sistema de backtesting de estratégia e sistema de gerenciamento de pedidos. Você também pode se inscrever em nosso curso de comércio da Algo EPAT, que é um dos mais extensos programas de certificação disponíveis na indústria.
Expert Advisor Universal: o Modelo de Evento e o Protótipo da Estratégia de Negociação (Parte 2)
Introdução.
O artigo contém uma descrição mais detalhada do mecanismo de negociação universal CStrategy. No primeiro artigo Conselheiro Especialista Universal: Modos de Negociação de Estratégias (Parte 1), discutimos em detalhes os modos e funções de negociação que permitem implementá-los. Analisamos um esquema de Expert Advisor universal que consiste em quatro métodos, dois dos quais abrem novas posições e os outros dois métodos os fecham. Diferentes combinações de chamadas de método definem um modo de negociação específico. Por exemplo, um Expert Advisor pode ser permitido somente para Sell ou Buy, pode gerenciar posições abertas anteriormente ou esperar. Usando esses modos, uma operação do Expert Advisor pode ser configurada de maneira flexível, dependendo do horário de negociação ou do dia da semana.
No entanto, os modos de negociação não são a única coisa que um Expert Advisor pode precisar. Na segunda parte, discutiremos o modelo de evento do modo de negociação CStrategy baseado no tratamento de eventos centralizado. O esquema de manipulação de eventos proposto difere dos eventos do sistema em que todos os eventos são reunidos em um único local. As vantagens de tal implementação serão consideradas mais tarde.
Além disso, este artigo descreve duas classes importantes do mecanismo de negociação - CStrategy e CPosition. O primeiro é o núcleo de toda a lógica de negociação do EA, ele une eventos e modos em um único framework flexível que o EA personalizado herda diretamente. A segunda classe é a base das operações comerciais universais. Ele contém ações aplicadas a uma posição aberta (como fechamento de uma posição ou modificação de seu Stop Loss ou Take Profit). Isso permite formalizar todas as ações de negociação e torná-las independentes de plataforma.
Por favor, note que todas as características específicas de trabalhar com o motor, que você terá que cumprir, são criadas para o seu benefício. Por exemplo, a pesquisa usual por posições e acesso a eventos do sistema não está disponível para a estratégia. Portanto, não há necessidade de se preocupar com a sequência de ações e sobre qual manipulador usar para manipular o evento. Em vez disso, a CStrategy oferece um EA customizado para se concentrar em sua lógica de negociação, realizando a implementação dessas e de muitas outras operações.
Mecanismos de negociação semelhantes aos descritos são projetados para usuários comuns, permitindo que eles usem facilmente a funcionalidade desejada. Você não precisa analisar os detalhes dos algoritmos descritos. Você deve entender apenas os princípios gerais e a funcionalidade do CStrategy. Portanto, se você achar algumas partes do artigo difíceis de entender, fique à vontade para ignorá-las.
Modelo de evento baseado no processamento centralizado, ENUM_MARKET_EVENT_TYPE.
O MetaTrader 5 fornece muitos eventos. Esses eventos incluem notificações de alterações nos preços de mercado (NewTick, BookEvent) e eventos do sistema, como Timer ou TradeTransaction. Uma função do sistema com o mesmo nome e o prefixo On * está disponível para cada evento. Esta função é o manipulador deste evento. Por exemplo, se você quiser lidar com a chegada de um novo tick, adicione um conjunto apropriado de procedimentos à função OnTick:
Quando OnBookEvent ocorre, outra unidade do código que manipula as mudanças nos preços do livro de ofertas (Profundidade de Mercado) deve ser chamada:
Com essa abordagem, quanto mais eventos forem tratados pelo nosso Expert Advisor, mais fragmentada será a sua lógica. As condições para abertura e fechamento de posição podem ser separadas em diferentes unidades. Do ponto de vista da programação eficiente, a separação em diferentes unidades pode ser uma boa solução, mas essa abordagem é indesejável no nosso caso. Pelo contrário, uma solução melhor é reunir a lógica de negociação em um local especialmente alocado.
Além disso, alguns eventos não são suportados no MetaTrader 5. Neste caso, o Expert Advisor deve detectar a ocorrência de condições por conta própria. Por exemplo, o MetaTrader 5 não possui nenhum evento que lide com a abertura de uma nova barra. Enquanto isso, é a verificação mais usada pelos Expert Advisors. Portanto, o modelo de evento do mecanismo de negociação descrito suporta não apenas eventos do sistema, mas também eventos personalizados (não confundir com os eventos do usuário no gráfico), o que facilita muito o desenvolvimento de Expert Advisors. Por exemplo, um desses eventos é a criação de uma nova barra no gráfico.
Para entender o modelo de evento proposto, vamos descrever os eventos relacionados às alterações de preço ou horário usando a enumeração especial ENUM_MARKET_EVENT_TYPE:
Como você pode ver, a enumeração inclui a descrição de ambos os eventos do sistema e o evento que não é suportado diretamente no MetaTrader 5 (MARKET_EVENT_BAR_OPEN - abertura de uma nova barra do símbolo de trabalho do EA).
Suponha que nosso Expert Advisor universal tenha quatro métodos de lógica de negociação: InitBuy, InitSell, SupportBuy, SupportSell. Descrevemos esses métodos na primeira parte do artigo "Expert Advisor Universal". Se um dos valores de enumeração for usado como um parâmetro nesses métodos, a lógica de processamento do EA poderá, a qualquer momento, descobrir o evento, com base na qual o método foi chamado. Vamos descrever um esquema simplificado do Expert Advisor:
Os eventos que indicam mudanças nos preços de mercado chamam a mesma função CallExpertMagic, para a qual o evento atual é passado como um parâmetro. Essa função, por sua vez, chama os quatro métodos do CExpert. Quando chamado, cada um desses métodos imprime seu nome e o identificador do evento que causou sua chamada. Se você executar este Expert Advisor em um gráfico, os registros apropriados indicando que os IDs do evento foram processados serão exibidos após algum tempo:
Acesso a Eventos Ocorridos em Outros Instrumentos, a Estrutura MarketEvent.
Ao projetar um sistema de negociação que analise vários símbolos, você precisa criar um mecanismo que possa rastrear as alterações nos preços de vários instrumentos. No entanto, a função OnTick padrão é chamada apenas para um novo tick do instrumento em que o Expert Advisor está sendo executado. Por outro lado, os desenvolvedores de sistemas de negociação podem usar a função OnBookEvent que responde a alterações no livro de ofertas (Profundidade do mercado). Ao contrário do OnTick, OnBookEvent é chamado para qualquer alteração na carteira de pedidos do instrumento, para o qual você se inscreveu usando a função MarketBookAdd.
As alterações no livro de pedidos acontecem com muita frequência, por isso o monitoramento desse evento é um procedimento intensivo de recursos. Como regra geral, monitorar as alterações no fluxo de escala do símbolo requerido é suficiente para Expert Advisors. Por outro lado, o evento da mudança do livro de ofertas também inclui a chegada de um novo tick. Além de OnBookEvent, você pode configurar chamadas de OnTimer em intervalos especificados e analisar as alterações de preço de vários símbolos nesta função.
Assim, nas funções do sistema que reagem aos eventos NewTick, BookEvent e Timer, você pode adicionar uma chamada de algum módulo intermediário (vamos chamá-lo EventProcessor), que analisaria simultaneamente as alterações nos preços de vários instrumentos e geraria um evento apropriado. Cada evento teria uma descrição unificada na forma de uma estrutura e seria enviada pelos métodos de controle da estratégia. Tendo recebido um evento apropriado como estrutura, a estratégia reagiria ou ignoraria. Nesse caso, a função do sistema que realmente iniciou o evento para o Expert Advisor final seria desconhecida.
De fato, se um Expert Advisor receber uma notificação de um novo tick recebido, não importa se a informação é recebida através do OnTick, OnTimer ou OnBookEvent. A única coisa que importa é que há um novo tick para o símbolo especificado. Um manipulador de eventos pode ser usado para muitas estratégias. Por exemplo, se cada estratégia é representada como uma classe personalizada, várias instâncias dessas classes podem ser armazenadas na lista especial de estratégias. Nesse caso, qualquer estratégia da lista poderá receber um novo evento gerado pelo EventProcessor. O diagrama a seguir mostra como os eventos são gerados e enviados:
Fig. 1. Diagrama da geração e envio de eventos.
Agora vamos considerar a estrutura real que será passada para Expert Advisors como um evento. A estrutura é chamada MarketEvent, sua definição é a seguinte:
Depois de receber uma instância da estrutura por referência, o método que toma uma decisão comercial será capaz de analisá-la e tomar a decisão correta com base nas seguintes informações:
o tipo do evento o cronograma do gráfico, no qual o evento ocorreu o nome do instrumento, no qual o evento ocorreu.
Se a análise do cronograma do gráfico for inútil para um evento (por exemplo, NewTick ou Timer), o campo de período da estrutura MarketEvent sempre será preenchido com o valor PERIOD_CURRENT.
O evento "New Bar". Novos Algoritmos de Detecção de Barras e Barras.
A fim de rastrear novos ticks e formação de novas barras em múltiplos instrumentos, precisaremos escrever classes de módulos apropriadas implementando esta tarefa. Esses módulos são partes internas da classe CStrategy e o usuário não interage diretamente com eles. O primeiro módulo a considerar é a classe CTickDetector. O código fonte da classe está disponível abaixo:
Seu principal método usado é o IsNewTick. Retorna true se um novo tick do símbolo monitorado foi recebido. O instrumento financeiro a monitorar é definido usando o método Symbol. A classe CTickDetector é derivada do CObject. Portanto, ele pode ser adicionado como um elemento da coleção CArrayObj. É disso que precisamos. Por exemplo, podemos criar dez cópias do CTickDetect, cada uma delas monitorará seu próprio símbolo. Referindo-se consistentemente à coleção de classes do tipo CArrayObj, você pode descobrir rapidamente o símbolo no qual o novo tick foi formado e, em seguida, gerar o evento correspondente que passaria essas informações para a coleção de Expert Advisors.
Como já mencionado, além dos novos carrapatos, muitas vezes é necessário determinar o surgimento de novas barras. É melhor entregar essa tarefa para a classe especial CBarDetector. Ele funciona de maneira semelhante ao CTickDetector. O método principal do CBarDetector é IsNewBar - o método retorna true, se houver uma nova barra do instrumento, cujo nome foi especificado anteriormente usando o método Symbol. Seu código-fonte é o seguinte:
A classe CPositionMT5 - a base do algoritmo independente de plataforma.
Agora é hora de analisar uma das classes mais importantes que fornecem a operação dos Expert Advisors universais. Esta classe inclui métodos para trabalhar com posições no MetaTrader 5. De um ponto de vista técnico, é muito simples. É uma classe wrapper que atua como intermediária entre os Expert Advisors e as funções do sistema relacionadas às operações com posições no MetaTrader 5 - PositionSelect e PositionGet. No entanto, implementa uma importante função das classes oferecidas - independência de plataforma.
Analisando cuidadosamente todos os módulos descritos acima, podemos concluir que eles não usam funções que são específicas apenas para uma plataforma de negociação (MetaTrader 4 ou MetaTrader 5). Isso é verdade porque as versões modernas do MQL4 e MQL5 são, na verdade, uma e a mesma linguagem de programação com diferentes conjuntos de funções. Conjuntos específicos de funções para as duas plataformas estão principalmente relacionados com a gestão de posições de negociação.
Naturalmente, todos os Expert Advisors usam funções de gerenciamento de posição. No entanto, se em vez dessas funções, um Expert Advisor usasse uma única interface abstrata na forma de uma classe de posição, seria possível (pelo menos teoricamente) desenvolver um robô comercial que pudesse ser compilado tanto para o MetaTrader 4 quanto para o MetaTrader 5 sem quaisquer alterações em seu código-fonte. Tudo o que precisamos fazer é desenvolver algumas classes alternativas que implementem o trabalho com posições. Uma classe usará as funções do MetaTrader 4, a outra usará funções do MetaTrader 5. No entanto, ambas as classes fornecerão o mesmo conjunto de métodos para o Expert Advisor final, fornecendo assim "independência de plataforma".
Na prática, no entanto, o problema da criação de um Expert Advisor independente de plataforma é um pouco mais complicado e requer um artigo separado. Este seria um material bastante extenso, por isso não iremos discuti-lo neste artigo, pois será considerado em outras partes.
O segundo argumento em favor da classe especial que representa uma posição aberta da estratégia é que cada posição é gerenciada individualmente. O mecanismo de negociação percorre a lista de posições e passa cada uma delas para a lógica do Expert Advisor. Assim, alcançamos a máxima flexibilidade: o Expert Advisor gerencia cada posição individualmente e, assim, torna-se possível descrever regras para estratégias que gerenciam mais de uma posição de negociação. É claro, você pode ter apenas uma posição no MetaTrader 5. Mas se nós portarmos o mecanismo de negociação para a plataforma MetaTrader 4, esses recursos se tornarão muito importantes.
Aqui está o código fonte desta classe. É simples e direto:
Como você pode ver, a tarefa principal da classe é retornar uma propriedade particular das posições abertas no momento. Além disso, a classe fornece vários métodos para gerenciar a posição atual: fechamento, alteração de Take Profit e Stop Loss.
Protótipo de estratégia de negociação - a classe CStrategy.
Nós consideramos vários módulos que executam tarefas comuns. Também analisamos o modelo de evento, o modelo de tomada de decisão e o algoritmo de ação de um Expert Advisor típico. Agora precisamos combinar as informações em um único módulo de Expert Advisors - a classe CStrategy. É para executar várias tarefas. Aqui estão alguns deles:
Organizando uma única sequência de ações de negociação para todas as estratégias baseadas no CStrategy. Identificar os eventos Timer, NewTick, BookEvent, NewBar e passá-los para uma estratégia personalizada. Implementando fácil acesso a cotações de símbolos com base no modelo MetaTrader 4. Gerenciando modos de negociação. Acessando informações sobre posições abertas e recebendo estatísticas sobre elas.
O CStrategy é bem de classe grande, então não vamos publicar o código fonte completo aqui. Em vez disso, nos concentraremos nos algoritmos mais importantes da classe. A primeira coisa que vamos considerar é o seu modelo de evento. Nós já sabemos sobre esse modelo. Agora só precisamos considerar um processo de recebimento de eventos e entregá-los a uma determinada estratégia. O CStrategy é uma classe pai da nossa estratégia futura. Conseqüentemente, estamos familiarizados com seus métodos que notificam o recebimento de eventos apropriados:
Por favor, note que todos os manipuladores de eventos, exceto OnTradeTransaction, não são virtuais. Isso significa que Tick, Timer ou BookEvent não podem ser manipulados diretamente no nível da estratégia. Em vez disso, eles são manipulados pelo CStrategy. O evento TradeTransaction não é usado nesta classe, portanto, é virtual.
Abaixo estão os conteúdos do OnTick, OnTimer e OnBookEvent:
Como mencionado acima, o evento do sistema NewTick aplica-se apenas ao instrumento, no qual o Expert Advisor atual está sendo executado. Se quisermos que o NewTick seja um evento com vários símbolos, devemos usar um manipulador especial de novos ticks e rastrear o surgimento de novas barras. Esta tarefa é delegada a métodos fechados apropriados: NewBarDetect e NewTickDetect. Abaixo está o código fonte:
Os métodos realmente verificam detectores de novos ticks e barras (as classes CTickDetector e CBarDetector descritas acima). Cada um desses detectores é configurado pela primeira vez para o instrumento financeiro que o Expert Advisor efetivamente negocia. Se uma nova marca ou barra aparecer, os métodos especiais CallSupport e CallInit são chamados, que então chamam os métodos de negociação da estratégia específica.
O algoritmo geral dos manipuladores de eventos, incluindo NewBarsDetect e NewTickDetect, é o seguinte:
detectar a ocorrência de um novo evento; preenchendo a estrutura MarketEvent com uma especificação do ID de evento apropriado e seus atributos; chamando o método CallSupport, que chama o SupportBuy virtual e SupportSell com o evento passado para o método; Da mesma forma, chamar o método CallInit, que chama o InitBuy virtual e InitSell com o evento passado para o método.
Para entender como o controle é passado para uma determinada estratégia, precisamos considerar os métodos CallInit e CallSupport. Aqui está o código fonte do CallInit:
O método recebe o estado de negociação do módulo m_state (da classe CTradeState descrita no primeiro artigo) e decide se é possível chamar novos métodos de inicialização de posição para o estado comercial fornecido. Se o estado comercial proibir a negociação, esses métodos não serão chamados. Caso contrário, eles são chamados com uma indicação do evento, o que causou a chamada de CallInit o método.
O CallSupport funciona de forma semelhante, mas sua lógica é um pouco diferente. Aqui está o código fonte:
De maneira semelhante, o método recebe o estado comercial atual do Expert Advisor. Se permitir a mudança para o gerenciamento de posição, o método começará a procurar por todas as posições abertas no momento. Essas posições são representadas pela classe especial CPosition. Tendo recebido acesso a cada posição, o método compara seu número mágico com o número mágico do Expert Advisor atual. Uma vez encontrada uma correspondência, os métodos apropriados de gerenciamento de posição são chamados: SupportBuy para uma posição longa e SupportSell para uma curta.
Conclusão.
Examinamos todos os principais módulos da classe CStrategy, através dos quais ela fornece ampla funcionalidade para uma estratégia customizada. Uma estratégia derivada dessa classe pode operar com cotações de preços e eventos comerciais. Além disso, a estratégia obtém uma sequência unificada de ação de negociação herdada da classe CStrategy. Nesse caso, a estratégia pode ser desenvolvida como um módulo separado, que descreve apenas operações e regras de negociação. Esta solução ajuda a reduzir significativamente o esforço investido no desenvolvimento do algoritmo de negociação.
No próximo artigo "Conselheiro Especialista Universal: Estratégias Customizadas e Classes Auxiliares de Comércio (Parte 3)", discutiremos o processo de desenvolvimento de estratégias com base nos algoritmos descritos.
Traduzido do russo por MetaQuotes Software Corp.
Como construir uma estratégia de negociação
Ação de preço e macro.
Ao negociar em mercados, muitas vezes é benéfico ter uma abordagem estratégica. Enquanto o conceito de negociação em palpites e caprichos & ndash; e ser lucrativo fazendo isso pode soar atraente; na prática, é muito mais difícil e muito menos provável do que se houvesse uma abordagem estereotipada com a qual eles especulassem nos mercados.
Existem muitas maneiras de fazer isso. Este artigo irá percorrer as principais áreas que os comerciantes querem olhar ao construir suas estratégias.
Antes que a estratégia seja criada, o negociador precisa primeiro decidir de qual condição de mercado está procurando. Na primeira parte da nossa série Como construir uma estratégia, analisamos esse tópico em detalhes. E, como vimos, os mercados exibirão três condições principais: tendência, intervalo e interrupção (conforme mostrado na ilustração abaixo).
Criado com Marketscope / Trading Station.
Cada uma dessas condições de mercado pode exibir tons marcadamente diferentes. Os intervalos geralmente podem ocorrer durante mercados tranquilos. O suporte e / ou resistência que definem os intervalos se quebram quando o preço se rompe, geralmente de alguma forma de notícia ou estímulo.
Os breakouts podem ser rápidos e furiosos, correndo rapidamente para os operadores ou para os limites. Os breakouts podem ser extremamente voláteis e, como tal, essas estratégias precisam ser construídas de forma diferente das estratégias de alcance ou de tendência em relação ao dinheiro e à gestão de risco.
Uma vez que um viés começou a se estabelecer no mercado, tendências de longo prazo podem se desenvolver. Mais uma vez, esta é uma condição única que exige uma abordagem diferente dos mercados de gama ou tendências.
Uma vez que um trader tenha decidido em qual condição de mercado deseja construir sua estratégia, ele precisa decidir em que prazos deseja analisar e executar suas operações. Em The Time Frames of Trading, exploramos os intervalos mais comuns que os comerciantes podem querer investigar com base nos tempos de espera desejados.
Fomos mais longe para explorar o conceito de Análise de Múltiplos Quadros Temporais, em que os traders podem usar um gráfico de longo prazo para avaliar as tendências gerais ou o sentimento que pode existir em um par de moedas; e, em seguida, usando um gráfico de prazo mais curto para obter uma aparência mais granular ao entrar no comércio.
Vários Intervalos de Análise de Intervalo de Tempo; preparado por James Stanley.
Entrando no comércio.
O próximo passo na construção de uma estratégia é começar a projetar como o trader estará entrando nos negócios. Conforme analisamos nas condições de mercado de classificação, o suporte e a resistência podem definir intervalos, definindo, dessa forma, as fugas e, ao mesmo tempo, oferecendo um pouco de assistência com o gerenciamento de riscos em estratégias baseadas em tendências.
Como tal, muitas vezes pode beneficiar o comerciante por ter múltiplos mecanismos para apontar quais desses níveis podem ou não ser pertinentes. Em Como Construir uma Estratégia, Parte 3: Suporte e Resistência, examinamos Price Action, Psychological Whole Numbers, Fibonacci e Pivot Points.
EURUSD interagindo com o nível 1.30 / Created with Marketscope / Trading Station.
Depois que um trader decide que os maneirismos de apoio e resistência devem ser utilizados na estratégia, eles precisam encontrar uma maneira de avaliar a força dos movimentos de preço. Em Como Construir uma Estratégia, Parte 4: Tendências de Classificação, reunimos alguns dos conceitos anteriores de ação de preço, análise de múltiplos períodos de tempo e condições de mercado para ajudar os traders a verem que eles podem avaliar como o rating é forte. uma tendência tem sido.
(Criado com o Trading Station 2.0 / Marketscope)
Em Como Construir uma Estratégia, Parte 5: Gerenciamento de Riscos, analisamos o que muitos traders consideram a parte mais importante da criação, negociação e manutenção de uma abordagem de negociação; e essa é a maneira pela qual os comerciantes estão administrando o risco.
Grande parte desta parte da série foi baseada em torno da pesquisa realizada pelo DailyFX no estudo de pesquisa Traits of Successful Traders.
Na série DailyFX Traits of Successful Traders, os resultados reais de traders reais em mais de 12 milhões de negociações foram analisados em um esforço para descobrir o que funcionou melhor, e como os traders poderiam trabalhar em direção a esses resultados.
Analisamos o fato de que, embora muitos operadores possam ganhar com mais frequência do que perdem (com uma porcentagem vencedora maior que 50%), foi o valor de seus ganhos e / ou perdas que muitas vezes predicariam seu sucesso ou fracasso nos mercados. Depois, falamos sobre o uso de índices de risco para recompensa, nos quais o negociador pode ganhar mais se estiver certo do que poderia perder se estiver errado. A figura abaixo mostrará uma relação de risco para recompensa de 1 para 2:
Relação de risco para recompensa de 1 para 2, conforme ilustrado na FXCM Trading Station II.
Em seguida, passamos a investigar o conceito de alavancagem, conforme descrito em "Quanto eu deveria negociar no mercado de câmbio", de Jeremy Wagner. Esta foi a quarta e última parcela da série Traits of Successful Traders, e fornece algumas informações muito perspicazes.
A partir do gráfico, podemos ver que os operadores com saldos maiores (entre US $ 5.000 e US $ 9.999) usaram níveis mais baixos de alavancagem (mostrados na parte inferior do gráfico); e esses níveis mais baixos de alavancagem permitiram maior lucratividade.
Os comerciantes que usam alavancagem de 5: 1 foram lucrativos 37,37% do tempo, enquanto os comerciantes com saldos abaixo de US $ 1.000 estavam usando, em média, alavancagem de 26: 1 & ndash; e só foram rentáveis 20,91% do tempo. Este é um desvio massivo, já que os traders que usam uma taxa de alavancagem moderada de 5: 1 foram lucrativos 78% mais frequentemente do que os traders que usam alavancagem de 26: 1.
sugere que & lsquo; os comerciantes devem procurar usar uma alavancagem efetiva de 10-para-1 ou menos.
Quando executar sua estratégia.
Até este ponto, cobrimos muitas das áreas pelas quais os investidores gostariam de procurar ao criar suas estratégias. Talvez tão importante, se não mais, & ndash; é quando realmente estaremos negociando a estratégia que estamos criando.
Um dos principais diferenciais do mercado de câmbio é o fato de que ele não fecha. Discutimos este tópico em detalhes no artigo & lsquo; Negociando o mundo. & Rsquo;
Mapeamento da natureza de 24 horas do mercado de câmbio; de Trading the World, de James Stanley.
Embora o mercado esteja aberto 24 horas por dia, a ação do preço pode assumir diferenças marcadamente diferentes. com base na hora do dia e onde a liquidez está sendo oferecida.
Por exemplo, a sessão asiática é geralmente considerada como oferecendo uma ação de preço mais lenta, com maior adesão ao apoio e resistência e menor potencial para grandes movimentos. Por causa disso, os operadores que procuram executar estratégias baseadas em intervalos podem ser mais bem servidos concentrando suas entradas na sessão asiática.
Às 3 da manhã, a liquidez começa a chegar de Londres, que muitos comerciantes consideram ser o coração. do mercado de câmbio. Londres é o maior centro de mercado, traz a maior liquidez e, pouco depois, grandes movimentos abertos podem ser testemunhados nos principais pares de moedas. Os comerciantes que anteriormente estavam executando estratégias de alcance na sessão asiática gostariam de ser cautelosos aqui, pois o apoio e a resistência podem ser quebrados com muito mais facilidade com o ataque de liquidez vindo de Londres. Comerciantes que executam estratégias de breakout podem frequentemente encontrar os mercados rápidos e voláteis que estão procurando após o London Open.
Às 8h, quando os Estados Unidos abrem para os negócios, mais liquidez flui para o mercado de câmbio. Este período é considerado a sobreposição, & rsquo; quando ambos os centros de mercado de Londres e Nova York estão negociando; e esse é frequentemente o período mais volumoso do dia no mercado de câmbio. Os movimentos rápidos podem ser abundantes, a volatilidade é extremamente alta, pois o potencial de reversões pode denegrir até mesmo as estratégias de alcance mais fortes.
Depois de Londres fechar o dia, o sabor da sessão dos EUA pode mudar um pouco. Os movimentos médios por hora podem diminuir e a ação do preço pode começar a diminuir. A Sessão dos EUA pode assumir tons do que é geralmente exibido na sessão asiática: movimentos lentos de preços acentuados por um maior grau de respeito por níveis de suporte e resistência previamente definidos.
Indicador personalizado de Tradesessions para a Trading Station.
--- Escrito por James B. Stanley.
Você pode seguir James no Twitter @JStanleyFX.
Para se juntar à lista de distribuição de James Stanley, por favor clique aqui.
Комментариев нет:
Отправить комментарий