Volume moving average afl no Brasil


POLÍNOMIAL Amibroker AFL - POLÍNOMIAL Amibroker AFL está dizendo tudo, Fórmula para os comerciantes intraday. Mas eu diria que este afl para todas aquelas pessoas que querem negociar novamente n novamente n novamente diariamente para pequenos lucros, isso significa que esta fórmula afl é para scalpers. Então, veja a primeira tendência em prazos máximos e negocie. ANÁLISE DE VOLUME DE 15 DIAS WMA AFL - ANÁLISE DE VOLUME DE 15 DIAS WMA AFL está dizendo tudo, Fórmula para comerciantes intraday. Mas eu diria que este afl para todas aquelas pessoas que querem negociar novamente n novamente n novamente diariamente para pequenos lucros, isso significa que esta fórmula afl é para scalpers. Então veja a primeira tendência em prazos máximos. Price Break Out Detecção Afl - Price Break Out Detecção Afl está dizendo tudo, Fórmula para os comerciantes intraday. Mas eu diria que este afl para todas aquelas pessoas que querem negociar novamente n novamente n novamente diariamente para pequenos lucros, isso significa que esta fórmula afl é para scalpers. Então veja a primeira tendência em prazos máximos, e. KRISHNA PATRONES HARMÔNICOS NÍVEIS DINÂMICOS AFL - KRISHNA PATRONES HARMÔNICOS NÍVEIS DINÂMICOS AFL está dizendo tudo, Fórmula para comerciantes intraday. Mas eu diria que este afl para todas aquelas pessoas que querem negociar novamente n novamente n novamente diariamente para pequenos lucros, isso significa que esta fórmula afl é para scalpers. Então veja. Bandas de Keltner para Amibroker (AFL) - Bandas de Keltner para Amibroker AFL está dizendo tudo, Fórmula para comerciantes intraday. Mas eu diria que este afl para todas aquelas pessoas que querem negociar novamente n novamente n novamente diariamente para pequenos lucros, isso significa que esta fórmula afl é para scalpers. Então veja a primeira tendência em prazos máximos. MTF NMA 3,5 Amibroker AFL - MTF NMA 3,5 Amibroker AFL está dizendo tudo, Fórmula para os comerciantes intraday. Mas eu diria que este afl para todas aquelas pessoas que querem negociar novamente n novamente n novamente diariamente para pequenos lucros, isso significa que esta fórmula afl é para scalpers. Então, veja a primeira tendência em prazos máximos e negocie. Pivot Points para Amibroker AFL - Pivot Pontos para Amibroker AFL está dizendo tudo, Fórmula para os comerciantes intraday. Mas eu diria que este afl para todas aquelas pessoas que querem negociar novamente n novamente n novamente diariamente para pequenos lucros, isso significa que esta fórmula afl é para scalpers. Então veja a primeira tendência em prazos máximos, e. Top Bottom Long MA AFL - Topo Fundo MA MA Afl está dizendo tudo, Fórmula para os comerciantes intraday. Mas eu diria que este afl para todas aquelas pessoas que querem negociar novamente n novamente n novamente diariamente para pequenos lucros, isso significa que esta fórmula afl é para scalpers. Então, veja a primeira tendência em prazos máximos e troque isso. Parabólica Sar Sistema Intraday AFL - Parabólica Sar Sistema Intraday AFL está dizendo tudo, Fórmula para os comerciantes intraday. Mas eu diria que este afl para todas aquelas pessoas que querem negociar novamente n novamente n novamente diariamente para pequenos lucros, isso significa que esta fórmula afl é para scalpers. Então veja primeira tendência em max. Guppy Multiple Moving Average Afl - Guppy múltipla média móvel usando o volume médio ponderado afl está dizendo tudo, Fórmula para os comerciantes intraday. Mas eu diria que este afl para todas aquelas pessoas que querem negociar novamente n novamente n novamente diariamente para pequenos lucros, isso significa que esta fórmula afl é para scalpers. Fig 1. Abra preço array Qualquer outro array é calculado a partir destes 6 arrays usando Fórmulas incorporadas na AFL. Esses arrays não são armazenados no banco de dados, mas calculados quando necessário. Cada valor individual em uma matriz tem uma data associada a ela. Se você tiver a opção de ponta de ferramenta ativada (Preferências - gt Guia Diversos - dicas de ferramentas de dados de preço do gt), quando você move o cursor sobre uma vela em um gráfico diário de velas, um pequeno retângulo amarelo aparece. AFL então olha para cima os valores de volume aberto, baixo, alto, fechar na matriz apropriada e exibe-los dentro da dica da ferramenta. Processando arrays - por que AFL é tão rápido Permite ver como a seguinte instrução é processada: MyVariable (High Low) 2 Quando AFL está avaliando instruções como esta (High Low) 2, não é necessário reinterpretar este código para cada barra. Em vez disso, ele toma o ARRAY Alto e Low ARRAY e adiciona elementos de matriz correspondentes em um único estágio. Em outras palavras, o operador (e outros operadores também) trabalham em matrizes de uma só vez e é executado em velocidade de código compilado completo, então o array resultante (cada elemento dele) é dividido por 2 também em estágio único. Vamos olhar para os detalhes - ver fig 2. Quando o motor AFL olha para o (High Low) 2 ele primeiro toma Arrays Alto (1) e Baixo (2) e produz (em um único passo compilado) a matriz temporária (3). Em seguida, ele cria a matriz final (4), dividindo cada elemento de matriz temporária por dois. Este resultado é atribuído a myVariable Fig 2. AFL etapas quando o processamento (High Low) 2 médias móveis, declarações condicionais Vamos considerar agora o seguinte código: Cond1 Fechar gt MA (Close, 3) Cond2 Volume gt Ref (Volume, -1) Comprar Cond1 AND Cond2 Sell High gt 1.30 Este código gera um sinal de compra quando fechar de hoje é superior a 3 dias de média móvel de fechar E hoje volume é maior do que o volume de ontem. Ele também gera um sinal de venda quando a alta de hoje é maior do que 1,30. Se em seu código AFL você precisa ver se o preço de fechamento é maior do que dizer uma média móvel simples de 3 dias AFL primeiro será executado através da matriz próxima criar uma nova matriz chamada MA (fechar, 3) para o símbolo que está sendo analisado. Cada célula na nova matriz pode então ser comparada uma para uma na matriz de close. No exemplo, uma matriz chamada Cond1 é criada dessa maneira. Para cada célula onde o preço de fechamento é maior que o valor da célula correspondente em MA (fechar, 3) o valor da célula para a nova matriz Cond1 é definido como 1. Se o preço de fechamento não for maior que o preço correspondente na matriz de fechamento o valor Em Cond1 é definido como 0. AFL também pode olhar para a frente ou para trás um número de células em uma matriz usando a função Ref (veja a linha 6 onde matriz temporária é criada segurando volume do dia anterior) Na linha 9 uma nova matriz chamada Cond2 foi criado Comparando o valor de cada célula na matriz de volume com sua célula anterior, definindo o valor da célula Cond2 para 1 se verdadeiro e 0 se for falso. A linha 10 mostra uma matriz chamada Buy criada comparando os valores de célula em Cond1 com os valores de célula em Cond2. Se a célula em Cond1 tem um 1 E assim faz a célula correspondente em Cond2, em seguida, um 1 é colocado na célula Buy array. A linha 11 mostra uma matriz chamada Sell criada sempre que o valor da célula na matriz de fechamento for maior que 1,30. Obviamente Buy and Sell são matrizes especiais cujos resultados podem ser exibidos na janela Analisador ou na tela usando um valor vermelho ou verde conforme necessário. Ficando um pouco mais complexo Os exemplos acima eram muito simples. Agora vou explicar apenas 3 coisas que parecem gerar alguma confusão entre os usuários: Referenciando valores selecionados (SelectedValue, BeginValue, EndValue, LastValue) Função IIF Função AMA Como escrito no Tutorial: Guia básico de gráficos você pode selecionar qualquer citação do gráfico E você pode marcar From-To intervalo. A barra selecionada por linha verticall é chamada quotselectedquot bar, enquanto início e fim barras do intervalo são chamados quotbeginquot e quotendquot barras. AFL tem funções especiais que permitem ao valor de referência da matriz na barra selecionada, início e fim, respectivamente. Essas funções são chamadas SelectedValue, BeginValue e EndValue. Existe mais uma função chamada LastValue que permite obter o valor da matriz na última barra. Estas quatro funções tomam o elemento de matriz na dada barra e retornam SINGLE NUMBER representando o valor da matriz em determinado ponto. Isso permite calcular algumas estatísticas sobre pontos selecionados. Por exemplo: EndValue (Close) - BeginValue (Close) Dá-lhe a alteração de dólar entre os preços de fechamento no intervalo selecionado de-para. Quando o número recuperado por qualquer uma dessas funções é comparado a uma matriz ou qualquer outra operação aritmética envolvendo número ea matriz é executada funciona como o número abrangido por todos os elementos da matriz. Isto é ilustrado na tabela abaixo (linhas 2, 6, 7). A cor verde marca a barra do quotbeginquot e a cor vermelha marca a barra do quotendquot. A barra selecionada é marcada com azul. Agora a função IIF (condição, parte verdadeira, parte falso). Ele funciona que retorna o valor de segundo (truepart) ou terceiro argumento (falsepart) dependendo da condição. Como você pode ver na tabela acima na linha 8 os valores vêm de Close array (truepart) para barras quando condição for true (1) e vêm de Open array (falsepart) para as barras restantes. Nesse caso, a matriz retornada pela função IIF consiste em alguns valores de Close e alguns valores de Open array. Observe que tanto truepart quanto falsepart são matrizes e eles são avaliados independentemente da condição (portanto, esta não é uma instrução IF-THEN-ELSE regular mas função que retorna matriz) A função AMA (matriz, fator) parece causar mais problemas com Entendê-lo. Mas, na verdade, é muito simples. Ele funciona de maneira recursiva. Isso significa que ele usa seu valor anterior para o cálculo do valor atual. Processa a barra de matriz por barra, com cada passo que multiplica a célula dada do primeiro argumento (matriz) pela célula dada do segundo argumento (fator) e adiciona-o ao valor anterior de AMA multiplicado por (fator 1). Consideremos a coluna 3. O valor de AMA na coluna 3 é dado pelo preço de fechamento múltiplo da coluna 3 (1,23) pelo fator (0,4). Do que somamos o valor anterior de AMA (1.0363) multiplicado por (1-factor 0,6). O resultado (arredondado para 4 lugares) é 1,23 0,4 1,0363 0,6 1,1138. Se você olhar para os números na linha 12 você pode notar que esses valores parecem uma média móvel de fechar. E isso é verdade. Na verdade, apresentamos como calcular a média móvel exponencial de período variável usando a função AMA. Com a versão 4.40 o AmiBroker traz a capacidade de iterar entre aspas usando for e while loops e adiciona if-else declaração de controle de fluxo. Esses aprimoramentos tornam possível trabalhar de AMBAS maneiras: use o processamento ARRAY (descrito acima) para velocidade e simplicidade ou use LOOPS para fazer coisas complexas. Como um exemplo de como implementar a média exponencial período variável (descrito acima) usando looping ver o seguinte código: Period. Calcula o valor do i-ésimo elemento da matriz usando esta barra close (close i) e o cálculo do valor do fator de suavização Fator 2 (Período i 1) (1 - Factor) vaexp i - 1 Como você pode ver o código é mais longo, mas por outro lado é muito semelhante a qualquer outra linguagem de programação como CPascalBasic. Assim, as pessoas com alguma experiência com programação podem achar mais fácil de entender. Se você é iniciante eu sugiro aprender o processamento de matriz primeiro antes de cavar em coisas de loop mais complexas. Se você está tendo problemas para codificar AFL eu sugiro que você gere os arrays no exemplo no Excel para si mesmo. Se isso é um problema obter alguma ajuda de um amigo - especialmente se esse amigo é um contador. Uma vez que você tem o jeito dele você pode codificar qualquer sistema de um livro sobre a negociação - ou construir um você mesmo. --- Agradecimentos especiais a Geoff Mulhall pelo artigo original no boletim de notícias que era a base deste tutorial --- AFL é uma linguagem de programação especial usada para definir e criar indicadores feitos sob encomenda, varreduras, explorações, back-testes e comentários do guru. Elementos lexicais Este capítulo descreve as diferentes categorias de unidades de palavras (tokens) reconhecidas pelo intérprete de linguagem AFL. Whitespace Whitespace é o nome coletivo dado aos espaços (espaços em branco), guias, novos caracteres de linha e comentários. Espaços em branco podem servir para indicar onde os tokens começam e terminam, mas além dessa função, qualquer espaço em branco excedente é descartado. Comentários são peças de texto usadas para anotar um programa. Comentários são para os programadores usam apenas eles são removidos do código fonte antes de analisar. Existem duas maneiras de delinear comentários: C-como comentários e C como comentários. Um comentário semelhante a C é qualquer sequência de caracteres colocada após o par de símbolos. O comentário termina na primeira ocorrência do par após a inicial. A sequência inteira, incluindo os quatro símbolos de delimitador de comentário, é substituída por um espaço. Um C como comentários são comentários de linha única que começam usando duas barras adjacentes () em qualquer posição dentro da linha e estender até a próxima nova linha. AFL não permite comentários aninhados. AFL reconhece cinco classes de tokens: identificadores constantes string-literals operadores pontuadores (também conhecidos como separadores) Identificadores são nomes arbitrários de qualquer comprimento dado a funções e variáveis. Os identificadores podem conter as letras (a-z, A-Z), o caractere sublinhado (quotquot) e os dígitos (0-9). O primeiro caractere deve ser uma letra. Os identificadores AFL não são sensíveis a maiúsculas e minúsculas. As constantes são tokens que representam valores numéricos ou de caracteres fixos. As constantes numéricas consistem em um inteiro decimal e opcionalmente: ponto decimal e parte de fração decimal. As constantes numéricas negativas têm unary menos (-) prefixadas. Constantes de string, também conhecidas como literais de string. Formam uma categoria especial de constantes usadas para manipular seqüências fixas de caracteres e são escritas como uma seqüência de qualquer número de caracteres rodeado por aspas duplas: quot Isto é literalmente uma stringquot A string nula (vazia) é escrita quotquot. Os caracteres dentro das aspas duplas podem incluir seqüências de escape (quotnquot - uma nova seqüência de escape de linha). A Expressão constante é uma expressão que sempre é avaliada como uma constante. Eles são avaliados exatamente como expressões regulares. Punctuator (também conhecido como separador) em AFL é um dos seguintes caracteres: (). . Parênteses (abra e feche) expressões de grupo, isolar expressões condicionais e indicar chamadas de função e parâmetros de função: dc (ab) substituir precedência normal a (b AND c) OU (d AND e) expressão condicional função func A vírgula (,) separa os elementos de uma lista de argumentos de função O ponto-e-vírgula () é um terminador de instrução. Qualquer expressão legal AFL seguida de um ponto-e-vírgula é interpretada como uma instrução, conhecida como declaração de expressão. A expressão é avaliada e seu valor é descartado (exceto Guru Commentaries onde os valores de string são gravados na janela de saída) O ponto (.) É um operador de acesso a membros. Ele é usado para chamar métodos de objeto COM. Se a variável myobj contiver o objeto, usando o operador ponto podemos chamar os métodos (funções) do objeto myobj: O sinal de igual () separa as declarações de variáveis ​​das listas de inicialização: x 5 Também indica o valor padrão para um parâmetro (consulte built-in Descrição da função): macd (fast 12 slow 26) valores padrão para argumentos rápidos e lentos) Estrutura de linguagem Cada fórmula na AFL contém de uma ou mais declarações de expressão. Cada declaração deve ser terminada por ponto e vírgula (). Desta forma, você é capaz de quebrar longas expressões em várias linhas físicas (a fim de ganhar clareza) e AmiBroker ainda tratá-lo como uma única declaração até terminar semicolon. Exemplos: Identificadores Identificadores em AFL são usados ​​para identificar variáveis ​​e funções. Existem alguns identificadores predefinidos que referenciam arrays e funções incorporadas. Os mais importantes são os identificadores de preço. Eles identificam campos de preço específico que a fórmula deve operar em. Os identificadores de tabela de preços válidos estão abertos. Alto . Baixo. fechar . Volume. Openint média . Os identificadores de tabela de preços podem ser abreviados como mostrado na tabela a seguir. Note que estes não são específicos do caso. Armazena o valor do segundo operando no objeto especificado pelo primeiro operando (8220simple assignment8221). O operador de atribuição atribui um valor a uma variável: onde result é variável identificador e expressão é qualquer numérica, matriz ou expressão de texto. Como o operador se comporta como outros operadores, as expressões que o utilizam têm um valor além de atribuir esse valor à variável. Isso significa que você pode encadear operadores de atribuição da seguinte maneira: j k l 0 j, k, e l igual a zero após a instrução de exemplo ser executada. Atenção: NÃO confunda o operador de atribuição () com a verificação de igualdade () Estes são dois operadores diferentes e você não deve usar assign () para verificar a igualdade. If (Name () quotMSFTquot) WRONG. - operador de atribuição de variáveis ​​usado em vez de verificação de igualdade se (Nome () quotMSFTquot) CORREIO - operador de igualdade usado corretamente Este é um dos erros comuns de codificação listados aqui. Operadores aritméticos As fórmulas podem conter os seguintes operadores matemáticos: Obter o OR inclusivo de bits do primeiro e segundo operandos armazenar o resultado no objeto especificado pelo primeiro operando operador typeof () O operador typeof é usado da seguinte maneira: typeof (operand) O operador typeof retorna uma seqüência de caracteres indicando o tipo do operando não avaliado. Operando é a seqüência de caracteres, variável, identificador de função ou objeto para o qual o tipo deve ser retornado. Ao fornecer o identificador, ele deve ser fornecido sozinho, sem operadores aritméticos, sem argumentos extra e sem chaves. Se você quiser verificar o tipo de valor retornado pela função, você deve primeiro atribuir o valor de retorno a uma variável e, em seguida, use typeof (variável). Os valores de retorno possíveis são: quotundefinedquot - identificador não está definido quotnumberquot - operando representa um número (escalar) quotarrayquot - operando representa uma matriz quotstringquot - operando representa uma string quotfunctionquot - operando é um built - in function identifier quotuser functionquot - Função definida quotobjectquot - operando representa objeto COM quotmemberquot - operando representa função de membro ou propriedade de objeto COM quothandlequot - operando representa Windows handle quotunknownquot - tipo de operando é desconhecido (não deve acontecer) typeof operador permite, entre outras coisas, detectar variáveis ​​indefinidas no seguinte O seguinte exemplo de código COMMENTARY mostra a saída de typeof () em algumas situações comuns: x MACD () y LastValue (x) função testfun () return 1 Printf (typeof (teste) n) a variável indefinida printf (typeof (1) n) aceso (Typeof (y) n) variável escalar printf (typeof (MACD) n) identificador de função printf (typeof (testfun) n) Identificador de função do usuário Prioridade do operador e os parênteses AFL suporta parênteses em fórmulas. Parênteses podem ser usados ​​para controlar a precedência da operação (a ordem em que os operadores são calculados). AmiBroker sempre faz operações dentro dos parênteses mais íntimos em primeiro lugar. Quando parênteses não são utilizados, a precedência é a seguinte (precedência mais alta listada em primeiro lugar): (sem parênteses) seria calculado por AmiBroker como quotL 2quot mais "Hquot, uma vez que divisão tem uma precedência mais elevada. Isso resultaria em um valor muito diferente do que algumas palavras sobre incrementdecrement operadores. Existem dois tipos deles: postfix e prefix. Os operadores unários (e -) são chamados 8220prefix8221 incrementar ou decrementar operadores quando os operadores de incremento ou decremento aparecem antes do operando. O incremento e decremento de Postfix tem precedência maior que os operadores de incremento e decremento de prefixo. Quando o operador aparece antes de seu operando, o operando é incrementado ou diminuído eo seu novo valor é o resultado da expressão. J i i será incrementado primeiro eo resultado (número 6) será atribuído a j. O resultado da operação de incremento ou decréscimo de postfix é o valor da expressão postfix antes do operador de incremento ou decremento ser aplicado. O tipo do resultado é o mesmo que o da expressão postfix, mas já não é um valor l. Depois que o resultado é obtido, o valor do operando é incrementado (ou diminuído). Jij será atribuído o valor de 5 (antes de incremento) e então i será incrementado para 6. Acessando elementos de matriz: - subscript operator Um identificador de array seguido por uma expressão em colchetes () é uma representação de um elemento subscrita de um array objeto. Representa o valor da expressão-ésimo elemento da matriz. Constante de BarCount dá o número de barras na matriz (como Close, High, Low, Open, Volume, etc). Os elementos da matriz são numerados de 0 (zero) para BarCount-1. O BarCount NÃO muda enquanto sua fórmula continua a execução, mas pode mudar entre execuções quando novas barras são adicionadas, o fator de zoom é alterado ou o símbolo é alterado. Para obter a primeira barra você pode usar a matriz 0, para obter a última barra da matriz você pode usar a matriz BarCount - 1 Fechar 5 Representa o sexto elemento (barra) da matriz de fechamento. Fechar 0 Representa a primeira barra disponível da matriz de fechamento. High BarCount - 1 Representa a última barra de High array. Matrizes e matrizes Matrizes são matrizes bidimensionais de números. Para criar uma matriz use: myvarname Matrix (linhas, cols, initvalue) Para acessar elementos de matriz, use: myvarname row col onde row é um índice de linha (0. número de linhas-1) e col é um índice de coluna Das colunas-1) As matrizes e seus elementos suportam todas as operações aritméticas e lógicas escalares (element-wise). Todos esses operadores padrão são executados em matrizes em função do elemento. Por essa razão, por exemplo, para adicionar duas matrizes devem ser do mesmo tamanho (o número de linhas e colunas deve ser o mesmo). Se eles não são o mesmo, cabe a você como executar o cálculo em cada elemento via loop. Assim você pode, por exemplo, adicionar, subtrair, multiplicar, dividir duas matrizes se eles têm as mesmas dimensões com uma chamada. X Matriz (5. 6.9) matriz 5 linhas 6 colunas, valor inicial 9 y Matriz (5. 6. 10) matriz 5 linhas 6 colunas, valor inicial 10 zy - x lhe dará matriz 5 linhas e 6 colunas preenchidas Elementos com valor 1 (diferença entre 10 e 9). Todas essas operações são realizadas ELEMENT-WISE. Você também pode aplicar qualquer operação aritmética e lógica na matriz E valor escalar. Isso iria executar a operação elemento-sábio em cada elemento da matriz de origem e dado valor escalar. M Matriz (10.10 0) m será 10x10 matriz preenchida com zeros z m z é agora também uma matriz para (i 0 i lt 10 i) z i 4 i preencher z com alguns outros valores, observe que m permanecerá inalterado. Para (i 0 i lt 10 i) TRACEF (gg, g, gn, i, mi 1, mi 4, zi 4) adição escalar (elemento sábio) z 3 m 5 para (i 0 i lt 10 i) TRACEF (gg , G, gn, i, mi 1, mi 4, zi 4) Há um operador especial que trabalha somente em matrizes - é produto de matriz. O operador para o produto matricial é (o sinal at). O produto Matrix é a forma de álgebra linear para multiplicar matrizes. Se você escreve CAB, ele multiplica a matriz A (n, k) pela matriz B (k, m) para produzir a matriz C (n, m) então o número de colunas na matriz A deve ser igual ao número de linhas na matriz B. Para obter mais informações, consulte: en. wikipedia. orgwikiMatrixmultiplication A precedência do operador de produto de matriz é o mesmo que (portanto, ele tem maior precedência do que adição e subtração). A Matriz (1,3) B Matriz (3,2) matriz A 1, 4, 6 matriz B 2, 3 5, 8 7, 9 A 0 0 1 A 0 1 4 A 0 2 6 B 0 0 2 B 0 1 3 B 1 0 5 B 1 1 8 B 2 0 7 B 2 1 9 TRACEF (g g X 0 0, X 0 1) Declarações compostas (Blocks) Uma declaração composta consiste em zero ou mais declarações encerradas em chaves ). Uma instrução composta pode ser usada em qualquer lugar onde uma declaração seja esperada. Compromissos são comumente chamados de 8220blocks.8221 (isto é emprestado da linguagem C, usuários de outras linguagens de programação são usados ​​para usar BEGIN para) se (Montante gt 100) TRACE (Montante acima de 100) Saldo Saldo Saldo Saldo Saldo - In Funções Além de operadores matemáticos, AmiBroker contém mais de 70 funções integradas que executam operações matemáticas. A seguinte fórmula consiste em uma única função que dá as raízes quadradas dos preços de fechamento: A fórmula a seguir consiste em uma única função que fornece um indicador de RSI de 14 períodos: A fórmula a seguir é composta por duas funções. O resultado é a diferença entre o indicador MACD e uma média móvel exponencial de 9 períodos do MACD: Todas as chamadas de função devem consistir em identificador de função (nome) seguido por um par de parênteses. Como foi evitado em exemplos anteriores, uma função pode ser denominada dentro de uma função. A função aninhada pode servir como o parâmetro de matriz de dados de funções principais. Os exemplos a seguir mostram funções aninhadas dentro de funções: O primeiro exemplo calcula uma média móvel simples de 10 períodos de um Índice de Força Relativa de 15 períodos (RSI). O segundo exemplo calcula uma média móvel exponencial de 20 períodos de um RSI de 15 períodos e, em seguida, calcula uma média móvel simples de 10 períodos dessa média móvel. Função condicional IIF () A função iif () é usada para criar atribuições condicionais. Ele contém três parâmetros como mostrado no exemplo a seguir. A instrução quotiifquot acima lê (em Inglês) da seguinte forma: Se hoje fechar é maior do que a média móvel simples de 10 dias do fechamento, então atribua um RSI de 9 dias à variável dynamicrsi, caso contrário, atribua um RSI de 14 dias. A fórmula seguinte atribui 147 volume positivo a 14 para variável volresult se o fechamento for maior que o preço médio. Caso contrário, o volume quotnegativo é atribuído. Se você simplesmente deseja que uma expressão seja avaliada como verdadeira ou falsa, ela pode ser feita sem o uso da função iif (). A seguinte fórmula resultará em um 1 (verdadeiro) ou um 0 (falso): O mesmo feito com iif () dá os mesmos resultados, mas a fórmula é mais longa. Observe que o IIF é uma função - portanto, o resultado da avaliação é retornado por essa função e deve ser atribuído a alguma variável. IIf sempre avalia TRUEPART e FALSEPART, mesmo que ele retorna apenas um deles. Devido a isso, você deve observar os efeitos colaterais indesejáveis. A função IIF não é uma declaração de controle de fluxo. Se você precisar de controle de fluxo (execução condicional de algumas partes de código) você deve procurar instruções if-else condicionais descritas mais adiante neste documento. O exemplo a seguir mostra um erro comum feito com a função IIF: IIf (condição, resultado 7. resultado 9) ISTO É ERRADO Uso correto é: resultado IIf (condição, 7. 9) 7 ou 9 é retornado e atribuído à variável de resultado dependendo de Condição A fim de encurtar, simplificar, melhorar e tornar a manutenção de fórmulas complexas mais fácil, você pode querer usar variáveis. Na verdade, usando variáveis, você pode melhorar significativamente a velocidade de cálculo da fórmula. Portanto, é altamente recomendável usar variáveis ​​e não há limite no número de variáveis ​​que você pode definir. Uma variável é um identificador que é atribuído a uma expressão ou uma constante. O número de variáveis ​​usadas em uma fórmula não é limitado. As variáveis ​​devem ser atribuídas antes que a variável seja usada na fórmula. As variáveis ​​não podem ser atribuídas em uma chamada de função. Os nomes de variáveis ​​definidos pelo usuário (identificadores) não podem duplicar nomes já usados ​​por funções (por exemplo, ma, rsi, cci, iif, etc.) ou identificadores de matriz predefinidos (por exemplo, abertos, H, s, a). Variáveis ​​reservadas O AmiBroker usa alguns nomes de variáveis ​​reservadas em suas fórmulas, por exemplo, na janela de Auto-Análise, você tem que atribuir valores a 2 variáveis ​​nomeadas comprar ou vender para especificar as condições em que as condições quotbuyquot e quotsellquot ocorrem. Por exemplo (sistema que compra quando MACD sobe acima de 0 linha, e vende quando MACD cai abaixo de 0 linha) AmiBroker usa os seguintes nomes reservados de variável. Observe que as variáveis ​​marcadas como obsoletas NÃO devem ser usadas em novas codificações. Eles são deixados apenas para compatibilidade com versões anteriores e novas fórmulas devem usar funções modernas como Plot () para plotar indicadores e AddColumn () para definir colunas de exploração. gráfico cor N (obsoleto) define o índice de cor de N th linha do gráfico (índices de cor está relacionada com a paleta de corrente - ver PreferencesColor) colorCustom1 0 colorCustom2 1 colorCustom3 2 colorCustom4 3 colorCustom5 4 colorCustom6 5 colorCustom7 6 colorCustom8 7 colorCustom9 8 colorCustom10 9 colorCustom11 10 colorCustom12 11 colorCustom13 12 colorCustom14 13 colorCustom15 14 colorCustom16 15 colorBlack 16 colorBrown 17 colorDarkOliveGreen 18 colorDarkGreen 19 colorDarkTeal 20 colorDarkBlue 21 colorIndigo 22 colorDarkGrey 23 colorDarkRed 24 colorOrange 25 colorDarkYellow 26 ColorGreen 27 colorTeal 28 colorBlue 29 colorBlueGrey 30 colorGrey40 31 Colorred 32 colorLightOrange 33 colorLime 34 colorSeaGreen 35 colorAqua 35 colorLightBlue 37 colorViolet 38 colorGrey50 39 colorPink 40 colorGold 41 colorYellow 42 colorBrightGreen 43 colorTurquoise 44 colorSkyblue 45 colorPlum 46 colorLightGrey 47 colorRose 48 colorTan 49 colorLightYellow 50 col orPaleGreen 51 colorPaleTurquoise 52 colorPaleBlue 53 colorLavender 54 colorWhite 55 gráfico N BarColor (obsoleto) define a matriz que contém índices de paleta para cada estilo de barra desenhado gráfico N (obsoleto) define o estilo de N th gráfico. Estilo é definido como uma combinação (soma) de um ou mais seguintes sinalizadores: styleLine 1 - normal (linha) gráfico (padrão) styleHistogram 2 - histograma chart styleThick 4 - gordura (thick) styleDots 8 - include dots styleNoLine 16 - nenhuma linha styleLog 32 - escala semi-logarítmica styleCandle 64 - gráfico de barras stylebar 128 - tradicional gráfico de barras styleNoDraw 256 - não sorteio (executar eixo dimensionamento apenas) styleStaircase 512 - escada (quadrado) do gráfico styleSwingDots 1024 - pontos médios para gráfico escadaria styleNoRescale 2048 - não styleNoLabel rescale 4096 - nenhum rótulo valor stylePointAndFigure 8192 - ponto e figura (novo em 4.20): styleArea 16384 - gráfico de área (extra wide histograma) styleOwnScale 32768 - lote está usando 65536 escala styleLeftAxisScale independente - lote está usando escala do eixo esquerdo (independente do eixo da direita) Nem todas as combinações de sinalizadores fazem sentido, por exemplo (641) (linha de candlestick) resultará em gráfico de castiçal (style64) Nota sobre gráficos de candlestickbar: estes estilos usam em Diretamente O, H, L arrays, além do gráfico N. Assim ordinário candlestick tabela de preço fórmula é graph0close graph0style64. Mas se você quiser desenhar outra coisa além de fechar o preço, você deve atribuir novos valores a arrays O, H, L predefinidos. N barcolor (obsoleto) define a matriz de índices de cor para as barras e castiçais em N gramas (os índices de cor estão relacionados com a paleta atual - veja PreferencesColor)

Comments