Friday 19 January 2018

Forex portfólio otimização


Portfolio Optimization. Real-Time After Hours Pré-Mercado News. Flash Quote Resumo Citação Interactive Gráficos Default Setting. Por favor, note que uma vez que você faça a sua seleção, ele se aplicará a todas as futuras visitas a If, a qualquer momento, você está interessado em reverter Para as configurações padrão, selecione Configuração padrão acima. Se você tiver dúvidas ou tiver problemas em alterar as configurações padrão, envie um e-mail. Confirme sua seleção. Você selecionou para alterar sua configuração padrão para a Pesquisa de orçamento. Sua página de destino padrão, a menos que você altere sua configuração novamente ou exclua seus cookies Tem certeza de que deseja alterar suas configurações. Por favor, desative o bloqueador de anúncios ou atualize suas configurações para garantir que o javascript e os cookies estejam ativados, para que possamos continuar Fornecê-lo com as notícias de mercado de primeira linha e os dados que você chegou a esperar de nós. DEFINIÇÃO de Otimização. No contexto de otimização de análise técnica é o processo de ajuste de um tr Ading sistema em uma tentativa de torná-lo mais eficaz Estes ajustes incluem a alteração do número de períodos utilizados em médias móveis, alterando o número de indicadores utilizados, ou simplesmente tirando o que doesn t work. For exemplo, se um investidor tem um simples sistema de comércio Que é composto apenas de um crossover de preço de fechamento e uma média móvel, alterando os períodos da média móvel, o comerciante terá diferentes lucros, riscos, levantamentos de capital etc Assim, a otimização ajuda você a escolher os parâmetros ideais para trade. BREAKING DOWN Optimization. Once um sistema comercial é desenvolvido, o próximo passo antes da implementação é back-testing e otimização Encontrar a melhor combinação possível de configurações para os parâmetros do sistema comercial é vital para o lucro gerando sucesso de um sistema comercial Há muitas armadilhas e Armadilhas que os comerciantes, por vezes, inadvertidamente ignorar Over-otimização e ter muito grande ou a um pequeno período de dados de amostra são apenas alguns dos sutis Erros que levam a sistemas de negociação failing. A sistema de comércio é usado para definir um conjunto de regras que determina a entrada e saída de um comércio que gera lucros consistentes com cada regra que é aplicada dentro de um sistema, o número de sinais é diminuído em ordem Para satisfazer os critérios coletivos estabelecidos pela totalidade das regras Aplicando demasiadas regras para obter resultados de back-test que mostram maiores lucros pode resultar no que é chamado de ajuste de curva É quando os resultados de um back-test em um Por exemplo, imagine um sistema de negociação que usa um gráfico diário durante o ano passado e seleciona o mês eo dia em que uma grande inversão Para indicar um sinal na direção da reversão que produz um comércio rentável. As regras deste sistema hipotético contudo impraticável seriam a lista de datas de mês e dia sem um ano que resultaria em O maior lucro líquido para esse ano A otimização tenderia para o momento preciso de cada inversão e resultar na curva perfeita ajuste No entanto, quando o sistema é aplicado a um ano diferente, ou o futuro, ele provavelmente irá falhar. . A duração do período de dados em que o back-testing é realizado para otimizar as configurações de um sistema de negociação varia dependendo do sistema Alguns sistemas geram múltiplos sinais de comércio por dia e alguns geram um sinal por mês ou menos Em ambos os casos, Deve-se tomar cuidado para garantir que o período de amostragem abranja todas as condições gerais do mercado, incluindo as tendências de tendência, as tendências de baixa e as trocas comerciais. Ajudar a evitar resultados de otimização que trabalham em apenas um tipo de condição de mercado. Como otimizar o sistema de negociação. NOTA Este é um tópico bastante avançado Por favor, leia os tutoriais anteriores AFL fi A idéia por trás de uma otimização é simples Primeiro você tem que ter um sistema de negociação, 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 decidir como determinado sistema se comporta ou seja, é bem adequado A longo prazo ou a curto prazo, como é que reage em ações altamente voláteis, etc. A otimização é o processo de encontrar valores ótimos desses parâmetros dando maior lucro do sistema para um determinado símbolo ou um portfólio de símbolos AmiBroker é um dos muito Poucos programas que permitem que você otimize 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 o que é um valor mínimo e máximo permitido do parâmetro e em que incrementos este valor Deve ser atualizado AmiBroker, em seguida, 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 Dos resultados classificados por lucro líquido Você é capaz de ver os valores dos parâmetros de otimização que dão o melhor resultado. Formulação AFL. Otimização no testador de volta é suportado através de nova função chamada otimizar A sintaxe desta função é a seguinte. variable otimizar Descrição, Default min max step. variable - é a variável AFL normal que recebe o valor retornado pela função optimize Com modos de backtesting, varredura, exploração e comentaridade normais a função otimizar retorna o valor padrão, então a chamada de função acima é equivalente à variável default. In otimização A função de otimização de modo retorna valores sucessivos de min a max inclusive com passo stepping. Description é uma seqüência de caracteres que é usada para identificar a variável de otimização e é exibido como um nome de coluna no resultado de otimização list. default é um valor padrão que otimizar função retorna in Exploração, indicador, comentário, varredura e normal de volta teste modes. min é um valor mínimo da variável sendo o Ptimized. max é um valor máximo da variável a ser optimized. step é um intervalo usado para aumentar o 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 a otimização exaustiva, em seguida É realmente uma boa idéia para limitar o número de variáveis ​​de otimização para apenas few. Each chamada para otimizar gerar otimização max-min otimização loops e várias chamadas para otimizar multiplicar o número de execuções necessárias Por exemplo otimizar dois parâmetros usando 10 etapas exigirá 10 10 100 Otimização loops. Call otimizar função apenas ONCE por variável no início de sua fórmula como cada chamada gera um novo otimização loops. Multiple símbolo de otimização é totalmente suportado por AmiBroker. Maximum espaço de pesquisa é de 2 64 10 19 10,000,000,000,000,000,000 combinações.1 única otimização variável. sigavg Otimizar a média do sinal 9 2 20 1.Buy Cross MACD 12 26, Signal 12 26 sigavg Venda Cross Signal 12 26 sigavg, MAC D 12 26.2 Otimização de duas variáveis ​​adequada para 3D charting. per Otimizar por 2 5 50 1 Nível Otimizar nível 2 2 150 4.Buy Cruz CCI por, - Level Venda Cross Level, CCI per.3 Múltiplo 3 variável optimization. mfast Otimizar MACD Fast 12 8 16 1 mslow Otimizar MACD Lento 26 17 30 1 sigavg Otimizar Sinal médio 9 2 20 1.Buy Cross MACD mfast, mslow Sinal mfast, mslow, sigavg Vender Cross Signal mfast, mslow, sigavg, MACD mfast, mslow. After entrando A fórmula basta clicar no botão Otimizar na janela de Análise Automática O AmiBroker começará a testar todas as combinações possíveis de variáveis ​​de otimização e relatará os resultados na lista Depois que a otimização for concluída, a lista de resultados é apresentada ordenada 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 levantamento, menor número de negócios, maior fator de lucro, menor exposição de mercado e maior risco ajustado retorno anual As últimas colunas do resultado li St apresentar os valores de variáveis ​​de otimização para determinado teste. Quando você decidir qual combinação de parâmetros se adapte às suas necessidades o melhor tudo que você precisa fazer é substituir os valores padrão em otimizar chamadas de função com os valores ideais Na fase atual você precisa digitá-los Manualmente na janela de edição de fórmula o segundo parâmetro de otimizar a função call. Displaying gráficos de otimização 3D animado. Para exibir gráfico de otimização 3D, você precisa executar a otimização de duas variáveis ​​primeiro Duas otimização de variáveis ​​precisa de uma fórmula que tem 2 Otimizar chamadas de função Um exemplo A fórmula de otimização de duas variáveis ​​se parece com isto. Aperfeiçoar por 2 5 50 1 Level Otimizar nível 2 2 150 4.Buy Cross CCI per, - Level Sell Cross Level, CCI per. After entrando na fórmula você precisa clicar em otimizar button. Once A otimização está completa você deve clicar na seta para baixo no botão Otimizar e escolher Exibir Gráfico de otimização 3D Em poucos segundos um lote de superfície colorido tridimensional aparecerá em um 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 classificá-lo será exibida a seta azul 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 os parâmetros do seu sistema afetam o desempenho de negociação, você pode decidir mais facilmente quais valores de parâmetro produzem frágeis e produzem resultados robustos Desempenho do sistema As configurações robustas são regiões no gráfico 3D que mostram mudanças graduais em vez de abruptas na trama de superfície. Os gráficos de otimização 3D são uma ótima ferramenta para evitar o encaixe de curvas. O encaixe de curva ou a otimização ocorre quando o sistema é mais complexo do que necessita Ser, e toda essa complexidade foi focada em condições de mercado que podem nunca acontecer novamente Mudanças radicais ou spike S nos gráficos de otimização 3D mostram claramente áreas de sobre-otimização Você deve escolher a região de parâmetro que produz um platô amplo e amplo em gráfico 3D para sua vida real de negociação Parâmetro conjuntos produzindo picos de lucro não funcionará de forma confiável em trading.3D real visualizadores de gráfico controles. AmiBroker s 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 do 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, Para você Abaixo você encontrará a lista.- para girar - mantenha pressionado o botão do mouse ESQUERDO e mova-se em direções XY - para Zoom-in, zoom-out - mantenha pressionado RIGHT botão do mouse e mover em direções XY - para mover translate - ESQUERDA botão do mouse e tecla CTRL e mover em direções XY - Animar - mantenha pressionado o botão esquerdo do mouse, arraste rapidamente e solte o botão enquanto arrasta. SPACE - animar auto-rotação LEFT ARRO W KEY - girar vert para a esquerda SETA PARA A DIREITA - girar para a direita para a direita SETA PARA CIMA - girar para o horiz para cima PARA BAIXO - para girar para baixo NUMPAD PLUS - zoom próximo NUMPAD - MINUS - zoom para fora 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 de água para cima PAGE Down - nível de água para baixo. Otimização não-exaustiva inteligente. AmiBroker agora oferece otimização inteligente não-exaustiva, além de busca regular e exaustiva Busca não-exaustiva é útil Se o número de todas as combinações de parâmetros de determinado sistema de negociação é simplesmente demasiado grande para ser viável para a pesquisa exaustiva. Pesquisa exaustiva é perfeitamente bem desde que seja razoável usá-lo Vamos dizer que você tem 2 parâmetros cada variando de 1 a 100 passo 1 Isso é 10000 combinações - perfeitamente OK para busca exaustiva Agora com 3 parâmetros você tem 1 milhão de combinações - ainda é OK para pesquisa exaustiva, mas pode ser lenghty Com 4 parâmetros você tem 100 milhões de combinações e com 5 parâmetros 1 100 y Ou ter 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 é resolvível em tempo razoável usando busca exhaustive. Aqui está Absolutamente a instrução mais simples como usar um novo otimizador não-exaustivo neste caso CMA-ES.1 Abra sua fórmula no Formula Editor.2 Adicione esta única linha no topo de sua formula. OptimizerSetEngine cmae você também pode usar spso ou trib aqui .3 Opcional Selecione seu objetivo de otimização em Análise Automática, Configurações, guia Avançado, campo de objetivo Otimização Se você pular esta etapa, otimizará para o retorno anual composto de CARDD dividido pelo máximo de retirada. Agora, se você executar a otimização usando esta fórmula, Irá usar o novo otimizador evolutivo não-exaustivo CMA-ES. Como funciona. Otimização é o processo de encontrar o mínimo ou máximo de determinada função Qualquer sistema de comércio pode ser considerado como uma função de determinado número De argumentos As entradas são parâmetros e dados de cotação a saída é o seu alvo de otimização dizer CAR MDD E você está procurando o máximo de dado function. Some de algoritmos inteligentes de otimização são baseados no comportamento animal natureza - 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 usados ​​em muitas áreas diferentes, incluindo finanças Entre PSO finanças ou CMA-ES finanças no Google e você vai encontrar muitos métodos info. Non-exaustiva ou inteligente Vai encontrar otimista global ou local O objetivo é, naturalmente, para encontrar um global, mas se houver um pico único afastado de combinações de parâmetros zilhões, métodos não-exaustivos podem não conseguir encontrar este pico único, mas tomando forma comerciante s perspecive, Encontrar único pico acentuado é 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 procurando bastante platô regiões com st E esta é a área onde os métodos inteligentes brilham. Quanto ao algoritmo usado pela pesquisa não exaustiva, ele parece o seguinte. O otimizador gera alguma população inicialmente aleatória dos conjuntos de parâmetros. B O backtest é realizado pelo AmiBroker para cada conjunto de parâmetros a partir do População c os resultados de backtests são avaliados de acordo com a lógica do algoritmo e nova população é gerada com base na evolução dos resultados, d se o novo melhor é encontrado - salvá-lo e ir para a etapa b até stop critérios são satisfeitos. Incluem um alcance de iterações máximas especificadas 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 muda o valor do valor objetivo d outros. Para usar qualquer inteligente O otimizador não-exaustivo no AmiBroker você precisa especificar o mecanismo otimizador que você deseja usar na fórmula AFL usando a função OptimizerSetEngine. A função seleciona op O motor de timization definido pelo nome AmiBroker atualmente é fornecido com 3 motores Padrão Particle Swarm Optimizer spso, Tribes Trib e CMA-ES cmae - os nomes em chaves são para ser usado em chamadas OptimizerSetEngine Além de selecionar otimizador de motor que você pode querer definir alguns De seus parâmetros internos Para fazê-lo usar OptimizerSetOption função. OptimizerSetOption nome, função de valor. A função definir parâmetros adicionais para motor de otimização externo Os parâmetros são dependentes do motor Todos os três otimizadores fornecidos com AmiBroker SPSO, Trib, CMAE suportar dois parâmetros Runs número de execuções E MaxEval testes de avaliação máxima por execução única O comportamento de cada parâmetro é dependente do motor, portanto, mesmo valores podem e normalmente irá produzir resultados diferentes com diferentes motores utilizados. A diferença entre Runs e MaxEval é a seguinte avaliação ou teste é único backtest ou avaliação Do valor de função objetivo RUN é uma execução completa do algoritmo encontrando o valor ótimo - geralmente invo Lving muitas avaliações de testes. Cada executado simplesmente RESTARTS todo o processo de otimização a partir do novo início nova população inicial aleatória Portanto, cada execução pode levar a encontrar diferentes local min max se não encontrar global Um parâmetro So Runs define o número de algoritmos subsequentes MaxEval é O número máximo de bactests avaliações em qualquer run. If único 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 máximo local, como sucessivas Vai começar a partir de uma população aleatória inicial diferente. Escolher valores de parâmetros pode ser complicado Depende do problema em teste, sua complexidade, etc, etc Qualquer método estocástico não-exaustivo não lhe dá garantia de encontrar global min max, independentemente do número de testes se É menor do que exaustiva A resposta mais fácil é especificar 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 enviados são projetados para ser simples de usar, portanto, os valores automáticos padrão razoável são usados ​​para otimização Pode ser geralmente executado sem especificar qualquer coisa aceitando defaults. It é importante entender que todos os métodos de otimização inteligentes funcionam melhor em espaços de parâmetro contínuo e funções objetivo relativamente suave Se o espaço de parâmetro é algoritmos evolutivos discretos pode ter dificuldade em encontrar o valor ideal É especialmente verdadeiro para binário On off parâmetros - eles não são adequados para qualquer método de pesquisa que usa gradiente de mudança de função objetivo como a maioria dos métodos inteligentes fazer Se seu sistema de negociação contém muitos parâmetros binários, você não deve usar otimizador inteligente diretamente sobre eles Em vez disso, tente otimizar apenas parâmetros contínuos usando Otimizador inteligente e parâmetros binários de comutação manualmente ou via externa L script. SPSO - Padrão Particle Swarm Optimizer Sweeper Optimizer. Standard Swarm Otimizador é baseado no código SPSO2007 que é suposto para produzir bons resultados desde que os parâmetros corretos, por exemplo Runs, MaxEval são fornecidos para o problema particular Picking opções corretas para o otimizador PSO pode ser complicado, portanto Os resultados podem variar significativamente de caso para caso. Vem com os códigos de fonte cheios dentro da subpasta de ADK. Código do exemplo para o optimizer padrão do enxame da partícula que encontra o valor o melhor em 1000 testes dentro do espaço da busca de 10000 combinações. OptimizerSetEngine spso OptimizerSetOption Funciona, OptimizerSetOption MaxEval, 1000.sl Optimize s, 26, 1 fa Otimizar f, 12, 1, 100, 1.Comprar Cross MACD fa, sl, 0 Vender Cross 0, MACD fa, sl. TRIBES - Parâmetro Adaptativo sem Particle Swarm Optimizer. Tribes é adaptativo, parâmetro-menos versão de PSO Otimizador não-exaustivo de otimização de enxame de partículas Para o fundo científico ver. Em teoria, ele deve executar melhor do que PSO regular, porque ele pode ajustar automaticamente os tamanhos de enxame e estratégia de algoritmo para o problema que está sendo resolvido. Prática mostra que seu desempenho é bastante semelhante ao PSO. O plugin implementa Tribes-D ie variante sem dimensão Baseado em por Maurice Clerc Códigos fonte originais usados ​​com permissão do autor. Vem com código fonte completo dentro da pasta ADK. Parâmetros suportados MaxEval - número máximo de avaliações backtests por padrão de execução 1000.Você deve aumentar o número de avaliações com 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. Runs - número de execuções reinicia padrão 5 Você pode deixar o número de execuções no valor padrão de 5.O número padrão de execuções ou reinicializações é definido como 5.Para usar otimizador Tribes, basta adicionar uma linha ao seu código. OptimizerSetOption MaxEval, 5000 5000 avaliações max. CMA-ES - Covariance Matrix Adaptação Estratégia Evolutiva Optimizer. CMA-ES Covariance Matrix Adaptação Estratégia Evolutiva é avançado otimizador não-exaustiva Para o fundo científico ver De acordo com benchmarks científicos supera nove outras estratégias evolutivas mais populares como PSO, evolução genética e diferencial. O plugin implementa a variante global de pesquisa com vários reinícios com pop crescente Ulation tamanho vem com código fonte completo dentro ADK folder. By número padrão de execuções ou reinicia é definido como 5 É aconselhável deixar o número padrão de reinicializações. Você pode variá-lo usando OptimizerSetOption Runs, N chamada, onde N deve estar no intervalo 1 10 Especificar mais de 10 execuções não é recomendado, embora seja possível Note que cada execução usa DUAS vezes o tamanho da população da execução anterior para que ele cresça exponencialmente Portanto, com 10 execuções você acaba com a população 2 10 maior 1024 vezes que a primeira execução. É outro parâmetro MaxEval O valor padrão é ZERO o que significa que o plugin irá calcular automaticamente MaxEval necessário É 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 Ao ponto da solução, tão frequentemente encontra soluções mais rapidamente do que outras estratégias. É normal que o plugin pulará algumas etapas das avaliações, se detecta que a solução foi encontrada, para ela E 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 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, Ou o número de etapas exibido pelo diálogo de progresso é apenas melhor adivinhar no momento e pode variar durante o curso de otimização. Para usar otimizador CMA-ES, você só precisa adicionar uma linha ao seu código. Isso 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 com muitos algoritmos de busca de espaço contínuo, que o parâmetro de etapa decrescente em Otimizar chamadas de funciton não afeta significativamente os tempos de otimização. A única coisa que importa é a dimensão do problema, Número de diferentes parâmetros número de otimizar chamadas de função O número de passos por parâmetro pode ser definido sem afetar o tempo de otimização, então use a resolução mais fina que você deseja Em theor Y o algoritmo deve ser capaz de encontrar solução em no máximo 900 N 3 N 3 backtests onde N é a dimensão Na prática, converge um LOT mais rápido Por exemplo, a solução em 3 N espaço de parâmetro tridimensional dizer 100 100 100 1 milhão etapas exaustivas pode Ser encontrado em tão pouco como 500-900 passos CMA-ES. Multi threaded otimização individual. Iniciando a partir de AmiBroker 5 70, além de Multithreading símbolo múltiplo você pode executar multi-threaded único símbolo de otimização Para acessar esta funcionalidade, clique em drop Se para baixo ao lado do botão Optimize na janela New Analysis e selecione Individual Optimize. Individual Optimize 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 de símbolo atual, realizará a otimização em um símbolo Em todos os símbolos e modos de filtro irá processar todos os símbolos sequencialmente, isto é, primeira otimização completa para o primeiro símbolo, então otimização no segundo símbolo, etc. M backtester não é suportado ainda 2 motores de otimização inteligente não são suportados - otimização apenas otimização obras. 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 por muito tempo.

No comments:

Post a Comment