Thursday 1 February 2018

Wise amibroker forex


Este Script Amibroker é apenas para fins educacionais. Não posso garantir a precisão da mesma e não assumir qualquer responsabilidade pelo seu uso. Use por sua conta e risco. Esta não é uma interface de negociação automatizada 8211 é estritamente uma interface interativa. Se você quiser jogar com ele, faça isso na sua conta prática. NÃO DESENVOLVIDO PARA FOREX OU FUTUROS 8211 US STOCKS SOMENTE. Este script permitirá que você grafique suas ordens para Interactive Brokers. Você pode usar o gráfico para selecionar onde deseja inserir e onde deseja colocar as ordens de parada e de saída de destino. Depois de selecionar os níveis de preços, você pode transmitir a ordem para o TWS para execução. Ele inclui alguns recursos avançados, como ajustar automaticamente os tamanhos de pedidos com base em compartilhamentos máximos, tamanho máximo da posição e quantidade máxima que você está disposto a arriscar em um comércio. Características: - interface gráfica para selecionar peças de ordem - exibir vários níveis de preços de pedidos no gráfico - parâmetros configuráveis ​​para controlar o tamanho da posição e o risco - digite com um mercado, limite ou ordem de parada - saia com uma orde de OCA entre colchetes - mostre ou esconda o Interface com um clique do botão no gráfico - envie ordens para execução imediata no TWS ou simplesmente estacione o conjunto de pedidos no TWS para que você execute lá - status independente de estados de ordem e valores de nível de preços Limitações: - apenas ações desenvolvidas e testadas nos EUA (que8217s Tudo que eu troco) - os futuros e a alavancagem forex e os pecularities do contrato não são levados em consideração e não devem ser negociados com este script. - as ações estrangeiras não foram testadas, então elas podem não funcionar. - as posições atuais não são refletidas na interface Tags: amibroker Enviado por kaiji há cerca de 7 anos Simulações semelhantes A LEGL é uma linguagem de programação especial usada para definir e criar indicadores personalizados, exames, explorações, back-tests e comentários de guru. Elementos léxicos Este capítulo descreve as diferentes categorias de unidades semelhantes a palavras (tokens) reconhecidas pelo intérprete de idioma AFL. Whitespace Whitespace é o nome coletivo dado aos espaços (espaços em branco), abas, novos caracteres de linha e comentários. Espaço em branco pode servir para indicar onde tokens começam e terminam, mas além dessa função, qualquer espaço em excesso é descartado. Os comentários são pedaços de texto usados ​​para anotar um programa. Os comentários são para os programadores usar apenas eles são removidos do código-fonte antes de analisar. São duas maneiras de delinear comentários: C-like comentários e C como comentários. Um comentário tipo 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. Toda a seqüência, incluindo os quatro símbolos de delimitador de comentários, é substituída por um espaço. Um C como comentários são comentários de uma única linha que começam usando duas barras laterais adjacentes () em qualquer posição dentro da linha e se estendem até a próxima nova linha. AFL não permite comentários aninhados. AFL reconhece cinco classes de tokens: constantes de identificadores pontuadores de operadores de literais de cadeia (também conhecidos como separadores) Os 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 de 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. Constantes são tokens que representam valores numéricos ou de caracteres fixos. As constantes numéricas consistem num número inteiro decimal e opcionalmente: ponto decimal e parte da fração decimal. As constantes numéricas negativas possuem unary menos (-) prefixado. Constantes de cordas, também conhecidas como literais de cordas. Formam uma categoria especial de constantes usadas para lidar com sequências fixas de caracteres e são escritas como uma seqüência de qualquer número de caracteres entre aspas duplas: quot Esta é literalmente uma stringquot A seqüência nula (vazia) é escrita quotquot. Os caracteres dentro das aspas duplas podem incluir sequências de escape (quotnquot - uma nova seqüência de escape de linha). Uma expressão constante é uma expressão que sempre avalia a uma constante. Eles são avaliados como expressões regulares. O Punctuator (também conhecido como separador) na AFL é um dos seguintes caracteres: (). . Parênteses (abrir (e fechar)) 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 func () função chamada sem argumentos A vírgula (,) separa os elementos de uma lista de argumentos de função. O ponto-e-vírgula () é um terminador de declaração. Qualquer expressão AFL legal seguida de um ponto-e-vírgula é interpretada como uma declaraçã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 escritos na janela de saída) O ponto (.) É um operador de acesso de membro. Ele é usado para chamar métodos de objeto COM. Se a variável myobj mantiver o objeto, usando o operador de 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 Ele também indica o valor padrão para um parâmetro (veja o built-in Descrição da função): macd (fast 12 slow 26) valores padrão para argumentos rápidos e lentos) Estrutura da linguagem Cada fórmula na AFL contém uma ou mais instruções de expressão. Cada declaração DEVE ser encerrada por ponto e vírgula (). Desta forma, você pode quebrar expressões longas em várias linhas físicas (para ganhar clareza) e AmiBroker ainda tratará isso como uma única declaração até o ponto-e-vírgula. Exemplos: Identificadores Os identificadores em AFL são usados ​​para identificar variáveis ​​e funções. Existem alguns identificadores predefinidos referentes a matrizes e funções integradas. Os mais importantes são os identificadores de matriz de preços. Eles identificam campos de preços específicos sobre os quais a fórmula deve operar. Os identificadores de matriz de preços válidos estão abertos. Alto . Baixo. fechar . Volume. Openint. média . Os identificadores da tabela de preços podem ser abreviados como mostrado na tabela a seguir. Observe que estes não são específicos de cada caso. Armazene o valor do segundo operando no objeto especificado pelo primeiro operando (8220 atribuição simples8221). O operador de atribuição atribui um valor a uma variável: onde o resultado é um identificador variável e a expressão é qualquer expressão numérica, de matriz ou de texto. À medida que o operador se comporta como outros operadores, as expressões que o usam têm um valor além de atribuir esse valor em variável. Isso significa que você pode encadear operadores de atribuição da seguinte maneira: j k l 0 j, k e l igual zero após a instrução de exemplo ser executada. Atenção: NÃO confunda o operador de atribuição () com verificação de igualdade () Estes são dois operadores diferentes e você não deve usar a atribuição () para verificar a igualdade. Se (Name () quotMSFTquot) WRONG. - operador de atribuição de variáveis ​​usado em vez de igualdade verifique se (Nome () quotMSFTquot) CORRECTO - 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 a bit do primeiro e segundo operandos armazenando o resultado no objeto especificado pelo primeiro operador do tipo do (o) operador (s) do tipo O operador tipoof é usado da seguinte maneira: typeof (operando) O tipo de operador retorna uma seqüência de caracteres que indica o tipo do operando não avaliado. O operando é a string, 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 extras e sem aparelhos. Se você deseja verificar o tipo de valor retornado pela função, primeiro você deve atribuir o valor de retorno a uma variável e, em seguida, usar typeof (variável). Os possíveis valores de retorno são: quotundefinedquot - identificador não está definido quotnumberquot - o operando representa um número (scalar) quotarrayquot - o operando representa uma matriz quotstringquot - o operando representa uma string quotfunctionquot - o operando é um identificador de função incorporado quotuser functionquot - o operando é um usuário - Função definida quotobjectquot - o operando representa o objeto COM quotmemberquot - o operando representa a função do membro ou a propriedade do objeto COM quothandlequot - o operando representa o identificador do Windows quotunknownquot - o tipo de operando é desconhecido (não deve acontecer) O tipo de operador permite, entre outras coisas, detectar variáveis ​​indefinidas no seguinte Por exemplo, se (typeof (somevar) indefinido) quando somevar for indefinido, o código aqui será executado. O código COMENTÁRIO do exemplo a seguir mostra a saída de typeof () em algumas situações comuns: x MACD () y LastValue (x) function testfun () return 1 Printf (typeof (teste) n) a variável indefinida printf (typeof (1) n) iluminada Número eral printf (typeof (verificação) n) string literal printf (typeof (x) n) variável de matriz printf (typeof (y) n) scalar variable printf (typeof (MACD) n) identificador de função printf (typeof (testfun) n) Identificador da função do usuário Prioridade do operador e os parênteses AFL suporta parênteses nas fórmulas. Os 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 primeiro. Quando os parênteses não são usados, a precedência é a seguinte (precedência mais alta listada primeiro): (sem parênteses) seria calculado por AmiBroker como quotL 2quot mais quotHquot, uma vez que a divisão tem uma precedência maior. Isso resultaria em um valor muito diferente do que algumas palavras sobre os operadores de incrementos. Existem dois tipos deles: postfix e prefixo. Os operadores unários (e -) são chamados 8220prefix8221 incrementar ou diminuir os operadores quando os operadores de incremento ou decremento aparecem antes do operando. O incremento e decremento de Postfix tem maior precedência do que os operadores de incremento e diminuição de prefixo. Quando o operador aparece antes do seu operando, o operando é incrementado ou diminuído e seu novo valor é o resultado da expressão. J i eu vou ser incrementado primeiro e o resultado (número 6) será atribuído a j. O resultado da operação de incremento ou decremento de postfix é o valor da expressão postfix antes de aplicar o operador de incremento ou decremento. O tipo de resultado é o mesmo que a expressão postfix, mas não é mais um valor l. Após a obtenção do resultado, o valor do operando é incrementado (ou diminuído). Jij será atribuído o valor de 5 (antes da incrementação) e então eu vou ser incrementado para 6. Acessando elementos de matriz: - operador de subscrito Um identificador de matriz seguido de uma expressão entre colchetes () é uma representação subificada de um elemento de uma matriz objeto. Representa o valor do elemento expression-th da matriz. A constante BarCount fornece 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 continuar 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 de matriz, você pode usar a matriz BarCount - 1 Fechar 5 Representa o sexto elemento (barra) da matriz fechada. Fechar 0 Representa a primeira barra disponível da matriz próxima. High BarCount - 1 Representa a última barra de High array. Matrices e matrizes As matrizes são matrizes bidimensionais de números. Para criar um uso de matriz: myvarname Matrix (linhas, cols, initvalue) Para acessar elementos da matriz, use: myvarname row col onde row is a row index (0. number of rows-1) e col é um índice de coluna (número 0. De colunas-1) Matrizes e seus elementos suportam todas as operações aritméticas e lógicas escalar (elemento-sábio). Todos esses operadores padrão são executados em matrizes de elementos. Por esse motivo, por exemplo, para adicionar duas matrizes, eles devem ter o mesmo tamanho (o número de linhas e colunas deve ser o mesmo). Se eles não são o mesmo, cabe a você fazer cálculos em cada elemento via loop. Então, você pode, por exemplo, adicionar, subtrair, multiplicar, dividir duas matrizes se tiverem as mesmas dimensões com uma chamada. X Matrix (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-z lhe dará matriz 5 linhas e 6 colunas preenchidas com Elementos que possuem o 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 executaria operação em elemento em cada elemento da matriz de origem e valor escalar dado. M Matrix (10. 10. 0) m será 10x10 preenchido com zeros z m z agora também é uma matriz para (i 0 i lt 10 i) z i 4 eu 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) Existe um operador especial que funciona apenas em matrizes - é produto de matriz. O operador para o produto da matriz é (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), de modo que o número de colunas na matriz A deve ser igual ao número de linhas da matriz B. Para mais informações, consulte: en. wikipedia. orgwikiMatrixmultiplicação A precedência do operador do produto da matriz é a mesma (por isso, tem precedência maior que a adição e a subtração). A Matriz (1. 3) Matriz B (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 (Blocos) Uma declaração composta consiste em zero ou mais instruções incluídas em chaves curvas ( ). Uma declaração composta pode ser usada em qualquer lugar, uma declaração é esperada. As declarações de compostos são comumente chamadas de 8220 blocos.8221 (isto é emprestado da linguagem C, os usuários de outras linguagens de programação são usados ​​para usar BEGIN para) se (Valor gt 100) TRACE (Valor acima de 100) Saldo Saldo Montante Outros Saldo Saldo - Valor Construído - Em funções Além de operadores matemáticos, a AmiBroker contém mais de 70 funções internas 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 seguinte fórmula consiste em uma única função que fornece um indicador RSI de 14 períodos: a seguinte fórmula consiste em 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 eludido em exemplos anteriores, uma função pode ser citada dentro de uma função. A função aninhada pode ser o principal parâmetro da matriz de dados das funções. Os seguintes exemplos 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 (RSI) de 15 períodos. 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 declaração de quotiifquot acima é lida (em inglês) da seguinte maneira: Se o fechamento de hoje for maior do que a média móvel de 10 dias do próximo fim de vida, então atribua um RSI de 9 dias à variável dynamicrsi, caso contrário, atribua um RSI de 14 dias. A próxima fórmula atribui o volume 14714 positivo à variável de volatilidade se o fechamento for maior do que o preço médio. Caso contrário, o volume quantitativo é 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 IIF é uma função - então o resultado da avaliação é retornado por essa função e deve ser atribuído a alguma variável. Se sempre avalia tanto o TRUEPART quanto o FALSEPART, mesmo que ele retorne apenas um deles. Devido a isso, você deve procurar 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 a instrução condicional if-else descrita mais adiante neste documento. O seguinte exemplo mostra um erro comum feito com a função IIF: IIf (condição, resultado 7. resultado 9) ESTA É ERRADA O uso correto é: resultado IIf (condição, 7.9) 7 ou 9 é retornado e atribuído à variável de resultado dependendo de Condição Para reduzir, simplificar, aprimorar e facilitar a manutenção de fórmulas complexas, você pode 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 atribuído a uma expressão ou a uma constante. O número de variáveis ​​utilizadas na 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 dentro de uma chamada de função. Os nomes de variáveis ​​definidos pelo usuário (identificadores) não podem duplicar nomes já utilizados por funções (por exemplo, ma, rsi, cci, iif, etc.) ou identificadores de matriz predefinidos (por exemplo, aberto, alto, baixo, fechado, simples, o, c, l, H, s, a). Variáveis ​​reservadas AmiBroker usa alguns nomes de variáveis ​​reservados em suas fórmulas, por exemplo, na janela de Análise automática, você precisa atribuir valores a 2 variáveis ​​chamadas de compra ou venda para especificar as condições em que as condições quotbuyquot e quotsellquot ocorrem. Por exemplo (sistema que compra quando o MACD sobe acima de 0 linhas e vende quando MACD cai abaixo de 0 linhas) AmiBroker usa os seguintes nomes de variáveis ​​reservadas. 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. A cor do gráfico N (obsoleta) define o índice de cores da N linha do gráfico (os índices de cores estão relacionados à paleta atual - veja PreferênciasColor) 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 corLightGrey 47 colorRose 48 colorTan 49 corLight Yellow Yellow 50 col OuPaleGreen 51 colorPaleTurquoise 52 colorPaleBlue 53 colorLavender 54 gráfico ColorWhite 55 N barcolor (obsoleto) define a matriz que contém índices de paletas para cada gráfico traçado com barras O estilo N (obsoleto) define o estilo do N grafico. O estilo é definido como uma combinação (soma) de uma ou mais bandeiras a seguir: styleLine 1 - gráfico normal (linha) (padrão) styleHistogram 2 - estilo do gráfico de histogramaThick 4 - estilo de gordura (grosso) Dots 8 - incluir pontos estiloNoLine 16 - sem estilo de linhaLog 32 - estilo de escala semi-logarítmicaCandle 64 - estilo do cartaz de candelabroBar 128 - estilo de gráfico de barra tradicionalNoDraw 256 - sem empate (somente na escala de eixo) estiloStaircase 512 - estilo de cartao de escada (quadrado )SwingDots 1024 - pontos médios para estilo de carta de escadariaNoRescale 2048 - sem estilo de escala de ressaltoNoLabel 4096 - estilo de etiqueta de valor pointAndFigure 8192 - ponto e figura (novo em 4.20): styleArea 16384 - gráfico de área (histograma extra-largo) styleOwnScale 32768 - o gráfico usa estilo de escala independenteLeftAxisScale 65536 - o gráfico está usando a escala do eixo esquerdo (independente do eixo direito) Nem todas as combinações de sinalizadores fazem sentido, por exemplo (641) (linha de castiçal) resultará em gráfico de candelabro (style64) Nota sobre gráficos de barra de candlestick: esses estilos usam em Diretamente O, H, L arrays, além do gráfico N. Então, a fórmula comum do gráfico de preços do candelabro é graph0close graph0style64. Mas se você quiser desenhar algo além do preço fechado, você deve atribuir novos valores aos conjuntos O, H, L pré-definidos. O gráfico N barcolor (obsoleto) define a matriz de índices de cores para as barras e candelabros em N graficos (os índices de cores estão relacionados à paleta atual - veja PreferênciasColor)

No comments:

Post a Comment