Skip to main content

Ema Trading System Afl


Como otimizar o sistema de negociação NOTA: Este é um tópico bastante avançado. Leia primeiro os tutoriais AFL anteriores. A idéia por trás de uma otimização é simples. Primeiro, você precisa ter um sistema comercial, isso pode ser um simples cruzamento médio móvel, por exemplo. Em quase todos os sistemas, existem alguns parâmetros (como período de média) que decidem como o sistema se comporta (ou seja, é adequado para longo prazo ou curto prazo, como é reagir em estoques altamente voláteis, etc.). A otimização é o processo de encontrar valores ótimos desses parâmetros (dando o maior lucro do sistema) para um determinado símbolo (ou um portfólio de símbolos). AmiBroker é um dos poucos programas que permitem otimizar seu sistema em vários símbolos ao mesmo tempo. Para otimizar seu sistema, você precisa definir de um até dez parâmetros para serem otimizados. Você decide o que é um valor mínimo e máximo permitido do parâmetro e em que incrementos este valor deve ser atualizado. AmiBroker, então, executa vários back testes o sistema usando TODAS as possíveis combinações de valores de parâmetros. Quando este processo está concluído, o AmiBroker exibe a lista de resultados ordenados pelo lucro líquido. Você pode ver os valores de parâmetros de otimização que dão o melhor resultado. Escrevendo fórmula AFL A otimização no testador traseiro é suportada por uma nova função chamada otimizar. A sintaxe desta função é a seguinte: variável otimizar (quot Descrição quot, padrão. Min. Etapa máxima) variável - é uma variável AFL normal que recebe o valor retornado pela função otimizada. Com os modos normal de backtesting, digitalização, exploração e comentário, a função de otimização retorna o valor padrão, então a chamada de função acima é equivalente a: variável padrão Na função de otimização de modo otimizado, retorna valores sucessivos de min para max (inclusive) com passo a passo. Quot Descriptionquot é uma string que é usada para identificar a variável de otimização e é exibida como um nome de coluna na lista de resultados de otimização. O padrão é um valor padrão que otimiza os retornos das funções na exploração, no indicador, nos comentários, na varredura e nos modos normais de teste de volta. Min é um valor mínimo da variável a ser otimizado. O valor máximo é o valor máximo da variável otimizada. O passo é um intervalo usado para aumentar a Valor de min para max AmiBroker suporta até 64 chamadas para otimizar a função (portanto, até 64 variáveis ​​de otimização), note que, se você estiver usando otimização exaustiva, então é uma boa idéia limitar o número de variáveis ​​de otimização a apenas alguns. Cada chamada para otimizar gerar loops de otimização de etapas (max - min) e várias chamadas para otimizar multiplique o número de execuções necessárias. Por exemplo, otimizar dois parâmetros usando 10 etapas exigirá 1010 100 loops de otimização. Chamar otimizar a função apenas UMA VEZ por variável no início da sua fórmula à medida que cada chamada gera novos laços de otimização A otimização de vários símbolos é totalmente suportada pelo AmiBroker O espaço de busca máximo é de 2 64 (10 19 10.000.000.000.000.000) combinações 1. Otimização de variável única: sigavg Otimizar (Média do sinal. 9. 2. 20. 1) Cruz de compra (MACD (12. 26), Sinal (12. 26. sigavg)) Vender Cruz (Sinal (12. 26. sigavg), MACD (12. 26)) 2. Otimização de duas variáveis ​​(adequado para gráficos em 3D) por Otimizar (por 2. 2. 5. 50. 1) Nível de otimização (nível 2. 2. 150. 4) Cruzar Compra (CCI (per), Nível) Vender Cross (Level, CCI (per)) 3. Otimização variável múltipla (3): mfast Optimize (MACD Fast. 12. 8. 16. 1) mslow Optimize (MACD Lento 26. 17. 30. 1) sigavg Optimize (Signal Média 9. 2. 20. 1) Cruz de Compra (MACD (mfast, mslow). Sinal (mfast, mslow, sigavg)) Sell Cross (Sinal (mfast, mslow, sigavg), MACD (mfast, mslow)) Depois de entrar O f Ormula basta clicar no botão Otimizar na janela QuotAutomatic Analysisquot. AmiBroker começará a testar todas as combinações possíveis de variáveis ​​de otimização e informará os resultados na lista. Após a otimização é feita, a lista de resultados é apresentada ordenada pelo lucro líquido. Como você pode ordenar os resultados por qualquer coluna na lista de resultados, é fácil obter os melhores valores de parâmetros para o menor desconto, o menor número de negócios, o maior fator de lucro, a menor exposição ao mercado e o retorno anual ajustado de maior risco. As últimas colunas da lista de resultados apresentam os valores das variáveis ​​de otimização para teste dado. Quando você decide qual combinação de parâmetros atende às suas necessidades, o melhor que você precisa fazer é substituir os valores padrão em otimizar as chamadas de função com os valores ótimos. Na fase atual você precisa digitá-los manualmente na janela de edição da fórmula (o segundo parâmetro da função otimizada). Exibição de gráficos de otimização animada 3D Para exibir o gráfico de otimização em 3D, você precisa primeiro executar a otimização de duas variáveis. A otimização de duas variáveis ​​precisa de uma fórmula que tenha 2 chamadas de função otimizadas (). Um exemplo de fórmula de otimização de duas variáveis ​​parece assim: por otimizar (per. 2. 5. 50. 1) Nível de otimização (nível 2. 2. 150. 4) Cruzar de compra (CCI (per), Level) Sell Cross (Nível, CCI (per)) Depois de inserir a fórmula, você precisa clicar no botão quotOptimizequot. Uma vez que a otimização esteja completa, você deve clicar na seta suspensa no botão Otimizar e selecionar Exibir gráfico de otimização 3D. Em alguns segundos, um gráfico de superfície tridimensional colorido aparecerá em uma janela do visualizador de gráfico 3D. Um exemplo de gráfico 3D gerado usando a fórmula acima é mostrado abaixo. Por padrão, os gráficos 3D exibem valores de lucro líquido contra variáveis ​​de otimização. No entanto, você pode plotar gráfico de superfície 3D para qualquer coluna na tabela de resultados de otimização. Basta clicar no cabeçalho da coluna para ordená-lo (uma seta azul aparecerá indicando que os resultados de otimização são classificados pela coluna selecionada) e, em seguida, escolha Exibir gráfico de otimização 3D novamente. Ao visualizar como os parâmetros dos seus sistemas afetam o desempenho da negociação, você pode mais facilmente decidir quais os valores dos parâmetros que produzem quotfragilequot e que produzem o desempenho do sistema quotrobustquot. Configurações robustas são regiões no gráfico 3D que mostram mudanças graduais em vez de abruptas no gráfico de superfície. Os gráficos de otimização em 3D são uma ótima ferramenta para evitar ajustes de curvas. O ajuste de curva (ou sobre otimização) ocorre quando o sistema é mais complexo do que precisa ser, e toda essa complexidade foi focada em condições de mercado que talvez nunca mais aconteçam. Mudanças radicais (ou picos) nos gráficos de otimização 3D mostram claramente áreas de otimização excessiva. Você deve escolher uma região de parâmetros que produza um amplo e amplo patamar no gráfico 3D para o seu comércio de vida real. Os conjuntos de parâmetros que produzem picos de lucro não funcionarão de forma confiável na negociação real. Controles do visualizador de gráficos 3D O visualizador de gráficos 3D do AmiBrokers oferece recursos de visualização total com rotação e animação completas do gráfico. Agora você pode visualizar os resultados do sistema de todas as perspectivas possíveis. Você pode controlar a posição e outros parâmetros do gráfico usando o mouse, a barra de ferramentas e os atalhos do teclado, o que você achar mais fácil para você. Abaixo, você encontrará a lista. - para rodar - mantenha pressionado o botão esquerdo do mouse e mova-se nas direções XY - para Zoom-in, zoom-out - mantenha pressionado o botão RIGHT do mouse e mova as direções XY - para Mover (traduzir) - mantenha pressionado o botão esquerdo do mouse e a tecla CTRL e Mova-se nas direções XY - para Animar - mantenha pressionado o botão esquerdo do mouse, arraste rapidamente e solte o botão enquanto arrasta o ESPAÇO - anima (gire automaticamente) CHAVE ESQUERDA PARA ESQUERDA - gire o verde. Esquerda CHAVE DE SETA PARA A DIREITA - rotate vert. Direita PARA CIMA SETA PARA CIMA - gire horiz. PARA CIMA PARA BAIXO PARA BAIXO - gire horiz. BAIXO NUMPAD - (MENOS) - Perto (aproximar) NUMPAD - (MENOS) - Longe (diminuir o zoom) NUMPAD 4 - mover para a esquerda NUMPAD 6 - mover para a direita NUMPAD 8 - mover para cima NUMPAD 2 - mover para baixo PAGE UP - subir de água PAGE DOWN - nível de água para baixo Otimização inteligente (não exaustiva) A AmiBroker agora oferece otimização inteligente (não exaustiva) além da busca regular e exaustiva. A pesquisa não exaustiva é útil se o número de todas as combinações de parâmetros de um determinado sistema de negociação for simplesmente muito grande para ser viável para pesquisa exaustiva. A busca exaustiva é perfeitamente adequada desde que seja razoável usá-la. Digamos que você tenha 2 parâmetros cada um variando de 1 a 100 (passo 1). Isso é 10000 combinações - perfeitamente correto para pesquisa exaustiva. Agora, com 3 parâmetros, você obteve 1 milhão de combinações - ainda está OK para pesquisa exaustiva (mas pode ser longa). Com 4 parâmetros você tem 100 milhões de combinações e com 5 parâmetros (1..100) você possui 10 bilhões de combinações. Nesse caso, seria muito demorado verificá-los, e esta é a área onde os métodos de busca inteligente não exaustivos podem resolver o problema que não é solucionável em um tempo razoável usando uma busca exaustiva. Aqui está absolutamente a instrução SIMPLES sobre como usar um novo otimizador não exaustivo (neste caso CMA-ES). 1. Abra sua fórmula no Editor de fórmulas 2. Adicione esta única linha no topo da sua fórmula: OptimizerSetEngine (quotcmaequot), você também pode usar quotspsoquot ou quottribquot aqui 3. (Opcional) Selecione o seu objetivo de otimização em Análise automática, Configurações, QuotWalk - guia Forwardquot, campo de destino de otimização. Se você pular esta etapa, otimizará para CAR MDD (retorno anual composto dividido pela redução máxima). Agora, se você executar a otimização usando esta fórmula, ela usará o novo otimizador CMA-ES evolutivo (não exaustivo). Como funciona A otimização é o processo de encontrar o mínimo (ou o máximo) de determinada função. Qualquer sistema comercial pode ser considerado como uma função de certo número de argumentos. As entradas são parâmetros e dados de cotação. A saída é o seu objetivo de otimização (digite CAR MDD). E você está procurando o máximo de função dada. Alguns algoritmos de otimização inteligente são baseados na natureza (comportamento animal) - algoritmo PSO, ou processo biológico - algoritmos genéticos, e alguns são baseados em conceitos matemáticos derivados de seres humanos - CMA-ES. Estes algoritmos são utilizados em muitas áreas diferentes, incluindo as finanças. Entre quotPSO financequot ou quotCMA-ES financequot no Google e você encontrará muitas informações. Métodos não exaustivos (ou quotsmartquot) encontrarão otimizar global ou local. O objetivo é, obviamente, encontrar um global, mas, se houver um único pico afiado de combinações de parâmetros de zilhões, métodos não exaustivos podem não encontrar este único pico, mas levando-o de comerciantes perspecive, encontrar único pico afiado é inútil para Negociação porque esse resultado seria instável (muito frágil) e não replicável na negociação real. No processo de otimização, estamos em busca de regiões do planalto com parâmetros estáveis ​​e esta é a área onde os métodos inteligentes brilham. Quanto ao algoritmo usado por busca não exaustiva, ele se destaca da seguinte maneira: a) o otimizador gera alguma população inicial (geralmente aleatória) de conjuntos de parâmetros b) o teste de retorno é realizado por AmiBroker para cada conjunto de parâmetros da população c) os resultados dos testes de retorno são Avaliado de acordo com a lógica do algoritmo e a nova população é gerada com base na evolução dos resultados, d) se for encontrada a melhor opção - salve-a e vá para a etapa b) até que os critérios de parada sejam atendidos. Os critérios de parada de exemplo podem incluir: a) alcançar especificado Iterações máximas b) pare se a gama de melhores valores objetivos das últimas gerações X for zero c) pare se a adição de 0,1 vetor de desvio padrão em qualquer direção do eixo principal não altere o valor do valor objetivo d) outros Para usar qualquer dispositivo inteligente (não - Exaustivo) no AmiBroker, você precisa especificar o mecanismo otimizador que deseja usar na fórmula AFL usando a função OptimizerSetEngine. A função seleciona o mecanismo de otimização externo definido pelo nome. AmiBroker atualmente é fornecido com 3 motores: Otimizador padrão de enxertia de partículas (quotspsoquot), Tribes (quottribquot) e CMA-ES (quotcmaequot) - os nomes nas chaves devem ser usados ​​em chamadas OptimizerSetEngine. Além de selecionar o mecanismo do otimizador, você pode definir alguns dos seus parâmetros internos. Para isso use a função OptimizerSetOption. Função OptimizerSetOption (quotname, value) A função define parâmetros adicionais para o mecanismo de otimização externa. Os parâmetros são dependentes do motor. Todos os três otimizadores fornecidos com AmiBroker (SPSO, Trib, CMAE) suportam dois parâmetros: quotRunsquot (número de execuções) e quotMaxEvalquot (avaliações máximas (testes) por execução única). O comportamento de cada parâmetro é dependente do motor, de modo que os mesmos valores podem e geralmente renderão resultados diferentes com diferentes motores usados. A diferença entre Runs e MaxEval é a seguinte. A avaliação (ou teste) é single-backout único (ou avaliação do valor da função objetivo). RUN é uma execução completa do algoritmo (encontrando o melhor valor) - geralmente envolvendo muitos testes (avaliações). Cada execução simplesmente RESTAURA todo o processo de otimização a partir do novo começo (nova população aleatória inicial). Portanto, cada execução pode levar a encontrar diferentes min max locais (se não encontrar um global). O parâmetro Run Runes define o número de algoritmos subsequentes executados. MaxEval é o número máximo de avaliações (bactests) em qualquer execução única. Se o problema for relativamente simples e 1000 testes forem suficientes para encontrar o máximo global, 5x1000 é mais provável que encontre o máximo global porque há menos chances de ficar preso no max local, pois as corridas subseqüentes começam a partir de diferentes aleatórios aleatórios. Escolher valores dos parâmetros podem Seja complicado. Depende do problema em teste, da sua complexidade, etc., etc. Qualquer método estocástico não exaustivo não lhe dá garantia de encontrar o máximo máximo global, independentemente do número de testes se for menor do que exaustivo. A resposta mais fácil é a. Especifique como um grande número de testes como é razoável para você em termos de tempo necessário para concluir. Outro conselho simples é multiplicar por 10 o número de testes com a adição de nova dimensão. Isso pode levar a superestimar o número de testes necessários, mas é bastante seguro. Os motores enviados são projetados para ser simples de usar, portanto, são razoáveis ​​usar valores automáticos padrão, de modo que a otimização geralmente pode ser executada sem especificar nada (aceitando padrões). É importante entender que todos os métodos inteligentes de otimização funcionam melhor em espaços de parâmetros contínuos e funções objetivas relativamente simples. Se o espaço do parâmetro é discreto, os algoritmos evolutivos podem ter problemas para encontrar o melhor valor. É especialmente verdadeiro para parâmetros binários (em desligado) - não são adequados para qualquer método de pesquisa que use gradiente de mudança de função objetiva (como a maioria dos métodos inteligentes o fazem). Se o seu sistema comercial contiver muitos parâmetros binários, você não deve usar o otimizador inteligente diretamente neles. Em vez disso, tente otimizar apenas os parâmetros contínuos usando otimizador inteligente e altere os parâmetros binários manualmente ou através de um script externo. SPSO - Otimizador de enxame de partículas padrão O otimizador de enxame de partículas padrão é baseado no código SPSO2007 que é suposto produzir bons resultados, desde que os parâmetros corretos (ou seja, Runs, MaxEval) sejam fornecidos para um problema específico. Escolher as opções corretas para o otimizador de PSO pode ser complicado, portanto, os resultados podem variar significativamente caso a caso. O SPSO. dll vem com códigos-fonte completos dentro da subpasta quotADKquot. Código de exemplo para Otimizador de enxame de partículas padrão: (encontrando o valor ideal em 1000 testes dentro do espaço de busca de 10000 combinações) OptimizerSetEngine (quotspsoquot) OptimizerSetOption (quotRunsquot, 1) OptimizerSetOption (quotMaxEvalquot, 1000) sl Otimizar (quotsquot, 26, 1, 100, 1 ) Fa Optimize (quotfquot, 12, 1, 100, 1) Buy Cross (MACD (fa, sl), 0) Sell Cross (0, MACD (fa, sl)) TRIBES - Adaptive Parameter-less Partcher Swiner Optimizer Tribes é adaptável , Versão sem parâmetros do PSO (otimização de enxame de partículas) otimizador não-exaustivo. Para o conhecimento científico, veja: particlewarm. info Tribes2006Cooren. pdf Em teoria, ele deve ter um desempenho melhor do que o PSO normal, pois pode ajustar automaticamente o tamanho dos enxames e a estratégia do algoritmo para o problema que está sendo resolvido. A prática mostra que seu desempenho é bastante semelhante ao PSO. O plugin Tribes. DLL implementa quotTribes-D (ou seja, adimensional) variante. Baseado em clerc. maurice. free. fr pso Tribes TRIBES-D. zip de Maurice Clerc. Códigos de origem originais usados ​​com permissão do autor Tribes. DLL vem com o código fonte completo (dentro de uma pasta do DKquot) Parâmetros suportados: quotMaxEvalquot - número máximo de avaliações (backtests) por execução (padrão 1000). Você deve aumentar o número de avaliações com número crescente de dimensões (número de params de otimização). O padrão 1000 é bom para 2 ou máximo 3 dimensões. QuotRunsquot - número de execuções (reinicia). (Padrão 5) Você pode deixar o número de execuções no valor padrão de 5. Por padrão, o número de execuções (ou reinicia) é definido como 5. Para usar o otimizador Tribes, você só precisa adicionar uma linha ao seu código: OptimizerSetOption (quotMaxEvalquot , 5000) 5000 avaliações max CMA-ES - Covariance Matrix Adaptation O otimizador de estratégia evolutiva CMA-ES (Covariance Matrix Adaptation Strategy) é otimizador avançado não-exaustivo. Para o conhecimento científico, veja: bionik. tu-berlin. de usuário niko cmaesintro. html De acordo com benchmarks científicos, supera as nove outras estratégias evolutivas mais populares (como PSO, evolução genética e diferencial). Utilizador bionik. tu-berlin. de niko cec2005.html O plugin CMAE. DLL implementa quotGlobalquot variante de pesquisa com vários reinícios com o aumento do tamanho da população CMAE. DLL vem com o código fonte completo (dentro de uma pasta DKquot) Por padrão, número de execuções (ou reiniciações) ) É definido como 5. É aconselhável deixar o número padrão de reinícios. Você pode alterá-lo usando a chamada OptimizerSetOption (quotRunsquot, N), onde N deve estar no intervalo 1..10. Não é recomendável especificar mais de 10 corridas, embora possivel. Observe que cada execução usa TWICE o tamanho da população da corrida anterior para que ela cresça exponencialmente. Portanto, com 10 execuções, você acaba com a população 210 maior (1024 vezes) do que a primeira corrida. Há outro parâmetro quotMaxEvalquot. O valor padrão é ZERO, o que significa que o plugin irá calcular automaticamente o MaxEval necessário. É aconselhável NÃO definir o MaxEval sozinho, pois o padrão funciona bem. O algoritmo é inteligente o suficiente para minimizar o número de avaliações necessárias e converge muito rápido para o ponto de solução, muitas vezes encontra soluções mais rápidas do que outras estratégias. É normal que o plugin ignore algumas etapas de avaliação, se detectar que a solução foi encontrada, portanto, você não deve se surpreender que a barra de progresso de otimização possa se mover muito rápido em alguns pontos. O plugin também possui capacidade para aumentar o número de etapas sobre o valor inicialmente estimado se for necessário encontrar a solução. Devido à sua natureza adaptativa, o tempo restante do tempo e o quotnumber de passos descritos pela caixa de diálogo de progresso são apenas o mais rápido adivinhar o timequot e podem variar durante o curso de otimização. Para usar o otimizador CMA-ES, você só precisa adicionar uma linha ao seu código: Isso executará a otimização com configurações padrão que são boas para a maioria dos casos. Deve-se notar, como é o caso de muitos algoritmos de pesquisa de espaço contínuo, que o parâmetro quotstepquot decrescente em chamadas de função Optimize () não afeta significativamente os tempos de otimização. O único que importa é o problema quotdimensionquot, ou seja, o número de parâmetros diferentes (número de otimização de chamadas de função). O número de quotestepsquot por parâmetro pode ser definido sem afetar o tempo de otimização, então use a melhor resolução desejada. Em teoria, o algoritmo deve ser capaz de encontrar solução em no máximo 900 (N3) (N3) backtests onde quotNquot é a dimensão. Na prática, converge muito mais rápido. Por exemplo, a solução em espaço de parâmetros dimensionais 3 (N3) (digamos 100100100 1 milhão de etapas exaustivas) pode ser encontrada em apenas 500 a 900 passos CMA-ES. Otimização individual multi-threaded Começando a partir do AmiBroker 5.70, além do multithreading de múltiplos símbolos. Você pode executar otimização de um único símbolo multi-threaded. Para acessar esta funcionalidade, clique na seta suspensa ao lado do botão quotOptimizequot na janela New Analysis e selecione Quot Individual Optimize quot. O Optimizequot individual usará todos os núcleos de processador disponíveis para realizar otimização de um único símbolo, tornando-o muito mais rápido que a otimização regular. No modo de simbolo atual, ele realizará otimização em um símbolo. Em quot. Todos os símbolos e quantos modos de Filtragem, ele processará todos os símbolos seqüencialmente, ou seja, a primeira otimização completa para o primeiro símbolo e, em seguida, a otimização no segundo símbolo, etc. Limitações: 1. O backtester personalizado NÃO é suportado (ainda) 2. Os motores inteligentes de otimização NÃO são suportados - Apenas otimizações EXAUSTIVAS funcionam. Eventualmente, podemos nos livrar da limitação (1) - quando o AmiBroker é alterado, então o backtester personalizado não usa o OLE mais. Mas (2) está provavelmente aqui para ficar por muito tempo. AR TRADING SYSTEM AFL FREE eu faço este AFL AR TRADING SYSTEM AFL FREE eu crio este AFL FREE FREEFREE FREEFREE FREEFREE FREEFREE FREEFREE FREEFREE FREEFREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE FREE ((C-MA (C, nol)) MAI (C, nol)) 100 Graph0sk Graph0BarColorIIf (skgt0,5,4) SECTIONBEGIN (Citação) Lk EMA (Fechar, 22) Lote (lk, quot quot, colorBrightGreen, styleDots) GfxSelectFont (quottohomaboldquot, Status (quotpxheightquot) 16) GfxSetTextAlign (6) GfxSetTextColor (ColorRGB (10,250,250)) GfxSetBkMode (0) GfxTextOut (Nome ( ), Status (quotpxwidthquot) 2, Status (quotpxheightquot) 10) cxParam (quotcxposnquot, 1085,0,1200,1) cyParam (quotcyposnquot, 16,0,1000,1) GfxSetBkColor (ColorRGB (200,50,100)) GfxSelectFont (quottohomaboldquot) , 20,98, Falso) GfxSetTextColor (colorYellow) GfxSetTextColor (ColorHSB (100, 10, 400)) GfxTextOut (quotLTP. QuotCquot quot, cx, cy) DDayO TimeFrameGetPrice (quotOquot, inDaily) DHiDay TimeFrameGetPrice (quotHist, inDaily) DLoDay TimeFrameGetPrice (quotLuot, inDaily) gfr TimeFrameGetPrice (quotCquot, inDaily, -1) fechar Título EncodeColor (colorWhite) quot AR TRADING SYSTEM quotEncodeColor ( ColorRGB (220,10,150)) quot quot Interval (2) quot quot Date () EncodeColor (ColorRGB (200,150,120)) quot Quot quot aberto, alto. Quot H quot, Low. Quot L EncodeColor (colorGreen) quot Prevvious Day Close. Quode EncodeColor (colorGreen) gfr EncodeColor (colorYellow) quotn ToDay Open. DDayO quot High. DHiDay quot Low. Quot DLoDay SECTIONEND () Colcci IIf (CCI (8) gt 5, colorBrightGreen, IIf (CCI (8) lt-5, colorRed, IIf (CCI (8) gt Ref (CCI (8), - 1), colorBrightGreen, colorDarkRed ))) Obter EMA ((OHLLC) 5,3) HaOpen AMA (Ref (HaClose, -1), 0,5) HaHigh Max (H, Max (HaClose, HaOpen)) HaLow Min (L, Min (HaClose, HaOpen)) PlotOHLC (HaOpen, HaHigh, HaLow, HaClose, Colcci, styleCandle styleNoLabel) BKswitch ParamToggle (quotBackground Colorquot, quotOn, Offquot) OUTcolor ParamColor (quotOuter Panel Colorquot, colorBlack) INUPcolor ParamColor (quotInner Panel Upperquot, colorGrey40) INDNcolor ParamColor (quotInner Panel Lowerchap, colorBlack) TitleColor ParamColor (quotTitle Color quot, colorBlack) se (NÃO BKswitch) SetChartBkColor (OUTcolor) cor da borda externa SetChartBkGradientFill (INUPcolor, INDNcolor, TitleCo lor) cor do painel interno SECTIONEND () SECTIONBEGIN (quotquot) SetBarsRequired (100000, 0) GraphXSpace 15 ea EMA (C, 10) eb EMA (C, 20) SetBarFillColor (IIf (e gt eb, colorGreen, colorRed)) B Uk eb eb e TimeNum () gt 092000 e TimeNum () lt 150000 Vender eb gt e OR TimeNum () gt 150000 Curto 0 Capa 0 Comprar ExRem (Comprar, Vender) Vender ExRem (Vender, Comprar) Short ExRem (Short, Cover ) Cover ExRem (Cover, Short) FactorParam (quotFactorquot, 4,1,10,1) PdParam (quotATR Periodsquot, 10,1,100,1) Up (HL) 2 (FactorATR (Pd)) Dn (HL) 2- (FactorATR (Pd)) iATRATR (Pd) TrendUpTrendDownNull trend01 changeOfTrend0 flagflagh0 para (i 1 i ltBarCount i) TrendUpi Null TrendDowni Nulo se (CloseigtUpi-1) trendi1 se (trendi-1 -1) changeOfTrend 1 else if (CloseiltDni-1) trendi - 1 se (trendi-1 1) changeOfTrend 1 else if (trendi-11) trendi1 changeOfTrend 0 else if (trendi-1-1) trendi-1 changeOfTrend 0 Comprar trend1 Selltrend-1 BuyExRem (Comprar, Vender) SellExRem (Vender, Comprar ) ShortSell CoverBuy BuyPriceValueQuando (Buy, C) SellPriceValueQuando (Sell, C) ShortPriceValueQuando (Short, C) CoverPriceValueQuando (Cover, C) PlotShapes (IIf (Buy, shapeSquare, shapeNone), colorGreen, 0, L, Offset-40) PlotShapes ( IIf (Comprar, shapeSquare, shapeNone), col Ou Lime, 0, L, Offset-50) PlotShapes (IIf (Comprar, shapeUpArrow, shapeNone), ColorWhite, 0, L, Offset-45) PlotShapes (IIf (Short, shapeSquare, shapeNone), colorRed, 0, H, Offset40) PlotShapes (IIf (Short, shapeSquare, shapeNone), colorOrange, 0, H, Offset50) PlotShapes (IIf (Short, shapeDownArrow, shapeNone), colorWhite, 0, H, Offset-45) para (iBarCount-1igt1i--) se ( Buyi 1) entrada Ci sig quotBUYquot sl TrendSLi entrada tar1 (entrada .0050) entrada tar2 (entrada .0092) entrada tar3 (entrada .0179) barras ii 0 se (Selli 1) sig quotSELLquot entrada Ci sl TrendSLi entrada tar1 - (entrada. 0050) entrada tar2 - (entrada .0112) entrada tar3 - (entrada .0212) barras ii 0 Deslocamento 20 Clr IIf (sig quotBUYquot, colorLime, colorRed) ssl IIf (barras BarCount-1, TrendSLBarCount-1, Ref (TrendSL, - 1)) sl sslBarCount-1 Plot (LineArray (barras-Offset, tar1, BarCount, tar1,1), quotquot, Clr, styleLinestyleDots, Null, Null, Offset) Plot (LineArray (barras-Offset, tar2, BarCount, tar2, 1), quotquot, Clr, styleLinestyleDots, Null, Null, O Ffset) Plot (LineArray (barras-Offset, tar3, BarCount, tar3,1), quotquot, Clr, styleLinestyleDots, Null, Null, Offset) Plot (LineArray (barras-Offset, sl, BarCount, sl, 1), quotquot, ColorDarkRed, styleLinestyleLine, Null, Null, Offset) Plot (LineArray (barras-Offset, entrada, BarCount, entrada, 1), quotquot, colorGreen, styleLinestyleLine, Null, Null, Offset) para (ibars i ltBarCounti) PlotText (quotquotsigquotquotentry, BarCount1 , Entrada, Nulo, colorBlue) PlotText (quotT1quottar1, BarCount3, tar1, Null, Clr) Texto do gráfico (quotT2quottar2, BarCount3, tar2, Null, Clr) PlotText (quotT3quottar3, BarCount3, tar3, Null, Clr) Messageboard ParamToggle (quotMessage Boardquot, QuotShowHidequot, 1) if (messageboard 1) GfxSelectFont (quotTahomaquot, 13, 100) GfxSetBkMode (1) GfxSetTextColor (colorWhite) if (sig quotBUYquot) GfxSelectSolidBrush (colorGreen) esta é a cor do fundo da caixa else GfxSelectSolidBrush (colorRed) este é o fundo da caixa Cor pxHeight Status (quotpxchartheightquot) xx Status (quotpxchar Twidthquot) Esquerda 1100 largura 310 x 5 x2 290 GfxSelectPen (colorWhite, 4) maior cor GfxRoundRect (x, y - 165, x2, y. 160, 90) GfxTextOut ((Quot AR TRADING SYSTEM quot), 141, y-160) GfxTextOut ((quot quot), 130, y-160) GfxTextOut ((quotLast quot sig quot Signal veio quot (BarCount-bars-1) Intervalo () 60 quot mins agoquot), 148, y-140) A localização do formato de texto GfxTextOut ((quotquot WriteIf (sig quotBUYquot, sig quot quot quot quot quot quot) quot entry), 130, y-120) GfxTextOut ( (QuotSTOP LOSS. Quot sl quot (quot WriteVal (IIf (sig quotSELLquot, entry-sl, sl-entry), 2.2) quot) quot), 130, y-100) GfxTextOut ((quotTGT: 1. Quot tar1), 130 , Y -80) GfxTextOut ((quotTGT: 2. Quot tar2), 130, y-60) GfxTextOut ((quotTGT: 3. Quot tar3), 130, y-40) GfxTextOut ((quotCurrent PL. Quot WriteVal (IIf ( Sig quotBUYquot, (C-entry), (entrada-C)), 2.2)), 130, y-22) Comprar ExRem (Comprar, Vender) Vender Formulário ExRem (Vender, Comprar) Comprar shapeUpArrow Vender formulárioDownArrow PlotShapes (IIf (Comprar , ShapeSquare, shapeNone), colorGreen, 0, L, Offset-40) PlotShapes (IIf (Comprar, shapeSquare, shapeNone), ColorLime, 0, L, Offset-50) PlotShapes (IIf (Comprar, ShapeUpArrow, shapeNone), colorWhite, 0, L, Offset-45) PlotShapes (IIf (Sell, shapeSquare, shapeNone), colorRed, 0, H, Offset40) PlotShapes (IIf (Sell, shapeSquare, shapeNone), colorOrange, 0, H Offset50) PlotShapes (IIf (Vender, shapeDownArrow, shapeNone), ColorWhite, 0, H, Offset-45) PlotShapes (forma, IIf (Comprar, ColorGreen, ColorRed), 0, IIf (Comprar, Baixo, Alto)) dist 2.5 ATR (5) para (i 0 i lt BarCount i) se (Buyi) PlotText (quotBuynquot Closei, i, Lowi - disti, colorWhite) se (Selli) PlotText (quotsellnquot Closei, i, Lowi disti, colorWhite) SECTIONBEGIN (quotemaquot) P ParamField (quotFieldquot) Tipo ParamList (quotTypequot, quotWeighted, Simple, Exponencial, Double Exponential, Tripple Exponential, Wildersquot) Periods89 Param (queriods180quot, 180, 2, 300) Displacement2 Param (quotDisplacement2quot, 2, -50, 50) Plot (EMA (P, Periods89), DEFAULTNAME (), colorWhite, styleDots, 0, 0, Displacement2) SECTIONEND () rjlCross (Lk, tar1) golCross (tar1, Lk) PlotShapes (shapeHollowStarrjl, colorAqua , 0, H, -20) PlotShapes (shapeHollowStargol, colorViolet, 0, L, 20) SECTIONEND () para (i 0 i lt BarCount i) se (bvei) PlotText (quotABnquot. Eu, L i - disti, colorWhite, colorDarkBlue) se (rfwi) PlotText (quotASnquot. I, H i disti, colorWhite, colorRed) SECTIONBEGIN (quotdaySot) TimeFrameSet (inDaily) muda agora para Dayily TimeFrameRestore () restaurar o espaço temporal para o traçado original (TimeFrameExpand (Oo, inDaily), quotquot, colorYellow, 10304 styleNoLabel) cx Param (quotcxposnquot, 476,0,1200,1) cy Param (quotcyposnquot, 500,0,1000,10) GfxSelectFont (quot Arial quot, 14, 98 Falso) GfxSetTextColor (ColorRGB (10,250,250)) GfxTextOut (quotVolume. Quot Volume quotquot, cx 20, cy 50) SECTIONBEGIN (quottomquot) função GetSecondNum () Tempo agora (4) Segundos int (Tempo 100) Minutos int (Tempo 100 100) Horas int (Tempo 10000 100) SecondNum int (Horas 60 60 Minutos 60 Segundos) return SecondNum RequestTimedRefresh (1) TimeFrame Interval () SecNumber GetSecondNum () Newperiod SecNumber TimeFrame 0 SecsLeft SecNumber - int (SecNumber TimeFrame) TimeFrame SecsToGo TimeFrame - SecsLeft xParam ( Quotxposnquot, 99,0,100 0,1) yParam (quotyposnquot, 40,0,1000,1) GfxRoundRect (x615, y530, x738, y499, 0,0) GfxSelectSolidBrush (ColorRGB (230, 230, 230)) GfxSelectPen (ColorRGB (203, 25, 23 ), 3) se (NewPeriod) GfxSelectSolidBrush (colorYellow) GfxSelectPen (colorYellow, 2) Diga (quotNew periodquot) GfxSetBkMode (1) GfxSelectFont (quotArialquot, 13, 800, False) GfxSetTextColor (ColorRGB (220,10,150)) GfxTextOut (quotTimeleftquotquot. (GFxTextOut) (GFxTextOut (quotAR Trading SYSTEM quot), 1150, y-45) GfxSetTextColor (ColorRGB (10,250,250)) GfxTextOut ((QuotAR Trading SYSTEM quot), 1150, y-45) GfxSetTextColor (ColorRGB (10,250,250) , Y-25) SECTIONBEGIN (quotRibbonquot) uptrendPDI () gtMDI () E Sinal () ltMACD () downtrendMDI () gtPDI () E Sinal () gtMACD () Plot (1, efines a altura da fita em percentagem da largura do painel Quotribbonquot, IIf (tendência de alta, colorLime, IIf (tendência de alta, colorRed, IIf (Signal () ltMACD (), colorLightGrey, colorLightGrey))), escolha o estilo de corOwnScalestyleAreastyleNoLabel, -.05,50) SECTIONEND () Última edição por skumar4545 3 de janeiro de 2014 Às 11:22. Razão: add img

Comments

Popular posts from this blog

Moving Average Bounce Trading

Médias móveis: como usá-las Algumas das principais funções de uma média móvel são identificar tendências e reversões. Medir a força de um impulso de ativos e determinar áreas potenciais onde um bem irá encontrar suporte ou resistência. Nesta seção, vamos apontar como diferentes períodos de tempo podem monitorar a dinâmica e como as médias móveis podem ser benéficas na determinação de perdas de parada. Além disso, abordaremos algumas das capacidades e limitações das médias móveis que se deve considerar ao usá-las como parte de uma rotina comercial. Tendência A tendência de identificação é uma das principais funções das médias móveis, que são utilizadas pela maioria dos comerciantes que procuram tornar a tendência seu amigo. As médias móveis são indicadores de atraso. O que significa que eles não prevêem novas tendências, mas confirmam as tendências uma vez que foram estabelecidas. Como você pode ver na Figura 1, uma ação é considerada como uma tendência de alta quando o preço está acima

Binary Option Cboe

Um guia para trocar opções binárias nos EUA Carregando o jogador. As opções binárias são baseadas em uma simples proposição de sim ou não: um subjacente estará acima de um determinado preço em um determinado momento Os comerciantes colocam negócios com base em se acreditam que a resposta é sim ou não, tornando-se um dos ativos financeiros mais simples para negociar . Essa simplicidade resultou em um amplo apelo entre os comerciantes e os recém-chegados aos mercados financeiros. Por mais simples que possa parecer, os comerciantes devem entender completamente como as opções binárias funcionam, quais mercados e prazos podem trocar com opções binárias, vantagens e desvantagens desses produtos e quais empresas estão legalmente autorizadas a fornecer opções binárias aos residentes dos EUA. As opções binárias negociadas fora dos EUA normalmente são estruturadas de forma diferente dos binários disponíveis nas trocas dos EUA. Ao considerar especular ou proteger. As opções binárias são uma alter

100 Win Trading System

Trader-Info - Forex Trading - Stock Market Trading - Forex Scalping Systems - Forex Automated NEED Sistema de negociação forex honesto. Olhe para estes sistemas de negociação mecânica forex Forex trading pode ser classificado entre os investimentos de maior risco que existem, o mais rentável e o mais imprevisível. O acima é a própria razão pela qual o termo Santo Graal é considerado um mito como a maioria dos comerciantes forex acredita no sistema forex de negociação forex sem risco pesado, o medo e a ansiedade não existem devido a falhas experimentadas durante a tentativa de vários métodos em tempos passados. Eu acredito que DIFFICULT é um termo relativo, IMPOSSIBLE não existe e FAILURE nunca é uma falha até você decidir não tentar novamente. No momento em que você estiver com este relatório, vamos ver se você concordará comigo que - Um Santo Graal existe - O Santo Graal foi encontrado - O Santo Graal não é mesmo um Sistema, existem abordagens diferentes - (Isso pode parecer Engraçado