Friday, 4 May 2018

C # moving average queue


Produzir uma média móvel de uma fila (de MyDataClass) Eu tenho um programa científico de registro de dados que venho desenvolvendo há vários anos. Agora precisamos adicionar algumas funcionalidades para que produza uma média móvel dos dados que estão sendo reunidos. Eu posso criar uma fila de myDataClass para fazer o buffer fifo, mas eu queria saber qual seria a melhor maneira de fazer a média. Como você pode ver no exemplo de código abaixo, myDataClass contém várias estruturas de dados, algumas das quais podem ser calculadas e algumas que não podem (por exemplo, a string). I039m trabalhando em uma função para retornar uma média exponencial e há muitos exemplos de médias móveis exponenciais, mas todas elas começam com uma média móvel que é apenas a média como uma vantagem para calcular a média móvel contínua. Eu precisava apenas de uma média exponencial de um conjunto de valores. Depois de pesquisar o meu Bing, ainda não vi nada, então aqui está minha tentativa de uma média exponencial básica. Está correto Existem erros? Vi algum texto sobre como adicionar um valor de suavização para alterar a curva da média exponencial, mas não como isso seria implementado. Estou procurando uma maneira de encontrar a média móvel dos clientes em um período de 30 dias. No entanto, não consegui encontrar nenhum código VB de amostra para ajudar-me a começar. Eu encontrei este exemplo C no Code Project, mas minhas tentativas de conversão não foram bem sucedidas. Alguém tem uma classe VB existente que gostaria de compartilhar ou você sabe de uma amostra que eu poderia usar para criar a minha própria Eu quero incluir uma média em uma coluna onde a média ignora valores zero em uma célula de relatório onde a coluna pode eu quero 16, não 11 assim (17 19 12 13 19) / 5 não (17 19 0 0 12 13 19) / 7 Algo como isto se funcionasse. SUM (Fieldsfieldname. Value) / Count (iif (Fieldscountcycleperhour. Valor gt 0, Fieldsfieldname. Value, 0)) Essencialmente apenas média tudo na coluna não é um zero eu coloquei comentários sobre a saída média desde que eu continuei recebendo mensagens de erro sobre isso. Meu out continua dizendo: Valor máximo: 33 Valor mínimo: 33 o que estou fazendo errado Option Explicit On Option Strict Em I039m em uma aula de ciência da computação, e estamos escrevendo programas simples usando o Visual Basic 2008. Eu sou realmente inepto quando se trata de isso, como nunca fiz antes. Eu preciso escrever um programa que: quotSeks o usuário para 5 números e calcula a média. Em seguida, ele exibe a média com uma mensagem apropriada antes da média. "Estou muito próximo disso, mas não consigo adicionar os números, dividir por cinco e exibir uma mensagem pop-up. Eu tenho um formulário que tem uma fila e eu quero transferir essa fila para outra fila em outro formulário. no entanto, quando tento usar os elementos na segunda fila após a transferência, recebo a mensagem de erro queue emptybelow is my code Primeiro formulário Imports System. Collections. Generic Public Class Form1 Privado mPerformanceCounter As New System. Diagnostics. PerformanceCounter (quotProcessorquot, quot Processor Timequot, quotTotalquot) Eu tenho uma matriz que I039m basicamente tratando como uma fila (FIFO) I039m tentando decidir o caminho mais rápido para implementar this. Currently I039m apenas iterar e deslocando tudo um elemento e colocando os novos dados 0. Isso foi bom quando eu estava lidando com arrays de 1000 elementos, mas agora eu estava indo para arrays de 100k e parando meu código. Foi útil ter os dados em forma de array porque eu usei o método array. sort e algumas outras modificações estatísticas que use o número do elemento (da lista classificada) para trabalhar. I039m não tenho certeza se as listas de VB são (como Java) baseadas em ponteiro, e se assim for eu acho que os ponteiros de deslocamento seriam executados mais rapidamente do que a minha abordagem atual. Minha pergunta é, se eu mover para uma lista seria a) ser mais rápido, eb) existe uma maneira de chamar uma classificação rápida da classe de lista. Se o tempo de execução é o mesmo para a matriz vs. Existe uma maneira melhor de fazer uma estrutura FIFO no VB como o quotpeek realmente funciona ou algo assim, mas o que eu estou tentando fazer é ter dois arquivos de áudio separados, um após o outro repetidamente. Eu estava esperando ouvir o wav1 e wav2 alterna, mas eu só ouço wav1 em cada ciclo. Doesn039t espiar use os primeiros dados, em seguida, empurre-o para trás sem descartá-loPortanto wav2 seria o próximo na fila para ser jogado código Alguém viu uma fila de e-mail. net eu quero ser capaz de especifique o servidor SMTP para enviar via, relatar problemas e tentar novamente emails, se necessário ou solicitado. 039Estou tendo problemas com a linha quotsenda suba (sendaobj, EventArgs. Empty) quot. código. Sub DestroyUser (ByRef Victomcheck Como Integer, ByRef Victorcheck Como Integer) Dim num Como Objeto WriteSub (quotdestroyuserquot) Estou fazendo um software de penteado e maquiagem em vb e preciso fazer upload da foto que será editada, para colocar um penteado e maquiagem . Eu não faço ideia de como posso fazer isso. é um software de transformação virtual e eu preciso produzir as imagens antes e depois. por favor alguém me ajude, meu prazo está no dia 31 Como posso limpar a fila de impressora do VB se eu estivesse fazendo isso manualmente Eu iria parar serviço spooler, esvaziar a pasta windowssystem32spoolprinters e reiniciar o serviço Qual é a diferença entre uma fila (de t e a lista de t tem trabalhado muito com a lista (de t), mas até recentemente eu nem ouvi falar de queue (de t). Eu sei que eles são ambos lista geral. No momento, estou criando um FTPWebrequest para gerenciar meu upload (a seção de solicitação da web da minha função está abaixo). No momento, meu código faz um loop nesta seção de solicitação da web para cada arquivo, fornecendo o caminho do arquivo de cada arquivo na string quotCompleteLocalPath. Para cada arquivo, ele cria um webrequest e fornece o caminho de arquivo necessário, fazendo o upload do arquivo usando um fluxo de arquivos e fechando o fluxo. Isso funciona, mas parece demorar um bom tempo. Você pode recomendar uma maneira mais eficiente Talvez usando um webrequest mas modificando o caminho de upload Eu tenho um programa que está usando API039s para enviar eventos de mouse e eventos de teclado para outro aplicativo que está sendo executado. Eu preciso saber como saber se há alguma mensagem a ser processada para aquela janela depois que clico em um botão ou movo para o próximo campo. Eu preciso saber isso para que eu não envie mais eventos de mouse ou teclado até que ele tenha terminado de processar tudo em sua fila de mensagens. Um exemplo é que eu clico fora do campo-chave e o formulário tem que sair e ler um registro do cliente. Isso pode demorar um ou dois segundos, então preciso aguardar até que o formulário esteja pronto para mais informações. O código abaixo (VB 2008) verificará a fila de impressão a cada milissegundo de um trabalho. Em seguida, ele mostrará o contador de páginas em uma caixa de texto. Ele funciona muito bem quando estou imprimindo em uma impressora local, mas assim que eu altero a impressora padrão do meu PC para uma impressora de rede, não consigo capturar nenhum dado. Eu estou procurando uma maneira de mover um trabalho de impressão de uma impressora pausada para outra impressora. Eu olhei para o novo espaço de nomes System. printing no. net framework 3.X. Isso há uma maneira de fazê-lo em. NET aplicativo externo cria um printjob. Eu pegar a quota de evento printjob addquot no printqueue. I pausar o printjob Agora quero mover o printjob para outra impressora. Existe uma maneira de fazê-lo no. NET. Digo que tenho uma coleção contínua de valores onde especifico o tamanho da coleção e sempre que um novo valor é adicionado, quaisquer valores antigos além desse valor. o tamanho especificado é descartado. Obviamente (e eu testei isso) o melhor tipo de coleta a ser usado para esse comportamento é uma Fila: myQueue. Enqueue (newValue) If myQueue. Count gt specifiedSize Então myQueue. Dequeue () Fizemos o código para escrevendo para e de uma fila de mensagens IBM. Writin vai bem, mas a leitura dá um erro, ver texto em negrito São as seguintes 2 instruções SQL o mesmo Será que eles produzem os mesmos resultados sql1 quotSELECT FROM StudentDetials WHERE (Assunto1 LIKE 039quot amp Assunto (0) amp quot039 OR Subject2 LIKE 039quot amp Subjec t (0) amp039) AND (dia1 LIKE 039quota amp TabDay amp039 OR Day2 LIKE039 amp amp TabDay amp39) AND (Tempo1 gt 039a amp Tempo (0) amp039 E ETime1 lt 039m amp Tempo (1) amp0 039 OR Time2 gt 039quot amp Time (0) amp quot039 E ETime2 lt 039quot amp Time (1) amp039) quot sql1 quotSELECT FROM StudentDetials WHERE (Subject1 LIKE 039quot amp Subject (0) amp039 E Day1 LIKE 039quota amp TabDay amp039 AND Time1 gt 039quot amp Tempo (0) amp et039 E ETime1 lt 039quot amp Tempo (1) amp039) OR (Subject2 LIKE 039quot amp Assunto (0) amp039 E Dia2 GOSTO 039quot amp amp TabDay amp039 AND Time2 gt 039quot amp Tempo (0) amp quot039 E ETime2 lt 039quot amp Time (1) amp quot039) quot No meu caso, eles simplesmente produzem os mesmos resultados, mas that039s por causa dos dados i039m usando. Eu tentei converter o seguinte código C em VB. NET e obtive o quotExpression não produz um erro valuequot ao compilar o retorno de código Fluently. Configure (). Mappings (m gt m. FluentMappings. AddFromAssemblyOfltMyEntityMappinggt ()).Database (SQLiteConfiguration. Standard. InMemory (). ShowSql ()).ExposeConfiguration (x gt novo SchemaExport (x).Execute (falso, verdadeiro, falso)).BuildSessionFactory () Retornar Fluently. Configure ().Mappings (Function (m) m. FluentMappings. AddFromAssemblyOf (De SubscriptionMap) ()).Database (SQLiteConfiguration. Standard. InMemory (). ShowSql ()).ExposeConfiguration (Function (x) Novo SchemaExport (x).Execute (False, True, False)).BuildSessionFactory () O erro acontece na 2ª última linha do código VB. NET, enquanto o código C é compilado sem problema. O que há de errado com a conversão Tentei converter o código C seguinte em VB. NET e obtive o quotExpression não produz um erro valuequot ao compilar o código I estou portando sobre algum código de. net (vb) para php e me deparei com alguns md5 hash que eu não posso reproduzir em php. No. net há duas funções: uma usa codificação UTF-8 e a outra usa codificação Unicode. A saída é um hash diferente quando passado em uma string // Primeira função (retorna GUID) Dim oHasher As Cryptography. MD5 Cryptography. MD5.Create () Dim oEncoder Como Novo System. Text. UTF8Encoding () Dim csData () As Byte mas ambos produzem o mesmo resultado. É possível produzir os mesmos resultados em php com md5 hash I039m usando o código abaixo para produzir uma dica de ferramenta para cada linha de um ListView. Ao mover-se verticalmente pelo ListView, uma dica de ferramenta será exibida quando o mouse tocar entre duas linhas - ignorando qualquer uma das opções da ToolTip039s. Private mHoveredItem Como ListViewItem Private Sub ListView1MouseMove (PorVal remetente como objeto, ByVal e como System. Windows. Forms. MouseEventArgs) Lida com lv. MouseMove I039m não usando a propriedade ShowItemToolTips do ListView porque eu quero ter uma dica de ferramenta mais formatada (ToolTipIcon, título etc) Eu não acredito que essas opções podem ser definidas para o ListViews ToolTip I039ve updloaded um exemplo de projeto do problema aqui: URL. Eu criei um programa que pode produzir um arquivo XML a partir do banco de dados SQL. E o código é parecido com abaixo: por que há um node2 ltNewDataSetgtlt / NewDataSetgt. Como remover esse nó Agora estou procurando uma maneira de produzir arquivos pdf a partir de arquivos xls. Uma vez que o programa completo será distribuído para outros, ele teria que trabalhar em ambiente sem o produtor "quotpdf" que estou usando. O que é o "produtor de pdf" para usar? Estou trabalhando agora na versão expressa do VB 2005 (que não tem relatório de cristal) . Eu tenho acrobat 8.0 instalado, mas não descobri como fazer isso. Calcular média móvel exponencial em uma fila em C Eu tenho uma classe simples para calcular a média móvel de valores que eu adiciono a ele. Eu uso isso assim: Eu gostaria de estender essa classe para também retornar o ExponentialMovingAverage. Como você escreveria retornar a média exponencial dos itens enfileirados em cotações? Eu percebo que você precisará adicionar uma propriedade Alpha à classe, mas não tenho certeza de como concluir as contas para o cálculo. Que tal com LINQ: return Quotes. DefaultIfEmpty ().Aggregate ((ema, nextQuote) gt alpha nextQuote (1 - alfa) ema) Gostaria de salientar que, para dados financeiros em tempo real, isso é altamente ineficiente. Um muito melhor seria armazenar em cache o valor EMA anterior e atualizá-lo em uma nova cotação com a fórmula de recorrência (constante-tempo) acima. Este artigo lista uma fórmula. Ele ajuda en. wikipedia. org/wiki/MovingaverageExponentialmovingaverage Post relacionado Estou tentando implementar uma média móvel exponencial (EMA) em postgres, mas como eu verificar documentação e pensar sobre isso mais eu tento o mais confuso que eu sou. A fórmula para EMA (x) é: EMA (x1) x1 EMA (xn) xn (1 -) EMA (xn-1) Parece que eu tenho um valor contínuo para o qual Id gostaria de calcular uma média móvel exponencial. Normalmente, use Id apenas a fórmula padrão para isso: Sn Y (1) Sn-1, onde Sn é a nova média, é o alfa, Y é a amostra e Sn-1 é o anterior, eu tenho uma média móvel exponencial é chamado de milhões de vezes e, portanto, é a parte mais cara do meu código: double exponencial (double price, double smoothingValue, int dataSetSize) CREATE DEFINER ninjadba PROCEDIMENTO adb. MACD12 (x int) LANGUAGE SQL DETERMINISTIC READS SQL DADOS SQL SECURITY DEFINER COMMENT COMEÇAR MACD12: COMEÇAR DECLARAR z FLOAT DECLARE e FLOAT default 56.41 DECLARAR w flutuar ENQUER x 10 INSERIR Eu tenho uma série temporal na forma de um SortedListltdateTime, doublegt. Eu gostaria de calcular uma média móvel desta série. Eu posso fazer isso usando loops for simple. Eu queria saber se existe uma maneira melhor de fazer isso usando o linq. minha versão: usin Se eu tiver dados de séries temporais - uma lista de pares - e quiser suavizá-los, posso usar uma Média Móvel Exponencial da seguinte forma: EMAdata, alpha: .1: Transponha o amplificador email160protegido Como você poderia implantar eu essencialmente tem uma matriz de valores como este: 0.25, 0.24, 0.27, 0.26, 0.29, 0.34, 0.32, 0.36, 0.32, 0.28, 0.25, 0.24, 0.25 O array acima é simplificado, Im coletando 1 valor por milissegundo no meu código real e Preciso processar a saída o Desejo criar um relatório de linha do tempo que mostre, para cada data na linha do tempo, uma média móvel dos N pontos de dados mais recentes em um conjunto de dados que tenha algumas medidas e as datas em que foram medidas. Eu tenho uma tabela de calendário preenchida com todos os dias para prover oi. Eu sou novo no SharePoint 2010. Eu tenho requisito para exibir dados como um gráfico do banco de dados SQL para isso eu criei uma parte da web de dados de gráfico de negócios e selecionado Fonte de dados do catálogo de dados corporativos. No gráfico dois, as séries de dados que criei x-Ill fornecem algum contexto, por isso faz sentido. Estou capturando Classificações do Cliente para Produtos em uma tabela (Classificação) e quero poder retornar uma Média Móvel Cumulativa das avaliações com base no tempo. Um exemplo básico segue tomando uma classificação por dia: 02 FEB Estou tentando calcular a média móvel exponencial em barras de 15 dias, mas quero ver a evolução da barra EMA de 15 dias em cada (fim de) dia / barra. Então, isso significa que eu tenho 15 barras de dia. Quando novos dados chegam em uma base diária, eu gostaria de recalcular Eu quero calcular uma média móvel dos últimos, digamos, 20, números de uma coluna. Um problema é que algumas das células da coluna podem estar vazias, elas devem ser ignoradas. Exemplo: A 175 154 188 145 155 167 201 Uma média móvel dos três últimos seria eu ainda estou trabalhando em groking the F coisa - tentando descobrir como pensar em F, em vez de apenas traduzir de outras línguas que eu conheço. Recentemente estive pensando sobre os casos em que você não tem um mapa 1: 1 entre antes e depois. Casos Este fim de semana decidi tentar minha mão em alguns Scala e Clojure. Sou proficiente em programação orientada a objetos e, assim, o Scala foi fácil de aprender como uma linguagem, mas queria testar a programação funcional. É aqui que ficou difícil. Eu apenas não consigo perceber que estou tentando implementar uma média móvel exponencial variável em uma série temporal de dados intradiários (ou seja, 10 segundos). Por variável, quero dizer que o tamanho da janela incluída na média móvel depende de outro fator (ou seja, volatilidade). Eu estava pensando em usar a tabela abaixo, como obter uma coluna para a média móvel de 5 períodos, média móvel de 10 períodos, média móvel exponencial de 5 períodos. -------------------- datadate de preço -------------------- 122.29 2009-10-08 122.78 2009 -10-07 Olá eu tenho um problema. Eu sei como calcular a média móvel nos últimos 3 meses usando as funções analíticas do oracle. mas minha situação é um pouco diferente Mês ----- ProductType ----- Vendas ---------- Média (TENHA PARA ENCONTRAR ESTE) 1 --------- A-- ------------- 10 1 Estou à procura de uma função para calcular a soma móvel exponencial em numpy ou scipy. Eu quero evitar o uso de loops de python porque eles são muito lentos. para ser específico, tenho duas séries A e T. Ti é o timestamp do valor Ai. Eu defino um meio-termo Se o desempenho desse código é crítico, então pode fazer sentido evitar alocações de heap para Candle s. Eu acho que a maneira mais razoável de fazer isso seria transformar Candle em struct. Embora os tipos de valores mutáveis ​​sejam maus. então eu também refatoraria Candle para ser imutável. Isso também significa que a implementação do newestCandle teria que mudar, provavelmente em um par de campos duplos (ou, alternativamente, uma classe mutável e reajustável separada). Eu não vejo nenhum outro problema de desempenho potencial em seu código. Mas quando se trata de desempenho, você deve sempre confiar em criar perfis, não em sua (ou em outra pessoa) intuição. Além disso, eu não gosto de alguns nomes de seus métodos. Especificamente: ValueUpdated. Nomes de métodos geralmente devem estar na forma de fazer alguma coisa, não algo aconteceu. Então eu acho que um nome melhor seria UpdateValue. Adicionar. Modificar. Estas são as duas operações fundamentais do seu MovingAverage e eu acho que esses nomes não expressam bem o significado. Eu os chamaria de algo como MoveAndSetCurrent e SetCurrent. respectivamente. Embora essa nomenclatura indique que as operações fundamentais devem ser Mover e SetCurrent.

No comments:

Post a Comment