Sunday 18 February 2018

Movimentação média eficiente algoritmo


DEFINIÇÃO DE ALGORITMO Um algoritmo é conjunto de regras para realizar uma tarefa em um certo número de etapas. Um exemplo comum é uma receita, que é um algoritmo para preparar uma refeição. Algoritmos são essenciais para que os computadores processem informações. Como tal, eles se tornaram centrais para a vida diária dos seres humanos, se alguém encomendas um livro on-line, faz uma reserva de companhia aérea ou usa um motor de busca. As empresas financeiras usam algoritmos em áreas como preços de empréstimos, negociação de ações e gerenciamento de ativos e passivos. Por exemplo, negociação algorítmica. Conhecido como algo, é usado para decidir o timing, preço e quantidade de ordens de estoque. BREAKING DOWN Algoritmo A negociação de Algo, também conhecida como negociação automatizada ou negociação em caixa preta, usa um programa de computador para comprar ou vender títulos em um ritmo que não é possível para os seres humanos. Uma vez que os preços dos estoques, títulos e commodities aparecem em vários formatos on-line e em dados comerciais, o processo pelo qual um algoritmo digere dezenas de dados financeiros torna-se fácil. O usuário do programa simplesmente define os parâmetros e obtém uma saída desejada quando os títulos atendem aos critérios do comerciante. Tipos de Algos Vários tipos de algoritmos de negociação ajudar os investidores a decidir se a comprar ou vender. Um algoritmo de reversão médio examina preços de curto prazo sobre o preço médio a longo prazo. E se um estoque vai muito mais elevado do que a média, um comerciante pode vendê-lo para um lucro rápido. Sazonalidade refere-se à prática de comerciantes compra e venda de títulos com base na época do ano, quando os mercados normalmente subir ou cair. Um algoritmo de análise sentimento mede notícias sobre um preço das ações que poderia levar a maior volume para um determinado período comercial. A seguir é um exemplo de um algoritmo simples para negociação. Um comerciante instrui sua conta automatizada para vender 100 partes de um estoque se a média móvel de 50 dias for abaixo da média móvel de 200 dias. Ao contrário, o trader poderia dizer ao seu programa para comprar 100 ações se a média móvel de 50 dias de uma ação sobe acima da média móvel de 200 dias. Algoritmos sofisticados podem levar em conta centenas de critérios antes de comprar ou vender títulos. A razão para isto é que os computadores são máquinas altamente eficientes para executar cálculos complexos muito rapidamente. Em Ciência da Computação Um programador deve empregar cinco partes básicas de um algoritmo para criar um programa bem sucedido. A pessoa deve descrever o problema em termos matemáticos antes de configurar as fórmulas e os processos que criam um resultado. Em seguida, o programador entra os parâmetros que dão o resultado e, em seguida, ele executa o programa repetidamente para testá-lo. A conclusão do algoritmo é o resultado dado após o conjunto de parâmetros passa pelo conjunto de instruções no programa. Para algoritmos financeiros, quanto mais complexo o programa, mais dados o software pode usar para fazer avaliações precisas para comprar ou vender títulos. Além disso, os programadores devem testar algoritmos complexos de forma mais completa do que os simples, para garantir o controle de qualidade correto. Básicos de negociação algorítmica: conceitos e exemplos Um algoritmo é um conjunto específico de instruções claramente definidas destinadas a realizar uma tarefa ou processo. A negociação algorítmica (negociação automatizada, negociação em caixa preta ou simplesmente negociação de algo) é o processo de utilização de computadores programados para seguir um conjunto definido de instruções para colocar um negócio a fim de gerar lucros a uma velocidade e frequência que é impossível para um Comerciante humano. Os conjuntos de regras definidos baseiam-se em tempo, preço, quantidade ou qualquer modelo matemático. Além de oportunidades de lucro para o comerciante, algo-trading torna os mercados mais líquidos e torna a negociação mais sistemática, excluindo impactos humanos emocionais sobre as atividades de negociação. Suponha que um comerciante segue esses critérios comerciais simples: Comprar 50 ações de uma ação quando sua média móvel de 50 dias ultrapassa a média móvel de 200 dias Vender ações da ação quando sua média móvel de 50 dias fica abaixo da média móvel de 200 dias Usando este conjunto de duas instruções simples, é fácil escrever um programa de computador que irá monitorar automaticamente o preço das ações (e os indicadores de média móvel) e colocar as ordens de compra e venda quando as condições definidas forem atendidas. O comerciante já não precisa de manter um relógio para preços e gráficos vivos, ou põr nas ordens manualmente. O sistema de negociação algorítmica automaticamente faz isso para ele, identificando corretamente a oportunidade de negociação. Algo-trading oferece os seguintes benefícios: Trades executados nos melhores preços possíveis Instant e exata colocação da ordem de comércio (assim altas chances de execução nos níveis desejados) Trades Temporizado corretamente e instantaneamente, para evitar mudanças significativas de preços Custos de transação reduzidos (veja o exemplo de insuficiência de implementação abaixo) Verificações automáticas simultâneas em várias condições de mercado Redução do risco de erros manuais na colocação das operações Backtest o algoritmo, com base em dados históricos e em tempo real reduzidos Reduzido A possibilidade de erros por comerciantes humanos com base em fatores emocionais e psicológicos A maior parte do atual dia algo-negociação é de alta freqüência de negociação (HFT), que tenta capitalizar sobre a colocação de um grande número de ordens em velocidades muito rápidas em vários mercados e múltiplas decisões Parâmetros, com base em instruções pré-programadas. Algo-trading é usado em muitas formas de negociação e atividades de investimento, incluindo: Investidores de médio a longo prazo ou empresas de compra de lado (fundos de pensão , Fundos mútuos, companhias de seguros) que compram em ações em grandes quantidades, mas não querem influenciar os preços das ações com investimentos discretos de grande volume. Os comerciantes de curto prazo e os participantes do lado da venda (fabricantes de mercado, especuladores e arbitradores) beneficiam-se da execução automatizada do comércio além, de algo-negociar ajudas em criar liquidez suficiente para vendedores no mercado. Os comerciantes sistemáticos (seguidores de tendências, comerciantes de pares, fundos de hedge, etc.) acham muito mais eficiente programar suas regras de negociação e deixar o programa trocar automaticamente. A negociação algorítmica proporciona uma abordagem mais sistemática ao comércio ativo do que métodos baseados em intuição ou instinto de comerciantes humanos. Estratégias Algorítmicas de Negociação Qualquer estratégia para negociação algorítmica requer uma oportunidade identificada que seja rentável em termos de ganhos melhorados ou redução de custos. As estratégias de negociação comuns usadas em algo-trading são as seguintes: As estratégias de negociação algorítmicas mais comuns seguem as tendências em médias móveis. Canal breakouts. Movimentos de nível de preços e indicadores técnicos relacionados. Estas são as estratégias mais fáceis e mais simples de implementar através de negociação algorítmica, porque essas estratégias não envolvem fazer previsões ou previsões de preços. Os negócios são iniciados com base na ocorrência de tendências desejáveis. Que são fáceis e simples de implementar através de algoritmos sem entrar na complexidade da análise preditiva. O exemplo acima mencionado de média móvel de 50 e 200 dias é uma tendência popular seguindo a estratégia. Comprar uma ação cotada dual a um preço mais baixo em um mercado e vendê-lo simultaneamente a um preço mais elevado em um outro mercado oferece o diferencial de preço como o lucro sem risco Ou arbitragem. A mesma operação pode ser replicada para ações versus instrumentos de futuros, já que existem diferenciais de preços de tempos em tempos. Implementar um algoritmo para identificar tais diferenciais de preços e colocar as ordens permite oportunidades rentáveis ​​de forma eficiente. Os fundos de índice definiram períodos de reequilíbrio para trazer as suas participações a par com os respectivos índices de referência. Isso cria oportunidades lucrativas para os comerciantes algorítmicos, que capitalizar sobre os negócios esperados que oferecem 20-80 pontos-base de lucros, dependendo do número de ações no fundo de índice, pouco antes do rebalanceamento do fundo índice. Tais negociações são iniciadas através de sistemas de negociação algorítmica para execução atempada e melhores preços. Um monte de modelos matemáticos comprovados, como a estratégia de negociação delta neutro, que permitem negociação na combinação de opções e sua segurança subjacente. Onde os negócios são colocados para compensar deltas positivos e negativos de forma que o delta da carteira seja mantido em zero. A estratégia de reversão média baseia-se na idéia de que os preços altos e baixos de um ativo são um fenômeno temporário que revertem para seu valor médio periodicamente. Identificar e definir uma faixa de preço e algoritmo de implementação com base em que permite que os comércios sejam colocados automaticamente quando o preço do ativo entrar e sair do seu intervalo definido. Volume ponderada estratégia de preço médio quebra uma grande ordem e libera dinamicamente determinados pedaços menores da ordem para o mercado usando os perfis de volume histórico específico do estoque. O objetivo é executar a ordem próxima ao Preço Médio Ponderado pelo Volume (VWAP), beneficiando assim o preço médio. A estratégia de preço médio ponderado pelo tempo rompe uma grande ordem e libera blocos menores determinados dinamicamente da ordem para o mercado usando intervalos de tempo uniformemente divididos entre um horário inicial e um horário final. O objetivo é executar a ordem perto do preço médio entre o início eo fim, minimizando assim o impacto no mercado. Até que a ordem de negociação seja totalmente preenchida, este algoritmo continua enviando ordens parciais, de acordo com a proporção de participação definida e de acordo com o volume negociado nos mercados. A estratégia de passos relacionados envia ordens a uma percentagem definida pelo utilizador dos volumes de mercado e aumenta ou diminui esta taxa de participação quando o preço da acção atinge níveis definidos pelo utilizador. A estratégia de déficit de implementação visa minimizar o custo de execução de uma ordem, trocando o mercado em tempo real, economizando assim o custo da ordem e beneficiando do custo de oportunidade da execução atrasada. A estratégia vai aumentar a taxa de participação alvo quando o preço das ações se move favoravelmente e diminuí-lo quando o preço das ações se move adversamente. Existem algumas classes especiais de algoritmos que tentam identificar acontecimentos no outro lado. Esses algoritmos de sniffing, usados, por exemplo, por um fabricante de mercado de sell side têm a inteligência interna para identificar a existência de quaisquer algoritmos no lado de compra de uma grande ordem. Essa detecção por meio de algoritmos ajudará o criador de mercado a identificar grandes oportunidades de pedidos e permitir que ele se beneficie ao preencher os pedidos a um preço mais alto. Isso às vezes é identificado como front-running de alta tecnologia. Requisitos técnicos para negociação algorítmica Implementar o algoritmo usando um programa de computador é a última parte, bateu com backtesting. (Para mais sobre negociação de alta freqüência e práticas fraudulentas, consulte: Se você comprar ações on-line, você está envolvido em HFTs. O desafio é transformar a estratégia identificada em um processo informatizado integrado que tenha acesso a uma conta comercial para a colocação de encomendas. São necessários os seguintes: Conhecimento de programação de computadores para programar a estratégia de negociação necessária, programadores contratados ou software de negociação pré-fabricado Conectividade de rede e acesso a plataformas de negociação para colocar as ordens Acesso a feeds de dados de mercado que serão monitorados pelo algoritmo para oportunidades de colocar Ordens A capacidade ea infra-estrutura para backtest o sistema uma vez construído, antes de ir viver em mercados reais Dados históricos disponíveis para backtesting, dependendo da complexidade das regras implementadas no algoritmo Aqui está um exemplo abrangente: Royal Dutch Shell (RDS) está listado em Amsterdam Bolsa de Valores (AEX) e Bolsa de Valores de Londres (LSE). Permite construir um algoritmo para identificar oportunidades de arbitragem. Aqui estão algumas observações interessantes: AEX negocia em Euros, enquanto LSE negocia em libras esterlinas Devido à diferença de hora de uma hora, AEX abre uma hora mais cedo do que LSE, seguido por ambas as trocas que negociam simultaneamente por próximas horas e então negociando somente em LSE durante A última hora à medida que a AEX fecha Podemos explorar a possibilidade de negociação de arbitragem sobre as ações da Royal Dutch Shell listadas nesses dois mercados em duas moedas diferentes Um programa de computador que pode ler os preços atuais do mercado Alimentações de preços tanto da LSE quanto da AEX A forex rate feed for Taxa de câmbio GBP-EUR Ordem de capacidade de colocação que pode encaminhar a ordem para a troca correta Capacidade de back-testing em feeds de preços históricos O programa de computador deve executar o seguinte: Leia o feed de preços de entrada de ações RDS de ambas as câmaras Usando as taxas de câmbio disponíveis . Converter o preço de uma moeda para outra Se houver uma discrepância de preço suficientemente grande (descontando os custos de corretagem) levando a uma oportunidade lucrativa, então coloque a ordem de compra em câmbio de menor preço e venda na ordem de câmbio mais alta Se as ordens forem executadas como Desejado, o lucro de arbitragem seguirá Simples e Fácil No entanto, a prática de negociação algorítmica não é tão simples de manter e executar. Lembre-se, se você pode colocar um comércio algo-gerado, assim que os outros participantes do mercado. Conseqüentemente, os preços flutuam em milissegundos e até em microssegundos. No exemplo acima, o que acontece se o seu comércio comprar é executado, mas vender o comércio doesnt como os preços de venda mudar no momento em que sua ordem atinge o mercado Você vai acabar sentado com uma posição aberta. Tornando sua estratégia de arbitragem inútil. Há riscos e desafios adicionais: por exemplo, riscos de falha de sistema, erros de conectividade de rede, intervalos de tempo entre ordens de negociação e execução e, o mais importante de tudo, algoritmos imperfeitos. Quanto mais complexo for um algoritmo, o backtesting mais rigoroso é necessário antes de ser colocado em ação. A análise quantitativa do desempenho de um algoritmo desempenha um papel importante e deve ser examinada criticamente. Sua emocionante para ir para a automação auxiliado por computadores com uma noção de fazer dinheiro sem esforço. Mas um deve certificar-se que o sistema é testado completamente e os limites requeridos são ajustados. Os comerciantes analíticos devem considerar a aprendizagem de programação e sistemas de construção por conta própria, para ter certeza de implementar as estratégias certas de forma infalível. O uso cauteloso e o teste completo de algo-trading podem criar oportunidades lucrativas. O valor de mercado total do dólar de todas as partes em circulação de uma companhia. A capitalização de mercado é calculada pela multiplicação. Frexit curto para quotFrancês exitquot é um spin-off francês do termo Brexit, que surgiu quando o Reino Unido votou. Uma ordem colocada com um corretor que combina as características de ordem de parada com as de uma ordem de limite. Uma ordem de stop-limite será. Uma rodada de financiamento onde os investidores comprar ações de uma empresa com uma avaliação menor do que a avaliação colocada sobre a. Uma teoria econômica da despesa total na economia e seus efeitos no produto e na inflação. A economia keynesiana foi desenvolvida. A detenção de um activo numa carteira. Um investimento de carteira é feito com a expectativa de obter retorno sobre ele. Isto. Antennas (e arrays de antena), muitas vezes operam em ambientes dinâmicos, onde os sinais (tanto desejado e interferir) chegam a partir de mudanças de direção e com poderes variados. Como resultado, arrays de antena adaptativa foram desenvolvidos. Estas matrizes de antena empregam um algoritmo de ponderação adaptativa, que adapta os pesos com base nos sinais recebidos para melhorar o desempenho da matriz. Nesta seção, o algoritmo LMS é introduzido. LMS significa Least-Mean-Square. Esse algoritmo foi desenvolvido por Bernard Widrow na década de 1960 e é o primeiro algoritmo adaptativo amplamente utilizado. Ainda é amplamente utilizado em processamento adaptativo de sinal digital e matrizes de antena adaptativas, principalmente por causa de sua simplicidade, facilidade de implementação e boas propriedades de convergência. O objetivo do algoritmo LMS é produzir os pesos MMSE para o ambiente dado. As definições de todos os termos usados ​​nesta página seguem a partir da página MMSE. Que deve ser entendido antes de ler esta página. O objetivo do algoritmo LMS é produzir de forma adaptativa pesos que minimizem o erro quadrático médio entre um sinal desejado e a saída de matrizes frouxamente falando, ele tenta maximizar a recepção na direção do sinal desejado (quem ou o que o array está tentando Comunicar com) e minimizar a recepção dos sinais de interferência ou indesejáveis. Assim como no caso MMSE, algumas informações são necessárias antes de pesos ótimos podem ser determinados. E assim como no caso de ponderação MMSE, a informação necessária é a direção e a potência dos sinais desejados. A direcção é especificada através dos sinais desejados vector direcção () ea potência do sinal é escrito como. Observe que esses parâmetros podem variar com o tempo, já que o ambiente é assumido como sendo alterado. As direções ea potência podem ser determinadas usando vários algoritmos de localização de direção, que analisam os sinais recebidos em cada antena para estimar as direções e potência. Lembre-se de que o erro médio quadrado entre o sinal desejado ea saída dos arrays pode ser escrito como: O gradiente (derivado do vetor em relação ao vetor de peso) pode ser escrito como: O algoritmo LMS requer uma estimativa da matriz de autocorrelação para Obter pesos que minimizem o MSE. O algoritmo LMS estima a matriz de autocorrelação () utilizando apenas o sinal recebido corrente em cada antena (especificado pelo vetor X). Os pesos são atualizados iterativamente, em instâncias discretas de tempo, denotado por um índice k. A estimativa da matriz de autocorrelação no tempo k. Escrito com uma sobrecarga de barra, é escrito como: O algoritmo LMS aproxima então o gradiente do MSE substituindo na aproximação simples acima para a matriz de autocorrelação: Os pesos adaptativos serão escritos como W (k), onde k é um índice que Especifica o tempo. O algoritmo de ponderação LMS simplesmente atualiza os pesos por uma pequena quantidade na direção do gradiente negativo da função MSE. Movendo-se na direcção do gradiente negativo, a MSE global é diminuída a cada passo de tempo. Desta forma, os pesos aproximam-se iterativamente dos valores óptimos que minimizam o MSE. Além disso, como o algoritmo adaptativo é continuamente atualizado, à medida que o ambiente muda, os pesos também se adaptam. Os pesos são atualizados em intervalos regulares eo peso no tempo k 1 está relacionado ao tempo k por: O parâmetro controla o tamanho dos passos que os pesos fazem e afeta a velocidade de convergência do algoritmo. Para garantir a convergência, deve ser menor que 2 dividido pelo maior autovalor da matriz de autocorrelação. Substituindo na estimativa para o gradiente acima, o algoritmo de atualização LMS pode ser escrito como uma equação iterativa simples: A simplicidade do algoritmo é a principal razão para o seu uso generalizado. A equação de atualização acima não requer qualquer matemática complexa, ele apenas usa as amostras atuais do sinal recebido em cada antena (X). Exemplo de Algoritmo LMS Suponha uma matriz linear de antenas, com espaçamento de meio comprimento de onda e N 5 elementos na matriz. Bem, suponha que a relação sinal-ruído (SNR) é de 20 dB e que o ruído é gaussiano e independente de uma antena para a próxima. Suponha que haja dois interferentes chegando de 40 e 110 graus, com uma potência interferente de 10 dB (em relação ao sinal desejado). Supõe-se que o sinal desejado venha de 90 graus. O algoritmo está começando assumindo um vetor do peso de todos os uns (o vetor do peso começar idealmente não tem nenhum impacto nos resultados finais): O parâmetro da convergência é escolhido ser: Usando o ruído aleatório em cada etapa, o algoritmo é pisado para a frente do peso inicial . O MSE resultante a cada passo de tempo é mostrado na figura seguinte, em relação ao MSE óptimo. O algoritmo LMS é bastante eficiente em avançar para os pesos ótimos para este caso. Uma vez que o algoritmo usa uma aproximação da matriz de autocorrelação em cada passo de tempo, alguns dos passos realmente aumentam o MSE. No entanto, em média, o MSE diminui. Esse algoritmo também é bastante robusto para ambientes em mudança. Vários algoritmos adaptativos expandiram-se sobre idéias usadas no algoritmo LMS original. A maioria destes algoritmos procuram produzir propriedades de convergência melhoradas à custa do aumento da complexidade computacional. Por exemplo, o algoritmo recursivo de mínimos quadrados (RLS) procura minimizar o MSE exatamente como no algoritmo LMS. No entanto, ele usa uma atualização mais sofisticada para encontrar o ótimo pesos que é baseado no lemma de inversão de matriz. Ambos os algoritmos (e todos os outros baseados no algoritmo LMS) têm os mesmos pesos ideais que os algoritmos tentam convergir para. Esta página no algoritmo LMS tem direitos de autor. Nenhuma parte pode ser reproduzida exceto com permissão do autor. Copyright antena-teoria, 2009-2017. Algoritmo LMS para arrays de antena.

No comments:

Post a Comment