Seu interior está iterando toda a matriz assim thats porque você sempre tem a mesma média (a única para toda a matriz), você deve iterar de 0 para o número atual do exterior para em vez disso. Sua média móvel está sendo atualizada com base em j de seu interior para isso significa que ele irá substituir os valores anteriores de cada novo loop, isso deve estar dentro do exterior para em vez do interior usando i como índice. Você está dividindo sum / j para calcular médias, cada novo loop interno j você vai dividir por 0 a primeira soma. Eu acredito que você pretende usar j1 em vez disso, o índice não é o mesmo que o comprimento atual Dicas para solucionar problemas: Evite usar variáveis para arrays de loop, você deve usar array. length em vez disso. Para uma questão de reproduzir seu problema, você poderia nos dar o problema isolado em vez de seu código atual. Ou seja: Imagine se o erro está em suas entradas, como poderíamos acreditar que você realmente as usou respondidas Você está looping sobre todos os dados de cada vez. Você deve ter (j) (ou algo similar) para sua média mais interna. Além disso, movingAverageisum / j deve ser modificado para lidar com o caso quando j é 0. Em particular, provavelmente deve ser movingAverageisum / averageLength e deve ser aplicado ao slot movingAveragei fora do loop de média. A próxima vez, tome os comentários sobre a atribuição fora da questão antes de publicá-la. Mas desde que você parece muito novo nisso, pense sobre como você iria passar os dados, e fazê-lo fazer isso. Você deve tentar se certificar de que cada loop está parando no ponto correto, e lembre-se que se você parar quando não há mais números, (como quando você está fazendo o loop interno e você só pode obter mais 3 números em vez de 4) O programa precisa parar também. Certifique-se de que seu código está verificando isso. Resposta Sem quaisquer detalhes adicionais, você provavelmente precisará de uma média móvel não ponderada. Em qualquer ponto Ai na matriz de entrada A de comprimento N (com 0ltiltN), isso é simplesmente a média das entradas K anteriores da matriz, até e incluindo Ai. Se não houver K tais valores, então a média dos valores (i1) de A0 a Ai. Inclusive. Um pouco de pensamento irá mostrar-lhe que você não precisa adicionar todos os valores de K cada vez. Basta manter a soma e, ao passar para o próximo ponto (esta é uma média móvel), subtraia o valor que está sendo substituído e adicione o novo valor que irá substituí-lo. (Durante os primeiros pontos K-1, basta adicionar o novo valor à soma e aumentar o contador por 1.) Em qualquer ponto desse processo, a média móvel é a soma corrente dividida pelo valor da contagem atual. Resposta Em uma média móvel, você precisa ter algum tipo de tamanho de janela. Seu tamanho de janela é averageLength, então ele será algo parecido com isto: O loop for começa nos dados atuais e retorna pontos de dados averageLength e os adiciona. Você só terá uma média móvel quando tiver você tem quando você tem pontos de dados suficientes ea média será a soma dividida pelo comprimento médio. Nota: Não testado apenas sudo código, mas esta é a idéia. Onde os preços da habitação média hit 500000 jovens locatários desencadeada sobre Londres, pela primeira vez tendem a afluir para o partido popular hubs de Clapham, Brixton E Hackney, ansioso para ser tão central como aluguéis permitirá. Mas quando se trata de chegar na escada ou comprar a primeira casa da família, muitos são forçados a se desabafar em busca de uma área em que eles podem dar ao luxo de se tornar proprietários, não inquilinos. Esta dinâmica de migração cria 22 bairros: áreas gentrifying onde um aumento sustentado na demanda impulsiona valores, tornando-os eventualmente inacessíveis para a próxima geração. Nova pesquisa do grupo de propriedade JLL identificou locais de Londons do momento, onde os preços estão no bom caminho para quebrar o limite de 500.000 até 2020. Clique nas áreas abaixo para descobrir quando o preço médio é previsto para quebrar a marca de 500.000. As sete áreas próximas na fila para juntar os 14 que já têm um valor médio de mais de meio milhão de libras são Brent, Kingston-upon-Tamisa, Ealing, Tower Hamlets, Harrow, Bromley e Waltham Forest. A inflação dos preços das casas acelerou à frente dos salários, fazendo com que comprar no que já era a área mais cara do Reino Unido no centro de Londres ainda mais longe do alcance do aspirante proprietário da casa, diz o analista JLL Nick Whitten. Ele também calculou a taxa de acessibilidade de cada cidade, considerando a relação entre o preço médio da habitação e o salário médio. Mas não é apenas sobre a acessibilidade. Então, o que mais esses hotspots de propriedade têm para oferecer Brent Brent inclui áreas como Queens Park, Kilburn e Harlesden, mas o aumento de toda a cidade em preços de casas é um resultado direto do enorme projeto de regeneração em torno do Estádio de Wembley. A empresa de desenvolvimento Quintain comprou a área de concreto em volta do estádio e da arena em 2002, prometendo entregar 5.000 novas casas. Apartamentos em duas torres de concierge-run foram à venda em 2009 e 2010, trazendo algum luxo para a área, ea suíte show está disponível para ver o que será o 425-casa Emerald Gardens. Uma casa de três quartos com um grande jardim de volta perto de Wembley é 499.950 Quintain melhorou as passarelas em torno das três estações, Wembley Park, Wembley Central e Wembley Stadium, e criou três novos parques. Com o London Designer Outlet chegavam lojas, restaurantes e um cinema de nove telas gerando 1.000 novos empregos. Brent tem conexões de transporte fantásticas para o centro de Londres, mas foi tradicionalmente negligenciado em favor de locais mais desejáveis, diz Whitten. Investimento de regeneração em torno de Wembley ea demanda por locais na periferia de Londres, como o Queens Park, colocaram os preços da habitação sob forte pressão nos últimos anos. No mercado: Uma casa de três quartos com um grande quintal perto de Wembley é 499.950 com Foxtons (020 3542 2188 foxtons. co. uk). Preço atual da habitabilidade: 16 Preço médio da casa atingirá 501,391 em dezembro de 2016 Kingston-upon-Thames Kingston fica na margem sul do Tâmisa antes de serpenteia para oeste em Surrey. O zumbido subúrbio tem um complexo de cinema e centro comercial, com um John Lewis e Bentalls. A escola alemã em Petersham vizinho atrai algumas famílias ultramarinas e os compradores chineses estão arranhando acima os apartamentos novos do beira-rio, mas o mercado local é predominantly psto por compradores domésticos e pelas famílias que instalam-se nas fileiras de terraces de Victorian. Um apartamento de jardim de dois quartos é 375.000 com Foxtons Os preços caíram menos aqui em 2008-09 em comparação com o centro de Londres, porque não estavam sujeitos aos caprichos do mercado internacional, diz Peter Knowles da Hamptons International. Mas youll ainda obter duas vezes a casa para metade do preço em comparação com Wimbledon ou Richmond. As famílias mudam-se para Kingston para salvaguardar uma educação decente para seus filhos, diz ele. Todas as nossas escolas primárias são excelentes e uma nova academia acaba de abrir. No mercado: Um apartamento de jardim de dois quartos é 375.000 com Foxtons (020 8879 2121 foxtons. co. uk). O preço médio da habitação atingirá 524.108 em dezembro de 2017 Ealing Crossrail transformou a percepção de Ealing para famílias e especuladores imobiliários, segundo Paul Daniel, da Hamptons International. Quando a Elizabeth Line abre em dezembro de 2018. o tempo de viagem de Ealing Broadway para Bond Street será reduzido para metade por 11 minutos. O transporte foi apenas um fator quando o gerente de riqueza e empreendedor Katie Owen mudou sua família de Forest Hill, no sul de Londres, para a área de aldeia de Hanwell, três anos atrás. Gerente de riqueza e empresária Katie Owen mudou-se para Hanwell com sua família Crédito: Julian Andrews Embora nós amamos Forest Hill, meu marido trabalha em Park Royal e nossos parentes vivem para o oeste ou no West Midlands, diz ela. Eles também queriam mais espaço para abrigar sua família em crescimento (agora eles têm dois meninos) e espaço para Owen começar seu negócio, Sargasso Gray. Fazendo saltos feitos sob medida para pés largos. No entanto, seu ponto de preço levou-a para Hanwell, uma pequena cidade no sul do bairro. Eu não sabia nada sobre Hanwell, mas o trem leva 15 minutos para Paddington e porque ele não tem uma parada de metro, os preços eram muito mais baixos, ela explica. Nós ao vivo por Brent Lodge Park com dois playgrounds, um labirinto e um zoológico. Ele marcado todas as caixas para nós. Um apartamento de um quarto período é 435.000 com KFH Eles compraram uma casa geminada de cinco quartos, em necessidade de renovação, com um jardim de 180 pés, para pouco mais de 700.000. No mercado: Um período de um quarto apartamento é 435.000 com KFH (020 3792 5718 kfh. co. uk). Preço atual da habitação: 16 Preço médio da casa atingirá 511,287 em dezembro de 2017 Tower Hamlets Ao leste da cidade, Tower Hamlets inclui áreas como Canary Wharf, Whitechapel e Bow e faz fronteira com o Queen Elizabeth Olympic Park. Duas forças regenerativas diferentes estiveram trabalhando durante a última década, explica Whitten: o efeito olímpico derramou sobre de Stratford vizinho quando, independente, Londres move-se para o leste. Um apartamento de um quarto em um novo desenvolvimento no quadril Fish Island, minutos de bem-conectado Stratford, é 419.000 com CBRE Até 2030 metade de todo o crescimento da população de Londons será a leste da capital, diz ele, ea revolução residencial Em Canary Wharf está no coração de que. Entre as novas torres está o bloco de apartamentos de 60 andares em Newfoundland, que abrigará 560 apartamentos de luxo, e um esquema sem nome de 20 acres, que contará com 3.200 casas. Whitten cita a Old Street como o novo centro de tecnologia financeira do mundo, arrastando as pessoas nessa direção em busca de empregos. Entretanto, a sua acessível e Crossrail chega em 2018. No mercado: Um apartamento de um quarto em um novo desenvolvimento na ilha Fish Fish, minutos de bem conectado Stratford, é 419.000 com CBRE (020 7519 5917 cbreresidential) : 13 Preço médio da casa atingirá 512.031 em dezembro de 2018 Harrow Harrow, lar de Stanmore (o fim da linha Jubliee), é a porta de entrada para o cinturão desejável de Hertfordshire. Muitos londrinos começam sua busca para mais espaço no condado popular mas, em encontrar seu demasiado caro, descobre a grade. 454.900 você terá um duplex de três quartos perto de Harrow-on-the-Hill com Woodward Pode ser o melhor dos dois mundos para aqueles que vão nessa direção, diz Whitten. A viagem de trem leva apenas 12 minutos de Marylebone para Harrow-on-the-Hill, a área mais inteligente do bairro que cercam Harrow School. Apartamentos de um, dois e três quartos em Redrows nova Praça de Lyon começam de 365.000 para 650.000 e Persimmon ensacou a permissão para transformar a planta Kodak em um esquema de habitação. No mercado: 454.900 você terá um duplex de três quartos perto de Harrow-on-the-Hill com Woodward (020 8864 8844 woodward. co. uk). Bromley A onda de demanda por imóveis em Bromley veio em 2014, quando foi descoberto por londrinos que se mudam para fora, diz Theresa Hiscoke, gerente da filial em Alan de Maid. Agora temos um mercado comprador de primeira vez muito forte e um monte de pessoas seguindo seus amigos. Eles podem obter um três quartos semi para o preço de um apartamento de um quarto no vizinho Dulwich. Alan de Maid tem um apartamento de três quartos com estacionamento off-street para 365.000 A High Street, que uma vez perdeu o comércio para o complexo de compras Bluewater nas proximidades, construiu-se de volta com uma variedade de high-end e lojas independentes. Há um teatro, boas escolas primárias e secundárias e trens que correm para Waterloo East, Charing Cross, Victoria e London Bridge. No mercado: Alan de Maid tem um apartamento de três quartos com estacionamento off-street para 365.000 (020 3369 4290 alandemaid. co. uk). Taxa de acessibilidade atual: 12 Preço médio da casa atingirá 509.823 em dezembro de 2019 Waltham Forest Waltham Forest corre do topo de Stratford até Chingford com Walthamstow no seu centro. A moda Orford Road atravessa o meio do que foi apelidado Waltham Village, e com delis, cervejarias locais e bric-a-brac lojas seu certamente um E17 diferente do que inspirou a banda dos anos noventa. Um andar térreo três quartos apartamento em Walthamstow com um grande jardim está no mercado com Foxtons para 475.000 Walthamstow está se beneficiando do que Foxtons Daren Haysom chama um ataque de duas pontas. Londres inquilinos jovens que não podem dar ao luxo de comprar em Muswell Hill ou Crouch End estão indo para fora, enquanto os compradores estão se aventurando em do gosta de Loughton em Essex. A área foi previamente ignorada e oprimida, mas isso está mudando rapidamente, diz ele. No mercado: Um piso térreo de três quartos apartamento com um grande jardim está no mercado com Foxtons para 475.000 (020 3728 2323 foxtons. co. uk). Taxa de acessibilidade atual: 15 Preço médio casa atingirá 503.765 até dezembro 2019numpy. average eixo ao longo do qual a média a. Se Nenhum. A média é feita sobre o arranjo achatado. Pesos. Arraylike, optional Uma matriz de pesos associados com os valores em a. Cada valor em a contribui para a média de acordo com seu peso associado. A matriz de pesos pode ser 1-D (caso em que seu comprimento deve ser o tamanho de um ao longo do eixo dado) ou da mesma forma como a. Se weightsNone. Então todos os dados em um são assumidos para ter um peso igual a um. devolvida . Bool, opcional O padrão é False. Se for verdade . A tupla (média de sumofweights) é retornada, caso contrário apenas a média é retornada. Se weightsNone. Sumofweights é equivalente ao número de elementos sobre os quais a média é tomada. Média, sumofweights. Arraytype ou double Retorna a média ao longo do eixo especificado. Quando retornado é True. Retorna uma tupla com a média como o primeiro elemento ea soma dos pesos como o segundo elemento. O tipo de retorno é Float se a for de tipo inteiro, caso contrário ele é do mesmo tipo que a. Sumofweights é do mesmo tipo que a média. Eu quero desenvolver o cálculo para a média móvel do preço das ações. Mas muitos cálculos complexos foram planejados mais tarde. Meu primeiro passo para saber como calcular a média móvel de forma eficiente. Eu preciso saber como tomar a entrada e retorno de saída de forma eficiente. Considerado data e preço de entrada. Data, Preço e Média Móvel. Se eu tiver 500 registros e eu quero calcular média móvel por 5 dias o que é a maneira effient em vez de ir para a frente e para trás na matriz de data e preço novamente sugerir o que é a melhor maneira de receber entrada (ArrayList, Table, array Etc) e retorno de saída. Nota: MA de hoje de 5 dias será média dos últimos 5 dias incluindo preço de hoje. Ontem MA será média dos últimos 5 dias de ontem. Eu quero manter os dias para ser flexível em vez de 5 ele poderia ser 9, 14, 20 etc Se você precisa de cálculo simples sem o seu esforço do que você pode usar TA-Lib. Mas se você quiser que seu cálculo seja mais eficiente do que o TA-Lib, então você pode criar seu próprio indicador técnico. TA-Lib é grande, mas o problema é que esta biblioteca tem apenas métodos estáticos. Isso significa que quando você precisa calcular os valores da matriz SMA com base em barras de preço de 500, então você enviará toda a matriz de barras e ele retornará matriz de valores SMA. Mas se você receber novo valor 501-st, então você deve enviar novamente toda a matriz e TA-Lib novamente calculará e retornará SMA matriz de valores. Agora imagine que você precisa desse indicador no feed de preços reais, e para cada mudança de preço você precisa de um novo valor indicador. Se você tem um indicador não é um grande problema, mas se você tiver centenas de indicadores de trabalho, que poderia ser um problema de desempenho. Eu estava em tal situação e começar a desenvolver indicadores em tempo real que são eficientes e fazer cálculos adicionais para a nova barra de preços ou para a barra de preço alterado apenas. Unfortunatelly Eu nunca precisei SMA indicador para os meus sistemas de negociação, mas eu tenho tal para EMA, WMA, AD, e outros. Um desses indicadores AD é publicado no meu blog e você pode ver a partir daí o que é a estrutura básica da minha classe indicador em tempo real. Espero que você vai precisar de pequenas mudanças para implementar SMA indicador, porque é um dos mais simples. A lógica é simples. Para calcular SMA tudo que você precisa é n últimos preços. Assim classe instância terá coleta de preços, que irá armazenar manter apenas último n número de preços como SMA é definido (no seu caso 5). Então, quando você tem um novo bar, você removerá o mais antigo e adicionará um novo e criará um cálculo. Quinta-feira, 10 de abril de 2008 16:04 Todas as respostas Há uma biblioteca chamada TA-Lib que faz tudo isso para você e é de código aberto. Tem cerca de 50 indicadores eu acho. Weve usou-o no ambiente da produção e é muito eficiente e realible. Você pode usá-lo em C, Java, C, etc Se você precisa de um cálculo simples sem o seu esforço do que você pode usar TA-Lib. Mas se você quiser que seu cálculo seja mais eficiente do que o TA-Lib, então você pode criar seu próprio indicador técnico. TA-Lib é grande, mas o problema é que esta biblioteca tem apenas métodos estáticos. Isso significa que quando você precisa calcular os valores da matriz SMA com base em barras de preço de 500, então você enviará toda a matriz de barras e ele retornará matriz de valores SMA. Mas se você receber novo valor 501-st, então você deve enviar novamente toda a matriz e TA-Lib novamente calculará e retornará SMA matriz de valores. Agora imagine que você precisa desse indicador no feed de preços reais, e para cada mudança de preço você precisa de um novo valor indicador. Se você tem um indicador não é um grande problema, mas se você tiver centenas de indicadores de trabalho, que poderia ser um problema de desempenho. Eu estava em tal situação e começar a desenvolver indicadores em tempo real que são eficientes e fazer cálculos adicionais para a nova barra de preços ou para a barra de preço alterado apenas. Unfortunatelly Eu nunca precisei SMA indicador para os meus sistemas de negociação, mas eu tenho tal para EMA, WMA, AD, e outros. Um desses indicadores AD é publicado no meu blog e você pode ver a partir daí o que é a estrutura básica da minha classe indicador em tempo real. Espero que você vai precisar de pequenas mudanças para implementar SMA indicador, porque é um dos mais simples. A lógica é simples. Para calcular SMA tudo que você precisa é n últimos preços. Assim classe instância terá coleta de preços, que irá armazenar manter apenas último n número de preços como SMA é definido (no seu caso 5). Então, quando você tem um novo bar, você removerá o mais antigo e adicionará um novo e criará um cálculo. Quinta-feira, 10 de abril de 2008 16:04 Eu calcularia a média móvel no banco de dados por meio de um procedimento armazenado ou em um cubo. Você já olhou no Analysis Services, ele tem a capacidade de calcular médias móveis. Quinta-feira, 10 de abril de 2008 16:05 Sim. TA-LIB é bom, mas pode não ser adequado para mim. Quando eu adicionar novo valor ou valor atualizado para o histórico de registros vou fazer o cálculo em uma função separada apenas para essa nova cotação e armazená-lo no banco de dados. Estou planejando atualizar a cotação a cada hora. Eu preciso fazer cerca de 25 a 30 indicadores técnicos para 2200 ações. Quinta-feira, 10 de abril de 2008 17:51 Tempo de execução de uma chamada TA-Lib em uma matriz de 10000 elementos leva cerca de 15 milissegundos (em um Intel Core Duo 2.13 Ghz). Esta é a média de todas as funções. Entre os mais rápidos, SMA leva menos de 2,5 milissegundos. O mais lento, HTTRENDMODE, leva 450 milissegundos. Com menos elementos é mais rápido. SMA leva cerca de 0,22 milissegundos para 1000 elementos de entrada. O ganho de velocidade é quase linear (a sobrecarga de realização da chamada de função é desprezível). No contexto de sua aplicação, TA-Lib é muito improvável que seja seu gargalo para desempenho de velocidade. Também eu geralmente não recomendo essa solução nquot quotlast. Leia abaixo para mais detalhes. Primeiro, uma correção para Boban. s declaração Todas as funções em TA-Lib também pode calcular um único último valor usando um mínimo de quotlast nquot elementos. Você pode ter uma matriz de tamanho 10000, ter dados inicializar apenas para os primeiros 500 elementos, adicionar um elemento e chamar TA-Lib para calcular o SMA somente para o novo elemento. TA-Lib vai olhar para trás não mais do que o necessário (se SMA de 5, em seguida, TA-Lib irá calcular um único SMA usando os últimos 5 valores). Isso é possível com o parâmetro startIdx e endIdx. Você pode especificar um intervalo a ser calculado ou um único valor. Neste cenário, você faria startIdx endIdx 500 para calcular o elemento 501st. Por que essa solução quotlast nquot é potencialmente perigosa para alguns Independentemente da escolha da solução Boban. s ou TA-Lib consideram que usar um pequeno número finito de dados passados não funcionará bem com a maioria das funções TA. Com SMA, é óbvio que você só precisa de elemento n para calcular uma média sobre o elemento n. Não é tão simples com EMA (e muitas outras funções TA). O algo geralmente depende do valor anterior para calcular o novo valor. A função é recursiva. Isso significa que todos os valores passados influenciam os valores futuros. Se você decidir quotlimitquot seu algo para usar apenas uma pequena quantidade de passado n valor, você não obterá o mesmo resultado como alguém que calcula sobre um grande número de valores passados. A solução é um compromisso entre velocidade e precisão. Muitas vezes discuti isso no contexto de TA-Lib (chamo-o o período quotunstable na documentação e fórum). Para mantê-lo simples, minha recomendação geral é se você não pode fazer a diferença entre um algo com uma resposta de impulso finito (FIR) de um algo com uma resposta de impulso infinita (IIR), você será mais seguro para calcular todos os dados que você tem disponível. TA-Lib especifica no código qual das suas funções tem um período instável (IIR). Modificação da média móvel Este VI calcula e exibe a média móvel, usando um número pré-selecionado. Primeiro, o VI inicializa dois registradores de deslocamento. O registrador de deslocamento superior é inicializado com um elemento e, em seguida, adiciona continuamente o valor anterior com o novo valor. Esse registrador de deslocamento mantém o total das últimas medidas x. Depois de dividir os resultados da função de adição com o valor pré-selecionado, o VI calcula o valor da média móvel. O registro de deslocamento inferior contém uma matriz com a dimensão Média. Este registo de deslocamento mantém todos os valores da medição. A função de substituição substitui o novo valor após cada loop. Este VI é muito eficiente e rápido porque usa a função replace element dentro do laço while e inicializa a matriz antes de entrar no loop. Este VI foi criado no LabVIEW 6.1. Amplificador de favoritos
No comments:
Post a Comment