Friday 11 August 2017

Gaussian Moving Average Indicator


John Ehlers DOCUMENTOS TÉCNICOS John Ehlers, desenvolvedor da MESA, escreveu e publicou muitos artigos relacionados aos princípios utilizados nos ciclos de mercado. São apresentadas sinopses para os documentos disponíveis. Baixe cada um, selecionando o HyperText associado. Por que os comerciantes perdem dinheiro (e o que fazer sobre isso) Um artigo na edição de maio de 2014 da Stock amp. Commodities Magazine descreveu como criar curvas de equidade artificial, apenas sabendo o fator de lucro e os vencedores percentuais de uma estratégia de negociação. Estatísticas de Bell Curve para negociação de ações selecionadas aleatoriamente e negociação de portfólio também estão incluídas. Esta é uma planilha do Excel que permite que você experimente esses descritores estatísticos sobre o desempenho do sistema comercial. Indicadores preditivos para estratégias de negociação efetivas Os comerciantes técnicos entendem que os indicadores precisam facilitar o bom rendimento dos dados de mercado e que o alisamento apresenta um atraso como efeito colateral indesejável. Nós também sabemos que o mercado é fractal, um gráfico de intervalo semanal parece exatamente como um gráfico mensal, diário ou intradía. O que pode não ser tão óbvio é que, à medida que o intervalo de tempo ao longo do eixo x aumenta, os balanços de preços altos a baixos ao longo do eixo y também aumentam, em proporção aproximada. Este fenômeno de dilatação espectral causa uma distorção indesejável, que não foi reconhecida ou foi amplamente ignorada por desenvolvedores de indicadores e técnicos de mercado. Inferindo Estratégias de Negociação de Funções de Densidade de Probabilidade Medida Este foi o Vencedor do Campeonato do Prêmio Charles H. Dow da MTA 2008. Neste artigo, mostro as implicações das várias formas de destruição e como as Distribuições de Probabilidade resultantes podem ser usadas como estratégias para gerar sistemas de negociação efetivos. Os resultados desses sistemas de negociação robustos são comparados às abordagens padrão. Esta apresentação de papel e forma interativa para eliminar o atraso tanto quanto desejado dos filtros de suavização. Claro, o atraso reduzido vem ao preço da diminuição da suavidade do filtro. O filtro não exibe nenhum excesso transiente comumente encontrado em filtros de ordem superior. Decomposição do Modo Empírico Uma nova abordagem para a detecção de modo de ciclo e tendência. Transformada de Fourier para comerciantes O problema com a transformação de Fourier para a medição dos ciclos de mercado é que eles têm uma resolução muito fraca. Neste artigo, mostro como usar outra transformação não linear para melhorar a resolução para que as Transformações de Fourier sejam utilizáveis. O espectro medido é exibido como um mapa térmico Indicadores do indicador de faca do exército suíço são apenas transferir respostas de dados de entrada. Por uma simples mudança de constantes, este indicador pode se tornar um EMA, SMA, 2 Pole Gaussian Low Pass Filter, 2 Pole Butterworth Low Pass Filter, um FIR mais suave, um filtro Bandpass ou um filtro Bandstop. Filtro Ehlers É descrito um filtro FIR não-linear incomum. Este filtro está entre os mais sensíveis às mudanças de preços, mas é mais suave nos mercados laterais. Avaliação do desempenho do sistema O fator de lucro (ganhos brutos divididos por perdas brutas) é análogo ao fator de pagamento no jogo. Assim, quando o fator de lucro é combinado com os vencedores percentuais em uma série de eventos aleatórios, as instâncias de como um crescimento da equidade da estratégia de negociação pode ser simulado. Este artigo descreve como os descritores de desempenho comuns estão relacionados a esses dois parâmetros. Uma folha de cálculo do Excel é descrita, permitindo que você realize uma Análise de Monte Carlo de seus sistemas de negociação se você conhece esses dois parâmetros (fora da amostra). FRAMA (Média de mudança adaptativa do fruto). Uma média móvel não linear é derivada usando o expoente Hurst. A MAMA é a mãe de todas as médias móveis adaptativas. Atualmente, o nome é um acrônimo para MESA Adaptive Moving Average. A ação não-linear deste filtro é produzida pelo retorno da fase a cada meio ciclo. Quando combinados com o FAMA, uma Média de Mudança Adaptativa Segura, os cruzamentos formam excelentes sinais de entrada e saída que são relativamente livres de whipsaws. Time Warp Without Space Travel Os polinômios de Laguerre são usados ​​para gerar uma estrutura de filtro semelhante a uma média móvel simples com a diferença de que o espaçamento de tempo entre as torneiras de filtro é nolinear. O resultado permite a criação de filtros muito curtos com as características de suavização de filtros muito mais longos. Filtros mais curtos significam menos lag. As vantagens de usar o Laguerre Polynomials em filtros são demonstrados tanto em indicadores como em sistemas de troca automática. O artigo inclui o código EasyLanguage. O Oscilador CG O Oscilador CG é único porque é um oscilador que é alisado e com zero atraso. Encontra o Centro de Gravidade (CG) dos valores de preço em um filtro FIR. O CG automaticamente tem o alisamento do filtro FIR (semelhante a uma média móvel simples), sendo a posição do CG exatamente em fase com o movimento de preços. O código EasyLanguage está incluído. Usando a Transformada do Fisher Muitos sistemas de negociação são projetados usando a suposição de que a distribuição de probabilidade dos preços tem uma Distribuição de Probabilidade Normal ou Gaussiana sobre a média. Na verdade, nada poderia estar mais longe da verdade. Este artigo descreve como o Fisher Transform converte dados para ter quase uma Distribuição de Probabilidade Normal. Dado que a Distribuição de Probabilidade é Normal após a aplicação da Transformação Fisher, os dados são usados ​​para criar pontos de entrada com precisão cirúrgica. O artigo inclui o código EasyLanguage. A Transformação Inverse Fisher A Transformação Fisher Inverse pode ser usada para gerar um oscilador que muda rapidamente entre oversold e overbought sem whipsaws. Gaussian Filters Lag é a queda dos filtros de suavização. Este artigo mostra como o atraso pode ser reduzido e o melhor alinhamento de fidelidade é obtido reduzindo o atraso dos componentes de alta freqüência nos dados. É fornecida uma tabela completa de coeficientes de filtro de Gauss. Polos e Zeros Uma descrição de filtros digitais em termos de Z Transforms. São descritas as ramificações de filtros de ordem superior. Tabelas de coeficientes para 2 pólos e 2 filtros Pole Butterworth são fornecidos. Índices Uma biblioteca de funções para filtrar e recuperar informações de curvas de preços, desde a análise técnica tradicional até a função de transformação e estatística mais avançada: médias móveis, osciladores, bandas, impulso, Índices de força, regressão linear, transformações de Hilbert, indicadores de Ehlers e análise espectral. Os indicadores estão listados em ordem alfabética. Indicadores tradicionais usam a biblioteca de indicadores TA-Lib por Mario Fortier (ta-lib. org) que se estabeleceu como um padrão. Informações sobre o uso, os algoritmos e o código fonte dos indicadores TA-Lib podem ser encontrados on-line em tadoc. org. A fonte também está incluída na pasta ZorroSource. O código-fonte da maioria dos outros indicadores e funções de análise pode ser encontrado em Zorroincludeindicators. c. Os filtros espectrales e as funções de análise de frequência de amplitude estão listadas na biblioteca espectral. Os padrões de vela clássica podem ser encontrados na biblioteca de padrões. AC (vars Data): var Accelerator Oscillator a diferença do indicador AO (veja abaixo) e sua média móvel simples de 5 barras (SMA). Acredita-se em indicar aceleração e desaceleração de uma força motriz do mercado (seja o que for que isso signifique). Para dados, normalmente é utilizada uma MedPrice ou uma série de preços. Código fonte em indicadores. c. ADO (): var AccumulationDistribution Oscillator: ((Close-Low) - (High-Close)) (High-Low). Varia de -1 quando o fechamento é baixo da barra, para 1 quando é o alto. Suposto avaliar a oferta e a demanda, determinando se os comerciantes geralmente estão acumulando (comprando) ou distribuindo (vendendo). Este indicador foi publicado em várias variantes individuais na fórmula, mas nenhum deles parece melhor do que o outro. Usa a série de preços dos ativos atuais. Código fonte em indicadores. c. ADX (int TimePeriod): var Índice direto de movimento direcional. Média móvel do indicador DX (veja abaixo). Usa a série de preços dos ativos atuais. Não suporta o TimeFrame. Os valores retornados variam de 0 a 100. ADXR (int TimePeriod): var Average Directional Index Index Index. A média do ADX atual e o ADX da TimePeriod há barragens. Usa a série de preços dos ativos atuais. Não suporta o TimeFrame. Alligator (vars Data): var Aligator Indicator. Consiste em três linhas: SMA azul (13) atrasado por 5 barras vermelho: SMA (8) atrasado por 2 barras verde: SMA (5). Indica uma tendência descendente com linhas na ordem azul-vermelho-verde (de cima para baixo) e uma tendência de alta com verde-vermelho-azul. Quanto mais as linhas Alligatorrsquos se movem, mais fraca é a tendência e vice-versa. Não contém o atraso adicional de 3 barras do algoritmo original Alligator (use Data3 para isso). Para dados normalmente, a média de alta velocidade (série MedPrice) é usada. Resultado em rRed. RGreen. RBlue. Código fonte em indicadores. c. ALMA (vars Data, int TimePeriod, int Sigma, var Offset): var ALMA (vars Data, int TimePeriod): var Arnaud Legoux Moving Average. Com base em uma distribuição gaussiana com uma tendência para o início da série Data (ou seja, preços mais recentes). Parâmetros: Sigma (largura de distribuição, padrão 6) Deslocamento (fator de polarização, padrão de 0,85). Código fonte em indicadores. c. AO (vars Data): var Oscilador incrível simplesmente a diferença de um SMA de 5 bar e 34 bar. Para dados, normalmente é utilizada uma MedPrice ou uma série de preços. Código fonte em indicadores. c. APO (vars Data, int FastPeriod, int SlowPeriod, int MAType): var Absolute Price Oscillator uma versão mais geral do AO. Retorna a diferença entre duas médias móveis. Parâmetros: FastPeriod (Número de período para o MA rápido), SlowPeriod (Número de período para o MA lento), MAType (Tipo de Média de Movimento). Aroon (int TimePeriod): indicador var Aroon. Consiste em duas linhas (para cima e para baixo) que medem quanto tempo existe desde que a maior baixa baixa mais alta ocorreu dentro do período de tempo. Usa a série de preços dos ativos atuais. Não suporta o TimeFrame. Resultado em rAroonDown. RAroonUp. AroonOsc (int TimePeriod): var Aroon Oscillator. Calculado subtraindo o Aroon Down do Aroon Up. O valor de retorno irá oscilar entre 100 e -100. Usa a série de preços dos ativos atuais. Não suporta o TimeFrame. ATR (int TimePeriod): var Average True Range. Uma medida de volatilidade de preços útil para calcular a perda de stop ou as distâncias de metas de lucro. Fórmula: ATR (ATR1 (TimePeriod-1) max (High, Close) - min (Low, Close)) TimePeriod. Onde ATR1 é o ATR da última barra. Usa os preços dos ativos atuais. A função cria internamente séries quando TimeFrame é gt 1. E deve ser chamado em uma ordem fixa no script. Veja também: Volatilidade. CVolatilty. TrueRange. ATRS. ATR (Vars Open, Vars High, Vars Low, Vars Close, int TimePeriod): var Average True Range a partir de séries arbitrárias de preços, com deslocamento arbitrário e intervalo de tempo. ATRS (int TimePeriod): var Variedade verdadeira média simples. SMA do TrueRange durante o TimePeriod. Usando a série de preços dos ativos atuais. Uma medida de volatilidade de preços, mais simples de calcular do que a ATR. Mas adaptando mudanças lentas a volatilidade e, portanto, menos adequadas para objetivos de lucro de stop loss. Usado pela plataforma MT4 em vez do ATR real. Não suporta o TimeFrame. Código fonte em indicadores. c. AvgPrice (): var Preço Médio. Simplesmente (OpenHighLowClose) 4 com a série de preços dos ativos atuais. BBands (vars Data, int TimePeriod, var NbDevUp, var NbDevDn, int MAType) Bollinger Bands. Consiste em três linhas, a banda do meio é uma média móvel simples (geralmente 20 períodos) do preço típico (TP). As bandas superior e inferior são n desvios padrão (geralmente 2) acima e abaixo da faixa do meio. As bandas se ampliam e estreitam quando a volatilidade do preço é maior ou menor, respectivamente. Bollinger Bands indica quando o preço se tornou relativamente alto ou baixo, o que é sinalizado através do toque ou menor penetração da linha superior ou inferior. Resultado em rRealUpperBand. RRealMiddleBand. RRealLowerBand. Parâmetros: NbDevUp (multiplicador de desvio para banda superior), NbDevDn (multiplicador de desvio para banda baixa), MAType (Tipo de média móvel). Exemplo em Indicatortest. c. BBOsc (vars Data, int TimePeriod, var NbDev, int MAType): var Bollinger Bands Oscillator a porcentagem do valor atual da série dentro das Bandas Bollinger. Beta (vars Data, vars Data2, int TimePeriod): var valor Beta. Uma medida de preços de ativos individuais versus o índice geral de mercado. O preço do recurso é dado em Dados e os preços de mercado são dados em Data2. O algoritmo calcula a mudança entre os preços em ambas as séries e, em seguida, traça essas mudanças como pontos no plano euclidiano. O valor x de qualquer ponto é a alteração Data2 (mercado) e o valor y é a alteração Data (asset). O valor beta é a inclinação de uma linha de regressão linear através desses pontos. Um beta de 1 é simples na linha yx, então o recurso varia percorrilizadamente com o mercado. Um beta de menos do que um significa que o ativo varia menos do que o mercado e um beta de mais de um significa que o recurso varia mais do que o mercado. BOP (): var Balance Of Power simplesmente (Fechar - Abrir) (Alto - Baixo). Usa a série de preços dos ativos atuais. CCI (int TimePeriod): var Commodity Channel Index. Variação do preço de sua média estatística, normalmente oscila entre -100. Usa a série de preços dos ativos atuais. Não suporta o TimeFrame. CI (int TimePeriod): var Choppiness Index mede a volatilidade da barra única em relação à volatilidade do passado TimePeriod em uma escala de 1..100. Usa a série de preços dos ativos atuais. Não suporta o TimeFrame. ChandelierLong (int TimePeriod, var Multiplicador): var ChandelierShort (int TimePeriod, var Multiplicador): var Candelabro sai do preço mais alto do TimePeriod menos o ATR multiplicado pelo Multiplicador. Normalmente usado como perda de parada. Para manter os negócios em uma tendência e evitar uma saída antecipada, desde que a tendência continue. Código fonte em indicadores. c. Não suporta o TimeFrame. Exemplo no capítulo TMF. CGOsc (vars Data, int TimePeriod): var Center of Gravity oscillator, de John Ehlers calcula o desvio dos preços de seu centro dentro do TimePeriod. Pode ser usado para identificar pontos de rotação de preços com praticamente zero atraso. Código fonte em indicadores. c. Chikou (int Shift): linha var Chikou pertencente ao indicador Ichimoku simplesmente o deslocado para a frente em Shift (padrão opcional 26). Usa a série de preços dos ativos atuais. Código fonte em indicadores. c. CMO (vars Data, int TimePeriod): var Chande Momentum Oscillator. Semelhante ao RSI. Mas divide o movimento total de dados pelo movimento líquido ((para cima) (para cima)). Coral (vars Data): var Coral Indicator, simplesmente um T3 com TimePeriod 60 e VolumeFactor 0.4. Correlação (vars Data1, vars Data2, int TimePeriod): var Coeficiente de correlação de Pearsons entre duas séries de dados sobre o TimePeriod especificado. No intervalo entre -1..1. Um coeficiente de 1,0, uma correlação positiva positiva, significa que as alterações no Data2 causam alterações idênticas no Data1 (por exemplo, uma alteração no indicador resultará em uma alteração idêntica no preço do recurso). Um coeficiente de -1,0, uma correlação negativa quotperfeito, significa que as alterações no Data2 causam alterações idênticas no Data1. Mas na direção oposta. Um coeficiente de zero significa que não há relação entre as duas séries e que uma alteração no Data2 não terá efeito em Data1. Esta função também pode ser usada para obter a autocorrelação de uma série, calculando o coeficiente de correlação entre a série original e a mesma série atrasada em uma ou duas barras (série1 ou série2). Covariância (vars Data1, vars Data2, int TimePeriod): var Covariância entre duas séries de dados. Pode ser usado para gerar uma matriz de covariância f. i. Para o cálculo de fronteira eficiente de Markowitz. DChannel (int TimePeriod) Donchian Channel o valor mínimo e máximo das funções priceHigh () e priceLow durante o período de tempo. Base do famoso sistema de comércio de tartarugas. Usa a série de preços dos ativos atuais. Não suporta o TimeFrame. Resultado em rRealUpperBand. RRealLowerBand. DCOsc (vars Data, int TimePeriod): var Donchian Channel Oscillator a porcentagem do valor atual de dados dentro do canal Donchian. Usa o recurso atual e TimeFrame atual. Decycle (vars Data, int CutOffPeriod): var Ehlers Decycler, um indicador de tendência de baixa velocidade, simplesmente Data - HighPass2 (Data, CutOffPeriod). Remove todos os ciclos abaixo CutOffPeriod da série Data e mantém a tendência. A função cria internamente uma série e, portanto, deve ser chamada em uma ordem fixa no script. Código fonte em indicadores. c. DEMA (vars Data, int TimePeriod): var Double Exponential Moving Average. DPO (vars Data, int TimePeriod): var Oscilador de preço de detenção acreditado para detectar mudanças iniciais na direção do preço. DPO Data0 - SMA (Datan21, n). Onde n é o TimePeriod. Código fonte em indicadores. c. DX (int TimePeriod): var Índice de Movimento Direcional por Welles Wilder (que, por sinal, descobriu que a interação do sol, da lua e da terra é a base de todo o movimento do mercado. No caso de o sol, a lua e a Terra se absterem de repente De mover o mercado, ele também inventou alguns indicadores tradicionais). Diz-se que o DX indica a força da tendência. Os valores variam de 0 a 100, mas raramente ficam acima de 60. O DX usa a série de preços de ativos atuais e não suporta TimeFrame. Fórmula: DX 100 abs (PlusDI-MinusDI) (PlusDIMinusDI). Para o PlusDI e o MinusDI, veja a descrição abaixo. EMA (vars Data, int TimePeriod): var EMA (vars Data, var alpha): var Exponential Moving Average. Enfatiza valores de dados mais recentes. Ele usa a fórmula EMA alpha (1-alfa) EMA1. Onde o alfa é um factor de recursão entre 0. 1 que é calculado a partir de 2.0 (TimePeriod1). E EMA1 é o valor EMA anterior. Quanto menor for o alfa, maior é o efeito de suavização da fórmula EMA. Ambas as funções EMA usam algoritmos ligeiramente diferentes. O primeiro (usando um TimePeriod) não cria uma série, é mais lento e requer um comprimento de dados de TimePeriodUnstablePeriod 1. O segundo (usando alfa) cria uma série interna, precisa apenas de um comprimento de dados de 2 e é muito mais rápido. Fisher (vars Data): var Fisher Transform transforma uma série de dados normalizados para uma faixa distribuída normal. O valor de retorno não tem limite teórico, mas a maioria dos valores está entre -1. 1. Todos os valores de dados devem estar no -1. 1 intervalo, f. i. Normalizando com o AGC. Normalize. Ou função cdf. O comprimento mínimo de dados é 1. Fonte disponível em indicadores. c. FisherInv (vars Data): var Inverse Fisher Transform comprime a série de dados para estar entre -1 e 1. O comprimento mínimo da série de dados é 1. Fonte disponível em indicadores. c. FisherN (vars Data, int TimePeriod): var Fisher Transform com normalização normaliza a série Data com o TimePeriod especificado e depois transforma-a em uma faixa distribuída normal. Semelhante a um filtro Normalize (veja abaixo), mas mais seletivo devido à distribuição normal da saída. O valor de retorno não tem limite teórico, mas a maioria dos valores está no -1,5. Alcance 1.5. O comprimento mínimo da série de dados é igual a TimePeriod. A função cria internamente uma série e, portanto, deve ser chamada em uma ordem fixa no script. Fonte disponível em indicadores. c. FractalDimension (vars Data, int TimePeriod): var Dimensão Fractal da série Data, de John Ehlers normalmente 1..2. Valores menores significam mais jaggies. Pode ser usado para detectar o atual regime de mercado ou para adaptar as médias móveis às flutuações de uma série de preços. Fonte disponível em indicadores. c. FractalHigh (vars Data, int TimePeriod): var Fractal High, um indicador de Bill Williams, acreditado para sinalizar quando o mercado inverte (não tem nada a ver com fractals). Retorna o valor de dados mais alto quando está no centro do TimePeriod. Caso contrário, 0. FractalLow (vars Data, int TimePeriod): var Fractal Low. Retorna o valor de dados mais baixo quando está no centro do TimePeriod. Caso contrário, 0. Gauss (vars Data, int TimePeriod): var Gauss Filter, retorna uma média ponderada dos dados dentro do período de tempo dado, com a curva de peso igual à distribuição normal Gauss. Útil para remover o ruído ao suavizar dados brutos. O comprimento mínimo da série de dados é igual a TimePeriod. O atraso é metade do TimePeriod. HAOpen (): var HAClose (): var HAHigh (): var HALow (): var Haiken Ashi preços, com base nos preços atuais dos ativos. Código fonte em indicadores. c. Alternativamente, a curva de preços pode ser convertida em barras de Haiken Ashi usando a função de barra. HH (int TimePeriod, int Offset): var Valor mais alto da função priceHigh durante o TimePeriod que termina com Offset (padrão 0). F. i. HH (3) retorna o preço mais alto das últimas 3 barras. Usa a série atual de ativos atualizados. Não suporta TimeFrame para vários intervalos de tempo, use MaxVal (HighOffset, Period) com uma série High sincronizada no tempo. Veja também dayHigh. HMA (vars Data, int TimePeriod): var Hull Moving Average por Alan Hull tenta enfrentar o atraso, bem como suavizar algum choppiness. Fórmula: HMA (n) WMA (2WMA (n2) ndash WMA (n)), sqrt (n)). A função cria internamente uma série e, portanto, deve ser chamada em uma ordem fixa no script. Código fonte em indicadores. c. HTDcPeriod (vars Data): var Hilbert Transform - Periodo do Ciclo Dominante, desenvolvido por John Ehlers. Os algoritmos de transformação de Hilbert são explicados no livro Ehlers quotRocket Science for Tradersquot (veja a lista de livros). Esta função é equivalente, mas é menos precisa do que a função do padrão dominante. HTDcPhase (Dados Vars): var Hilbert Transform - Phase Ciclo Dominante. HTPhasor (vars Data): var Hilbert Transform - Phasor Components. Responda em rInPhase. RQuadrature. HTSine (vars Data): var Hilbert Transform - SineWave. Resultado na rSine. RLeadSine. HTTrendline (vars Data): var Hilbert Transform - Instantânea Trendline. HTTrendMode (vars Data): int Hilbert Indicador de tendência de transformação - retorna 1 para Trend Mode, 0 para Cycle Mode. Hurst (vars Data, int TimePeriod): var Hurst expoente da série Data entre 0..1. O expoente Hurst mede a memória de uma série. Quantifica a autocorrelação, ou seja, a tendência de reverter para a média (Hurst lt 0,5) ou continuar a tendência em uma direção (Hurst gt 0,5). Desta forma, o expoente Hurst pode detectar se o mercado está em um estado de tendências. A janela TimePeriod (mínimo 20) deve ter comprimento suficiente para capturar a tendência de longo prazo. A função cria internamente uma série e, portanto, deve ser chamada em uma ordem fixa no script. Fonte disponível em indicadores. c. Ichimoku () Ichimoku (int PeriodTenkan, int PeriodKijun, int PeriodSenkou, int Offset) Indicador Ichimoku Kinko Hyo. Inventado pelo jornalista Goichi Hosoda em 1930. Uma mistura dos preços médios de 3 períodos de tempo que acreditam ter uma visão profunda das tendências do mercado devido à sua enorme quantidade de linhas coloridas. Offset (padrão 0) determina a barra para calcular o indicador. Retorna 4 variáveis: Outra linha pertencente ao Ichimoku, a linha Chikou, é prospectiva e calculada separadamente. Usa a série de preços dos ativos atuais. A função cria internamente séries quando TimeFrame é gt 1. E deve ser chamado em uma ordem fixa no script. Código fonte em indicadores. c. IBS (): var Internal Bar Strength simplesmente (Close - Low) (High - Low). Usa a série de preços dos ativos atuais. KAMA (vars Data, int TimePeriod): var Kaufman Adaptive Moving Average. Uma média móvel exponencial ajustada pela volatilidade dos preços, de modo que seu período de tempo se torna mais curto quando a volatilidade é alta. Keltner (vars Data, int TimePeriod, var Factor): var Keltner Channel, de Charles Keltner. Uma média móvel simples - SMA (Data, TimePeriod) - com bandas laterais na distância Factor ATRS (TimePeriod). Resultados em rRealUpperBand. RRealMiddleBand. RRealLowerBand. Código fonte em indicadores. c. Laguerre (vars Data, var alpha): var filtro Laguerre de 4 elementos. Usado para suavizar dados semelhantes a um EMA. Mas com menos lag e uma ampla faixa de ajuste dada pelo fator alisador (0..1). Os componentes de baixa freqüência são atrasados ​​muito mais do que os componentes de alta freqüência, o que permite filtros muito suaves com apenas uma pequena quantidade de dados. O comprimento mínimo da série de dados é 1, o período mínimo de lookback é 4. A função cria internamente séries e, portanto, deve ser chamada em uma ordem fixa no script. Fonte disponível em indicadores. c. LinearReg (vars Data, int TimePeriod): var Linear Regression, também conhecido como o quotleast squares methodquot ou quotbest fit. quot Linear Regression tenta ajustar uma linha de tendência direta entre vários pontos de dados de tal forma que a distância entre cada ponto de dados e o A linha de tendência é minimizada. Para cada ponto, a linha reta sobre o período da barra anterior especificada é determinada em termos de y b mx. A função LinearReg retorna bm (TimePeriod-1). Para uma regressão de ordem superior, use as funções polied de polyfit. Para regressão logística com várias variáveis, use a função aconselhar (PERCEPTRON.). LinearRegAngle (vars Data, int TimePeriod): var ângulo de regressão linear. Retorna m convertido em graus. Devido às diferentes unidades x e y de um gráfico de preços, o ângulo normalmente é de pouco uso, exceto talvez para os seguidores de Gann. LinearRegIntercept (vars Data, int TimePeriod): var Intercepção de regressão linear. Retorna b. LinearRegSlope (vars Data, int TimePeriod): var Inclinação Linear. Retorna m como diferença de preço por barra. LL (int TimePeriod, int Offset): var O valor mais baixo da função priceLow durante o TimePeriod que termina com Offset (padrão 0). F. i. LL (3,10) retorna o preço mais baixo entre os últimos 10 e os últimos 13 bares. Usa a série de preços dos ativos atuais. Não suporta o TimeFrame para intervalos de tempo múltiplos, use MinVal (LowOffset, Period) com uma série Low sincronizada no tempo, em vez disso. Veja também o dia. MACD (vars Data, int FastPeriod, int SlowPeriod, int SignalPeriod) Moving Average ConvergenceDivergence. O MACD é um indicador de tendência de prazo intermediário, criado subtraindo uma Média de Movimento Exponencial de 26 (EMA, ver acima) de uma EMA de 12 períodos. Um EMA de nove períodos é então aplicado ao resultado MACD para criar uma linha de sinal. Uma linha de histograma MACD é finalmente criada a partir da diferença do MACD para sua linha de sinal. Acredita-se que o cruzamento zero do histograma de baixo é um sinal de compra, cruzamento zero a partir de um sinal de venda. A fórmula é: rMACD EMA (Data, FastPeriod) - EMA (Data, SlowPeriod) rMACDSignal EMA (rMACD, SignalPeriod) rMACDHist rMACD - rMACDSignal Resultados no rMACD. RMACDSignal. RMACDHist. Retorna: rMACD. Parâmetros: FastPeriod (período de tempo para o MA rápido), SlowPeriod (período de tempo para o MA lento), SignalPeriod (período de tempo para suavizar a linha de sinal). MACDExt (vars Data, int FastPeriod, int FastMAType, int SlowPeriod, int SlowMAType, int SignalPeriod, int SignalMAType) MACD com tipo de MA controlável. Resultado no rMACD. RMACDSignal. RMACDHist. Parâmetros: FastPeriod (período de tempo para o MA rápido), FastMAType (Tipo de média móvel para MA rápido), SlowPeriod (período de tempo para MA lento), SlowMAType (Tipo de média móvel para MA lento), SignalPeriod (período de tempo para suavização A linha de sinal), SignalMAType (Tipo de média móvel para linha de sinal). MACDFix (vars Data, int SignalPeriod) Referência de migração média convergente 1226. Resultado no rMACD. RMACDSignal. RMACDHist. Parâmetros: SignalPeriod (período de tempo para suavizar a linha de sinal). MAMA (vars Data, var FastLimit, var SlowLimit) MESA Adaptive Moving Average, desenvolvido por John Ehlers (ver links). Resultado no rMAMA. RFAMA. Parâmetros: FastLimit (Uso do limite superior no algoritmo adaptativo), SlowLimit (Uso do limite inferior no algoritmo adaptativo). MaxVal (vars Data, int TimePeriod): var Valor mais alto durante um período especificado. MaxIndex (vars Data, int TimePeriod): int Índice de maior valor ao longo de um período especificado. 0 valor mais alto está na barra atual, 1 em uma barra atrás, e assim por diante. Median (vars Data, int TimePeriod): var Median Filter classifica os elementos da Data Series e retorna seu valor médio dentro do período de tempo especificado. Útil para remover picos de ruído, eliminando valores extremos. O comprimento mínimo da série de dados é igual a TimePeriod. O atraso é metade do TimePeriod. Veja também Percentile. MedPrice (): var preço central simplesmente o ponto central (HighLow) 2 da vela atual. Para o preço médio - a média de todos os carrinhos de preços da vela - preço de uso (). MidPoint (vars Data, int TimePeriod): var MidPoint ao longo do período. Simplesmente (valor mais baixo do valor mais alto) 2. MidPrice (int TimePeriod): var Preço intermediário ao longo do período. Simplesmente (mais alto baixo mais baixo) 2 da série de preços dos ativos atuais. Não suporta o TimeFrame. MinusDI (int TimePeriod): var MinusDI (vars Open, vars High, vars Low, vars Close, int TimePeriod): var Indicador de direção menor, uma parte do indicador DX. Se a função não for chamada com diferentes séries de preços, a série de preços dos ativos atuais é usada. MinusDM (int TimePeriod): var MinusDM (vars Open, vars High, vars Low, vars Close, int TimePeriod): var Minus Directional Movement, duas versões. Se a função não for chamada com diferentes séries de preços, a série de preços dos ativos atuais é usada. MinVal (vars Data, int TimePeriod): var O valor mais baixo durante um período especificado. MinIndex (vars Data, int TimePeriod): int Índice do valor mais baixo durante um período especificado. 0 valor mais baixo está na barra atual, 1 em uma barra atrás, e assim por diante. MinMax (vars Data, int TimePeriod): var Os valores mais baixos e mais altos e seus índices durante um período especificado. Resultado no rMin. RMax. RMinIdx. RMaxIdx. MinMaxIndex (vars Data, int TimePeriod): int Índices dos valores mais baixos e mais altos durante um período especificado. Resultado no rMinIdx. RMaxIdx. 0 barra atual, 1 uma barra atrás, e assim por diante. MMI (vars Data, int TimePeriod): var Market Meanness Index, por jcl. Mede a maldade do mercado, isto é, sua tendência de reversão média, em uma faixa de 0..100. Os números aleatórios têm um MMI de 75. Os preços reais são mais ou menos autocorrelacionados, portanto, a probabilidade de uma série de preços reais reverter para a média é menor que 75, mas normalmente mais de 50. Quanto maior é, mais mau é o mercado . O índice de significância do mercado pode determinar quando a tendência seguindo os sistemas se tornará mais lucrativa (MMI está caindo) ou menos lucrativa (a MMI está aumentando) e, assim, evitar perdas em períodos não lucrativos. Código fonte em indicadores. c. Mom (vars Data, int TimePeriod): var Momentum. Simples Data0 - DataTimePeriod. Veja também o diff. Momento (vars Data, int TimePeriod, int N): var O momento estatístico N (1..4) da seção da série de dados fornecida pelo TimePeriod. O primeiro momento é o médio, o segundo é a variância, o terceiro é a asimetria e a quarta ist-kurtosis. Fonte disponível em indicadores. c Mover (vars Data, int Length, int MovePeriod, var Percent): var Retorna o percentil de um movimento de preço com duração MovePeriod. Ou seja, o tamanho mínimo de movimento que é igual ou maior do que a Porcentagem dada de todos esses movimentos de preços na série Data com Comprimento determinado. Por exemplo, se a função retornar 10 em MovePeriod 20 e Percent 95. Então, em 5 de todos os casos, o valor de dados aumentou em 10 ou mais dentro de 20 barras. Usa a função percentil. Código fonte em indicadores. c. MovingAverage (vars Data, int TimePeriod, int MAType): var Mover média. Parameters: MAType (Type of Moving Average, see remarks). MovingAverageVariablePeriod(vars Data, vars Periods, int MinPeriod, int MaxPeriod, int MAType): var Moving average with variable period given by the Periods series. Parameters: MinPeriod (Value less than minimum will be changed to Minimum period), MaxPeriod (Value higher than maximum will be changed to Maximum period), MAType (Type of Moving Average, see remarks). NATR(int TimePeriod): var Normalized Average True Range, by John Forman. Similar to the ATR, except it is being normalized as follows: NATR 100 ATR(TimePeriod) Close . Uses the current asset price series. Does not support TimeFrame . Normalize(vars Data, int TimePeriod): var Transforms the Data series to the -1. 1 range within the given TimePeriod . Similar to the AGC function, but does not differentiate between attack and decay. The minimum length of the Data series is equal to TimePeriod . Source available in indicators. c . See also scale. NumInRange(vars Low, vars High, var Min, var Max, int Length): var Number of data ranges, given by their Low and High values, that lie completely inside the interval from Min to Max within the given Length . Can be used to calculate the distribution of prices or candles. Low and High can be set to the same value for counting all values in the interval, or swapped for counting all candles that touch the interval. Range 1..TimePeriod . Source available in indicators. c . NumRiseFall(vars Data, int TimePeriod): var Length of the current sequence of rising or falling values in the Data array, back to the given TimePeriod . For a rising sequence its length is returned, for a falling sequence the negative length. Range 1..TimePeriod resp. -1..-TimePeriod . Source available in indicators. c . See the RandomWalk script and the Strategy chapter for an example. Source available in indicators. c . NumWhiteBlack(var Body, int Offset, int TimePeriod): var Number of white minus black candles in the given TimePeriod . Offset is the distance to the current bar ( 0 current bar), Body is the minimum length of a candle to be counted. Source available in indicators. c . Percentile(vars Data, int Length, var Percent): var Returns the given percentile of the Data series with given Length f. i. Percent 95 returns the Data value that is above 95 of all other values. Percent 50 returns the Median of the Data series. For calculating the percentage of a given percentile value, use the NumInRange function and count the elements below the percentile. PlusDI(int TimePeriod): var PlusDI(vars Open, vars High, vars Low, vars Close, int TimePeriod): var Plus Directional Indicator, a part of the DX indicato, two versions. In the first version the current asset price series is used. PlusDM(int TimePeriod): var PlusDM(vars Open, vars High, vars Low, vars Close, int TimePeriod): var Plus Directional Movement, two versions. In the first version the current asset price series is used. PPO(vars Data, int FastPeriod, int SlowPeriod, int MAType): var Percentage Price Oscillator. Parameters: FastPeriod (Number of period for the fast MA), SlowPeriod (Number of period for the slow MA), MAType (Type of Moving Average). ProfitFactor(vars Data, int Length): var Returns the profit factor of the Data series. The profit factor is the ratio of the sum of positive returns (i. e. Datai-1 gt Datai ) to the sum of negative returns (i. e. Datai-1 lt Datai ). The returned value is clipped to the 0.1. 10 range. Its reciprocal must be used when the Data array is in not in series order, but in chronological order, as wins and losses are then swapped. Source available in indicators. c . ROC(vars Data, int TimePeriod): var Rate of change, 100 scale: ((price-prevPrice)prevPrice)100 . ROCP(vars Data, int TimePeriod): var Rate of change Percentage: (price-prevPrice)prevPrice . See also diff. ROCR(vars Data, int TimePeriod): var Rate of change ratio: (priceprevPrice) . ROCL(vars Data, int TimePeriod): var Logarithmic return: log(priceprevPrice) . ROCR100(vars Data, int TimePeriod): var Rate of change ratio, 100 scale: (priceprevPrice)100 . Roof(vars Data, int CutoffLow, int CutoffHigh): var Ehlers roofing filter, prepares the Data series for further computation by removing trend and noise. Applies a 2-pole highpass filter followed by the Smooth filter. Recommended values for the low and high cutoff periods are 10 and 50 . The minimum length of the Data series is 2. The function internally creates series and thus must be called in a fixed order in the script. Source available in indicators. c . RSI(vars Data, int TimePeriod): var Relative Strength Index, by Welles Wilder. Ratio of the recent upwards data movement to the total data movement range 0..100. The RSI is believed to indicate overboughtoversold conditions when the value is over 70below 30. Formula: RSI 100 Up(UpDn) . where Up EMA(max(0,Data0-Data1),TimePeriod) and Dn EMA(max(0,Data1-Data0),TimePeriod) . RVI(int TimePeriod): var Relative Vigor Index, by John Ehlers. Ratio of price change to the total price range: (C-O)(H-L) . averaged over the time period and smoothed with a FIR filter. Oscillates between -1 and 1 . The function internally creates a series and thus must be called in a fixed order in the script. Source code in indicators. c . SAR(var Step, var Min, var Max): var Parabolic SAR, by Welles Wilder. The SAR runs above or below the price curve, depending on the current trend each price curve crossing is believed to indicate a trend change. Parameters: Step (acceleration factor increment, normally 0.02 ), Min (acceleration factor minimum value, normally 0.02 ), Max (acceleration factor maximum value, normally 0.2 ). SAR is a recursive function that depends on the direction of the initial price candle for consistent values the LookBack period should be long enough to contain at least one price curve crossing. Uses the current asset prices. The function internally creates a series and thus must be called in a fixed order in the script. Source code in indicators. c . example in Indicatortest. c . ShannonGain(vars Data, int TimePeriod): var Expected logarithmic gain rate of the Data series in the range of about -0.0005 . The gain rate is derived from the Shannon probability P (1 Mean(Gain) RootMeanSquare(Gain)) 2 . which is the likeliness of a rise or fall of a high entropy data series in the next bar period. A positive gain rate indicates that the series is more likely to rise, a negative gain rate indicates that it is more likely to fall. The zero crossover could be used for a trade signal. Algorithm by John Conover . Source available in indicators. c . ShannonEntropy(vars Data, int Length, int PatternSize): var Entropy of patterns in the Data series, in bit can be used to determine the randomness of the data. PatternSize (2..8) determines the partitioning of the data into patterns of up to 8 bit. Each Data value is either higher than the previous value, or it is not this is a binary information and constitutes one bit of the pattern. The more random the patterns are distributed, the higher is the Shannon entropy. Totally random data has a Shannon entropy identical to the pattern size. Algorithm explained on the Financial Hacker blog source available in indicators. c . SIROC(vars Data, int TimePeriod, int EMAPeriod): var Smoothed Rate of Change (S-RoC) by Fred G Schutzman. Differs from the ROC (see above) in that it is based on the exponential moving average ( EMA ) of the Data series. Believed to indicate the strength of a trend by determining if the trend is accelerating or decelerating. Formula: (Current EMA - Previous EMA)(Previous EMA) x 100. Source code in indicators. c . SMA(vars Data, int TimePeriod): var Simple Moving Average the mean of the data, i. e. the sum divided by the time period. Use Moment when long time periods are required. Smooth(vars Data, int CutoffPeriod): var Ehlers super-smoothing filter, a 2-pole Butterworth filter combined with a SMA that suppresses the Nyquist frequency. Can be used as a low-lag universal filter for removing noise from price data. The minimum length of the Data series is 2. The function internally creates series and thus must be called in a fixed order in the script. Source available in indicators. c . SMom(vars Data, int TimePeriod, int CutoffPeriod): var Smoothed Momentum by John Ehlers indicates the long term trend direction. TimePeriod is the momentum period, CutoffPeriod is a Butterworth filter constant for lowpass filtering the momentum. Source code in indicators. c . Spearman(vars Data, int TimePeriod): var Spearmans rank correlation coefficient correlation between the original Data series and the same series sorted in ascending order within TimePeriod ( 1..256 ). Returns the similarity to a steadily rising series and can be used to determine trend intensity and turning points. Range -1..1 . lag TimePeriod2 . For usage and details, see Stocks amp Commodities magazine 22011. Source available in indicators. c . StdDev(vars Data, int TimePeriod): var Standard Deviation of the Data series in the time period, from the ta-lib . Use the square root of the second Moment when high accuracy or long time periods are required. Stoch(int FastKPeriod, int SlowKPeriod, int SlowKMAType, int SlowDPeriod, int SlowDMAType) Stochastic Oscillator (unrelated to stochastics, but its inventor, George Lane, looked for a fancy name). Measures where the Close price is in relation to the recent trading range. Formula: FastK 100 (Close-LL)(HH-LL) SlowK MA(FastK) SlowD MA(SlowK) . Uses the current asset price series and does not support TimeFrame . Result in rSlowK . rSlowD . Some traders believe that the SlowK crossing above SlowD is a buy signal others believe they should buy when SlowD is below 20 and sell when it is above 80. Parameters: FastKPeriod - Time period for the HH and LL to generate the FastK value, usually 14 . SlowKPeriod - Time period for smoothing FastK to generate rSlowK usually 3 . SlowKMAType - Type of Moving Average for Slow-K, usually MATypeEMA . SlowDPeriod - Time period for smoothing rSlowK to generate rSlowD . usually 3 . SlowDMAType - Type of Moving Average for Slow-D, usually MATypeEMA . StochEhlers(vars Data, int TimePeriod, int CutOffLow, int CutOffHigh): var Predictive stochastic oscillator by John Ehlers. Measures where the Data value is in relation to its range within TimePeriod . The data runs through a 2-pole highpass filter with period CutOffHigh and through a Butterworth lowpass filter with period CutOffLow . Indicator algorithm explained in Ehlers quotPredictive Indicatorsquot paper usage example in the Ehlers script. Source code in indicators. c . The function internally creates series and thus must be called in a fixed order in the script. StochF(int FastKPeriod, int FastDPeriod, int FastDMAType): var Stochastic Fast. Measures where the Close price is in relation to the recent trading range Formula: Fast-K 100 (Close-LL)(HH-LL) Fast-D MA(Fast-K) . Uses the current asset price series. Does not support TimeFrame . Result in rFastK . rFastD . Returns: FastK . Parameters: FastKPeriod (Time period for the HH and LL of Fast-K, usually 14 ), FastDPeriod (Moving Average Period for Fast-D usually 3 ), FastDMAType (Type of Moving Average for Fast-D, usually MATypeEMA ). StochRSI(vars Data, int TimePeriod, int FastKPeriod, int FastDPeriod, int FastDMAType): var Stochastic Relative Strength Index (RSI ). Result in rFastK . rFastD . Returns: FastK . Parameters: FastKPeriod (Time period for building the Fast-K line), FastDPeriod (Smoothing for making the Fast-D line. Usually set to 3), FastDMAType (Type of Moving Average for Fast-D). Sum(vars Data, int TimePeriod): var Sum of all Data elements in the time period. T3(vars Data, int TimePeriod, var VFactor): var An extremely smoothed Moving Average by Tim Tillson. Uses a weighted sum of multiple EMAs. Parameters: VFactor (Volume Factor, normally 0.7). TEMA(vars Data, int TimePeriod): var Triple Exponential Moving Average by Patrick Mulloy, calculated from (3xEMA)-(3xEMA of EMA)(EMA of EMA of EMA) . Trima(vars Data, int TimePeriod): var Triangular Moving Average (also known under the name TMA ) a form of Weighted Moving Average where the weights are assigned in a triangular pattern. F. i. the weights for a 7 period Triangular Moving Average would be 1, 2, 3, 4, 3, 2, 1. This gives more weight to the middle of the time series. It causes better smoothing, but greater lag. Trix(vars Data, int TimePeriod): var 1-day Rate-Of-Change (see ROC ) of a Triple EMA (see TEMA ). TrueRange(): var True Range (TR) max(High0,Close1)-min(Low0,Close1) of the current asset price series. See also ATR . ATR S. TSF(vars Data, int TimePeriod): var Time Series Forecast. Returns b m(TimePeriod) . i. e. the Linear Regression forecast for the next bar. TSI(vars Data, int TimePeriod): var Trend Strength Index, an indicator by Frank Hassler who believed that it identifies trend strength. A high TSI value (above 1.65 ) indicates that short-term trend continuation is more likely than short-term trend reversal. The function internally creates series and thus must be called in a fixed order in the script. TypPrice(): var Typical Price. Simply (High Low Close)3 . Uses the current asset price series. UltOsc(int TimePeriod1, int TimePeriod2, int TimePeriod3): var Ultimate Oscillator. Parameters: TimePeriod1 (Number of bars for 1st period.), TimePeriod2 (Number of bars for 2nd period), TimePeriod3 (Number of bars for 3rd period). Uses the current asset price series. Does not support TimeFrame . UO(vars Data, int CutOff): var Universal oscillator by John Ehlers, from SampC Magazine 12015. Removes white noise from the data, smoothes it and runs it through the AGC filter. Detects trend reversals very early. Output in the -1..1 range. Source code in indicators. c . The function internally creates series and thus must be called in a fixed order in the script. Variance(vars Data, int TimePeriod): var Variance of the Data series in the time period, from the ta-lib . Use Moment when high accuracy or long time periods are required. Volatility(vars Data, int TimePeriod): var Annualized volatility of the Data series standard deviation of the log returns, multiplied with the square root of time frames in a year. This is the standard measure of volatility used for financial models, such as the Black-Scholes model. The function internally creates series and thus must be called in a fixed order in the script. Source code in indicators. c . VolatilityC(int TimePeriod, int EMAPeriod): var Chaikin Volatility indicator by Marc Chaikin measures volatility in percent as momentum of the smoothed difference between High and Low. An increase in the Chaikin Volatility indicates that a bottom is approaching, a decrease indicates that a top is approaching. TimePeriod is the period of the momentum (normally 10), EMAPeriod determines the smoothing (also, normally 10). Uses the current asset price series. The function internally creates series and thus must be called in a fixed order in the script. Source code in indicators. c . VolatilityMM(vars Data, int TimePeriod, int EMAPeriod): var MinMax volatility of the Data series the difference of MaxVal and MinVal in the time period, smoothed by an EMA (set EMAPeriod 0 for not smoothing). The function internally creates a series when EMAPeriod gt 0 . and then must be called in a fixed order in the script. Source available in indicators. c . For the volatility of price candles, use ATR or ATRS. VolatilityOV(int Days): var Annualized volatility of the current asset, calculated over the given number of Days (usually 20). Empirical formula used by some options software packages (OptionsVue 8482) for estimating the values of options, alternatively to Volatility() . Source code in options. c . which must be included for using this indicator. WCLPrice(): var Weighted Close Price. Uses the current asset price series. WillR(int TimePeriod): var Williams Percent Range. Formula: -100 (HH-Close)(HH-LL) . Uses the current asset price series. Does not support TimeFrame . WMA(vars Data, int TimePeriod): var Linear Weighted Moving Average the weight of every bar decreases linearly with its age. ZigZag(vars Data, var Depth, int Length, int Color): var ZigZag indicator converts the Data series into alternating straight trend lines with at least the given Depth and Length . Non-predictive can only identify trends in hindsight. Returned: rSlope (the slope of the last identified trend line upwards trends have a positive slope, downwards trends a negative slope) rPeak (the bar offset of the last identified peak) rSign ( 1 if the last peak was a top, -1 if the last peak was a bottom) rLength (the number of bars of the last trend line ending with rPeak ). If a nonzero Color is given, the trend lines are plotted in the chart. Source code in indicators. c . example in Indicatortest. c . The function internally creates series and thus must be called in a fixed order in the script. ZMA(vars Data, int TimePeriod): var Zero-lag Moving Average by John Ehlers smoothes the Data series with an Exponential Moving Average (EMA ) and applies an error correction term for compensating the lag. The function internally creates a series and thus must be called in a fixed order in the script. Source in indicators. c . Standard parameters: The number of bars for the time period of the function, if any or 0 for using a default period. A data series. often directly derived from the price functions price(), priceClose() etc. Alternatively a user created series or any other double float array with the given minimum length can be used. If not mentioned otherwise, the minimum length of the Data series is TimePeriod . Some functions require a second data array Data2 . Price data series can be explicitly given for some indicators, for using price series generated from a different asset or with a different TimeFrame. Otherwise the prices of the current asset with a time frame equivalent to the bar period are used. Price variation or percentage, dependent on the function, for the current bar. Usage example: MACD(Price,12,26,9) calculates the standard MACD for the given Price series. The results are stored in the global variables rMACD . rMACDSignal . and rMACDHistory . The TA-Lib function prototypes are defined in includeta. h . Information about the usage and the indicator algorithms can be found online at tadoc. org. The C source code of all included TA-Lib indicators is contained in Sourcetalib. zip and can be studied for examining the algorithms. Some TA-Lib indicators that originally didnt work properly - such as Correlation or SAR - have been replaced by working versions. The lite-C source code of most additional indicators that are not part the the TA-Lib is contained in includeindicators. c . All TA functions are applied on series and do normally not accept other data arrays. In the INITRUN. all TA functions return 0 . and LookBack is automatically increased to the largest required lookback time by a TA function. Recursive TA functions - f. i. EMA or ATR - need a higher lookback period than their TimePeriod parameter (see UnstablePeriod ). LookBack can be exceeded when TA functions are later called with a series offset or a different TimePeriod this will generate an Error 046 message. Make sure that LookBack is always higher than the maximum TimePeriod plus the UnstablePeriod plus the highest possible offset of all used series. Some functions return more than one value, f. i. MACD . The returned results are stored in global variables beginning with quot r quot they can be accessed after the function is called. Some functions only require a single Data value. Rather than creating a Data series of length 1 . simply a pointer to the Data value can be used. Example: var Raw MyIndicator() var Transformed AGC(ampRaw,0) . TimeFrame affects subsequent data series and thus also affects all indicators that use the data series as input. The TimePeriod is then not in Bar units, but in time frame units. TimeFrame has no effect on indicators that do not use data series. Indicators that rely on the standard deviation (f. i. Bollinger Bands) become inaccurate when the standard deviation is below 0.0001, as it is then assumed to be zero by the TA-Lib. This can happen on very short bar periods when the price does (almost) not move. For writing your own indicators, have a look at the examples inside indicators. c . But please do not modify indicators. c - write the indicators in your own script, or in a dedicated script that you can then include in your strategies. If you need a complex indicator that you can not be easily add, please ask for it on the Zorro user forum.

No comments:

Post a Comment