Skip to main content

Moving average afl


Fig 1. Abrimento de preço aberto Qualquer outro array é calculado a partir desses 6 arrays usando fórmulas embutidas no 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, aparece um pequeno retângulo amarelo. AFL então olha para cima os valores de volume aberto, baixo, alto, fechar na matriz apropriada e exibe-los dentro da dica de 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 esse 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 próxima, 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) é de 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 informativo que foi a base deste tutorial --- A Aflac, Inc. é uma holding de empresas em geral e atua como uma empresa de gestão, supervisionando as operações de suas subsidiárias, fornecendo gerenciamento Disponibilização de capital. Ela opera através de dois segmentos: Aflac Japan e Aflac US O segmento Aflac Japão oferece benefícios por morte e valores de resgate em dinheiro, o produto WAYS, possui recursos que permitem que os segurados convertam uma parte de seu seguro de vida em cuidados médicos, de enfermagem ou de anuidade fixa em Uma idade predeterminada e um produto de dotação para crianças. Ele também vende produtos de seguro complementar voluntário, incluindo planos de câncer, planos de indenização médica geral, cavaleiros médica enfermeira, planos de cuidados, planos de vida de vida de benefício, planos de seguro de vida ordinária e anuidades. O segmento Aflac EUA vende produtos de seguro complementar voluntário, incluindo produtos destinados a proteger os indivíduos contra o esgotamento de ativos e produtos de perda de renda. A empresa foi fundada por John Amos, Daniel Paul Amos e William Amos em 17 de novembro de 1955 e está sediada em Columbus, GA. Indústria: Accident amp Health Insurance País: Estados Unidos Formulário 10-K Arquivado: 24 de fevereiro de 2017 Aflac perde estimativas de lucros - mas Don39t perder visão da imagem grande 020217 Sure Dividendo Aflac39s (AFL) CEO, Dan Amos no quarto Transcrição da chamada 020177 Transcrições SA Aflac menor por 3 após ganhos falta 020177 SA Editor Stephen Alpher SA Editor Stephen Alpher Q4 operacionais EPS de 1,54 em comparação com 1,56 um ano antes. As expectativas foram de 1,59. O dollaryen mais forte impulsionou o EPS operacional por 0.08 este ano. Q4 recompra de 2,8 milhões de ações para 200M. Reembolso total de 21,6 milhões de acções para 1,4 B. Outras 26,8 milhões de ações permanecem em autorização. ROE operacional de 15,6 no quarto trimestre, ou 13,7 excluindo o impacto cambial. ROE operacional de todo o ano de 17,3, excluindo o impacto cambial. A orientação para todo o ano de 2017 permanece inalterada, com o EPS de 6,40-6,65 assumindo uma média de 100% da moeda de dezenas de yen108,70. A companhia espera comprar de volta 1.3B-1.5B de estoque este ano. Anteriormente: AFLAC perde 0,09, bate na receita (31 de janeiro) AFL -3,25 a 67,71 Formulário 8-K Arquivado: 31 de janeiro de 2017 013117 Documentos da SEC AFLAC declara 0.43 dividendo 013117 SA Editor 1 AFLAC (NYSE: AFL) declara 0.43share Dividendo trimestral. Em linha com anterior. Rendimento a prazo 2,46 Pagamento a partir de 1 de março para acionistas de registro 15 de fevereiro ex-div 13 de fevereiro. AFLAC perde 0,09, bate na receita 013117 SA Editor Gaurav Batavia SA Editor Gaurav Batávia Cem Mil Dólares Income Portfolio - Portfólio de Valor Eu tenho continuado a trabalhar para os meus objetivos para a Carteira de Renda Cem Mil Dólares. Ao mesmo tempo, trabalhei para transformar a carteira em aristocratas de dividendos mais seguros. No mês mais recente, vendi meus investimentos no Pimco Strategic Income Fund e no Pimco High Income Fund. Estes são fundos fechados que caíram. Eu optei por investir na Aflac, um aristocrata de dividendos com um índice de PE significativamente abaixo da média do mercado. A Aflac permaneceu comprometida com os acionistas há anos. Aflac: Demasiado Alto Dado Vento Frente Japonês Aflac recentemente detalhou seus planos para lidar com um iene fraco e pobres rendimentos em JGBs. Aflac tem uma boa história de aumento de dividendos e no preço certo fará um bom parceiro de investimento. O preço de mercado atual é muito alto, dado os ventos de face Aflac enfrenta. Aflac39s 2017 Dividendo Explicado Em Dois Gráficos 121616 John Rhodes Aflac é um campeão de dividendos com mais de 30 anos de dividendos crescentes. A empresa está oferecendo planos para a tendência de lucro para 2017, o que irá suprimir o crescimento do dividendo. Com lucros fracos e baixo crescimento de dividendos, o retorno total da Aflac será suave, mas estável, provavelmente na faixa de 7-8 no futuro. RBC recomenda a mudança de PampC para seguradoras de vida Lincoln National um top pick 120916 SA Editor Stephen Alpher SA Editor Stephen Alpher Uma perspectiva melhorada para as taxas de juro (superior) ea esperança de uma facilitação da nova regra fiduciária DOLs em uma administração Trump significa o seu tempo Para transferir dinheiro para o setor de seguro de vida, diz Mark Dwelle RBCs. As seguradoras da PampC enfrentam expectativas de preços fracos, de modo que o foco estará na pressão da margem do ano de acidente e nas implicações para as reservas. Paralelamente a um rebaixamento da Aflac (NYSE: AFL) para Underperform (o estoque está agora abaixo de 2,3), ele reduz RLI Corp. (RLI -5,2) para Underperform também. Downgraded para Sector Perform são Unum (UNM -1.6) e Selective Insurance (SIGI -4.6). Escolha favorecida em PampC é Chubb (CB -0,2) como seu um underwriter superior, independentemente de preços, e tem um balanço limpo e avaliação atraente. Upgraded para Outperform são Hartford (HIG 0,5) e Lincoln National (LNC -0,1), com LNC um Top Pick graças à sua alavancagem para taxas mais elevadas e facilitou a regra DOL. Ideias de valor superior são AIG (AIG -0.1) e Voya Financial (VOYA 0.5). Principais ideias de crescimento: Arco (ACGL 0,6), Principal Financeiro (PFG -1,1). Principais picaretas: American Equity (AEL 3.9), Kinsale Capital (KNSL 1.1). Top turnaround self-help picaretas: MetLife (MET -0,6), XL Group (XL -0,1). Melhor jogo defensivo: Marsh McLennan (MMC). Fonte: Bloomberg Aflac corte para Underperform em RBC Capital 120916 SA Editor Stephen Alpher SA Editor Stephen Alpher Analista Mark Dwelle espera 2017 vendas EUA para entrar na parte inferior da orientação devido à incerteza Obamacare ea reestruturação da força de vendas. Aflac (NYSE: AFL), diz ele, também espera aumentar os investimentos em TI e mudar sua estratégia de investimento. A seguradora está entre as menos sensíveis às taxas de juros entre as ações em seu universo de cobertura, diz Dwelle. A meta de preço é reduzida para 65 de 72. As últimas noites foram de 69,62. Fonte: TheFly Aflac: Investimento retorna sob pressão séria 120816 Tom Armistead Aflac39s subscrição lucros são previsíveis e estáveis. À medida que os investimentos expiram e o dinheiro é reinvestido, os rendimentos estão a descer de 3 para 1,5. A empresa considera que ALM (asset liability matching) é difícil no ambiente atual. Hedging taxas de câmbio está provando difícil, ea estabilidade está se tornando um problema. O clima de investimento difícil para os títulos japoneses faz Aflac desinteressante, mesmo com a baixa PE atual. Aflac Illustrates Como Fundamentos Geralmente Vencer Eventualmente 112816 Justin Papa Aflac não se recuperou de avaliações históricas de antes da Grande Recessão. No entanto, apesar dos grandes ventos macroeconômicos, os lucros continuaram a crescer ao longo do tempo. O Aflac é preparado para acelerar os retornos à medida que esses ventos contrários desaparecem. Aflac é uma compra sólida para investidores de longo prazo, buscando um dividendo confiável crescente. Revisão mensal do DivGro: outubro de 2017 Eu reviso minha carteira de ações de crescimento de dividendos todos os meses, resumindo transações, dividendos, mudanças de dividendos e desempenho de carteira. Em outubro, fechou outra posição a favor ou arredondando o número de ações de outra posição para um múltiplo de 100 ações, porque eu quero negociar chamadas cobertas. Eu coletei rendimento de dividendos de 15 estoques este mês e impulsionou esse rendimento com renda de prêmios de opções em várias negociações. Form 10-Q Arquivado: 4 de novembro de 2017AFL é uma linguagem de programação especial usada para definir e criar indicadores personalizados, scans, explorações, back-testes e comentários 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 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 instruçã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érico, 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 os 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 para 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 instrução é 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 posteriormente 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. Variables cannot be assigned within a function call. User-defined variable names (identifiers) cannot duplicate names already used by functions (e. g. ma, rsi, cci, iif, etc.) or predefined array identifiers (e. g. open, high, low, close, simple, o, c, l, h, s, a). Reserved variables AmiBroker uses some reserved variable names in its formulas, for example in Auto-Analysis window you have to assign values to 2 variables named buy or sell to specify the conditions where quotbuyquot and quotsellquot conditions occur. For example (system that buys when MACD rises above 0 line, and sells when MACD falls below 0 line) AmiBroker uses the following reserved variable names. Please note that variables marked as obsolete should NOT be used in new coding. They are left for backward compatibility only and new formulas should use modern functions like Plot() to plot indicators and AddColumn() to define exploration columns. graph N color (obsolete) defines the color index of N th graph line (color indexes are related to the current palette - see 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 graph N barcolor (obsolete) defines the array that holds palette indexes for each bar drawn graph N style (obsolete) defines the style of N th graph. Style is defined as a combination (sum) of one or more following flags: styleLine 1 - normal (line) chart (default) styleHistogram 2 - histogram chart styleThick 4 - fat (thick) styleDots 8 - include dots styleNoLine 16 - no line styleLog 32 - semi-logarithmic scale styleCandle 64 - candlestick chart styleBar 128 - traditional bar chart styleNoDraw 256 - no draw (perform axis scaling only) styleStaircase 512 - staircase (square) chart styleSwingDots 1024 - middle dots for staircase chart styleNoRescale 2048 - no rescale styleNoLabel 4096 - no value label stylePointAndFigure 8192 - point and figure (new in 4.20): styleArea 16384 - area chart (extra wide histogram) styleOwnScale 32768 - plot is using independent scaling styleLeftAxisScale 65536 - plot is using left axis scale (independent from right axis) Not all flag combinations make sense, for example (641) (candlestick line) will result in candlestick chart (style64) Note on candlestickbar charts: these styles use in directly O, H, L arrays in addition to graph N . So ordinary candlestick price chart formula is graph0close graph0style64. But if you want to draw something else than close price you have to assign new values to predefined O, H,L arrays. graph N barcolor (obsolete) defines the array of color indexes for the bars and candlesticks in N th graph ine (color indexes are related to the current palette - see PreferencesColor)

Comments