Saturday 10 March 2018

Limitar a estratégia de negociação do livro de pedidos


Melhorando as estratégias de negociação com os sinais do livro de pedidos.
38 páginas postadas: 3 de outubro de 2015 Última revisão: 14 de outubro de 2015.
Álvaro Cartea.
Universidade de Oxford; Universidade de Oxford - Oxford-Man Institute of Quantitative Finance.
Ryan Francis Donnelly.
Universidade de Washington - Departamento de Matemática Aplicada.
Sebastian Jaimungal.
Universidade de Toronto - Departamento de Estatística.
Data escrita: 1 de outubro de 2015.
Usamos dados de alta freqüência da troca Nasdaq para construir uma medida de desequilíbrio de volume no livro de pedidos limite (LOB). Mostramos que nossa medida é um bom preditor do sinal da próxima ordem de mercado (MO), ou seja, comprar ou vender, e também ajuda a prever mudanças de preços imediatamente após a chegada de um MO. Com base nessas descobertas empíricas, apresentamos e calibramos um modelo de salto puro modulado em cadeia de Markov de preço, propagação, chegadas LO e MO e desequilíbrio de volume. Como aplicação do modelo, colocamos e solucionamos um problema de controle estocástico para um agente que maximiza a riqueza terminal, sujeito a penalidades de inventário, executando trades usando LOs. Usamos dados em amostra (janeiro a junho de 2014) para calibrar o modelo em dez ações negociadas na troca da Nasdaq e usar dados fora da amostra (julho a dezembro de 2014) para testar o desempenho da estratégia. Mostramos que introduzir a nossa medida de desequilíbrio de volume no problema de otimização aumenta consideravelmente os lucros da estratégia. Os lucros aumentam porque empregar nossa medida de desequilíbrio reduz os custos de seleção adversos e as posições LOs no livro para aproveitar os movimentos de preços favoráveis.
Palavras-chave: desequilíbrio de pedidos, negociação algorítmica, comércio de alta freqüência, fluxo de pedidos, criação de mercado, seleção adversa.
Classificação JEL: G10, G11, G14, C41.
Álvaro Cartea.
Universidade de Oxford ( )
Oxford, Oxfordshire OX1 4AU.
Universidade de Oxford - Oxford-Man Institute of Quantitative Finance ()
Walton Well Road.
Oxford, Oxfordshire OX2 6ED.
Ryan Donnelly.
Universidade de Washington - Departamento de Matemática Aplicada ()
Sebastian Jaimungal (Autor do Contato)
Universidade de Toronto - Departamento de Estatística ()
100 St. George St.
Toronto, Ontario M5S 3G3.
Estatísticas de papel.
Jornais relacionados.
Mercado de capitais: eJournal de preços e avaliação de ativos.
Assine este boletim de taxas para mais artigos com curadoria sobre este tópico.
Mercado de capitais: eJournal da microstrutura do mercado.
Assine este boletim de taxas para mais artigos com curadoria sobre este tópico.
IO: Estudos empíricos de empresas e mercados eJournal.
Assine este boletim de taxas para mais artigos com curadoria sobre este tópico.
Modelagem econométrica: mercados de capitais - eJournal de preços de ativos.
Assine este boletim de taxas para mais artigos com curadoria sobre este tópico.
Papéis recomendados.
Links Rápidos.
Sobre.
Os cookies são usados ​​por este site. Para recusar ou aprender mais, visite nossa página Cookies. Esta página foi processada por apollo5 em 0.172 segundos.

A Matemática do Scalping.
NOTA: se você não conseguir ver os modelos Mathematica abaixo, você pode baixar o jogador Wolfram CDF gratuito e você também pode precisar deste plug-in.
Você também pode baixar o arquivo Mathematica CDF completo aqui.
Nesta publicação, eu quero explorar aspectos de escalação, um tipo de estratégia amplamente utilizada pelas empresas comerciais de alta freqüência.
Vou definir uma estratégia de escalação como aquela em que procuramos obter pequenos lucros, publicando ordens de limite em lado alternativo do livro. Scalping, como eu o defino, é uma estratégia bastante como a criação de mercado, exceto que nós # 8220; lean & # 8221; em um lado do livro. Então, em qualquer momento, podemos ter um longo viés e, portanto, procure entrar com um limite de compra. Se isso for preenchido, então procuraremos sair com uma ordem de venda de limite subseqüente, aproveitando alguns tic-tac. Por outro lado, podemos entrar com uma ordem de venda limite e procurar sair com um pedido de compra limitado.
A estratégia baseia-se em dois fatores críticos:
(i) o sinal alfa que nos informa de momento a momento se preferimos ser longos ou curtos.
(ii) a estratégia de execução, ou & # 8220; expressão comercial & # 8221;
Neste artigo, eu quero me concentrar no último, fazendo a suposição de que já temos algum tipo de modelo de geração alfa (mais sobre isso em postagens posteriores).
Existem vários meios que um comerciante pode usar para entrar em uma posição. A abordagem mais simples, a que consideraremos aqui, é simplesmente colocar uma única ordem de limite em ou simplesmente fora dos preços de ofertas / pedidos # 8211; então, em outras palavras, estaremos olhando para comprar na oferta e vender no pedido (e na esperança de ganhar o spread de oferta e oferta, pelo menos).
Um dos problemas com essa abordagem é que é altamente sensível à latência. As ordens de limite juntam-se ao livro de pedidos limite na parte de trás da fila e lentamente funcionam para a frente, já que as encomendas anteriores são preenchidas. Compre o tempo que o mercado chega ao seu pedido de compra limite, talvez não haja mais vendedores a esse preço. Nesse caso, o mercado se troca, uma oferta maior vem e substitui sua ordem, e você não é preenchido. Por outro lado, o seu pode ser uma das últimas ordens para preencher, após o qual o mercado se processa até uma oferta menor e sua posição está imediatamente abaixo da água.
Este modelo simplista explica por que a latência é uma preocupação. você deseja chegar o mais próximo possível da frente da fila o mais rápido possível. Você faz isso minimizando o tempo que leva para emitir e encomendar e obtê-lo no livro de pedidos limite. Isso envolve hardware (servidores co-localizados, conexões de fibra óptica) e otimização de software e tipicamente também envolve o uso de ordens imediatas ou canceladas (COI). O uso de ordens do IOC pelas empresas HFT para obter prioridade de ordem é altamente controverso e é visto como o sistema de jogos por investidores tradicionais, que podem acabar pagando preços mais altos como resultado.
Outra abordagem é a camada limite de pedidos em pontos de preço para cima e para baixo do livro de pedidos, estabelecendo prioridade muito antes do mercado negoceia lá. A camada de pedidos é uma estratégia de execução altamente complexa que traz complicações de adição.
Deixe-nos limitar a considerar a ordem de limite único, o tipo de ordem disponível para qualquer comerciante usando uma plataforma de varejo padrão.
Como expliquei, estamos assumindo que, em qualquer momento, você sabe se você prefere ser longo ou curto e, portanto, se quer fazer uma oferta ou uma oferta. A questão é, a que preço você faz seu pedido e o que você faz para limitar seu risco? Em outras palavras, estamos discutindo objetivos de lucro e paramos perdas, o que, claro, é tudo sobre risco e retorno.
Risco e Retorno no Scalping.
Comece por considerar o risco. O maior risco para um scalper é que, uma vez preenchido, o mercado vai contra sua posição até que ele seja obrigado a desencadear sua parada de perda. Se ele definir a sua parada de perda muito apertado, ele pode ser forçado a sair de posições que inicialmente não são rentáveis, mas que se recuperaram e mostraram lucro se ele não tivesse saído. Por outro lado, se ele definir a perda de parada muito solto, a razão de recompensa de risco é muito baixa. um único comércio de perda pode erradicar o lucro de um grande número de negócios menores e lucrativos.
Agora vamos pensar sobre a recompensa. Se o comerciante é muito ambicioso ao definir seu objetivo de lucro, ele nunca conseguirá perceber os ganhos que sua posição está mostrando. o mercado poderia reverter, deixando-o com uma perda em uma posição que, inicialmente, era lucrativa. Por outro lado, se ele definir o alvo muito apertado, o comerciante pode desistir de muito potencial em um comércio vencedor para superar os efeitos da perda ocasional e grande.
É claro que estas são preocupações críticas para um scalper: de fato, as regras de saída comercial são tão importantes, ou mesmo mais importantes, do que as regras de entrada. Então, como deve prosseguir?
Estrutura teórica para Scalping.
Vamos fazer o pressuposto bastante heróico de que os retornos do mercado são normalmente distribuídos (na verdade, sabemos por pesquisas empíricas que não são & # 8211; mas isso é um ponto de partida, pelo menos). E vamos assumir, no momento em que nosso comerciante foi preenchido em um pedido de compra limite e está procurando decidir onde colocar seu objetivo de lucro e parar as ordens de limite de perda. Dado um preço atual da segurança subjacente de X, o scalper procura determinar o objetivo de lucro de p ticks e o nível de stop loss de q ticks que determinará os preços aos quais ele deve publicar suas ordens de limite para sair do comércio. Podemos traduzi-los em retornos, da seguinte forma:
para o lado positivo: Ru = Ln [X + p] & # 8211; Ln [X]
e à desvantagem: Rd = Ln [X-q] & # 8211; Ln [X]
Esta situação está ilustrada no quadro abaixo.
A área lucrativa é a região sombreada no RHS da distribuição. Se o mercado se negociar a esse preço ou superior, ganharemos dinheiro: p carrapatos, menos taxas de negociação e comissões, para ser preciso. Por outro lado, perdemos q ticks (mais comissões) se o mercado comercializar na região sombreado no LHS da distribuição.
Sob nossas premissas, a probabilidade de terminar na região sombreada RHS é:
probWin = 1 & # 8211; NormalCDF (Ru, mu, sigma),
onde mu e sigma são o desvio padrão e médio da distribuição.
A probabilidade de perder dinheiro, ou seja, a área sombreada no LHS da distribuição, é dada por:
probLoss = NormalCDF (Rd, mu, sigma),
onde NormalCDF é a função de distribuição cumulativa da distribuição gaussiana.
O lucro esperado do comércio é, portanto:
Lucro esperado = p * probWin & # 8211; q * probLoss.
E a taxa esperada de vitórias, a proporção de negócios lucrativos, é dada por:
WinRate = probWin / (probWin + probLoss)
Se estabelecemos um alvo de lucro esticado, então p será grande, e probWin, a região sombreada no RHS da distribuição, será pequena, então nosso winRate será baixo. Sob este cenário, teríamos uma baixa probabilidade de um grande ganho. Por outro lado, se definirmos p para, digamos, 1 carrapato e nossa perda de stop q para, digamos, 20 carrapatos, a região sombreada no RHS representará cerca de metade da densidade de probabilidade, enquanto o LHS sombreado abrangerá apenas cerca de 5 %. Nossa taxa de vitoria nesse caso seria da ordem de 91%:
WinRate = 50% / (50% + 5%) = 91%
Sob este cenário, fazemos ganhos frequentes e pequenos e sofremos grandes perdas ocasionais.
Então a questão crítica é: como escolhemos p e q, nosso objetivo de lucro e perda de parada? Isso importa? De que depende a decisão?
Modelando Estratégias de Escualagem.
Podemos começar a abordar essas questões notando, como já vimos, que existe um trade-off entre o tamanho do lucro que esperamos fazer e o tamanho da perda que estamos dispostos a tolerar e a probabilidade disso ganho ou perda decorrente. Essas probabilidades, por sua vez, dependem da distribuição de probabilidade subjacente, assumida aqui como gaussiana.
Agora, a distribuição normal ou gaussiana que determina as probabilidades de ganhar ou perder em níveis de preços diferentes tem dois parâmetros & # 8211; a média, mu ou a deriva do processo de retorno e sigma, sua volatilidade.
Em intervalos curtos de tempo, o efeito da volatilidade supera qualquer impacto da deriva por ordens de grandeza. O motivo para isso é simples: as escalas de volatilidade com a raiz quadrada do tempo, enquanto a deriva é escalonada linearmente. Ao longo de pequenos intervalos de tempo, a deriva se torna insignificantemente pequena, em comparação com a volatilidade do processo. Assim, podemos assumir que mu, o processo significa zero, sem preocupação, e foca-se exclusivamente no sigma, a volatilidade.
Quais outros fatores precisamos considerar? Bem, há um movimento de preço mínimo, que pode ser 1 tick, e o valor em dólar desse tiquete, a partir do qual podemos derivar nossos retornos para baixo e desvantagens, Ru e Rd. E, finalmente, devemos ter em conta as comissões e as taxas de câmbio em nosso comércio líquido P & amp; L.
Aqui é uma formulação simples do modelo, na qual estou usando o contrato de futuros E-mini como um exemplar.
PeriodVolatility = AnnualVolatility / Sqrt [nMinsPerDay / BarSizeMins];
tgtReturn = nTicksPT * minMove / currentPrice; tgtDollar = nTicksPT * tickValue;
Para o contrato ES, temos uma mudança de preço mínimo de 0,25 e o valor do tic é de US $ 12,50. Observe que dimensionamos a volatilidade anual para o tamanho do período em que estamos negociando (barras de 15 minutos, no exemplo a seguir).
Análise de cenário.
Deixe-nos dar uma olhada em como a taxa esperada de lucro e vitória varia de acordo com o objetivo de lucro e os limites de perda de parada que estabelecemos. Nos seguintes gráficos interativos, podemos avaliar o impacto de diferentes níveis de volatilidade no resultado.
Lucro esperado pelo tamanho da barra e volatilidade.
Taxa de vitória esperada por volatilidade.
Observe para começar que a taxa de vitória (e o lucro esperado) estão muito longe de ser normalmente distribuídos e # 8211; não menos importante porque mudam radicalmente com a volatilidade, que também é variável no tempo.
Para níveis muito baixos de volatilidade, cerca de 5%, parece que fazemos o melhor em termos de maximização da nossa P & amp; L esperta, definindo um alvo de lucro apertado de alguns carrapatos e uma perda de parada de cerca de 10 carrapatos. Nossa taxa de vitória é muito alta nesses níveis e # 8211; cerca de 90% ou mais. Em outras palavras, em baixos níveis de volatilidade, nosso objetivo deve ser tentar fazer um grande número de pequenos ganhos.
Mas como a volatilidade aumenta para cerca de 15%, torna-se evidente que precisamos aumentar nosso objetivo de lucro, em torno de 10 ou 11 carrapatos. A distribuição do P & amp; L esperado sugere que possamos algumas opções de estratégia diferentes: quer podemos definir uma perda de parada maior, de cerca de 30 carrapatos, ou podemos dirigir na outra direção, e definir uma queda muito baixa de talvez apenas 1-2 carrapatos. Esta estratégia posterior é, de fato, a imagem espelhada de nossa estratégia de baixa volatilidade: em níveis mais altos de volatilidade, buscamos fazer ganhos ocasionais e maiores e estamos dispostos a pagar o preço de sustentar pequenas perdas repetidas. Nossa taxa de vitórias, embora ainda bem acima de 50%, naturalmente diminui.
À medida que a volatilidade aumenta ainda mais, para 20% ou 30%, ou mais, torna-se evidente que realmente não temos outra alternativa senão apontar para grandes ganhos ocasionais, aumentando nosso objetivo de lucro e apertando os limites de perda de parada. Nossa taxa de vitória sob este cenário de estratégia será muito menor & # 8211; cerca de 30% ou menos.
Non & # 8211; Modelo Gaussiano.
Agora, deixe-se falar sobre a preocupação de que os retornos de ativos não são normalmente distribuídos normalmente. Em particular, a distribuição empírica dos retornos tende a ter "caudas de gordura" # 8221; isto é, a probabilidade de um evento extremo é muito maior do que em uma distribuição normal equivalente.
Um modelo amplamente usado para distribuições de cauda gorda na Distribuição de Valor Extreme. Isso tem pdf:
Traçar [AvaliarTable [PDF [ExtremeValueDistribution [, 2], x],>], Preencher  Eixo]
Para definir os parâmetros do EVD, precisamos organizá-los para que a média e a variância correspondam às da distribuição gaussiana equivalente com  = 0 e desvio padrão  significativos. conseqüentemente:
O código para uma versão do modelo usando o GED é dado da seguinte maneira.
PeriodVolatility = AnnualVolatility / Sqrt [nMinsPerDay / BarSizeMins];
beta = Sqrt [6] * períodoVolatilidade / Pi;
tgtReturn = nTicksPT * minMove / currentPrice; tgtDollar = nTicksPT * tickValue;
Agora podemos produzir os mesmos gráficos para a versão EVD do modelo que planejamos para as versões Gaussianas:
Lucro esperado pelo tamanho e volatilidade da barra e # 8211; Distribuição de valor extremo.
Taxa de vitória esperada por volatilidade e # 8211; Distribuição de valor extremo.
Em seguida, comparamos as versões gaussianas e EVD do modelo, para obter uma compreensão de como os diferentes pressupostos afetam a taxa de ganhos esperada.
Taxa de vitória esperada por perda de parada e Meta de lucro.
Como você pode ver, por níveis moderados de volatilidade, até cerca de 18% ao ano, a taxa de ganhos esperada é realmente maior se assumirmos uma distribuição de retorno do Extreme Value, em vez de uma distribuição normal. Se usarmos uma distribuição Normal, na verdade, subestime a taxa de vitória, se a distribuição de retorno real estiver mais próxima do valor extremo. Em outras palavras, a hipótese de uma distribuição gaussiana para retornos é realmente conservadora.
Agora, por outro lado, também é o caso de que em níveis mais altos de volatilidade a suposição de Normalidade tenderá a mais de $ 8211; estimar a taxa de ganhos esperada, se os retornos realmente seguem uma distribuição de valor extremo. Mas, como indicado anteriormente, para níveis elevados de volatilidade, devemos considerar a alteração da estratégia de escalação muito substancialmente. Ou precisamos reverter isso, estabelecendo alvos de lucro maiores e paradas mais apertadas, ou precisamos parar de negociar completamente, até que a volatilidade diminua para níveis normais. Muitos scalpers prefeririam a segunda opção, pois a primeira alternativa não os atinge como estar perto o suficiente para escalar para justificar o nome. Se você tomar essa abordagem, iestop tentando couro cabeludo em períodos em que a volatilidade é elevada, então as diferenças na taxa de vitória estimada resultante de suposições alternativas de distribuição de retorno são irrelevantes.
Se você tentar apenas o couro cabeludo quando a volatilidade estiver abaixo, digamos, 20% e você usa uma distribuição gaussiana no seu modelo de escalação, você normalmente sempre estará abaixo do & # 8211; estimar sua taxa de vitória esperada. Em outras palavras, a suposição de Normalidade ajuda, não dói, sua estratégia, sendo conservadora em sua estimativa da Taxa de Vitórias esperada.
Se, em alternativa, você quer negociar a estratégia independentemente do nível de volatilidade, então, por qualquer meio, use algo como uma distribuição de Extreme Value no seu modelo, como fiz aqui. Isso altera as estimativas da taxa de ganhos esperada que o O modelo produz, mas de modo algum muda a estrutura do modelo, ou invalida-o. Ele & # 8217; é apenas um conjunto diferente, indiscutivelmente mais realista de pressupostos relativos a situações de elevada volatilidade.
Análise de simulação de Monte-Carlo.
Let & # 8217; Siga-nos para fazer algumas análises de simulação para que possamos entender a distribuição da taxa de ganhos esperada e do PL de comércio médio para nossos dois modelos alternativos. Começamos pela codificação de um gerador que produz uma amostra de mil transações e calcula a Tarifa de Comércio Médio e a Taxa de Vitórias.
Modelo Gaussiano.
PeriodVolatility = AnnualVolatility / Sqrt [nMinsPerDay / BarSizeMins];
tgtReturn = nTicksPT * minMove / currentPrice; tgtDollar = nTicksPT * tickValue;
Agora, podemos gerar uma amostra aleatória de 10 000 corridas de simulação e plotar um histograma das taxas de Win, usando, por exemplo, ES em barras de 5 min, com um PT de 2 carrapatos e SL de & # 8211; 20 carrapatos, assumindo volatilidade anual de 15%.
Modelo de Distribuição de Valor Extremo.
Em seguida, podemos fazer o mesmo pela versão Extreme Value Distribution do modelo.
PeriodVolatility = AnnualVolatility / Sqrt [nMinsPerDay / BarSizeMins];
beta = Sqrt [6] * períodoVolatilidade / Pi;
tgtReturn = nTicksPT * minMove / currentPrice; tgtDollar = nTicksPT * tickValue;
Conclusões.
As principais conclusões dessa análise são:
Scalping é essencialmente um comércio de volatilidade A definição de metas de lucro ótimas são limites de perda de parada dependem criticamente da volatilidade do subjacente e precisam ser manuseadas de forma dinâmica, dependendo dos níveis atuais de volatilidade do mercado. Em baixos níveis de volatilidade, devemos estabelecer metas de lucro apertadas e limites largos de perda de parada, procurando fazer uma porcentagem elevada de ganhos pequenos, de talvez 2-3 carrapatos. À medida que a volatilidade aumenta, precisamos reverter essa posição, estabelecendo metas de lucro mais ambiciosas e paradas apertadas, visando a grande vitória ocasional.

Limitar a estratégia de negociação do livro de pedidos
Obter através da App Store Leia esta publicação em nosso aplicativo!
Arbitragem do Orderbook.
Os pedidos de trocas comerciais são muitas vezes ocultos como os chamados "Dark Pools". A medida foi tomada para evitar estratégias aparentes de manipulação de mercado executadas pelos comerciantes naquela época.
Quais tais estratégias de arbitragem / manipulação são possíveis se a agenda é pública?
Explique as estratégias em detalhes.
Dica # 1: Existem três estratégias de exemplo nos comentários abaixo.
Um caderno de pedidos público fornece informações aos comerciantes não apenas no preço atual de uma segurança, mas também no volume e estrutura de todo o cronograma de oferta e demanda.
Essas informações podem ser usadas para arbitragem e estratégias de manipulação de mercado de várias maneiras:
Spoofing: Inserindo uma grande ordem de limite como um sinal aparente de compra ou venda que é cancelado a qualquer momento antes de poder ser executado. Quote stuffing: Inserindo uma seqüência rápida de limites ou ordens de mercado para dar ao mercado a impressão de um próximo grande movimento. Fogo de fechamento: muitas instituições financeiras usam apenas preços de fechamento, mas não preços intradiários para seus modelos financeiros. Por isso, é possível alterar rapidamente o preço de fechamento apenas antes do final do dia, se o caderno de pedidos não for suficientemente grosso, e não pode haver mais pedidos após este horário. Piscando: algoritmos de negociação de alta velocidade podem detectar uma ordem pública e, em seguida, negociar antecipadamente para "andar" em seu impacto no mercado. É conhecido por amplificar as falhas do mercado de grandes pedidos. Arbitragem de latência: usa diferenças de preços entre trocas e ordens de velocidade rápida para capturar desvios da lei de um preço. Aprendizado de máquina: o caderno de pedidos público e o fluxo de pedidos podem ser usados ​​para extrair informações valiosas sobre mudanças de preços esperadas.
Não tenho certeza de que Dark Pools (DP) foi criado para evitar "manipulação de mercado". Eles foram criados por empresas porque encontraram uma vantagem para criá-las (veja Market Microstructure in Practice, L e Laruelle Eds). Os principais motivos foram:
taxas de mercado de reposição, para DP criadas por corretores (como UBS MTF); impacto de mercado insuficiente, para pools de blocos (como ITG / POSIT); metade da oferta solicitada, para DP criada por fabricantes de mercado (como Knight Link).
O comércio óptimo de DP é possível, ver por exemplo, otimizado desdobramento de pedidos entre pools de liquidez: abordagem algorítmica estocástica, por Laruelle, Pagès e L (publicado no SIAM Journal on Financial Mathematics, Vol. 2 (2011), pp. 1042-1076 ). Você pode dar uma olhada nas Estratégias de Alocação Ótimas para o Problema do Pool Escuro, por Agarwal, Bartlett e Dama. E à exploração censurada e ao problema da piscina escura, por Ganchev, Nevmyvaka, Kearns e Vaughan também.
Em termos de negociação ideal em cadernos, você tem alguns papéis agradáveis:
um para negociação de muito curto prazo: ótimo preço de postagem de ordens limitadas: aprendendo por negociação, por Laruelle, Pagès e L (novamente), publicado em Matemática e Economia Financeira, Vol. 7, nº 3. (11 de junho de 2013), pp. 359-403. um para fazer o mercado: lidar com o risco de inventário: uma solução para o problema do mercado, por Guéant, Fernandez-Tapia e L, em Matemática e Economia Financeira, Vol. 4, nº 7. (3 de setembro de 2013), pp. 477-507. Compre Low Sell High: uma perspectiva de negociação de alta freqüência, por Cartea, Jaimungal e Ricci.
Você encontrará aqui tudo o que precisa para criar sua própria estratégia de caderno de encomendas.

Proposta de projeto.
Clone este wiki localmente.
Nos últimos anos, os livros de pedidos eletrônicos de limite, que coletam ordens de limite de entrada e combinam automaticamente ordens de mercado com a melhor ordem de limite disponível, foram introduzidos por quase todas as principais bolsas de valores. A introdução de livros de pedidos limitados alterou significativamente as estratégias de negociação à medida que a velocidade de negociação aumentou drasticamente e os comerciantes têm a escolha entre diferentes tipos de ordem, o que automaticamente impõe a questão de qual deles deve ser usado e em que condições. Isso representa uma grande quantidade de dados financeiros eletrônicos que podem ser armazenados e processados ​​para explorar os padrões subjacentes. As instituições financeiras estão usando esses dados para criar vantagens para eles no mercado. Uma das aplicações é as estratégias de negociação automatizadas que usam esses padrões para negociar com vantagem competitiva.
Analise os dados históricos do livro de pedidos do limite e tente encontrar padrões, que possam ser reutilizados na criação de futuras estratégias de negociação algorítmica ou na engenharia reversa. Para alcançar o que precisamos, vamos usar algoritmos genéticos para diferentes estratégias de negociação.
Aplicando para LOBSTER / TradingPhysics NASDAQ Historical TotalView-ITCH. Análise de conjuntos de dados de amostra disponíveis (com base em 23.03.2014) - Já finalizado Reconhecimento de padrões e aprendizado de máquina usando o básico de GA + System Engine (analisador, analisador, processador de dados) (devido 28.04.2014) Encontre e extraie parâmetros de diferentes estratégias de reconhecimento de padrões e algoritmo de trem usando GA Especificar interfaces e necessidades do nosso mecanismo do sistema Iniciando a implementação do nosso sistema de conclusão do motor do sistema para testar diferentes algoritmos / estratégias Implementação de algoritmos e estratégias em simulações com dados históricos (devido 05.05.2014) Otimização, teste e avaliação do sistema final (devido 12.05.2014) Teste e otimização de algoritmos de negociação Avaliação dos resultados das estratégias de negociação e do sistema final.
Obteremos os dados da seguinte maneira:
O LOBSTER oferece dados do livro de pedidos limitados derivados dos arquivos históricos do TotalView-ITCH da Nasdaq apenas para pesquisa acadêmica. (Lobster. wiwi. hu-berlin. de/info/help_faq_general. php)
Como se juntar ao LOBSTER: lobster. wiwi. hu-berlin. de/info/HowToJoin. php O processo pode levar até duas semanas. No entanto, existem exemplos de conjuntos de dados fornecidos que podem ser usados ​​para começar. O preço é de 300 EUR excl. IVA, pagável antecipadamente. Esta é uma taxa anual mais um bloco de crédito pré-pago (por exemplo, 100 dias de um estoque (por exemplo, Amazon) nível 10 (4 vezes mais dias para dados de nível 1).
Já fez um inquérito para acesso gratuito aos arquivos históricos do TotalView-ITCH. À espera de repetição. (tradingphysics / Feeds / DownloadHistoricalItch. aspx). Preço normal para dados derivados e brutos ilimitados - $ 199.95. OU 500 créditos - US $ 99,95 para até 500 downloads históricos de arquivos (
50 GB). Nós usamos o site de tradingphysics para adquirir dados do livro de pedidos por 33 dias da MSFT. Dados do livro de pedidos para bitcoin MtGox: bitcointalk. org/index. php? topic=218980.0.
Os algoritmos genéticos são uma família de modelos computacionais inspirados na evolução. Dependeremos do modelo introduzido por John Holland (1975), que geralmente é chamado de algoritmo genético canônico. Uma implementação começa com uma população de cromossomos. Todo cromossomo possui certos genes, que definem seu comportamento. No nosso caso, esses genes representarão os parâmetros necessários para a estratégia de negociação (por exemplo, para o Double Bottom, teremos um parâmetro que define em que preço alto devemos vender o estoque, para proteger nosso ganho). Depois de definir os genes, precisamos calcular o desempenho de cada cromossomo. Isso é feito pela função de fitness. O poder dos algoritmos genéticos está na possibilidade da recombinação entre os cromossomos, o que lembra a evolução da vida real, onde os mais aptos sobrevivem. Existem diferentes variações de como a evolução pode acontecer. Depois de calcular a aptidão de cada cromossomo, alguns dos mais potentes sobreviverão (geralmente chamados de cromossomos de elite) e participarão da próxima geração. Todos os outros cromossomos (e possivelmente os elites) participarão da fase de recombinação. A recombinação ocorre em formas de mutações, onde um gene do cromossomo muda de valor de maneira completamente aleatória, ou cruzamentos, onde dois cromossomos trocam alguns de seus genes. Em suma, a partir desses cromossomos recém-nascidos, escolhemos alguns deles para preencher os lugares para a próxima geração (novamente, há diferentes visões de mutações e crossovers). Quando a nova geração é selecionada, calculamos novamente a aptidão de todos os cromossomos e executamos os mesmos passos que antes. Após um certo número de geração, podemos selecionar o mais apto, que é o resultado do algoritmo genético. Muitos pesquisadores, por esse motivo, vêem isso como uma ferramenta de otimização.
Decidimos implementar algumas variações do algoritmo genético. Assim, temos a possibilidade de escolher entre diferentes formas de realizar mutações, crossovers e selecionar os cromossomos para a próxima geração. Quanto às estratégias de negociação, implementamos:
Duplo fundo com genes: 1. 2. 3.. Double Top com genes semelhantes a 1 / * TODO * / Head and Shoulders / * TODO * / Moving average - inspirado na estratégia existente de média móvel (o que não é muito eficaz), mas alterado para ver como os diferentes genes podem impactar sobre a eficiência da estratégia. Isso pode ser visto como um campo de jogos para futuros algoritmos.
A aplicação real tem 3 fases:
Estamos calculando a aptidão no final de cada dia de negociação. O valor que nos interessa é o lucro que o cromossomo fez naquele dia. A fase de treinamento dura por xy dias. No primeiro dia, geramos aleatoriamente a população (dando valores aleatórios aos genes do cromossomo). No final de cada dia comercial, mudamos a população por recombinação, explicada na introdução.
Após o treinamento, realizaremos testes nos melhores cromossomos da primeira fase. Para cada estratégia implementada, escolhemos o melhor. Esta fase dura xy dias, onde os cromossomos não estão mudando. No final, ao resumir todos os lucros e perdas que eles fizeram, podemos ver se na fase de treinamento obtivemos um bom cromossomo.
Esta fase significaria deixar o cromossomo se realizar na troca de ações em tempo real em tempo real. Mas como nenhum de nós é um jogador, não realizaremos essa fase.
Observe que obtemos os dados do catálogo de pedidos para a Microsoft a partir do período FROM-UNTIL. Esta escassez de dados nos limitou na escolha do período das fases, bem como no número de estratégias que implementamos.
Os dados financeiros estão disponíveis, mas muitas vezes muito caros (exceção é LOBSTER para pesquisa acadêmica)
Existem algumas dúvidas sobre o uso de técnicas de aprendizado de máquinas na análise de mercados financeiros (www-stat. wharton. upenn. edu/
As estratégias de negociação baseadas em dados do livro de pedidos não levam em consideração a transação estabelecida em pools escuros. Estas são principalmente grandes transações que teriam um grande impacto no mercado (manequins / how-to / content / investigate-the-order-book-for-uptotheminute-stock. html)
Visualização de dados dos resultados obtidos.
Integração do sentimento de análise de notícias em nosso sistema, por exemplo, análise de sentimentos de notícias, tweets ou fazer conclusões pelo volume de pesquisas em algumas palavras-chave no google. Aplicação de estratégias de negociação em dados em tempo real.
Atualmente, somos 6 pessoas neste projeto.
Filip Hrisafov (líder do time) Paulina Grnarova Alexios Voulimeneas Miloš Stojanović Jelena Antić Vidor Kanalas.
As habilidades necessárias para este projeto são Data Mining, Machine Learning, algumas estatísticas, Java, Scala, Hadoop / Spark.
Funções para os membros da equipe seriam.
Reúna os dados da tradingphysics / (feito) Estratégias: família Sobi e outras estratégias de nível 1 de nível 1: toda a equipe participa nas discussões e escolhe as estratégias Extração de projeto de algoritmo genético e decida sobre características e parâmetros de dados para construir genomas e cromossomos Escolha de avaliação e função de fitness, bons cruzamentos e mutações Aprendizado de máquina: (Os parâmetros de estratégias podem ser encontrados a partir da aprendizagem em máquina) Treine o algoritmo para obter parâmetros para as estratégias em tempo real Infraestrutura - visualização de dados, simulações de execução para testar os algoritmos, visualizando os resultados (ganho ou perda) Líder do projeto: Filip.
Os papéis são distribuídos da seguinte maneira:
Toda a equipe fará o 1º e o 2º. Paulina, Jelena e Vidor implementarão as estratégias e criarão algoritmos fazendo 3ª e 4ª. Cada um deles implementará padrões diferentes, como "duplo-fundo", "duplo-topo", "cabeça e ombros" etc. Filip, Miloš e Alexios farão o 5º, construindo o ambiente de simulação para a parte de avaliação dos algoritmos sobre dados reais (com base nos sinais de compra e venda, determinaremos se temos ganho ou perda). Mais concretamente, Filip irá trabalhar na preparação e processamento dos dados (simulados) em tempo real, Alexios na integração com algoritmos construídos com os outros membros da equipe e Miloš na visualização. O líder da equipe para o projeto é Filip.
Neste momento, não podemos fornecer um plano detalhado de requisitos de recursos. However we are sure, that we are not going to need real time heavy parallel processing. We will create our algorithms and do the data mining in parallel way, which can be executed few times on a cluster. Of course we will also use our local machines so we can do testing on smaller datasets.
&cópia de; 2017 GitHub, Inc. Termos Privacidade Segurança Status Ajuda.
Você não pode executar essa ação neste momento.
Você fez login com outra guia ou janela. Recarregue para atualizar sua sessão. Você se separou em outra guia ou janela. Recarregue para atualizar sua sessão.

No comments:

Post a Comment