Como funciona um sistema de negociação


Como funciona um sistema de negociação?


Um sistema de comércio - também chamado de estratégia comercial - explora as ineficiências do mercado para prever as tendências de preços dos ativos financeiros. Em um mercado perfeito e eficiente, os preços só seriam afetados por eventos reais, como a publicação dos resultados da empresa. Todos os comerciantes são "informados", decidir racionalmente e agir imediatamente. As curvas de preços em tal mercado hipotético seriam curvas aleatórias aleatórias que não contêm informações para prever preços futuros.


Felizmente para estratégias de negociação, os mercados reais estão longe deste ideal teórico. As ineficiências do mercado estão em toda parte. Eles são causados ​​por reação lenta em notícias, informações incompletas, rumores e comportamento comercial irracional (como seguir conselhos por gurus de negociação). Qualquer ineficiência pode permitir que uma estratégia preveja uma pequena parte da curva de preços com algum grau de precisão. No entanto, há um problema: Além das ineficiências mais óbvias, esses efeitos nas curvas de preços não são visíveis para o olho humano.


Veja o gráfico abaixo:


Uma das duas linhas no gráfico acima é o preço do euro em US $, o outro é uma curva sem sentido de números aleatórios (você pode produzir tais curvas com o script Zorro RandomPrice). Você pode dizer qual a curva de preços é real? Em estudos, até mesmo 'peritos comerciantes' e analistas * foram incapazes de distinguir entre preços reais e números aleatórios. Mas um programa de computador simples não tem problemas com isso. Os preços não andam aleatoriamente; Suas ineficiências podem ser facilmente detectadas através da análise de curvas de preços sob muitos aspectos diferentes.


Um famoso desvio da caminhada aleatória é visível na análise de movimento de preços abaixo:


No gráfico, a altura das barras é equivalente ao número de séries de subida ou queda de preços. As barras vermelhas são da curva de preço real EUR / USD acima, as barras azuis de uma curva de números aleatórios. Os números no eixo x são a duração de um movimento de preços em horas, no lado direito para subir, e no lado esquerdo para a queda de preços. Por exemplo, o "3" À direita significa que o preço estava subindo por 3 horas em seqüência. A altura de uma barra indica com que frequência essa série de subida ou de queda ocorre na curva. Se os preços se movessem totalmente aleatórios, as barras vermelhas tinham as mesmas alturas que as barras azuis. Podemos ver que este não é o caso: séries de aumento / queda de 3, 4, 5 ou mais horas ocorrem com mais freqüência na curva de preço vermelha do que nos dados aleatórios azuis. 1 hora série - um preço subindo no primeiro e caindo na segunda hora, ou vice-versa - ocorrem menos vezes. Os preços tendem a manter sua direção: essa é a famosa & quot; cauda de gordura & quot; Das distribuições de preços. Esse efeito existe com quase todos os ativos e prazos; Ele pode ser usado para detectar se uma curva de preços contém preços reais ou apenas números aleatórios. Você pode gerar tais gráficos de distribuição de movimento de preço com o script simples RandomWalk - apenas experimente com diferentes ativos e períodos de barra!


Outro efeito - uma ineficiência real que pode ser explorada em estratégias - é visível no seguinte gráfico de análise espectral:


Mostra as amplitudes dos ciclos regulares encontradas na curva de preços SP 500 em janeiro de 2017. O eixo x é a duração do ciclo em horas. Como você pode ver, o pico mais alto é um ciclo de cerca de 24 horas, alguns picos menores são de 36, 54 e 64 horas e um pico largo em 120 horas, equivalente a um ciclo semanal (uma semana é 5 dias x 24 Horas, pois os fins de semana são ignorados nas curvas de preços). Ciclos surgem de sincronizado comportamento comercial e não são necessariamente alinhados a dias ou semanas. Esses ciclos não são encontrados em dados aleatórios, pelo menos não quando a amostra de dados tem tamanho suficiente. Eles também não são normalmente visíveis a olho nu em curvas de preço, mas podem ser detectados com análise espectral (você pode usar o script Spectrum para isso) e explorados para gerar lucros em estratégias automatizadas. Você pode encontrar um exemplo para o ciclo de negociação baseada no tutorial. Um método de comércio similar é usado na estratégia de Zorro Z2.


Muitas vezes, padrões de preços temporários estabelecem e podem ser usados ​​por algoritmos inteligentes para prever tendências de curto prazo. A curva a seguir é produzida por uma estrutura de rede neural de "aprendizagem profunda":


A rede foi alimentada com mudanças de preço EUR / USD dos últimos 60 minutos bares, e previu a direção do preço da próxima hora. A curva azul mostra as previsões corretas acumuladas menos as previsões errôneas de uma análise passo a passo. A direção do preço foi prevista com 57% de precisão média. A rede foi re-treinada a cada 4 semanas, como os padrões começaram a perder seu poder preditivo após esse tempo. Podemos ver que alguns padrões preditivos de curto prazo surgem quase todo o tempo no mercado. Tais padrões não podem ser encontrados em dados aleatórios - uma curva de predição não tinha direção clara nesse caso.


Outra interessante ineficiência pode ser observada na seguinte distribuição de preços:


No gráfico, a altura de uma barra é equivalente a quantas vezes um determinado preço aparece na curva de preços. As barras vermelhas são baseadas no preço do EUR em francos suíços (EUR / CHF) de outubro de 2017 até janeiro de 2017; As barras verdes são o preço em dólares americanos (EUR / USD) no mesmo período. Você pode gerar esse gráfico com o script de distribuição. Podemos ver que a distribuição de preços EUR / CHF vermelho é bastante estreita e termina abruptamente à esquerda, como se cortado com uma faca. Em contraste, a distribuição de preços de EUR / USD verde é muito mais ampla com um pico amplo no meio. Assemelha-se a uma curva de sino (mais ou menos), o que indica uma distribuição de preços aleatória. A distribuição EUR / CHF no entanto não é curva de sino. Revela uma ineficiência de mercado que pode gerar lucros na negociação automatizada. Neste caso, a ineficiência é o resultado do limite de preço de CHF que foi estabelecido pelo Banco Nacional Suíço de setembro de 2017 até janeiro de 2017. Evitou que o EUR caísse abaixo de 1.20 CHF. Esse tipo de ineficiência do mercado pode ser explorado com sucesso por estratégias de negociação de redes.


* A diferença entre um comerciante perito e um novato é que o primeiro perdeu mais dinheiro.


Métodos que funcionam para negociação automatizada


Apesar de todos os sistemas de comércio eletrônico, as ineficiências do mercado aumentaram ainda na última década, tornando o comércio automatizado mais rentável do que nunca. Devoluções de 100% ao ano, muito acima da faixa de lucro de qualquer investimento a longo prazo grave, pode ser relativamente facilmente alcançado através de negociação automatizada, mesmo com um PC barato e conexão à Internet lenta. Os métodos mais importantes para explorar as ineficiências estão listados abaixo:


Tendência. A maioria das estratégias tenta antecipar a tendência, mas a tendência atual de uma curva de preços em si pode ser usada para prever preços futuros. Os comerciantes tendem a seguir a massa: quando alguns compram, outros começam a comprar também. Isso causa uma seqüência de movimentos de preços na mesma direção que podem ser detectados e explorados. O seguimento de tendências é uma das estratégias mais utilizadas, mas também uma das mais difíceis: o ponto crucial é detectar uma tendência de início o mais cedo possível, ao mesmo tempo que evita sinais falsos. Um exemplo de uma estratégia de negociação de tendências pode ser encontrada no Workshop 4.


Reversão média (contra-tendência). Traders muitas vezes acreditam na existência de um "preço justo" de um ativo. Eles compram quando o preço real é mais barato do que deveria ser na sua opinião, ou vender quando é mais caro. Isso faz com que a curva de preços após ir em uma certa direção, muitas vezes para inverter de volta para a média. Um exemplo de uma estratégia de reversão média pode ser encontrado no Workshop 5.


Ciclos. Quando um comércio é rentável, os comerciantes vendem frequentemente após um determinado tempo para fazer exame de lucros; Negócios não rentáveis ​​são vendidos após um tempo diferente. Isso tem muitas vezes o efeito de sincronizar entradas e saídas entre um grande número de comerciantes, e faz com que a curva de preços oscilar com um período que é estável ao longo de um período de tempo relativamente longo. Esse ciclo pode ser detectado com funções de análise espectral e usado para prever a tendência de preços. (Esses ciclos em curvas de preços são reais e não relacionados com as "ondas" imaginadas mencionadas abaixo).


Clusters. Traders muitas vezes acreditam em um "preço real" de um determinado activo, e vender ou comprar uma posição no momento em que a curva de preços atingiu esse valor. Esta é a razão pela qual os preços às vezes se aglomeram em certos níveis e produzem o famoso suporte de & quot; E? Resist�cia? Linhas (também designadas por "fornecimento" e "procura").


Padrões de curva. Os traders acreditam que os movimentos de preços ou mudanças de tendência são precedidos por certos padrões de curva. A maioria deles - como a famosa "cabeça e ombros" Padrão - são mitos. Mas alguns padrões, por exemplo "copos" Ou "meia-chávenas", pode de facto preceder um movimento para cima ou para baixo e pode ser explorado por métodos de detecção de padrões tais como o algoritmo de Chet de Fr & eacute ;.


Modelos de autocorrelação. Os preços e sua volatilidade geralmente mostram uma correlação serial que pode ser exibida com a função plotCorrelogram e simulado com modelos de séries temporais ARIMA ou GARCH. Os modelos podem ser usados ​​para prever os próximos preços dentro de um intervalo de probabilidade.


Ação de preço. Às vezes, o mercado desenvolve padrões repetitivos de 3, 4 ou 5 velas consecutivas que podem prever movimentos de preços. Esses patterens podem ser detectados por algoritmos inteligentes de pesquisa de padrões ou de aprendizado de máquina. Um exemplo para negociação com padrões de velas pode ser encontrado no Workshop 7.


Preço máximo. Às vezes, um governo estabelece um piso ou limite máximo para sua taxa de câmbio. As intervenções impedem que a taxa de câmbio exceda um certo limite - um exemplo famoso é o teto acima de 1,20 da taxa EUR / CHF. Isso pode ser usado em estratégias para a vantagem do comerciante.


Sazonalidade. ? Temporada & quot; Não significa necessariamente uma estação de um ano. O comportamento de negociação mensal, semanal ou diário em grandes bolsas de valores, como a NYSE, segue com freqüência um certo padrão que pode ser explorado por estratégias. Por exemplo, o índice SP500 muitas vezes se move para cima nos primeiros dias de um mês, e também tem muitas vezes uma tendência ascendente nas primeiras horas da manhã antes da sessão de negociação principal do dia. Você pode detectar efeitos sazonais com as funções de perfil do Zorro.


Lacunas . Quando um ativo é negociado durante determinadas horas de mercado - como ações e índices de ações - o preço de mercado futuro de amanhã pode às vezes ser previsto em algum grau do comportamento de negociação no momento de fechamento do mercado de hoje.


Arbitragem. Quando se sabe que dois ativos estão fortemente correlacionados, as estratégias podem explorar o fato de que seus preços tendem a acabar regularmente no mesmo nível ou na mesma proporção e derivam lucros de desvios temporários de preços.


Choques de preços. Eles costumam acontecer na segunda-feira ou na manhã de sexta-feira, quando as empresas ou organizações publicam boas ou más notícias que afetam o mercado. Mesmo sem saber a notícia, uma estratégia pode detectar as primeiras reações de preços e rapidamente saltar para o movimento.


Tudo isso soa como se fosse muito fácil explorar os mercados. Mas o comércio é um jogo de probabilidade. Nenhum computador pode prever com certeza o resultado de um determinado comércio. Qualquer ineficiência detectada dá um sistema comercial apenas uma vantagem relativamente pequena, e os erros podem facilmente transformar uma estratégia vencedora em um perdedor. Há muitas armadilhas a serem evitadas ao desenvolver estratégias comerciais.


Elaboração de estratégias comerciais


Desenvolver uma estratégia começa com a ineficiência que você deseja explorar. Você pode eyeball através de curvas de preço para encontrar padrões ou outras dicas que precedem certos movimentos de preços. Ou você pode deixar o computador fazer isso, definindo previamente o que procurar. O objetivo é encontrar uma descrição objetiva e algorítmica de uma certa situação de curva de preços que precede um movimento de preços para cima ou para baixo. Em tal situação o algoritmo deve dar um sinal para comprar ou vender. Para o algoritmo você pode usar qualquer uma das ferramentas de software do Zorro que analisa a curva de preços e detecta ineficiências em tempo real. O algoritmo deve então ser testado simulando negócios com curvas de preço históricas e otimizado para melhor precisão de previsão. Existem muitas ineficiências diferentes, e qualquer um deles pode ser detectado com muitos algoritmos diferentes em muitas maneiras diferentes, por isso há um número quase ilimitado de estratégias rentáveis ​​à sua disposição.


Uma vez descoberta uma ineficiência, encontre uma maneira de explorá-la. Por exemplo, quando você vê que uma curva de preços está em tendência - seus movimentos para cima e para baixo continuam por algum tempo - você pode entrar em um comércio no início de um movimento de tendência e sair dele no final. Um método simples para fazer isso é descrito na oficina 4.


Em seguida, implementar um filtro de comércio. Isso é muitas vezes esquecido nos sistemas de comércio. Encontre uma maneira de detectar a presença - ou ausência - da ineficiência. Uma ineficiência é frequentemente shortlived ou temporária, assim que não trocam quando o efeito não está atual no mercado. Caso contrário, suas perdas podem consumir suas vitórias. No exemplo com a curva de tendência de preços, você pode detectar se o preço está se movendo para o lado ou não indo em uma direção clara, e suspender a negociação durante esse tempo.


Finalmente, ajuste o sistema determinando seus parâmetros ótimos. Reduza o risco com condições de saída adicionais, como limites de stop loss. Reduzir o risco ainda mais, limitando a exposição de mercado de um comércio com trailing ou takeprofit métodos.


Estratégias altamente rentáveis ​​são muitas vezes surpreendentemente simples, mas desenvolvê-las adequadamente não é tão fácil - caso contrário alguém estaria fazendo isso. No início você deve ter algum conhecimento básico dos ativos financeiros que você deseja negociar. Em segundo lugar, você deve ser capaz de descrever as condições de entrada e saída do comércio em um idioma preciso - no código do script - mesmo se você quiser trocá-lo manualmente. Sem codificar seu sistema, você nunca pode seriamente testá-lo e otimizá-lo e não vai conseguir nada. E em terceiro lugar, você deve estar ciente de todos os efeitos estatísticos sutis que podem causar resultados diferentes de teste e negociação real, e sabe como lidar com eles. Tudo isso é descrito neste manual e no tutorial. E depois de aprender que você tem o conhecimento básico para o desenvolvimento de estratégias próprias. Para obter mais idéias e aprofundar o assunto, confira os links.


Uma coisa é certa: o futuro é desconhecido. Quando você desenvolve uma estratégia, você usa dados históricos de preços para testes e otimização. Mas quando você trocá-lo, os preços são reais. O mercado e suas ineficiências podem sofrer mudanças de qualquer tipo. O que funcionou no passado não é garantido para trabalhar no futuro. Portanto, mesmo quando você está usando sistemas comprovados, como as estratégias Z. Você sempre lida com um elemento de incerteza. Para não confiar completamente na sua sorte, aprender o máximo que puder e desenvolver tantas estratégias diferentes quanto possível.

Comments