Trading system filter


Estratégia de Negociação do Sistema de Negociação de Longo Prazo (Saída do Filtro 038) I. Estratégia de Negociação Desenvolvedor: Bruce Babcock Fonte: Babcock, B. (1997). Os 80 sistemas da solução SampP. Sacramento, CA: A Reality Based Trading Company. Conceito: O sistema de negociação de ações com base em um momento de série temporal. Objetivo de Pesquisa: Verificação de desempenho do modelo de momentum de preço simples. Especificação: Tabela 1. Resultados: Figura 1-2. Trade Setup: Ontem8217s O momentum de 11 dias é maior que o de 11 dias de dois dias atrás. Carteira: Cinco mercados de ações futuros (DJ, MD, NK, NQ, SP). Dados: 36 anos desde 1980. Plataforma de Teste: MATLAB. II. Teste de Sensibilidade Todos os gráficos em 3-D são seguidos por gráficos de contorno 2D para Fator de Lucro, Índice de Desempenho da Úlcera, Índice de Desempenho da Úlcera, CAGR, Descarga Máxima, Percentual de Negociações com Lucros Lucros e Média. Vitória / Média Índice de Perda. A imagem final mostra a sensibilidade da curva de capital. Variáveis ​​testadas: LookBack amp N (Definições: Tabela 1): Figura 1 Desempenho da Carteira (Entradas: Tabela 1 Commission amp Slippage: 0).Corrente da Estratégia Forex: Sistema Breakout de Canal com Filtro de Volatilidade Utilizando sistemas de negociação de alta volatilidade historicamente funcionou bem em grandes pares de moedas, mas a estratégia de forex mostrou-se bastante vulnerável a mudanças nas condições de mercado. Tal rigidez faz dele um dos principais candidatos a filtros de volatilidade, e as expectativas de volatilidade das Opções de Câmbio mostram-se promissoras na determinação do momento oportuno para negociar a estratégia de negociação do Canal Breakout. Sistema de Negociação Breakout de Canal: Forças e Fraquezas O indicador de negociação de Canal Breakout é impressionante em sua simplicidade e ainda se mostrou promissor como uma estratégia de negociação independente. O conceito é simples: desenhe uma linha na mais alta das últimas N barras e a mais baixa delas. Essas linhas fornecem o canal e a estratégia Breakout do canal simplesmente procura trocar rompimentos em qualquer direção. Indicador de Quebra de Canal em Euro / Dólar Americano Par de moedas geradas usando o FXCM Strategy Trader No gráfico acima, podemos ver o indicador de Canal Breakout e vários negócios hipotéticos usando altos e baixos do canal como pontos de entrada. À primeira vista, podemos obter rapidamente uma boa noção de onde esta estratégia foi bem sucedida e falhou no passado. A estratégia compra o EURUSD no parrsche mais alto dos últimos 20 dias e vende o menor valor mais baixo. Se o preço retroceder rapidamente, ele terá comprado e vendido nos piores preços possíveis e, como tal, está mal nos mercados com limites de oferta. Isso é praticamente o oposto da estratégia de Índice de Força Relativa de negociação. e, como tal, faz sentido usar um filtro de condições de mercado semelhante para determinar as condições de negociação apropriadas no mercado. Expectativas de Volatilidade do Mercado de Opções Forex: Prevendo as Condições do Mercado Como no nosso sistema de filtro de negociação RSI. Mais uma vez, usaremos os preços das opções forex para ler as expectativas de volatilidade do mercado. A seção a seguir é uma cópia direta do artigo anterior e os leitores podem ignorá-la se já estiverem familiarizados com o conceito de Volatilidade Implícita de Opções de Câmbio: Expectativas de volatilidade são um fator muito importante na determinação do preço de uma opção. Uma opção se tornará mais cara se os comerciantes esperarem que a moeda subjacente se mova substancialmente durante o período de tempo especificado. De fato, podemos olhar para um preço de opções e derivar a volatilidade implícita, que nos diz exatamente quanto o preço das opções atuais prevê que a moeda se moverá ao longo de sua expiração. Nós já usamos esses índices em vários relatórios do DailyFX, e é uma extensão natural discutir como eles podem ser úteis para a nossa estratégia de RSI de referência. No nosso Outlook de estratégia de Forex semanal. Usamos um derivativo específico dos níveis de volatilidade implícita para determinar nossos vieses de estratégia para pares de moedas individuais. Percentual de Volatilidade ndash Quanto maior o número, maior a probabilidade de vermos fortes movimentos no preço. Esse número nos informa onde os atuais níveis de volatilidade implícita estão em relação aos últimos 90 dias de negociação. Descobrimos que as volatilidades implícitas tendem a permanecer muito altas ou muito baixas por longos períodos de tempo. Como tal, é útil saber onde está o atual nível de volatilidade implícita em relação ao seu intervalo de médio prazo. Vamos estender essa idéia para desenvolver um filtro de negociação para a estratégia Breakout Channel sensível à volatilidade com as seguintes regras de negociação: Sistema Breakout de Canal Forex com Regra de Entrada de Filtro de Volatilidade: Defina uma ordem de entrada stop para comprar o par de moedas em sua máxima máxima. últimos 20 barras mais um pip. Defina a ordem de entrada de parada para vender o par de moedas na mínima mais baixa das últimas 20 barras menos um pip. Regra de Saída: A estratégia sairá de uma negociação e virará a direção quando o sinal oposto for acionado. Ele também fechará todas as negociações abertas se o filtro de volatilidade cruzar o limite acima mencionado. Filtro: A estratégia não pode entrar em negociações e deve fechar qualquer negociação aberta se o percentil de volatilidade ficar abaixo de um limite específico. Backtesting nosso sistema de interrupções de canal com filtro de volatilidade Usando o software FXCMs Strategy Trader, codificaremos uma estratégia baseada na quebra de canal. Embora não possamos compartilhar nossos dados de volatilidade de forma nativa por meio da plataforma, o sistema de Canal Breakout básico está disponível para teste. Veja um guia em vídeo sobre backtesting e otimização de estratégias no Strategy Trader aqui. Baixe e instale a plataforma Strategy Trader. em seguida, importe o seguinte exemplo de código da FXCMrsquos Forex Code Source. Para um guia em vídeo sobre como importar o código fonte para o seu programa Strategy Trader, veja aqui. Efeitos de Filtro de Volatilidade do Mercado de Opções Forex na Estratégia de Negociação de Quebra de Canal Corremos esta estratégia nos pares EURUSD, GBPUSD, USDJPY, USDCHF, USDCAD, AUDUSD e NZDUSD usando seus respectivos valores de volatilidade. Assumimos custos de transação de 3 pips no EURUSD, USDJPY e USDCHF e 4 pips nos outros. Abaixo estão as curvas de patrimônio hipotético da referida estratégia executadas em quatro diferentes limiares de filtro de volatilidade. Gerado usando o FXCM Strategy Trader Embora o desempenho passado não seja garantia de retornos futuros, a estratégia mostra-se promissora na negociação desses pares de moedas selecionados. O sistema de linha de base ldquoUnfilteredrdquot do Breakout de Canal funciona razoavelmente bem para uma ideia de negociação tão simples. Observar a divisão entre os diferentes limiares do filtro de volatilidade também mostra alguma promessa. O filtro mais agressivo pode cortar a negociação, a menos que o índice de volatilidade individual esteja abaixo de seu índice percentil de 90%, relativamente bem ajustado em termos de risco. De acordo com estimativas hipotéticas, o filtro do 90º percentil teria cortado o patamar máximo de 16.900 para 8.700 no trecho de estratificação entre o maior e o último trecho, resultando em maior eqüidade final. A curva de capital demonstrada para o 75º percentil de corte mostra um rebaixamento ligeiramente maior do que o do percentil 90 mais agressivo, mas a diferença na equidade final teoricamente faz de seus retornos ajustados pelo risco o melhor de qualquer uma de nossas cinco curvas de patrimônio. Esse nível de filtro aparentemente permite que a estratégia participe de muitas das melhores extensões de desempenho, ao mesmo tempo protegendo-a de mercados mais lentos. Nossos piores desempenhos são os níveis de corte percentil 50 e 25. Embora o menor deles pareça manter a estratégia fora dos piores períodos de desempenho abaixo do esperado, o percentil 50 mantém o sistema nos horários errados, sem fazer o suficiente para proteger contra quedas. Com base em nossos resultados hipotéticos, parece que os filtros de volatilidade bastante agressivos fazem um trabalho razoavelmente bom na proteção contra períodos de baixo desempenho na estratégia Breakout de Canal. Aplicando nossa análise a estratégias existentes / estilos de negociação Os backtests hipotéticos mostram que a estratégia Breakout de Canal funciona de maneira respeitável nos últimos 5 anos de negociações, e os resultados de linha de base melhoram sensivelmente se introduzirmos um filtro implícito baseado em volatilidade. Publicamos esses mesmos números de volatilidade todos os dias às 17h para pares de moedas individuais no portal DailyFX Technical Analysis. e os comerciantes podem acompanhar a evolução dos níveis de volatilidade implícita no mercado de opções cambiais usando a referida página. Embora o desempenho passado nunca seja uma garantia de resultados futuros, nossos backtests sugerem que o sistema Channel Breakout, favorável à volatilidade, tem um desempenho bem menor se nossos níveis de volatilidade estiverem abaixo do 75º percentil dos 90 dias anteriores. Dado que vimos que a Estratégia de Índice de Força Relativa tem melhor desempenho quando o oposto exato é que os percentuais de volatilidade abaixo estão abaixo de 75 m, parece que temos uma boa combinação de estilos de negociação de benchmark que historicamente tiveram bom desempenho em diferentes condições de mercado. Se você gostaria de sugerir idéias para este tópico ou qualquer outra estratégia de forex que você gostaria de ver nesta série, sinta-se à vontade para enviar um e-mail ao autor David Rodriacuteguez em drodriguezdailyfx. Para ser adicionado a esta lista de distribuição authorrsquos, envie um e-mail com a linha de assunto ldquodistribution listrdquo Ver artigos anteriores desta série: Escrito por David Rodriacuteguez, Estrategista Quantitativo para DailyFXNovembro 12, 2012 5:00 am 8 comments Exibições: 5495 Neste artigo eu irei crie um filtro de tendência (também conhecido como filtro de modo de mercado ou filtro de regime) que seja adaptável à volatilidade e utilize alguns dos princípios básicos da histerese para reduzir os sinais falsos (serras invisíveis). Como você deve saber, muitas vezes utilizarei a média móvel simples de 200 períodos (200-SMA) para determinar quando um mercado está no modo touro ou em um gráfico diário. Quando o preço fecha acima do nosso 200-SMA estamos em um mercado de touro. Da mesma forma, quando o preço está abaixo do nosso 200-SMA estamos em um mercado de baixa. Naturalmente, essas regras criarão alguns sinais falsos. No final deste artigo, você terá um filtro de modo de mercado que pode ser usado no desenvolvimento de seu sistema, que pode produzir resultados melhores do que um filtro padrão de 200-SMA. Para construir o nosso melhor filtro de tendência de mercado, usaremos os seguintes conceitos: Noções básicas de histerese Ao construir sistemas de negociação, muitas das decisões têm um resultado binário. Por exemplo, o mercado é de baixa ou alta. Você leva o comércio ou não. A introdução de uma área 8220gray8221 nem sempre é considerada. Neste artigo, eu vou apresentar um conceito chamado histerese e como ele pode ser aplicado à nossa negociação. A histerese foi usada em um artigo anterior sobre a redução de falhas em um sistema de negociação de crossover médio móvel. Enquanto a palavra histerese não foi usada especificamente naquele artigo, foi um bom exemplo. A analogia comum para ajudar a entender o conceito de histerese é imaginar como funciona um termostato. Let8217s dizem que estamos vivendo em um clima frio e estamos usando um termostato para manter a temperatura de uma sala a 70 graus F (limiar crítico). Quando a temperatura cai abaixo de nosso limiar crítico, os aquecedores ligam e começam a soprar ar quente na sala. Tomando isso literalmente, assim que a temperatura se move para 69.9, nosso aquecedor começa a funcionar e começa a soprar ar quente na sala, elevando a temperatura. Quando a temperatura atinge 70.0, nossos aquecedores desligam. Em pouco tempo a sala começa a esfriar e nossos aquecedores devem ligar novamente. O que temos é um sistema que está constantemente desligado e ligado para manter a temperatura em 70 graus. Isso é ineficiente, pois produz muito desgaste nos componentes mecânicos e desperdiça combustível. Como você deve ter adivinhado, a histerese é uma maneira de corrigir esse problema. Mais em apenas um momento. O objetivo deste artigo é melhorar nosso filtro de modo de mercado. Abaixo está o resultado de comprar o índice de caixa da SampP quando o preço fecha acima do 200-SMA e vendendo quando o preço fecha abaixo do 200-SMA. Isso é semelhante ao nosso exemplo de termostato. Em vez de ligar o forno para aquecer uma sala, vamos abrir uma nova posição quando um limite crítico (200-SMA) é ultrapassado. Para manter as coisas simples, não há curto. Para todos os exemplos deste artigo, estamos começando com uma conta de 100.000 e arriscando 1.000 para cada negociação. O número de compartilhamentos é dimensionado com base em um cálculo de ATR de 20 dias. Para contabilizar derrapagens e comissões 30 é deduzido para cada viagem de ida e volta. SMALine Média (Fechar, 200) Se (Fechar gt SMALine) então Comprar próxima barra no mercado If (Fechar lt SMALine) e depois Vender próxima barra no mercado Na imagem acima podemos ver que entramos no mercado seis vezes antes de a negociação se mover significativamente em nosso favor. As primeiras cinco tentativas foram fechadas com prejuízo, com o preço sendo transferido do território de touros para o território de ursos. That8217s cinco negociações perdedoras consecutivas Trading Bands Voltando ao nosso exemplo de termostato, como resolvemos o problema do forno ligando e desligando tantas vezes Como reduzimos o número de sinais que Let8217s criam uma zona em torno de nossa temperatura ideal de 70 graus . Esta zona ligará os aquecedores quando a temperatura atingir 69 graus e desligará quando a temperatura atingir 71 graus. Nossa temperatura ideal está no meio de uma banda com a banda superior em 71 e a banda inferior em 69. A banda inferior é quando ligamos o forno e a banda superior é quando desligamos o forno. A zona no meio é a nossa histerese. Em nosso exemplo de termostato, estamos reduzindo sinais falsos, fornecendo histerese em torno de nossa temperatura ideal de 70 graus. Let8217s usa o conceito de histerese para tentar remover alguns desses sinais falsos. Mas, assim como nossa temperatura ideal, queremos uma banda superior e uma banda inferior para designar nossas 8220 linhas na areia8221, onde agimos. Existem muitas maneiras de criar essas bandas. Para simplificar, os let8217s criam as bandas dos extremos de preço para cada barra. Ou seja, para a nossa banda superior, usaremos o 200-SMA dos agudos diários e, para a banda inferior, usaremos o 200-SMA dos baixos diários. Esta banda flutua em torno do nosso ponto ideal, que é o 200-SMA. Ambas as bandas superior e inferior variam de acordo com o passado recente. Em resumo, nosso sistema tem memória e se ajusta à volatilidade em expansão ou contratação. O código EasyLanguage para o nosso novo sistema é parecido com isto: SMALine Average (Close, 200) UpperBand Média (High, 200) LowerBand Average (Low, 200) Se (Close cruza UpperBand) então Buy next bar no market If (Close crosses sob LowerBand), em seguida, vender próxima barra no mercado Abaixo está uma tela mostrando o efeito de abrir um novo comércio após a barra diária fecha acima da banda superior. Reduzimos nossos cinco negócios consecutivos perdidos para dois comércios. Aqui estão os resultados com o uso de nossas novas bandas como pontos de gatilho. Olhando para a tabela de desempenho acima, podemos ver uma melhoria em quase todos os aspectos do desempenho chave do sistema. Mais notavelmente, aumento do Lucro Líquido, Fator de Lucro, Vencedores Percentuais e Lucro Líquido do Comércio Médio. Também reduzimos o número de negociações e o número de negociações perdedoras consecutivas. No final, acabamos realmente com a mesma quantidade de lucro líquido, mas realizamos essa tarefa com menos negócios, mais lucrativos. É interessante notar que o nosso Expectancy Score cai mesmo quando aumentamos o valor Expectancy de 1.55 para 1.71. Isso se deve ao reduzido número de oportunidades de negociação. Proxy de preço Um proxy de preço nada mais é do que usar o resultado de um indicador baseado em preço em vez de preço diretamente. Isso geralmente é feito para suavizar o preço. Existem muitas maneiras de suavizar o preço. Eu não consegui entrar neles aqui. Tal tópico é ótimo para outro artigo. Por enquanto, podemos suavizar nosso preço diário usando uma média móvel exponencial de período rápido (EMA). Let8217s escolhe um EMA de 5 dias (5-EMA). Cada dia calculamos o 5-EMA e o it8217s este valor que deve estar acima ou abaixo dos nossos limites de trigger. Ao usar a EMA como um proxy para o nosso preço, estamos tentando remover parte do ruído das flutuações diárias de preço. Abaixo está o que o código EasyLanguage pode parecer. SMALine Average (Close, 200) UpperBand Média (High, 200) LowerBand Average (Baixa, 200) PriceProxy XAverage (Close, 5) Se (PriceProxy cruza UpperBand), então Buy next bar no mercado If (PriceProxy cruza em LowerBand), em seguida, Sell próxima barra no mercado Abaixo está um exemplo de uma entrada de comércio. Observe que a negociação é aberta quando o nosso proxy de preço (linha amarela) cruza a faixa superior. Também reduzimos nossos negócios perdidos para um. Vamos ver como isso afeta nosso desempenho. Olhando para a tabela de desempenho da estratégia acima, estamos ganhando um pouco menos de dinheiro. No entanto, estamos novamente sendo mais eficientes com nossos negócios, eliminando negociações não lucrativas. Reduzimos o número de negociações perdedoras consecutivas, aumentamos as negociações vencedoras consecutivas e aumentamos nosso percentual de vencedores para 50. Então, qual estratégia é melhor? Tudo depende do que você quer ou do que você está confortável. Algumas pessoas vão querer simplesmente pegar o máximo de dinheiro possível. Outros desejarão reduzir o número de negociações perdedoras consecutivas. Os exemplos acima são projetados para demonstrar o efeito que um filtro de tendência 8220better8221 pode ter em uma estratégia de negociação simples. Se quisermos usar isso em um sistema de negociação, seria ideal criar uma função a partir desse código que passaria de volta se estivéssemos em uma tendência de bear ou bull. No entanto, o aspecto de programação de tal tarefa está realmente além do escopo deste artigo. No entanto, abaixo está um exemplo rápido de configuração de duas variáveis ​​booleanas (no EasyLanguage) que podem ser usadas como sinalizadores de tendência: BullMarket PriceProxy gt UpperBand BearMarket PriceProxy lt LowerBand Neste artigo criamos um filtro de tendência dinâmica que suaviza o preço e se adapta à volatilidade do mercado. e utiliza princípios de histerese. Com apenas algumas linhas de código, podemos reduzir significativamente o número de sinais falsos comumente associados a esse estilo de estratégia de negociação. Este tipo de filtro pode ser eficaz na construção de sistemas de negociação para ETFs, futuros e Forex. December 21, 2012 2:43 pm Eu tenho uma pergunta fácil e (talvez) uma pergunta mais difícil. Primeiro, você escreve 8220O número de ações é escalado com base em um cálculo ATR de 20 dias.8221 I8217m tentando corrigir isso com 1000 risco / comércio. Foi a parada ATR (20) e, em seguida, compartilha 1000 / ATR (20) Segundo, quais são seus pensamentos sobre o uso de sinais redundantes em backtesting Suponha que a saída para SMA Cross Only fosse uma parada de 5 bar e nos Dias 1, 3 e 5 você tem cruzes. Normalmente, os sinais redundantes não são incluídos e você faria backtest apenas uma posição aberta de cada vez, mas isso pode introduzir um viés Quando devem ou não devem ser incluídos na análise de backtesting e como eles podem ser fatorados no dimensionamento da posição ao fazer a transição da estratégia para o sistema 27 de dezembro de 2012 5:16 am 1) Sim, 8222 como o número de ações foi determinado. 2) Não tenho certeza do que você quer dizer com sinais redundantes no backtesting. Você quer dizer escalar dentro / fora-de-ofícios Dezembro 28, 2012 7:49 am Os sinais redundantes são sinais comerciais subsequentes que ocorrem quando uma posição (na mesma direção) já foi tomada. Por exemplo, se o I8217m estiver procurando um fechamento acima do Bollinger Band superior de yesterday8217s, talvez eu veja isso em três dias consecutivos. Normalmente, os backtests não incluiriam os sinais redundantes. Eu só me pergunto como não incluí-los poderia distorcer os resultados. Em diferentes ocasiões, eu considerava argumentos a favor e contra a inclusão de sinais redundantes (como alguém os trocaria no contexto de um sistema é, então, outra questão). Quais são os seus pensamentos? 28 de dezembro de 2012 08:35 am Sinais redundantes, pirâmide ou dimensionamento em um comércio pode ser uma forma legítima de comércio. Tudo depende de como você deseja negociar. Ao decidir não receber sinais redundantes durante o backtesting, não se está inclinando os resultados. Você está simplesmente fazendo uma escolha para não trocar sinais redundantes, assim esses sinais redundantes são inválidos durante o backtesting. Em suma, eles não fazem parte do plano, portanto, são legitimamente ignorados. Se você decidir receber sinais redundantes, descobrirá que precisa ajustar seu risco de modo que cada posição aberta não arrisque mais do que o máximo por limite determinado. Do ponto de vista de codificação, isso pode complicar o código. 3 de janeiro de 2013, 15: 59h Este não é um caso de backteste como você. Enquanto você tomaria os sinais redundantes para fins de backtesting, você ainda trocaria uma posição de cada vez. Deixe-me emprestar um exemplo do mundo das opções. Muitos comércios de opções são colocados X dias para expirar (DTE). Para backtest isso, você poderia ter 12 negócios por ano muitos anos para obter uma amostra decente. Se tomarmos 30 como exemplo, não há nada especial sobre 30 DTE. O que você realmente quer backtest é a estratégia e não quando a negociação é feita. Portanto, você poderia usar a mesma abordagem e aplicá-la com 40 DTE, 39 DTE, 38 DTE, 37 DTE, 36 DTE, 8230 20 DTE, etc. Agora, em vez de ter 12 negócios por ano no backtest, você tem mais de 200 , talvez, ou talvez todos os dias do ano. Não é que, na prática, você colocasse um negócio todos os dias do ano, mas estivesse tentando eliminar o arbitrário. 3 de janeiro de 2013 7:00 pm Mark, acho que vejo o que você está dizendo agora. Se eu entendi corretamente e você está simplesmente usando uma variável para alterar os dias para o DTE, não vejo como isso é diferente de testar qualquer outra variável de negociação. Você tem um determinado sistema de negociação e quando ocorre uma configuração, o sistema pode trocar X dias pelo DTE. Esse valor de entrada (8216X8217) pode ser testado em um intervalo de 1 a 30, o que deve ser feito para testar a estabilidade nesse intervalo. Eu acho que isso é um teste válido. Um resultado ruim no teste mostraria mudanças dramáticas entre os valores vizinhos. Espero ter entendido corretamente. Construa Sistemas de Negociação Lucrativos

Comments