Saturday 5 August 2017

Amibroker Media Crossover System


O Sistema de Movimento Média Tripla Pelo Dr. Winton Felt O sistema de cruzamento de média móvel tripla é usado para gerar sinais de compra e venda. Seus sinais de compra vêm cedo no desenvolvimento de uma tendência, e seus sinais de venda são gerados cedo quando termina uma tendência. A terceira média móvel pode ser usada em combinação com as outras duas médias móveis para confirmar ou negar os sinais que eles geram. Assim, reduz a chance de o investidor estar agindo em sinais falsos. Quanto menor a média móvel, mais próxima segue a tendência de preços. Quando uma ação começa uma tendência de alta, as médias móveis de curto prazo começarão a subir muito mais cedo do que as médias móveis de longo prazo. Por exemplo, se uma ação declina em quantidades iguais a cada dia durante 50 dias e então começa a subir pela mesma quantidade todos os dias durante 50 dias, a média móvel de 5 dias começará a subir no terceiro dia após a mudança de direção , A média de 10 dias começará a subir no sexto dia após a mudança ea média de 20 dias começará a subir no décimo primeiro dia. Quanto mais tempo persistir uma tendência, maior a probabilidade de continuar a persistir, até certo ponto. Esperando muito tempo para entrar em uma tendência pode resultar em falta a maior parte do ganho. Entrar na tendência muito cedo pode significar entrar em um começo falso e ter que vender com uma perda. Os comerciantes têm abordado este problema, esperando por três médias móveis para verificar uma tendência, alinhando de uma certa maneira. Para ilustrar, wersquoll usa as médias móveis de 5 dias, 10 dias e 20 dias. Quando uma tendência de alta começa, a média móvel de 5 dias começará a subir primeiro. Os comerciantes vêem este como interessante mas de nenhuma importância principal. À medida que o impulso ascendente aumenta, as médias móveis mais longas começam gradualmente a seguir o exemplo. Um alerta de compra ocorre quando o cruzamento de 5 dias acima dos 10 e 20. Ou seja, o preço médio do estoque nos últimos cinco dias é maior do que a média nos últimos dez dias e nos últimos vinte dias. Isso mostra uma mudança de tendência de curto prazo. Um sinal de compra é confirmado quando o 10-dia, em seguida, cruza acima do 20-dia. O preço médio de 10 dias de uma ação é mais significativo do que o preço médio de 5 dias. Se o preço médio nos últimos dez dias for maior do que o preço médio nos últimos vinte dias, a mudança no momento é considerada muito mais significativa. Por outro lado, quando uma tendência de alta se transforma em uma tendência de baixa, a primeira coisa que acontece é que os declínios de 5 dias abaixo das médias de 10 dias e 20 dias. Isso constitui um alerta de que um sinal de venda pode estar próximo. O sinal de venda confirmado ocorre quando o cruzamento de 10 dias abaixo dos 20 dias resultando em um alinhamento em que a média de 5 dias está abaixo da média de 10 dias ea média de 10 dias está abaixo da média de 20 dias. Comerciantes mais agressivos muitas vezes usam o crossover de alerta como o sinal de venda real porque bloqueia mais do lucro. No entanto, o risco de fazer isso é que o estoque só pode ser quotcatching sua respiração antes de continuar seu avanço. O sinal de venda confirmado poderia então ter lugar a um preço muito mais elevado. Portanto, a maioria dos comerciantes consideram o sinal de venda a ser gerado pelo cruzamento de 10 dias abaixo dos 20 dias. Eu recomendo usar a média móvel de 5 dias como um filtro para cada evento de crossover. Ou seja, o alinhamento pode ser usado como uma ferramenta para reduzir whipsaws. Para um sinal de compra, o alinhamento apropriado é para a média de 5 dias acima dos 10 dias e para os 10 dias acima dos 20 dias. Para um sinal de venda, os 5 dias estariam abaixo dos 10 dias e os 10 dias abaixo dos 20 dias. Se o 10-dia acaba de dar um sinal de compra atravessando acima da média de 20 dias, um comerciante pode abster-se de fazer a compra se o dia 5 está agora a diminuir ou abaixo da média de 10 dias. A compra seria feita somente se os 5 dias retomassem sua subida ou estiverem acima da média de 10 dias, enquanto a média de 10 dias ainda está acima da média de 20 dias. Se a média de 10 dias der um sinal de venda cruzando abaixo da média de 20 dias, o comerciante pode abster-se de vender se a média de 5 dias virou e agora está subindo, ou se está agora acima da média de 10 dias Inferior. A venda seria feita somente se os 5 dias retomassem seu declínio ou caísse abaixo da média de 10 dias, enquanto a média de 10 dias ainda está abaixo da média de 20 dias. Nossos comerciantes stockdisciplines aprenderam através da experiência que usando a média de 5 dias, desta forma, pode reduzir drasticamente whipsaws (inoportuno e desnecessário compra e venda). A razão destes alinhamentos são importantes porque a média móvel mais curta é extremamente sensível ao desenvolvimento de uma contra-tendência no preço do estoque. Se uma tendência contrária à tendência indicada pelo cruzamento de suas principais médias móveis está se desenvolvendo, faz sentido esperar que essa contra-tendência se dissipe antes de agir. Investidores e comerciantes podem ser sábios para incorporar outro indicador em sua tomada de decisão. Para aumentar a confiabilidade dos sinais dados pelo sistema descrito acima, pode ser sábio usar a média móvel de 50 dias como contexto e referência. O melhor e mais rentável tempo para comprar um estoque está no início de uma nova tendência. Posteriormente comprar sinais transportar maior risco de que o estoque logo vai diminuir (porque stocks donrsquot ir para cima para sempre). Portanto, se a média de 50 dias estiver em um declínio significativo e estiver agora nivelando ou apenas começando a subir, um sinal de compra usando o método triplo cruzado descrito acima tem uma maior chance de sucesso do que se a média de 50 dias foi Aumentando por muito tempo, ou está começando nivelar fora ou declinar após um avanço prolongado. Em outras palavras, a média de 50 dias de médio prazo pode ser usada para confirmar e apoiar os sinais dados pelas médias móveis de curto prazo. Geralmente, itrsquos melhor para evitar a compra de um estoque se a sua média móvel de 50 dias está em declínio. Um trader de curto prazo pode fazer uma exceção a esta política geral, a fim de lucrar com um snap-back para a média decrescente de 50 dias de uma condição de sobre-venda extrema. Quando um estoque não é tendência (quando itrsquos indo para o lado) as médias móveis se entrelaçam e repetidamente entrecruzam uns aos outros. Aqui, os crossovers reais tornam-se inúteis como comprar ou vender sinais. No entanto, a condição representa consolidação ou distribuição. Assim, os comerciantes podem olhar para estes tempos como fundamentos para bons pontos de entrada ou de saída, dependendo de suas conclusões sobre o que o estoque é mais provável fazer em seguida ou em comportamento específico breakout. Várias configurações de gráficos (triângulos em ascensão, bandeiras, etc.) podem dar pistas sobre o comportamento provável de stockrsquos uma vez que ele começa a se mover novamente. O leitor também pode obter dicas sobre uma inclinação de estoque, observando se o volume aumenta ou diminui quando o preço das ações aumenta ou cai. Por exemplo, se o volume aumenta nos dias de baixo e diminui em dias, o estoque está anunciando sua determinação de ir para baixo, e assim por diante. O volume dá indícios sobre a direção do movimento de ações a que dinheiro está sendo comprometido. Finalmente, o comerciante pode simplesmente esperar o estoque para quotshow seu handquot quebrando através do apoio no lado negativo ou através da resistência aérea na parte superior. Em ambos os casos, o movimento não é muito confiável sem um aumento significativo no volume. Obtenha mais sobre isso e veja uma lista de tutoriais sobre disciplinas para investidores e comerciantes. Dr. Winton Felt mantém uma variedade de tutoriais livres, alertas de ações e resultados de varredura em stockdisciplines tem uma página de revisão do mercado em stockdisciplinesmarket-review tem informações e ilustrações relativas a quotsetups pré-surge quot No stockdisciplinesstock-alertas e informações e vídeos sobre a volatilidade ajustada parar perdas em stockdisciplinesstop-perdas Aviso aos Webmasters Se você deseja publicar este artigo em seu blog ou site, você pode fazê-lo se e somente se você respeitar os nossos Termos de Uso Publisher39s E Acordos. Ao publicar este artigo, você concorda em cumprir e estar vinculado aos Termos de Uso e aos Termos de Uso do Editor. Você pode ler os Termos de Uso do Publisher e os Contratos clicando no seguinte link azul quotTermsquot. Termos Todas as páginas deste site estão protegidas por copyright Copyright copy 2008 - 2016 by StockDisciplines Nenhuma parte desta publicação pode ser reproduzida ou distribuída sob qualquer forma por qualquer meio. - Stockdisciplinas 1590 Adams Avenue 4400 Costa Mesa, CA 92628 EUA. A negociação e / ou o investimento nos mercados de valores mobiliários envolve risco de perda. Este site nunca recomenda que qualquer pessoa comprar ou vender quaisquer títulos. Não dá conselhos de investimento individual. E nada aqui deve ser interpretado como se ele faz. Os leitores deste conteúdo do site devem procurar aconselhamento de um profissional licenciado sobre seus investimentos pessoais. StockDisciplines não será responsável por qualquer perda que resulte do uso de informações fornecidas neste site. AVISO IMPORTANTE Usando este site, você concorda com nossos Termos de Uso e Política de Privacidade. Veja-os clicando em seus links perto do fundo do menu no lado esquerdo de cada page. How para otimizar o sistema de comércio NOTA: Este é um tópico bastante avançado. Leia os tutoriais anteriores da AFL primeiro. A idéia por trás de uma otimização é simples. Primeiro você tem que ter um sistema de comércio, este pode ser um crossover média móvel simples, por exemplo. Em quase todos os sistemas existem alguns parâmetros (como período de média) que decidem como se comporta o sistema (isto é, é adequado para longo ou curto prazo, como reagir a estoques altamente voláteis, etc.). A otimização é o processo de encontrar valores ótimos desses parâmetros (dando maior lucro do sistema) para um dado 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ê tem que definir de um até dez parâmetros para ser otimizado. Você decide qual é o valor mínimo e máximo permitido do parâmetro e em que incrementos esse valor deve ser atualizado. AmiBroker então executa vários testes de volta o sistema usando TODAS as combinações possíveis de valores de parâmetros. Quando este processo é terminado AmiBroker exibe a lista de resultados classificados por lucro líquido. É possível ver os valores dos parâmetros de otimização que dão o melhor resultado. Escrevendo a fórmula AFL A otimização no back tester é suportada por uma nova função chamada optimize. A sintaxe desta função é a seguinte: variável otimizar (quot Descrição quot, default. Min. Passo máximo) variável - é a variável AFL normal que recebe o valor retornado pela função otimizar. Com os modos de backtesting, varredura, exploração e comentar normal, a função de otimização retorna o valor padrão, então a chamada de função acima é equivalente a: default da variável No modo de otimização, a função otimizar retorna valores sucessivos de min a max (inclusivamente) com step stepping. 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 otimizar a função retorna nos modos de exploração, de indicador, de comentário, de varredura e de back-test normal min é um valor mínimo da variável sendo otimizado max é um valor máximo da variável sendo otimizado step é um intervalo usado para aumentar a Valor de min para máximo AmiBroker suporta até 64 chamadas para otimizar a função (portanto, até 64 variáveis ​​de otimização), observe que se você estiver usando otimização exaustiva, então é realmente uma boa idéia para limitar o número de variáveis ​​de otimização para apenas alguns. Cada chamada para otimizar gerar (max - min) loops de otimização de etapa e múltiplas chamadas para otimizar multiplicam o número de execuções necessárias. Por exemplo, otimizar dois parâmetros usando 10 etapas exigirá 1010 100 loops de otimização. Call optimize função apenas ONCE por variável no início da sua fórmula como cada chamada gera um novo otimização loops Otimização de símbolo múltiplo é totalmente suportado por AmiBroker O espaço de pesquisa máximo é 2 64 (10 19 10,000,000,000,000,000,000) combinações 1. Otimização de variável única: sigavg Otimizar (Sinal (12. 26. sigavg), MACD (12. 26)) Sinal (12. 26. sigavg) 2. Otimização de duas variáveis ​​(apropriada para gráficos 3D) por Otimizar (por 2. 5. 50. 1) Nível Otimizar (nível 2. 2. 150. 4) Comprar Cruzar (CCI (per), - Level) Venda 3. Otimização de variáveis ​​múltiplas (3) Otimização de variáveis ​​(mfast) Optimize (MACD Slow, 26. 17, 30. 1) (Mfast, mslow, sigavg), MACD (mfast, mslow) Sinal (mfast, mslow, sigavg)) Depois de entrar O f Ormula basta clicar no botão Otimizar na janela quotAutomatic Analysisquot. AmiBroker vai começar a testar todas as combinações possíveis de variáveis ​​de otimização e relatar os resultados na lista. Após a otimização é feita a lista de resultados é apresentado classificado pelo lucro líquido. Como você pode classificar os resultados por qualquer coluna na lista de resultados é fácil obter os valores ideais de parâmetros para o menor drawdown, menor número de comércios, maior fator de lucro, menor exposição ao mercado e mais alto risco ajustado retorno anual. As últimas colunas da lista de resultados apresentam os valores das variáveis ​​de otimização para determinado teste. Quando você decidir qual combinação de parâmetros se adequa às suas necessidades, o melhor que você precisa fazer é substituir os valores padrão em otimizar chamadas de função com os valores ideais. No estágio atual você precisa digitá-los manualmente na janela de edição de fórmula (o segundo parâmetro de otimizar a chamada de função). Exibição de gráficos de otimização animados 3D Para exibir o gráfico de otimização 3D, é necessário executar a otimização de duas variáveis ​​primeiro. Duas otimização variável precisa de uma fórmula que tenha 2 chamadas de função Optimize (). Um exemplo de fórmula de otimização de duas variáveis ​​se parece com isto: por Otimizar (por 2. 5. 50. 1) Nível Otimizar (nível 2. 2. 150. 4) Comprar Cross (CCI (per), - Level) Sell Cross (Level, CCI (per)) Depois de inserir a fórmula, você precisa clicar no botão quotOptimizequot. Quando a otimização estiver concluída, você deve clicar na seta suspensa no botão Otimizar e selecionar Exibir gráfico de otimização 3D. Em poucos segundos, um gráfico colorido de superfície tridimensional 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, é possível traçar um gráfico de superfície 3D para qualquer coluna na tabela de resultados de otimização. Basta clicar no cabeçalho da coluna para classificá-lo (uma seta azul aparecerá indicando que os resultados de otimização são classificados por coluna selecionada) e, em seguida, escolha Exibir gráfico de otimização 3D novamente. Ao visualizar como seus parâmetros de sistemas afetam o desempenho de negociação, você pode decidir mais facilmente quais valores de parâmetro produzem quotfragilequot e quais produzem quotrobustquot desempenho do sistema. Configurações robustas são regiões no gráfico 3D que mostram mudanças graduais e não abruptas no gráfico de superfície. Gráficos de otimização 3D são uma ótima ferramenta para evitar ajuste de curva. Curve-fitting (ou sobre-otimização) ocorre quando o sistema é mais complexo do que ele precisa ser, e toda essa complexidade foi focada em condições de mercado que podem nunca acontecer novamente. Mudanças radicais (ou picos) nos gráficos de otimização 3D mostram claramente áreas de sobre-otimização. Você deve escolher a região do parâmetro que produz um platô largo e largo na carta 3D para sua troca real da vida. Os conjuntos de parâmetros que produzem picos de lucro não funcionarão de forma confiável na negociação real. Controles de visualizador de gráfico 3D AmiBrokers visualizador de gráfico 3D oferece capacidades de visualização total com rotação de gráfico completo e animação. Agora você pode ver os resultados de seu sistema de todas as perspectivas concebíveis. Você pode controlar a posição e outros parâmetros do gráfico usando o mouse, barra de ferramentas e atalhos de teclado, o que você achar mais fácil para você. Abaixo você encontrará a lista. - para girar - mantenha pressionado o botão esquerdo do mouse e movimente-se em direções XY - para aumentar, diminuir o zoom - mantenha pressionado o botão do mouse para a direita e mova-se em direções XY - para mover (traduzir) - mantenha pressionado o botão esquerdo do mouse e a tecla CTRL e Mova em 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 - anime (giro automático) SETA ESQUERDA - gire vert. Esquerda SETA PARA A DIREITA - gire vert. Direita SETA PARA CIMA - girar horiz. Up DOWN ARROW KEY - girar horiz. NUMPAD 4 - mover para a esquerda NUMPAD 6 - mover para a direita NUMPAD 8 - mover para cima NUMPAD 2 - mover para baixo PAGE UP - nível da água para cima PAGE DOWN - nível de água abaixo Otimização inteligente (não exaustiva) AmiBroker oferece agora 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 do sistema de negociação determinado for simplesmente demasiado grande para ser viável para uma pesquisa exaustiva. Busca exaustiva é perfeitamente bem desde que seja razoável usá-lo. Vamos dizer que você tem 2 parâmetros cada variando de 1 a 100 (etapa 1). Isso é 10000 combinações - perfeitamente OK para pesquisa exaustiva. Agora, com 3 parâmetros você tem 1 milhão de combinações - ainda é OK para busca exaustiva (mas pode ser lenghty). Com 4 parâmetros você tem 100 milhões de combinações e com 5 parâmetros (1..100) tem 10 bilhões de combinações. Nesse caso, seria muito demorado para verificar todos eles, e esta é a área onde os métodos não-exaustivos de busca inteligente pode resolver o problema que não é resolvido em tempo razoável usando pesquisa exaustiva. Aqui está absolutamente a instrução SIMPLEST como usar novo otimizador não-exaustivo (neste caso CMA-ES). 1. Abra sua fórmula no Editor de Fórmulas. 2. Adicione esta única linha na parte superior da sua fórmula: OptimizerSetEngine (quotcmaequot) você também pode usar quotspsoquot ou quottribquot aqui 3. (Opcional) Selecione seu alvo de otimização em Automatic Analysis, Settings, quotWalk - Parte anterior, campo Otimização. Se você pular esta etapa otimizará para CARMDD (retorno anual composto dividido pelo drawdown máximo). Agora, se você executar otimização usando esta fórmula, ele usará novo evolucionário (não-exaustiva) CMA-ES otimizador. Como funciona A otimização é o processo de encontrar o mínimo (ou máximo) de determinada função. Qualquer sistema de negociação 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 alvo de otimização (digamos CARMDD). E você está procurando o máximo de determinada função. Alguns dos algoritmos inteligentes de otimização 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 por humanos - CMA-ES. Estes algoritmos são utilizados em muitas áreas diferentes, incluindo finanças. Digite quotPSO financequot ou quotCMA-ES financequot no Google e você vai encontrar muitas informações. Métodos não-exaustivos (ou quotsmartquot) encontrarão global ou local otimizado. O objetivo é, naturalmente, 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 conseguir encontrar este único pico, mas tomando forma comerciantes perspecive, encontrando pico único afiado é inútil para Porque esse resultado seria instável (muito frágil) e não replicável na negociação real. No processo de otimização estamos procurando regiões de platô com parâmetros estáveis ​​e esta é a área onde os métodos inteligentes brilham. No que se refere ao algoritmo utilizado pela pesquisa não exaustiva, o resultado é o seguinte: a) o otimizador gera uma população inicial de grupos de parâmetros (geralmente aleatória) b) o backtest é realizado pelo AmiBroker para cada conjunto de parâmetros da população c) os resultados dos backtests são Avaliada de acordo com a lógica do algoritmo e nova população é gerada com base na evolução dos resultados, d) se for encontrado o melhor - salve-o e vá para a etapa b) até que os critérios de parada sejam atendidos Iterações máximas b) parar se o intervalo de melhores valores objetivos das últimas gerações X é zero c) parar se adicionar 0,1 vetor de desvio padrão em qualquer direção do eixo principal não altera o valor do valor objetivo d) outros Para usar qualquer 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: Standard Particle Swarm Optimizer (quotspsoquot), Tribos (quottribquot) e CMA-ES (quotcmaequot) - os nomes em chaves são para ser usado em chamadas OptimizerSetEngine. Além de selecionar otimizador motor você pode querer definir alguns dos seus parâmetros internos. Para isso, use a função OptimizerSetOption. Função OptimizerSetOption (quotnamequot, value) A função define parâmetros adicionais para o mecanismo de otimização externo. Os parâmetros são dependentes do motor. 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 normalmente produzirão resultados diferentes com diferentes motores usados. A diferença entre Runs e MaxEval é a seguinte. A avaliação (ou teste) é backtest único (ou avaliação do valor da função objetivo). RUN é uma execução completa do algoritmo (encontrar o valor ótimo) - geralmente envolvendo muitos testes (avaliações). Cada execução simplesmente restabelece todo o processo de otimização a partir do novo início (nova população aleatória inicial). Portanto, cada execução pode levar a encontrar diferentes locais maxmin (se não encontrar um global). Portanto, o parâmetro Runs define o número de execuções de algoritmos subseqüentes. MaxEval é o número máximo de avaliações (bactests) em qualquer execução única. Se o problema é relativamente simples e 1000 testes são suficientes para encontrar global max, 5x1000 é mais provável encontrar global máximo porque há menos chances de ser preso no local máximo, como subseqüentes vai começar a partir de diferentes aleatória população inicial Escolhendo valores de parâmetro pode Ser complicado Depende do problema em teste, sua complexidade, etc, etc. Qualquer método não-exaustivo estocástico não lhe dá garantia de encontrar maxmin global, independentemente do número de testes, se for menor do que exaustivo. A resposta mais fácil é. Especifique como 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 lançados são projetados para ser simples de usar, portanto, quotreasonablequot defaultautomatic valores são usados ​​para otimização pode ser normalmente executado sem especificar nada (aceitando padrões). É importante entender que todos os métodos de otimização inteligentes funcionam melhor em espaços de parâmetros contínuos e funções objetivas relativamente suaves. Se o espaço de parâmetros é discreto algoritmos evolutivos podem ter dificuldade em encontrar o melhor valor. É especialmente verdadeiro para parâmetros binários (onoff) - eles não são adequados para qualquer método de pesquisa que usa gradiente de mudança de função objetivo (como fazem a maioria dos métodos inteligentes). Se o seu sistema de negociação contém muitos parâmetros binários, você não deve usar otimizador inteligente diretamente neles. Em vez disso, tente otimizar apenas os parâmetros contínuos usando o otimizador inteligente e alterne os parâmetros binários manualmente ou via script externo. SPSO - Standard Particle Swarm Optimizer O Otimizador Padrão de Enxames de Partículas é baseado no código SPSO2007 que é suposto produzir bons resultados desde que sejam fornecidos parâmetros corretos (isto é, Runs, MaxEval) para problemas específicos. Escolher opções corretas para o otimizador PSO pode ser complicado, portanto, os resultados podem variar significativamente de caso para caso. O SPSO. dll vem com códigos-fonte completos dentro da subpasta quotADKquot. Exemplo de código para Padrão Particle Swarm Optimizer: (encontrando otimizado valor em 1000 testes dentro de espaço de pesquisa de 10000 combinações) OptimizerSetEngine (quotspsoquot) OptimizerSetOption (quotRunsquot, 1) OptimizerSetOption (quotMaxEvalquot, 1000) sl Otimizar (quotsquot, 26, 1, 100, 1 ) Otimizar (quotfquot, 12, 1, 100, 1) Comprar Cross (MACD (fa, sl), 0) TRIBES - Adaptive Parâmetro-menos Partículas Swarm Optimizer Tribes é adaptável , Versão sem parâmetros de otimizador PSO (otimização de enxame de partículas) não-exaustiva. Para o fundo científico veja: particlewarm. infoTribes2006Cooren. pdf Na teoria deve executar melhor do que o PSO regular, porque pode ajustar automaticamente os tamanhos do enxame ea estratégia do algoritmo ao problema que está sendo resolvido. A prática mostra que seu desempenho é bastante semelhante ao PSO. O plug-in Tribes. DLL implementa a variante quotTribes-Dquot (ou seja, adimensional). Baseado em clerc. maurice. free. frpsoTribesTRIBES-D. zip por Maurice Clerc. Códigos fonte originais usados ​​com permissão do autor Tribes. DLL vem com código fonte completo (dentro da pasta quotADKquot) 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 o número crescente de dimensões (número de parâmetros de otimização). O padrão 1000 é bom para 2 ou máximo 3 dimensões. QuotRunsquot - número de execuções (reinícios). (Padrão 5) Você pode deixar o número de execuções com o valor padrão de 5. Por padrão, o número de execuções (ou reinicializações) é definido como 5. Para usar otimizador Tribes, basta adicionar uma linha ao seu código: OptimizerSetOption (quotMaxEvalquot , 5000) 5000 avaliações max CMA-ES - Covariance Matrix Adaptation Otimizador de Estratégia Evolutiva CMA-ES (Covariance Matrix Adaptação Estratégia Evolutiva) é avançado otimizador não-exaustiva. Para o fundo científico veja: bionik. tu-berlin. deusernikocmaesintro. html De acordo com benchmarks científicos outperforms nove outros, as estratégias evolucionárias as mais populares (como PSO, evolução genética e diferencial). Bionik. tu-berlin. deusernikocec2005.html O plug-in CMAE. DLL implementa quotGlobalquot variante de pesquisa com várias reinicializações com tamanho de população crescente CMAE. DLL vem com código-fonte completo (dentro de pasta quotADKquot) Por padrão, o número de execuções (ou reinicializações) é definido Para 5. É aconselhável deixar o número padrão de reinícios. Você pode variá-lo usando a chamada OptimizerSetOption (quotRunsquot, N), onde N deve estar no intervalo 1..10. Especificar mais de 10 execuções não é recomendado, embora possível. Observe que cada execução usa TWICE o tamanho da população de execução anterior para que ele cresce exponencialmente. Portanto, com 10 corridas você acaba com a população 210 maior (1024 vezes) do que a primeira corrida. Existe outro parâmetro quotMaxEvalquot. O valor padrão é ZERO, o que significa que o plugin irá calcular automaticamente MaxEval. É aconselhável não definir MaxEval por si mesmo como 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 ponto de solução, por isso 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 pode se mover muito rápido em alguns pontos. O plugin também tem a capacidade de aumentar o número de etapas acima do valor inicialmente estimado se for necessário para encontrar a solução. Devido à sua natureza adaptativa, o período de tempo restante deixado e ou quotnumber das etapas mostradas pelo diálogo de progresso é apenas quotbest adivinhar no timequot e pode variar durante curso de otimização. Para usar otimizador CMA-ES, você só precisa adicionar uma linha ao seu código: Isto irá executar a otimização com configurações padrão que estão bem para a maioria dos casos. Deve-se notar, como é o caso de muitos algoritmos de busca de espaço contínuo, que a diminuição do parâmetro quotstepquot em chamadas de função Optimize () não afeta significativamente os tempos de otimização. A única coisa que importa é o quotdimension do problema, ou seja, o número de diferentes parâmetros (número de otimizar chamadas de função). O número de quotstepsquot por parâmetro pode ser definido sem afetar o tempo de otimização, então use a melhor resolução que você deseja. 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 um LOT mais rápido. Por exemplo, a solução em 3 (N3) espaço de parâmetro dimensional (digamos 100100100 1 milhão de etapas exaustivas) pode ser encontrada em apenas 500-900 passos CMA-ES. Otimização individual multi-threaded A partir do AmiBroker 5.70 além do multithreading de múltiplos símbolos. Você pode executar a optimização multi-threaded single-symbol. Para acessar essa funcionalidade, clique na seta suspensa ao lado do botão quotOptimizequot na janela Nova análise e selecione quot. QuotIndividual Optimizequot usará todos os núcleos de processador disponíveis para realizar a otimização de símbolo único, tornando-a muito mais rápida do que a otimização regular. No modo quotCurrent symbolquot, realizará a otimização em um símbolo. Em quotAll symbolsquot e quotFilterquot modos irá processar todos os símbolos sequencialmente, ou seja, primeira otimização completa para o primeiro símbolo, em seguida, otimização no segundo símbolo, etc Limitações: 1. Backtester personalizado não é suportado (ainda) 2. Motores de otimização inteligentes não são suportados - Somente a otimização EXHAUSTIVA funciona. Eventualmente, podemos nos livrar da limitação (1) - quando AmiBroker é alterado para backtester personalizado não usa OLE mais. Mas (2) é provavelmente aqui para ficar para long. October 14, 2011 Adicionado fevereiro 29, 2012, pontos adicionais a considerar: 1) Este sistema depende de obter preenchimentos precisos no preço Open. Para obter esses preenchimentos, é necessário um feed de dados com atraso mínimo de qualidade e habilidades avançadas de programação para implementar a automação comercial. 2) Ao definir o preço de entrada ligeiramente abaixo do preço aberto (tentando melhorar o desempenho) o sistema falha miseravelmente. Mesmo melhorar o preço por apenas um centavo mata o sistema. Isso sugere que a maior parte do lucro vem dos dias em que o preço do Open era igual ao diário Baixo, ou seja, o preço subiu do Aberto e nunca caiu abaixo dele. Isso, obviamente, é óbvio. Para confirmar isso eu adicionei esta condição de teste (olha para frente) para excluir dias em que Open Low: Buy Buy AND NOT O L Isso mata o sistema e prova que a maior parte do lucro vem de dias onde OL. Para confirmar ainda mais isto eu adicionei a condição oposta: Buy Buy AND O L Isso dá lucros praticamente infinitos e prova que a maioria dos lucros vêm de dias em que o preço se move imediatamente do Open e nunca retorna abaixo dele. Tentando melhorar o preço de entrada é um erro um deve entrar em um conjunto Stop 1-2 ct acima do preço Open, isso irá eliminar dias quando o preço cai e nunca volta para trás. Isso melhora significativamente o desempenho. 3) Este sistema comércios knee-jerk trader-responsespatterns. Tais padrões são geralmente afogados por grande volume de negociação, portanto, este sistema funciona muito melhor quando você selecionar tickers com volumes entre 500.000 e 5000.000 shareday. Isso também melhora significativamente o desempenho. Adicionando os dois recursos acima resulta em uma curva de equidade muito melhor do que o mostrado abaixo. Desculpe, não tenho tempo para documentar o acima em maiores detalhes. Boa sorte Este post descreve uma idéia de negociação de Long-somente muito simples que compra em uma porcentagem dada abaixo de baixo de yesterday8217s, e sai no próximo dia8217s aberto. Enquanto às vezes pode ser difícil obter o preço exato Open, a alta rentabilidade deste sistema torna um bom candidato para experimentação adicional. O sistema funciona bem com Watchlists como o N100, SP500, SP1500, Russel 1000, etc. Desempenho no Russel 1000, com máx. Posições abertas definidas para 1, para o período de 12102003 a 12102011, se parece com isto: Algumas das outras listas de exibição dão menos exposição (lucros), mas isso vem com DDs mais baixos. As comissões foram fixadas em 0,005 por ação. Nenhuma margem utilizada. Nenhuma classificação explícita é usada, os tickers são negociados com base em sua ordem alfabética na Watchlist. Isso pode parecer estranho, mas é significativo: inverter esse tipo de sistema falha. Isso pode significar que, devido a problemas de varredura em tempo real, os símbolos listados no topo deste tipo podem ser comercializados de forma diferente daqueles listados na parte inferior. Preste atenção à liquidez (você pode querer negociar mais de uma posição) e deslizamento (entrada é bastante livre de risco, mas sai pode ser problemático). Os DDs são significativos, mas podem ser compensados ​​com entradas e saídas melhoradas em tempo real. Ao negociar automaticamente pode ser possível colocar ordens de entrada OCA DAY-LMT para todos os sinais e apenas esperar e ver o que preenche. Uma vez que as saídas são mais difíceis do que entradas você pode querer explorar outras estratégias de saída. Os valores padrão dos parâmetros são apenas escolhidos de um chapéu. Quase certamente você pode otimizá-los ou ajustá-los dinamicamente para tickers individuais. Eu brevemente testado este sistema no modo Walk-Forward e os resultados foram rentáveis ​​para todos os anos testados. Exceto para o número de ações negociadas parâmetros aparecem não muito crítico. Sobre-otimização doesn8217t parece um problema neste caso. O código abaixo é muito simples e requer poucas explicações. No entanto, é importante entender que este sistema goza de uma pequena vantagem negociando no Open, e calculando o TrendMA usando o mesmo preço Open. Alguns podem interpretar isso como vazamento futuro, no entanto, se você trocar esse sistema em tempo real, não é. Muitas pessoas não percebem que se você trocar no Open você também pode usar esse preço em seus cálculos 8212, desde que você executá-los em tempo real 8212 é aqui onde AmiBroker e tecnologia pode lhe dar uma vantagem. Se você Ref () de volta o TrendMA por uma barra o sistema ainda é muito rentável no entanto DDs aumentar para algumas Watchlists. Se você usar investimentos fixos a diferença é desprezível. O procedimento de negociação seria começar a digitalização antes de o mercado abrir e remover os tickers que são preços tão remoto que eles são improváveis ​​para atender o OpenThresh. Assim, você pode começar a digitalizar 1000 símbolos, mas muito rapidamente o número digitalizado vai diminuir a apenas uma dúzia de tickers. Quando você se aproximar 9:30 am sua varredura em tempo real será muito rápido e você será capaz de colocar a sua ordem LMT muito perto do Open 8211 você pode até mesmo ser capaz de melhorar o preço Open. Mesmo que algumas pessoas olhou para o código abaixo e não encontrou nada de errado, os lucros parecem bastante elevados para um sistema tão simples. Informe os erros que você pode ver. Arquivado por Herman em 7:03 pm em Idéias (Experimental) Comentários fora em EOD Gap-Trading Portfolio sistema 1 de setembro de 2011 Esta idéia foi postada (161332) na lista principal de AmiBroker em 3 de julho de 2011. Houve numerosos comentários excelentes sobre A lista e se você está interessado em trabalhar neste sistema você faz bem para lê-los todos antes de iniciar. Depois de postar eu encontrei um número de postos na web discutindo esta idéia de negociação, alguns alegaram estar negociando um sistema semelhante com bom sucesso. Eu me referi a este sistema um 8220Gap Trading8221 sistema, mas isso pode ser um pouco de um misnomer, 8220Mean reversion8221 pode ser uma classificação melhor. Googling para ele começará-lhe muitos mais batidas aos sistemas similares. Aqui estão alguns links: Parece ser uma idéia de negociação bastante discutida e eu sugiro que você faça alguns Googling em seu próprio país para saber o mais recente. Como usuário do Amibroker você tem melhores ferramentas do que a maioria dos comerciantes e você tem uma chance melhor do que a maioria de vir acima com uma variação que funciona. Perhaps with a little less profits, and with a significant amount of additional code 8212 it won8217t be a 8220quicky8221 project :-) Some people commented that this system will not work in real trading, while they may be right others say schemes like this work. I didn8217t finish the system and can8217t claim to know whether it is tradable or not. The system Buys at a certain percentage below yesterday8217s Low, on a LMT order, and exits in the same day at the Close. Filed by Herman at 6:53 pm under Ideas (Experimental) Comments Off on A Long-only EOD Gap trading idea I use a small setup criteria to scan for my stocks. MACD default, I look for Histogram 4 down bars and 1 up bar for buy signal(I have the histogram set to red for down and blue for up so I can see clearly). MACD above Zero Line RSI Above 30 This system is base on trend trading. Buying on pullback when the market continues its up trend. To scan for MACD Trend setups: 1) Insert the following formula into a chart. 2) Run a Scan in AA using SMACDTrend with All symbols . n last days . n 1 and Sync chart on select as the settings. Stocks that meet the criteria will be reported in the Results list. Note: Some variations of the setup rules can define signals that are quite rare and in small databases it is possible that there will be no setups on any given day (hence no stock will be reported by the scan). 3) Click on any symbol in the Results pane to view the chart, for that symbol, in the background. Note: In this example a training database, that only contains data up to 5112007, was used. Trading idea by protraderinc. Comments and formula by Bill 8211 WaveMechanic . Filed by brianz at 11:06 pm under Ideas (Experimental) Comments Off on MACD Trend System October 14, 2007 Filed by brianz at 10:43 pm under Ideas (Experimental) Comments Off on 15 Day Performers Trading System August 19, 2007 This is the first in a series off KISS (keep it simple, stupid) trading ideas for you to play with. All system ideas presented here are unproven, unfinished, and may contain errors. They are intended to show possible patterns for further exploration. As always, you are invited to make comments andor add your own ideas to this series. I prefer real-time systems that trade fast, are automated, and are devoid of traditional indicators. Preferably, they should have no optimizable parameters however, I may not always be able to meet this objective. Not all systems will be that simple there will be some that use simple averaging or HHVLLV type functions. The first system shown below is a copy of the demo system I use to develop Trade-Automation routines elsewhere on this site. Real-Time Gap-Trading . To see how this works, you should Backtest it on 1-minute data with a periodicity in the range of 5-60 minutes. Your first impression may be that these profits are simply due to an up market, however, the fact that Long and Short profits are about equal suggests there is more to it. Because 98 of all trades fall between 9:30 AM and 10:30 AM, this type of system is nice if you just want to trade a short time each day. This reduces risk with respect to market exposure and gives you more time to enjoy other activities. Backtesting this on the NASDAQ-100 watchlist (individual backtests, 15 min. Periodicity) gives the profits shown below for the period of 1 MAR 2007 to 17 AUG 2007. Ticker names are omitted to keep the chart compact the chart simply shows a net profit bar for each ticker tested. Average exposure for this system is about 15 hence, you may be able to trade portfolios to increase profits and smooth the equity curves. Be cautioned that in its raw form the drawdowns are unacceptable and that there may be volume restrictions for many tickers. Since this system has low exposure, it may be a candidate for market scanning and ranked portfolio trading. RARs would be an indication of the absolute maximum profits that could be obtained if one succeeded to increase exposure to near 100. However, price movement from different tickers may be correlated, and trades from different tickers may overlap. If many tickers trade at the same time, it would be difficult to increase system exposure. Filed by Herman at 1:49 pm under Ideas (Experimental) Comments Off on KISS-001: Intraday Gap Trading August 17, 2007 You are invited to submit links to system ideas in comments to this post. Gap Trading Strategies 8211 Stockcharts Intraday Moving Average Crossover with Position Sizing 8211 NeoTicker Volatility-Breakout-Systems 8211 Traders Log Ten day HighLow system 8211 StockWeblog Reversion Systems 8211 SeekingAlpha Systems Traders Club . Trader Club Bulletins. July 16, 2007 This category is reserved for real working trading systems, i. e. that you have traded at some point in time or would consider trading. Since the criteria for tradability varies from person to person, and since systems may work or not depending on how they are traded, it will be difficult to screen contributions here. With respect to what is posted here, keep an open mind and consider that the poster considers the system tradable. You can contribute by posting as an author (requires registration ) or in a comment to this post. Filed by Herman at 11:14 am under Practical (Profitable) Comments Off on Introduction to Trading Systems 8211 Practical This is where you can share trading systems that are marginally profitable, i. e. those that should not be traded as they are but that show potential. Typically this would be a basic system that is profitable but experiences draw downs of 50. Such systems can often be improved by adding Stops, Targets, Money Management, Portfolio techniques, etc. The reality is that while you may not have the expertise to make it work someone else may. Almost all of us find trading system ideas in books and magazines that we then code in AFL for evaluation. Some of these systems may have been around for many years while others are new ideas. After coding them, almost always, we are disappointed and chuck out the system (work). Instead of throwing out your work you are invited to post the system here to give another developer a chance to fix it. You are invited to contribute as an author (requires registration ) or in a comment to this post. Filed by Herman at 11:04 am under Ideas (Experimental) Comments Off on Introduction to Trading Systems 8211 IdeasSimple Triple Moving Average Crossover 8211 Amibroker AFL Code Here is the very simple and classical example to build a triple EMA (Exponential Moving Average Crossover system). System is quite popular if anyone (traderinvestor) is a newbie to classical technical analysis. In this AFL the triple moving average buy, sell signals are coded and comes with Scanning and Exploration functionality. It is a simple trend following system where the system shows buy signal if 3 EMA 13 EMA 34 EMA and shows a sell signal if 3 EMA Averages and applydrag-and-drop the Triple Moving Average Crossover code over blank chart. 7)Bingo you are done. Now you will be able to see the triple moving average crossover with buy and sell indicators. Leituras Relacionadas e Observações Sobre Rajandran Rajandran é um comerciante em tempo integral e fundador da Marketcalls, muito interessado em construir modelos de cronometragem, algos. Discricionária negociação conceitos e Trading Sentimental análise. Ele agora instrui usuários de todo o mundo, de comerciantes experientes, comerciantes profissionais a comerciantes individuais. Rajandran frequentou a faculdade em Chennai, onde ganhou um BE em Eletrônica e Comunicações. Rajandran tem uma compreensão ampla de softwares comerciais como Amibroker, Ninjatrader, Esignal, Metastock, Motivewave, Analista de Mercado (Optuma), Metatrader, Tradingivew, Python e compreende as necessidades individuais de comerciantes e investidores utilizando uma ampla gama de metodologias. Thanks very much. Required US Government Disclaimer CTFC Rule 4.41 Futures trading contains substantial risk and is not suitable for every investor. Um investidor poderia potencialmente perder todo ou mais do que o investimento inicial. Capital de risco é dinheiro que pode ser perdido sem comprometer a segurança financeira ou estilo de vida. Considere apenas o capital de risco que deve ser usado para negociação e apenas aqueles com capital de risco suficiente deve considerar a negociação. O desempenho passado não é necessariamente indicativo de resultados futuros. REGRA 4.41 DO CTFC OS RESULTADOS DE DESEMPENHO HIPOTÉTICOS OU SIMULADOS TÊM CERTAS LIMITAÇÕES. DESCONHECIDO UM REGISTO DE DESEMPENHO REAL, OS RESULTADOS SIMULADOS NÃO REPRESENTAM A NEGOCIAÇÃO REAL. TAMBÉM, DESDE QUE OS COMÉRCIOS NÃO FORAM EXECUTADOS, OS RESULTADOS PODERÃO TER OUTROS OUTROS COMPENSADOS PELO IMPACTO, SE HOUVER, DE CERTOS FACTORES DE MERCADO COMO A LIQUIDEZ. OS PROGRAMAS SIMULADOS DE NEGOCIAÇÃO EM GERAL SÃO TAMBÉM SUJEITOS AO FATO QUE SÃO PROJETADOS COM O BENEFÍCIO DE HINDSIGHT. NENHUMA REPRESENTAÇÃO ESTÁ SENDO SENDO QUE QUALQUER CONTA PODERÁ OU É POSSÍVEL CONSEGUIR LUCROS OU PERDAS SIMILARES Àqueles MOSTRADOS. Todos os comércios, padrões, gráficos, sistemas, etc. discutidos neste site ou anúncio são apenas para fins ilustrativos e não são interpretados como recomendações específicas de consultoria. Todas as idéias e materiais apresentados aqui são apenas para fins informativos e educacionais. Nenhum sistema ou metodologia de negociação nunca foi desenvolvido que possa garantir lucros ou evitar perdas. Os depoimentos e exemplos aqui utilizados são resultados excepcionais que não se aplicam a pessoas comuns e não se destinam a representar ou garantir que qualquer pessoa vai conseguir os mesmos ou resultados semelhantes. Os negócios colocados na dependência dos sistemas de Métodos de Tendência são tomados a seu próprio risco para sua própria conta. Esta não é uma oferta para comprar ou vender interesses futuros. Copyright 2015 Marketcalls Serviços Financeiros Pvt Ltd middot Todos os Direitos Reservados middot E Nosso Sitemap middot Todos os logos e marcas comerciais pertence a seus respectivos proprietários Os dados e informações são fornecidos para fins informativos apenas e não se destinam a fins comerciais. Nem o website marketcalls. in nem qualquer um dos seus promotores será responsável por quaisquer erros ou atrasos no conteúdo, ou por quaisquer acções tomadas com base nisso.

No comments:

Post a Comment