Estratégia de negociação de teste de retorno
Uma das coisas mais úteis que você pode fazer na janela de análise é testar sua estratégia de negociação em dados históricos. Isso pode lhe dar informações valiosas sobre pontos fortes e fracos de seu sistema antes de investir dinheiro real. Este único recurso AmiBroker pode economizar muito dinheiro para você.
Escrevendo suas regras de negociação.
Primeiro você precisa ter regras objetivas (ou mecânicas) para entrar e sair do mercado. Este passo é a base da sua estratégia e você precisa pensar sobre isso sozinho, já que o sistema deve corresponder à sua tolerância ao risco, tamanho do portfólio, técnicas de gerenciamento de dinheiro e muitos outros fatores individuais.
Uma vez que você tenha suas próprias regras para negociação, você deve escrevê-las como regras de compra e venda no AmiBroker Formula Lanugage (mais short e cover se você quiser testar também short trading).
Neste capítulo, vamos considerar o sistema de crossover médio móvel muito básico. O sistema compraria ações / contratos quando os preços subirem acima da média móvel exponencial de 45 dias e venderá ações / contratos quando o preço próximo cair abaixo da média móvel exponencial de 45 dias.
A média móvel exponencial pode ser calculada em AFL usando sua função interna EMA. Tudo o que você precisa fazer é especificar a matriz de entrada e o período de cálculo da média, para que a média móvel exponencial de 45 dias dos preços de fechamento possa ser obtida pela seguinte declaração:
O identificador de fechamento refere-se ao array embutido mantendo os preços de fechamento do símbolo atualmente analisado.
Para testar se o preço de fechamento cruza acima da média móvel exponencial, usaremos a função cruzada embutida:
buy = cruz (fechar, ema (fechar, 45));
A declaração acima define uma regra de negociação de compra. Dá & quot; 1 & quot; ou & quot; verdadeiro & quot; quando fechar preço cruza acima ema (fechar, 45). Então podemos escrever a regra de venda que daria & quot; 1 & quot; quando a situação oposta acontece - fechar cruzes de preço abaixo de ema (fechar, 45):
sell = cruz (ema (fechar, 45), fechar);
Por favor, note que estamos usando a mesma função cruzada, mas a ordem oposta de argumentos.
A fórmula completa para negócios longos será assim:
buy = cruz (fechar, ema (fechar, 45));
sell = cruz (ema (fechar, 45), fechar);
OBSERVAÇÃO: para criar uma nova fórmula, abra o Editor de fórmulas usando o menu Analysis - & gt; Editor de fórmulas, digite a fórmula e escolha Ferramentas - & gt; menu Enviar para análise no editor de fórmulas.
Para fazer o back-test do seu sistema, basta clicar no botão Back test na janela de análise automática. Verifique se você digitou a fórmula que contém pelo menos as regras de compra e venda (como mostrado acima). Quando a fórmula está correta, a AmiBroker começa a analisar seus símbolos de acordo com suas regras de negociação e gera uma lista de negociações simuladas. Todo o processo é muito rápido - você pode testar milhares de símbolos em questão de minutos. A janela de progresso mostrará o tempo estimado de conclusão. Se você quiser parar o processo, basta clicar no botão Cancelar na janela de progresso.
Quando o processo é concluído, a lista de negociações simuladas é mostrada na parte inferior da janela Análise automática. (o painel Resultados). Você pode examinar quando os sinais de compra e venda ocorreram apenas clicando duas vezes no comércio no painel Resultados. Isso lhe dará sinais brutos ou não filtrados para cada barra quando as condições de compra e venda forem atendidas. Se você quiser ver apenas setas de comércio único (abrindo e fechando o comércio atualmente selecionado), você deve clicar duas vezes na linha enquanto mantém pressionada a tecla SHIFT. Alternativamente, você pode escolher o tipo de exibição, selecionando o item apropriado no menu de contexto que aparece quando você clica no painel de resultados com o botão direito do mouse.
Além da lista de resultados, você pode obter estatísticas muito detalhadas sobre o desempenho do seu sistema clicando no botão Relatório. Para saber mais sobre as estatísticas do relatório, confira a descrição da janela do relatório.
Alterando suas configurações de teste de volta.
O mecanismo de teste de retorno no AmiBroker usa alguns valores predefinidos para executar sua tarefa, incluindo o tamanho do portfólio, periodicidade (diário / semanal / mensal), quantidade de comissão, taxa de juros, perda máxima e paradas de lucro, tipo de negociações, campos de preços e assim por diante . Todas essas configurações podem ser alteradas pelo usuário usando a janela de configurações. Depois de alterar as configurações, lembre-se de executar o teste de volta novamente se quiser que os resultados estejam em sincronia com as configurações.
Por exemplo, para fazer o teste em barras semanais em vez de apenas clicar no botão Configurações, selecione a caixa combinada Semanalmente a partir da periodicidade e clique em OK e, em seguida, execute sua análise clicando em Voltar teste.
Nomes de variáveis reservados.
A tabela a seguir mostra os nomes das variáveis reservadas usadas pelo Automatic Analyzer. O significado e exemplos sobre o uso deles são dados mais adiante neste capítulo.
define & quot; vender & quot; (fechar a posição longa) regra de negociação.
CAVEAT: esta variável AFL é definida por padrão para 1 (um), independentemente do conteúdo da janela de informações, A MENOS QUE você ative o modo de futuros (SetOption (& quot; FuturesMode & quot ;, True))
Permite controlar o valor em dólares ou a porcentagem da carteira investida no comércio (veja explicações abaixo)
Até agora, discutimos o uso bastante simples do back tester. A AmiBroker, no entanto, suporta métodos e conceitos muito mais sofisticados que serão discutidos mais adiante neste capítulo. Por favor, note que o usuário iniciante deve primeiro jogar um pouco com os tópicos mais fáceis descritos acima antes de prosseguir.
Então, quando você estiver pronto, por favor, dê uma olhada nos seguintes recursos introduzidos recentemente do back-tester:
a) Host de scripts AFL para criadores de fórmulas avançados.
b) suporte aprimorado para comércios curtos.
c) a maneira de controlar o preço de execução do pedido a partir do script.
d) vários tipos de paradas no back tester.
e) dimensionamento de posição.
f) tamanho do lote e tamanho do carrapato.
g) conta de margem.
O host de script da AFL é um tópico avançado que é abordado em um documento separado disponível aqui e não discutirei neste documento. Os recursos restantes são muito mais fáceis de entender.
Suporte ao comércio curto.
Nas versões anteriores do AmiBroker, se você quisesse fazer back-teste do sistema usando negociações longas e curtas, você poderia apenas simular estratégias de parada e reversão. Quando a posição longa foi fechada, uma nova posição curta foi aberta imediatamente. Foi porque comprar e vender variáveis reservadas foram usadas para ambos os tipos de negociações.
Agora (com a versão 3.59 ou superior) existem variáveis reservadas separadas para abrir e fechar negociações longas e curtas:
comprar - & quot; true & quot; ou 1 valor abre comércio longo.
sell - & quot; true & quot; ou 1 valor fecha comércio longo.
curto - & quot; verdadeiro & quot; ou 1 valor abre negociação a descoberto.
cover - & quot; true & quot; ou 1 valor fecha comércio a descoberto.
Para fazer um back-test de shorttrades, é necessário atribuir variáveis curtas e de cobertura.
Se você usar o sistema stop-and-reverse (sempre no mercado), basta atribuir sell short e buy to cover.
Isso simula a maneira como as versões pré-3.59 funcionavam.
Mas agora o AmiBroker permite que você tenha regras de negociação separadas para ir longo e ir mais curto, conforme mostrado neste exemplo simples:
// longa troca regras de entrada e saída:
buy = cross (cci (), 100);
sell = cross (100, cci ());
// regras de entrada e saída de negociações curtas:
short = cross (-100, cci ());
cover = cross (cci (), -100);
Observe que, neste exemplo, se o CCI estiver entre -100 e 100, você está fora do mercado.
Controle de preço de negociação.
O AmiBroker agora fornece 4 novas variáveis reservadas para especificar o preço pelo qual as ordens de compra, venda, venda a descoberto e de cobertura são executadas. Essas matrizes têm os seguintes nomes: preço de compra, preço de venda, preço de venda e preço de capa.
A principal aplicação dessas variáveis é o controle do preço de negociação:
BuyPrice = IIF (dayofweek () == 1, ALTO, FECHAR);
// na segunda feira compre no alto, caso contrário compre no fim.
Então você pode escrever o seguinte para simular ordens de parada reais:
BuyStop =. a fórmula para comprar o nível de parada;
SellStop =. a fórmula para vender o nível de parada;
// a ordem de compra ocorre (em buystop ou low, o que for maior)
Compra = Cruz (Alta, BuyStop);
// se a qualquer momento durante o dia os preços caírem abaixo do nível do preço de venda (baixa & lt; ponto de venda)
// a ordem de venda ocorre (no ponto de venda ou alto, o que for menor)
Venda = Cruz (SellPrice, SellStop);
BuyPrice = max (BuyStop, Low); // certifique-se de que o preço de compra não seja inferior a Low.
SellPrice = min (SellStop, Alto); // certifique-se de que o preço de venda não seja maior que Alto.
Por favor, note que o AmiBroker pré-configura as variáveis de preço do preço de compra, preço de venda, preço de compra e preço do pacote com os valores definidos na janela de configurações do teste do sistema (mostrado abaixo), assim você pode, mas não precisa defini-los em sua fórmula. Se você não os definir, o AmiBroker funciona como nas versões antigas.
Durante o back-testing, o AmiBroker irá verificar se os valores que você atribuiu ao preço de compra, preço de venda, preço de curto prazo, preço de cobertura se encaixam na faixa alta-baixa da barra dada. Se não, o AmiBroker irá ajustá-lo para o preço alto (se o preço da matriz for maior que o alto) ou para o preço mais baixo (se o preço da matriz for menor do que o valor mais baixo)
O destino do lucro é interrompido.
Como você pode ver na figura acima, novas configurações para paradas de lucro estão disponíveis na janela de configurações de teste do sistema. As paradas de meta de lucro são executadas quando o preço alto para um determinado dia excede o nível de parada que pode ser dado como um aumento percentual ou pontual do preço de compra. Por padrão, as paradas são executadas pelo preço que você define como matriz de preço de venda (para negociações longas) ou matriz de preço de cobertura (para operações de curto prazo). Esse comportamento pode ser alterado usando & quot; Sair na parada & quot; característica.
Se você marcar & quot; Sair na parada & quot; box nas configurações as paradas serão executadas no nível de parada exato, ou seja, se você definir a meta de lucro parar em + 10% de sua parada e o preço de compra for 50 a ordem de parada será executada a 55 mesmo se sua matriz de preço de venda contiver valor diferente ( por exemplo preço de fechamento de 56).
As perdas máximas param de forma semelhante - elas são executadas quando o preço baixo de um determinado dia cai abaixo do nível de parada que pode ser dado como um aumento percentual ou pontual do preço de compra.
Esse tipo de parada é usado para proteger os lucros à medida que ele acompanha sua negociação, de modo que, a cada vez que um valor de posição atingir um novo máximo, a parada móvel é colocada em um nível mais alto. Quando o lucro cai abaixo do nível de parada móvel, a posição é fechada. Este mecanismo é ilustrado na figura abaixo (10% de trailing stop é mostrado):
/ * uma amostra de implementação de baixo nível de parada de lucro-alvo na AFL: * /
priceatbuy = BuyPrice [i];
SellPrice [i] = 1,1 * priceatbuy;
Este é um novo recurso na versão 3.9. O dimensionamento de posição no backtester é implementado por meio da nova variável reservada.
PositionSize = & lt; size array & gt;
Agora você pode controlar o valor em dólar ou a porcentagem do portfólio investido no comércio.
número positivo define valor (dólar) que é investido no comércio, por exemplo:
-100 dá 100% do tamanho atual do portfólio,
-33 dá 33% do patrimônio disponível, por exemplo:
Se menos de 100% do dinheiro disponível é investido, então o montante restante ganha taxa de juros, conforme definido nas configurações.
Há também uma nova caixa de seleção na janela de configurações de AA: & quot; Permitir encolhimento do tamanho da posição & quot; - isso controla como o backtester manipula a situação quando o tamanho da posição solicitada (via variável PositionSize) excede o caixa disponível: quando este flag é marcado, a posição é inserida com o tamanho ajustado para o caixa disponível se for desmarcada.
Para ver os tamanhos reais das posições, use um novo modo de relatório na janela de configurações AA: & quot; Lista de negociação com preços e pos. tamanho & quot;
Para o final, aqui está um exemplo da técnica de dimensionamento de posição baseada em ATR de Tharp, codificada em AFL:
Compre = & lt; sua fórmula de compra aqui & gt;
Vender = 0; // vendendo apenas por stop.
TrailStopAmount = 2 * ATR (20);
Capital = 100000; / * IMPORTANTE: Defina também nas Configurações: Equidade Inicial * /
ApplyStop (2, 2, TrailStopAmount, 1);
A técnica pode ser resumida da seguinte forma:
O capital total por símbolo é de US $ 100.000, definimos o nível de risco em 1% do patrimônio total. O nível de risco é definido da seguinte forma: se um stop móvel em uma ação de $ 50 for de, digamos, US $ 45 (o valor de dois ATRs contra a posição), a perda de US $ 5 será dividida em US $ 1.000 para dar 200 ações. Assim, o risco de perda é de US $ 1.000, mas o risco de alocação é de 200 ações x US $ 50 / ação ou US $ 10.000. Então nós estamos.
alocando 10% do capital para a compra, mas apenas arriscando $ 1000. (Trecho editado da lista de discussão do AmiBroker)
Tamanho do lote redondo e tamanho do carrapato.
Vários instrumentos são negociados com várias "unidades de negociação" ou "blocos". Por exemplo, você pode comprar um número fracionário de unidades de fundo mútuo, mas você não pode comprar um número fracionário de ações. Às vezes você tem que comprar em lotes de 10 ou 100. O AmiBroker agora permite que você especifique o tamanho do bloco no nível global e por símbolo.
Você pode definir o tamanho do lote de cada símbolo na página Informações do Symbol - & gt; (foto 3). O valor zero significa que o símbolo não tem um tamanho de lote redondo especial e usará & quot; Tamanho do lote redondo padrão & quot; (configuração global) na página de configurações de Análise automática (foto 1). Se o tamanho padrão for definido como zero, isso significa que o número fracionário de compartilhamentos / contratos é permitido.
Você também pode controlar o tamanho do lote redondo diretamente da sua fórmula AFL usando a variável reservada RoundLotSize, por exemplo:
Esta configuração controla o movimento de preço mínimo do símbolo dado. Você pode defini-lo no nível global e por símbolo. Tal como acontece com o tamanho do lote, pode definir o tamanho do carrapato por símbolo na página de informação Symbol - & gt; (foto 3). O valor zero instrui o AmiBroker a usar o & quot; tamanho padrão do tick & quot; definido na página Configurações (figura 1) da janela Análise automática. Se o tamanho padrão do tick também for definido como zero, significa que não há movimentação mínima de preço.
Você pode definir e recuperar o tamanho do carrapato também da fórmula AFL usando a variável reservada TickSize, por exemplo:
Observe que a configuração do tamanho do carrapato afeta SOMENTE as negociações realizadas por paradas internas e / ou ApplyStop (). O backtester pressupõe que os dados de preço seguem os requisitos de tamanho do tick e não altera as matrizes de preços fornecidas pelo usuário.
Portanto, especificar o tamanho do tick só faz sentido se você estiver usando paradas internas para que os pontos de saída sejam gerados em & quot; permitido & quot; níveis de preços em vez dos calculados. Por exemplo, no Japão - você não pode ter partes fracionárias de yen, portanto, você deve definir o ticksize global como 1, de modo que as paradas internas saem de negociações em níveis inteiros.
A configuração da margem da conta define o requisito de porcentagem de margem para toda a conta. O valor padrão da margem da conta é 100. Isso significa que você tem que fornecer 100% dos fundos para entrar na negociação, e é assim que o backtester funcionou nas versões anteriores. Mas agora você pode simular uma conta de margem. Quando você compra na margem, você está simplesmente pedindo dinheiro emprestado ao seu corretor para comprar ações. Com os regulamentos atuais, você pode colocar 50% do preço de compra da ação que deseja comprar e emprestar a outra metade do seu corretor. Para simular isso, insira 50 no campo Margem da conta (veja a foto 1). Se o seu capital inicial estiver definido para 10000, o seu poder de compra será então de 20000 e você poderá entrar em posições maiores. Observe que essa configuração define a margem da conta inteira e NÃO está relacionada à negociação de futuros. Em outras palavras, você pode negociar ações na conta de margem.
& quot; Formas de sinal de entrada reversa saem & quot; caixa de seleção para as configurações do Backtester.
Quando está ON (a configuração padrão) - o backtester funciona como nas versões anteriores e fecha a posição já aberta se um novo sinal de entrada na direção reversa for encontrado. Se esta chave estiver DESLIGADA - mesmo que o sinal reverso ocorra, o backtester mantém o comércio aberto no momento e não fecha a posição até que o sinal de saída regular (venda ou cobertura) seja gerado.
Em outras palavras, quando essa chave está em OFF, o backtester ignora os sinais Short durante as negociações longas e ignora os sinais Buy durante as negociações mais curtas.
Quando está ligado (as configurações padrão) - entrada e saída na mesma barra é permitida (como nas versões anteriores)
se estiver DESLIGADO - a saída pode acontecer a partir da próxima barra somente (isso se aplica a sinais regulares, há uma configuração separada para saídas geradas pelo ApplyStop). A mudança para OFF permite reproduzir o comportamento do backtester de MS que não é capaz de lidar com saídas no mesmo dia.
Inicialmente, a ideia era permitir o redesenho mais rápido de gráficos através do cálculo da fórmula de AFL apenas para aquela parte visível no gráfico. De maneira semelhante, a janela de análise automática pode usar o subconjunto de cotações disponíveis para calcular o AFL, se selecionado & # 8220; intervalo & # 8221; parâmetro é menor que & # 8220; todas as cotações & quot ;.
Observe que essa opção funciona não apenas no backtester, mas também em otimizações, explorações e varreduras.
Estratégia de negociação de teste de retorno
Ainda tem uma pergunta? Peça o seu próprio!
Antes de responder mais, quero fazer um pequeno aviso de que sou co-fundador da Upstox, uma corretora de descontos e diretor da Trade Academy, onde ensinamos os usuários a negociar.
Eu não sou programador. Eu nunca aprendi como programar (C ++, Java, python, etc.), e depois de um certo ponto, decidi conscientemente não aprender como programar. No entanto, eu gasto estratégias de backtesting de 2 a 3 horas por dia.
Como eu faço isso? Microsoft Excel.
Quando digo às pessoas que faço backtest no Excel, elas não conseguem acreditar. Por que eu usaria o Excel para desenvolver e backtest qualquer coisa quando isso pode ser feito por meio de programação?
Por causa do fluxo. Qualquer quantum lhe dirá que construir, fazer back-testing, refinar e desenvolver requer que você esteja em um ótimo estado de espírito. Estar em fluxo, na minha opinião, é o aspecto mais importante para construir uma estratégia com sucesso.
Como leva tempo para codificar uma estratégia no Excel, você tem tempo para pensar. Como você pode ver os números à sua frente, pode visualizar a estratégia que está sendo construída. E como você pode ver as coisas visualmente, pode fazer alterações rapidamente para otimizar e revisar sua estratégia. Em outras palavras, o back-testing através do Excel permite que você seja ágil.
Concedido, a programação via Excel requer uma enorme quantidade de paciência. Depois de encontrar uma boa prova de conceito, você pode testar sua hipótese em um conjunto de dados muito maior por meio de uma rota algorítmica programática. Mas, dito isso, ainda sou um grande fã do Excel.
Em caso de dúvida, K. I.S. S. Mantenha isso simples, idiota!
Em vez de contar a você a melhor ferramenta ou processo que você pode usar para backtesting, deixe-me concentrar nos maiores erros que você precisa evitar para fazer um backtest confiável.
Estes são alguns dos fatores mais importantes que você precisa ter em mente ao realizar backtesting de estratégias de negociação de ações -
Sobrecarga de dados: Este é, de longe, o maior erro que a maioria das pessoas faz na busca da criação de uma estratégia que forneça resultados espetaculares de backtested. Ao criar a estratégia, se você começar a ajustar seus parâmetros de uma maneira que maximize os retornos, essa estratégia provavelmente falhará miseravelmente em condições reais. Existem 2 maneiras de superar isso - testes fora da amostra e criação de estratégias baseadas em lógica, em vez de ajustes nos parâmetros de entrada. Bias de previsão: isso acontece quando você usa dados para gerar sinais que, de outra forma, não estavam disponíveis naquele momento no passado. Por exemplo, se o final do exercício financeiro de uma empresa é março e você usa os dados de ganhos do ano anterior em 1º de abril, é muito provável que a empresa não tenha anunciado esses dados antes de maio ou junho. Isso resultaria em um viés prospectivo. Viés de sobrevivência: este é um daqueles difíceis de perceber erros. Digamos que você tenha uma estratégia que seja negociada a partir de uma lista de 500 ações de pequena capitalização com base em alguns indicadores técnicos. As chances são de que, se você tentar obter dados de preços históricos de 10 anos para essas 500 ações para o seu backtesting, você não incluirá os dados de todas as ações que foram excluídas desse período de 10 anos. Ao testar sua estratégia, você não contabilizaria as possíveis negociações que teriam sido geradas em qualquer uma dessas ações "ruins" se você tivesse realmente executado essa estratégia durante esse período. Concentrando-se puramente nos retornos: há vários parâmetros que você precisa considerar para avaliar a qualidade de uma estratégia. Concentrar-se puramente nos retornos pode levar a grandes problemas. Por exemplo, se a Estratégia A der 10% de retorno durante um certo período com um rebaixamento máximo de -2%, e a estratégia B der 12% de retorno com um rebaixamento de -10%, então B claramente não é uma estratégia superior para A. Outros parâmetros importantes, como rebaixamento, taxa de sucesso, índice de sharpe etc. Impacto no mercado, encargos de transação: Ao analisar a viabilidade de uma estratégia, é muito importante considerar o possível impacto no mercado e também os custos de transação incorridos. . Você pode ser tentado a criar uma estratégia que compra / vende grandes volumes de algumas ações de baixa liquidez que tendem a gerar retornos excepcionais. Mas quando você entra no mercado para executar essa estratégia, um grande pedido em uma ação ilíquida move o preço que você não teria contabilizado nos testes. Além disso, os custos de transação também podem alterar substancialmente os retornos, portanto, você deve sempre observar os lucros líquidos. Mineração de dados: isso é bem parecido com o problema de superajustamento de dados. “Se você torturar os dados por tempo suficiente, confessará qualquer coisa. Essa é uma piada comum entre os cientistas de dados que acreditam que, se você passar bastante tempo, poderá encontrar um padrão em quase todos os dados! Isso não significa necessariamente que esse padrão será válido no futuro. Os fundamentos mudam: pode muito bem acontecer que você encontre uma estratégia que tenha um desempenho excepcional nos dados do passado. Mas uma mudança fundamental na dinâmica do mercado pode fazer com que a mesma estratégia falhe no futuro. É sabido que quase qualquer boa estratégia precisa continuar evoluindo com as mudanças nas condições do mercado. Prazo pequeno: É crucial testar a estratégia durante um período de tempo suficientemente longo e em condições de mercado variáveis. Isto é especialmente verdadeiro para as estratégias de negociação de ações que podem funcionar excepcionalmente bem em um mercado de touro, mas iria acabar com sua conta bancária em um mercado lateral ou bear.
Há muitas outras coisas a serem consideradas no backtesting. Mas, eventualmente, a única maneira de garantir que uma estratégia funcione em condições reais é “testá-la em condições reais”.
(Isenção de responsabilidade: Eu sou o co-fundador da Tauro Wealth. As opiniões apresentadas aqui são apenas minhas opiniões pessoais e são apenas para fins informativos).
A Tauro Wealth é uma empresa de tecnologia financeira (Tauro Wealth) que está procurando resolver os problemas enfrentados pelos investidores de varejo na Índia. Esperamos fornecer soluções abrangentes de investimento a longo prazo por uma fração dos custos tradicionais.
Teste de estratégia.
O backtesting de estratégia é uma ferramenta essencial para ver se sua estratégia funciona ou não. O software de backtesting simula sua estratégia em dados históricos e fornece um relatório de backtesting, que permite conduzir uma análise adequada do sistema de negociação. A versão de 64 bits permite carregar todos os dados necessários para até mesmo o backtesting mais preciso. Para obter informações técnicas sobre este recurso, consulte a página Wiki relacionada.
A precisão é a chave.
O MultiCharts é uma solução criada especificamente para desenvolvimento de estratégias e backtesting. Nossa filosofia é que a estratégia backtesting deve ser tão realista quanto a tecnologia moderna permite. O Multicarts de 64 bits possibilita a grande quantidade de dados Tick-by-Tick para testes precisos.
Backtesting realista.
Mesmo que nenhuma aproximação possa ser 100% perfeita, fizemos tudo para recriar com precisão condições de mercado passadas e execução de ordens para negociação de estratégia. Mecanismos de backtesting típicos têm muitas suposições e atalhos, que resultam em testes irreais e resultados não confiáveis. O MultiCharts é uma plataforma de negociação a nível institucional que minimiza os pressupostos e considera muitos fatores.
Tecnologia avançada.
O backtesting de estratégia geralmente requer muitos dados e softwares capazes de processá-los. Multi-threading é usado quando você processa a Otimização de Estratégia em MultiCharts. Ele espalha várias tarefas em diferentes núcleos, para que eles sejam concluídos muito mais rapidamente. A versão de 64 bits do MultiCharts permite que você carregue anos pares e anos de dados de marca para movimentos de preços detalhados.
Fácil de ler.
Você pode alterar o modo como seus sinais aparecem no gráfico, em apenas alguns cliques. Os pedidos de saída podem ser conectados por uma linha visível a todos os pedidos de entrada relacionados - a linha será verde se o negócio for lucrativo, vermelho, se não for. Se você não gosta dessas cores, ou qualquer outro aspecto visual, você pode mudá-lo facilmente.
Escolha sua moeda para backtesting.
A moeda base permite calcular os lucros e perdas durante a estratégia de backtesting com uma moeda especificada para pares Forex ou símbolos não-americanos. Se você voltar a testar sua estratégia em um símbolo que se baseie em uma moeda diferente da sua conta de corretor, então você pode querer aplicar uma conversão de moeda. Para tornar os resultados tão próximos da perfeição quanto possível, usamos taxas de câmbio reais para cada dia. Toda conversão de moeda ocorre nos bastidores para tornar sua negociação tão fácil quanto possível. Usamos nossos servidores para solicitar dados em segundo plano e realizar os cálculos necessários.
Todos os fatores essenciais contidos dentro
Nosso software de backtesting considera os seguintes fatores essenciais: liquidez, mudanças de preços de tic-by-tick, diferenças de preço de oferta-oferta-comércio, comissão, deslizamento, capital inicial, taxa de juros e tamanho de comércio.
Levando em consideração a liquidez.
Quando o mecanismo do MultiCharts faz o backtest de uma estratégia, ele reconhece que nem todos os pedidos com limite serão preenchidos devido à falta de liquidez. Por este motivo, você pode optar por preencher ordens quando um alvo de preço é atingido ou quando é excedido por um certo número de pontos (pips). Mais informações estão na nossa página Wiki.
Perguntar, licitar e negociar preços.
Backtesting leva em conta que a compra real acontece nos preços de venda, venda real a preços de oferta. Isso faz com que nossa simulação backtesting seja tão realista quanto possível. Backtesting de estratégia precisa pode dar ao usuário uma emulação mais realista. Para testar estratégias de alta freqüência como a arbitragem estatística, o usuário pode precisar levar em consideração os dados históricos de lances / pedidos, além dos dados comerciais históricos.
Simulação tick-by-tick.
Bar Magnifier é essencial para aumentar a precisão durante o backtesting. O MultiCharts pode construir barras maiores de componentes menores - barras de segundo e minuto fora de tiques, barras de hora e dia fora dos minutos. Você pode recriar movimentos de preços exatos dentro de cada barra, usando o Bar Magnifier. Por exemplo, o Magnifier de Bar pode carregar de forma invisível os minutos que compõem a hora, e a estratégia será backtested minuto a minuto. Saiba mais detalhes técnicos aqui.
Estratégias para prática imediata.
O mecanismo de backtesting da MultiCharts mesmo emula o mercado, o limite, o limite, o limite de parada e os pedidos de um-cancelamento-outro (OCO). Destino de lucro, stop-loss e trailing stops também são recursos de backtesting padrão. Além disso, o MultiCharts vem com mais de 80 estratégias EasyLanguage, para que você possa praticar backtesting.
OwnData e todos os produtos MCFX foram descontinuados. Encontre aqui a substituição MCFX. Bitcoin to Dollar Charts on TradingView.
Backtesting
O que é 'Backtesting'
Backtesting é o processo de testar uma estratégia de negociação em dados históricos relevantes para assegurar sua viabilidade antes que o comerciante arrisque qualquer capital real. Um comerciante pode simular a negociação de uma estratégia durante um período de tempo apropriado e analisar os resultados para os níveis de rentabilidade e risco.
BREAKING DOWN 'Backtesting'
Uma quantidade significativa do volume negociado no mercado financeiro de hoje é feita por comerciantes que usam algum tipo de automação de computador. Isto é especialmente verdadeiro para estratégias comerciais baseadas em análises técnicas. Backtesting é parte integrante do desenvolvimento de um sistema de negociação automatizado.
Backtesting significativo.
Quando feito corretamente, backtesting pode ser uma ferramenta inestimável para tomar decisões sobre se utilizar uma estratégia de negociação. O período de tempo da amostra em que um backtest é executado é crítico. A duração do período de tempo da amostra deve ser suficientemente longa para incluir períodos de diferentes condições do mercado, incluindo as tendências de elevação, as tendências de baixa e as negociações vinculadas ao intervalo. Realizar um teste em apenas um tipo de condição de mercado pode produzir resultados únicos que podem não funcionar bem em outras condições do mercado, o que pode levar a conclusões falsas.
O tamanho da amostra no número de trocas nos resultados do teste também é crucial. Se o número da amostra de negócios for muito pequeno, o teste pode não ser estatisticamente significativo. Uma amostra com muitos negócios durante um período muito longo pode produzir resultados otimizados, em que um número irresistible de negociações vencedoras coalesce em torno de uma condição de mercado específica ou tendência favorável para a estratégia. Isso também pode causar um comerciante para tirar conclusões enganosas.
Mantendo a realidade.
Um backtest deve refletir a realidade na melhor medida possível. Os custos de negociação que, de outra forma, podem ser considerados insignificantes pelos comerciantes, quando analisados individualmente, podem ter um impacto significativo quando o custo agregado é calculado durante todo o período de backtesting. Esses custos incluem comissões, spreads e derrapagens, e podem determinar a diferença entre se uma estratégia comercial é lucrativa ou não. A maioria dos pacotes de software de backtesting incluem métodos para explicar esses custos.
Talvez a métrica mais importante associada ao backtesting seja o nível de robustez da estratégia. Isso é conseguido comparando os resultados de um teste de retorno otimizado em um período de tempo de amostra específico (referido como na amostra) com os resultados de um backtest com a mesma estratégia e configurações em um período de tempo de amostra diferente (referido como out - de-amostra). Se os resultados forem igualmente rentáveis, a estratégia pode ser considerada válida e robusta e está pronta para ser implementada em mercados em tempo real. Se a estratégia falhar em comparações fora da amostra, então a estratégia precisa de um desenvolvimento adicional, ou deve ser abandonada por completo.
Back-Testing manual; Praticando a Arte da Negociação.
Ação de preço e macro.
O comércio, como muitas outras coisas da vida, pode ser melhorado com a experiência. Isso é muitas vezes quando novos comerciantes falham. Depois de perceber esse fato, eles consideram uma negociação muito simples.
& ldquo; Está aprendendo a negociar lucrativamente meu tempo? & rdquo;
Eu e muitos outros comerciantes (ou talvez mais precisamente & lsquo; have & rsquo;) responderam um enfático & lsquo; YES! & Rsquo; a essa pergunta, e embarcou em um processo de aprendizagem para obter nossos resultados ao ponto que queremos. Mas nem todos estariam naquele barco.
O difícil sobre a experiência ao negociar é o fato de que essa mesma experiência pode nos custar dinheiro. Ao longo dos anos, eu ouvi muitos argumentos alegadamente e lsquo; ah, que é a sua taxa de matrícula para os mercados. & Rsquo; E esse pode ser o caso. Mas existem outras maneiras de ganhar experiência na velha arte da especulação.
Os comerciantes de cereais e arroz, os criadores originais da análise técnica, empregariam um elemento de & lsquo; paper trading, & rsquo; para rastrear lucros ou perdas hipotéticas para as estratégias que eles estão negociando.
Isso é semelhante ao comércio de demonstração hoje; uma maneira de testar nossas teorias e estratégias no mercado sem risco financeiro. Isso é exatamente o mesmo que operar ao vivo, não, porque não há um provedor de liquidez no outro lado do seu negócio executando a execução REAL; mas pode me permitir testar minhas estratégias em um ambiente dinâmico.
A desvantagem para o comércio de demonstração ou o teste de demonstração de uma estratégia é o fato de que pode levar muito tempo para obter resultados suficientes para determinar a consistência de minhas estratégias. Se eu quiser testar uma estratégia em um gráfico diário, pode levar-me um ano inteiro apenas para colocar alguns negócios. E depois desses poucos negócios, eu não tenho certeza de que eu fiquei confortável o suficiente com a estratégia de empregá-lo ao vivo (afinal, apenas alguns negócios foram colocados, como eu sei se isso era uma anomalia ou não).
É aqui que o back-testing manual pode entrar em jogo. Este é um manoiismo no qual eu posso simular um ambiente de mercado ao vivo com preços dinâmicos. É importante notar que qualquer back-test que realizamos, manual ou automatizado, sofre de uma desvantagem singular; e esse é o fato de que o desempenho passado não é necessariamente se replicar dessa maneira no futuro. Mas esse não é o ponto do back-test manual. A razão pela qual eu estou fazendo o teste é me treinar, usando as ferramentas da estratégia que está sendo testada, para que eu possa saber como efetivamente empregar a abordagem.
Eu posso fazer isso em qualquer período de tempo, com qualquer par de moedas e quase qualquer estratégia que negocie.
Etapa 1: vista o gráfico.
O primeiro passo quando o back-testing manual é para vestir nossos gráficos com os indicadores que usaremos na estratégia que estamos testando. Para esta ilustração, eu irei usar um EMA de 89 períodos e um CCI de 13 períodos. Depois de obter o quadro vestido, estamos prontos para prosseguir.
Criado por James Stanley.
Passo 2: Dê um passo atrás no tempo.
Depois de termos nosso quadro vestido, precisamos ir para um período anterior no gráfico. O aqui é que eu quero não estar familiarizado com a ação de preço para o período testado. Quero que os preços sejam tão próximos da dinâmica do mercado real quanto possível. Quero que isso seja imprevisível.
Para fazer isso, posso simplesmente clicar e arrastar para trás no tempo para chegar a uma data anterior no gráfico.
Criado por James Stanley.
Passo 3: avança no tempo.
Esse recurso é muito benéfico para os comerciantes que realizam muitos back-testing manual, mas muitas vezes desconhecidos para muitos. Isso tem a ver com o & lsquo; forward, & rsquo; e & lsquo; para trás, & rsquo; setas no seu teclado.
Se eu quisesse voltar 1 hora, posso simplesmente pressionar a tecla de seta para trás, & rsquo; um tempo.
No entanto, se o teste de I & rsquo; m em um gráfico de 4 horas e ndash; Pressionar as teclas de seta para frente ou para trás será equivalente a avançar ou retroceder 4 horas de cada vez.
Esta é uma característica extremamente conveniente que me permite percorrer uma grande distância no gráfico em um curto período de tempo.
Neste ponto, quero avançar no gráfico até encontrar um negócio que atenda aos meus critérios. Uma vez que eu faço, eu vou pausar, e estamos pronto para passar para a etapa 5.
Etapa 4: registre os resultados.
Este passo pode se desviar entre comerciante para comerciante com base no estilo e maneirismo da manutenção de registros. Exorto todos os novos comerciantes ou aqueles novos a back-testing manual para escrever cada um desses negócios; seja um diário, uma planilha eletrônica ou um registro comercial. Algumas informações importantes são de destaque aqui:
Onde você colocaria sua parada?
Onde você estaria procurando ganhar lucros?
Você pode registrar todas essas informações, bem como quaisquer outras observações que você fez. Após algumas negociações, você terá algumas informações que você pode usar para tornar a estratégia mais eficaz para seus objetivos.
Passo 5: enxaguar e repetir.
Depois de termos encontrado um comércio hipotético, nesse ponto poderemos avançar no futuro para ter uma idéia de como isso pode ter funcionado. Mais uma vez, podemos registrar esses resultados em nossos periódicos.
Então podemos avançar para o próximo comércio. Podemos continuar a fazer isso até sentir o conforto e a experiência com a estratégia para avançar para a próxima etapa de teste. Para alguns comerciantes que experimentam testes com saldos menores, outros dão o salto diretamente aos mercados ativos, enquanto outros, como eu e o ndash; depois, testará a estratégia em uma conta demo com preços dinâmicos ao vivo.
--- Escrito por James B. Stanley.
Para entrar em contato com James Stanley, você pode seguir James no Twitter @JStanleyFX.
O DailyFX fornece notícias e análises técnicas sobre as tendências que influenciam os mercados monetários globais.
Próximos eventos.
Calendário econômico Forex.
O desempenho passado não é uma indicação de resultados futuros.
DailyFX é o site de notícias e educação do Grupo IG.
Backtesting: Interpretando o Passado.
O backtesting é um componente chave do desenvolvimento efetivo do sistema de negociação. Isso é realizado reconstruindo, com dados históricos, negociações que teriam ocorrido no passado usando regras definidas por uma determinada estratégia. O resultado oferece estatísticas que podem ser usadas para avaliar a eficácia da estratégia. Usando esses dados, os traders podem otimizar e melhorar suas estratégias, encontrar falhas técnicas ou teóricas e ganhar confiança em sua estratégia antes de aplicá-la nos mercados reais. A teoria subjacente é que qualquer estratégia que funcionou bem no passado provavelmente funcionará bem no futuro, e, inversamente, qualquer estratégia que tenha desempenho fraco no passado provavelmente terá um desempenho ruim no futuro. Este artigo analisa quais aplicativos são usados para o backtest, que tipo de dados são obtidos e como usá-los!
Os dados e as ferramentas.
Lucro ou Prejuízo Líquido - ganho ou perda percentual líquido. Prazo - datas passadas em que o teste ocorreu. Universo - Ações que foram incluídas no backtest. Medidas de volatilidade - Máximo percentual de vantagens e desvantagens. Médias - Ganho médio percentual e perda média, barras médias mantidas. Exposição - Porcentagem de capital investido (ou exposto ao mercado). Rácios - rácio de ganhos / perdas Retorno anualizado - Retorno percentual ao longo de um ano. Retorno ajustado ao risco - Retorno percentual em função do risco.
Normalmente, o software de backtesting terá duas telas importantes. O primeiro permite que o comerciante personalize as configurações para o backtesting. Essas personalizações incluem tudo, desde período de tempo até custos de comissão. Aqui está um exemplo de tal tela no AmiBroker:
A segunda tela é o relatório de resultados de backtesting real. É aqui que você pode encontrar todas as estatísticas mencionadas acima. Mais uma vez, aqui está um exemplo desta tela no AmiBroker:
Em geral, a maioria dos softwares de negociação contém elementos semelhantes. Alguns programas de software high-end também incluem funcionalidades adicionais para executar dimensionamento automático de posição, otimização e outros recursos mais avançados.
Os 10 mandamentos.
Leve em conta as amplas tendências de mercado no período de tempo em que uma determinada estratégia foi testada. Por exemplo, se uma estratégia só foi testada novamente em 1999-2000, ela pode não se sair bem em um mercado em baixa. Muitas vezes é uma boa ideia fazer backtest durante um longo período de tempo que engloba vários tipos diferentes de condições de mercado. Leve em conta o universo em que ocorreu o backtesting. Por exemplo, se um sistema amplo de mercado for testado com um universo constituído por ações de tecnologia, ele pode não se dar bem em setores diferentes. Como regra geral, se uma estratégia é direcionada a um gênero específico de estoque, limite o universo a esse gênero; mas, em todos os outros casos, mantenha um universo grande para fins de teste. Medidas de volatilidade são extremamente importantes para considerar no desenvolvimento de um sistema de negociação. Isto é especialmente verdadeiro para as contas alavancadas, que são sujeitas a chamadas de margem se o seu patrimônio cai abaixo de um certo ponto. Os comerciantes devem procurar manter a volatilidade baixa, a fim de reduzir o risco e facilitar a transição dentro e fora de um determinado estoque. O número médio de bares mantidos também é muito importante para assistir ao desenvolver um sistema de negociação. Embora a maioria dos softwares de backtesting inclua custos de comissão nos cálculos finais, isso não significa que você deva ignorar essa estatística. Se possível, aumentar o seu número médio de barras pode reduzir os custos de comissão e melhorar seu retorno geral. A exposição é uma faca de dois gumes. O aumento da exposição pode levar a lucros mais altos ou perdas maiores, enquanto a diminuição da exposição significa lucros menores ou perdas menores. No entanto, em geral, é uma boa ideia manter a exposição abaixo de 70%, a fim de reduzir o risco e facilitar a transição dentro e fora de um determinado estoque. A estatística de ganho / perda médio, combinada com a taxa de ganhos por perdas, pode ser útil para determinar o tamanho ideal de posição e gerenciamento de dinheiro usando técnicas como o Critério Kelly. (Veja Gerenciamento de Dinheiro Usando o Critério Kelly). Os comerciantes podem assumir posições maiores e reduzir os custos de comissão, aumentando seus ganhos médios e aumentando sua taxa de ganhos por perdas. O retorno anualizado é importante porque é usado como uma ferramenta para avaliar os retornos de um sistema em relação a outros locais de investimento. É importante não só olhar para o retorno anualizado global, mas também para levar em conta o aumento ou diminuição do risco. Isso pode ser feito observando o retorno ajustado ao risco, que é responsável por vários fatores de risco. Antes de um sistema de negociação ser adotado, ele deve superar todos os outros espaços de investimento em risco igual ou menor. A personalização de backtesting é extremamente importante. Muitos aplicativos de backtesting têm entradas para quantidades de comissão, tamanhos de lotes redondos (ou fracionários), tamanhos de ticks, requisitos de margem, taxas de juros, premissas de slippage, regras de dimensionamento de posição, regras de saída de barra idêntica, configurações de parada (trailing) e muito mais. Para obter os resultados de backtesting mais precisos, é importante ajustar essas configurações para imitar o broker que será usado quando o sistema for ativado. O backtesting às vezes pode levar a algo conhecido como otimização excessiva. Essa é uma condição em que os resultados de desempenho são tão altamente ajustados ao passado que não são mais precisos no futuro. Geralmente, é uma boa ideia implementar regras que se apliquem a todas as ações, ou a um conjunto selecionado de ações específicas, e que não sejam otimizadas na medida em que as regras não sejam mais compreensíveis pelo criador. O backtesting nem sempre é a maneira mais precisa de avaliar a eficácia de um determinado sistema de negociação. Às vezes, as estratégias que tiveram bom desempenho no passado não se dão bem no presente. O desempenho passado não é indicativo de resultados futuros. Certifique-se de que o comércio de papel é um sistema que foi testado com sucesso antes de entrar em operação para garantir que a estratégia ainda se aplica na prática.
O backtesting é um dos aspectos mais importantes do desenvolvimento de um sistema de negociação. Se criado e interpretado corretamente, ele pode ajudar os traders a otimizar e melhorar suas estratégias, encontrar falhas técnicas ou teóricas, bem como ganhar confiança em sua estratégia antes de aplicá-la aos mercados do mundo real.
Ainda tem uma pergunta? Peça o seu próprio!
Antes de responder mais, quero fazer um pequeno aviso de que sou co-fundador da Upstox, uma corretora de descontos e diretor da Trade Academy, onde ensinamos os usuários a negociar.
Eu não sou programador. Eu nunca aprendi como programar (C ++, Java, python, etc.), e depois de um certo ponto, decidi conscientemente não aprender como programar. No entanto, eu gasto estratégias de backtesting de 2 a 3 horas por dia.
Como eu faço isso? Microsoft Excel.
Quando digo às pessoas que faço backtest no Excel, elas não conseguem acreditar. Por que eu usaria o Excel para desenvolver e backtest qualquer coisa quando isso pode ser feito por meio de programação?
Por causa do fluxo. Qualquer quantum lhe dirá que construir, fazer back-testing, refinar e desenvolver requer que você esteja em um ótimo estado de espírito. Estar em fluxo, na minha opinião, é o aspecto mais importante para construir uma estratégia com sucesso.
Como leva tempo para codificar uma estratégia no Excel, você tem tempo para pensar. Como você pode ver os números à sua frente, pode visualizar a estratégia que está sendo construída. E como você pode ver as coisas visualmente, pode fazer alterações rapidamente para otimizar e revisar sua estratégia. Em outras palavras, o back-testing através do Excel permite que você seja ágil.
Concedido, a programação via Excel requer uma enorme quantidade de paciência. Depois de encontrar uma boa prova de conceito, você pode testar sua hipótese em um conjunto de dados muito maior por meio de uma rota algorítmica programática. Mas, dito isso, ainda sou um grande fã do Excel.
Em caso de dúvida, K. I.S. S. Mantenha isso simples, idiota!
Em vez de contar a você a melhor ferramenta ou processo que você pode usar para backtesting, deixe-me concentrar nos maiores erros que você precisa evitar para fazer um backtest confiável.
Estes são alguns dos fatores mais importantes que você precisa ter em mente ao realizar backtesting de estratégias de negociação de ações -
Sobrecarga de dados: Este é, de longe, o maior erro que a maioria das pessoas faz na busca da criação de uma estratégia que forneça resultados espetaculares de backtested. Ao criar a estratégia, se você começar a ajustar seus parâmetros de uma maneira que maximize os retornos, essa estratégia provavelmente falhará miseravelmente em condições reais. Existem 2 maneiras de superar isso - testes fora da amostra e criação de estratégias baseadas em lógica, em vez de ajustes nos parâmetros de entrada. Bias de previsão: isso acontece quando você usa dados para gerar sinais que, de outra forma, não estavam disponíveis naquele momento no passado. Por exemplo, se o final do exercício financeiro de uma empresa é março e você usa os dados de ganhos do ano anterior em 1º de abril, é muito provável que a empresa não tenha anunciado esses dados antes de maio ou junho. Isso resultaria em um viés prospectivo. Viés de sobrevivência: este é um daqueles difíceis de perceber erros. Digamos que você tenha uma estratégia que seja negociada a partir de uma lista de 500 ações de pequena capitalização com base em alguns indicadores técnicos. As chances são de que, se você tentar obter dados de preços históricos de 10 anos para essas 500 ações para o seu backtesting, você não incluirá os dados de todas as ações que foram excluídas desse período de 10 anos. Ao testar sua estratégia, você não contabilizaria as possíveis negociações que teriam sido geradas em qualquer uma dessas ações "ruins" se você tivesse realmente executado essa estratégia durante esse período. Concentrando-se puramente nos retornos: há vários parâmetros que você precisa considerar para avaliar a qualidade de uma estratégia. Concentrar-se puramente nos retornos pode levar a grandes problemas. Por exemplo, se a Estratégia A der 10% de retorno durante um certo período com um rebaixamento máximo de -2%, e a estratégia B der 12% de retorno com um rebaixamento de -10%, então B claramente não é uma estratégia superior para A. Outros parâmetros importantes, como rebaixamento, taxa de sucesso, índice de sharpe etc. Impacto no mercado, encargos de transação: Ao analisar a viabilidade de uma estratégia, é muito importante considerar o possível impacto no mercado e também os custos de transação incorridos. . Você pode ser tentado a criar uma estratégia que compra / vende grandes volumes de algumas ações de baixa liquidez que tendem a gerar retornos excepcionais. Mas quando você entra no mercado para executar essa estratégia, um grande pedido em uma ação ilíquida move o preço que você não teria contabilizado nos testes. Além disso, os custos de transação também podem alterar substancialmente os retornos, portanto, você deve sempre observar os lucros líquidos. Mineração de dados: isso é bem parecido com o problema de superajustamento de dados. “Se você torturar os dados por tempo suficiente, confessará qualquer coisa. Essa é uma piada comum entre os cientistas de dados que acreditam que, se você passar bastante tempo, poderá encontrar um padrão em quase todos os dados! Isso não significa necessariamente que esse padrão será válido no futuro. Os fundamentos mudam: pode muito bem acontecer que você encontre uma estratégia que tenha um desempenho excepcional nos dados do passado. Mas uma mudança fundamental na dinâmica do mercado pode fazer com que a mesma estratégia falhe no futuro. É sabido que quase qualquer boa estratégia precisa continuar evoluindo com as mudanças nas condições do mercado. Prazo pequeno: É crucial testar a estratégia durante um período de tempo suficientemente longo e em condições de mercado variáveis. Isto é especialmente verdadeiro para as estratégias de negociação de ações que podem funcionar excepcionalmente bem em um mercado de touro, mas iria acabar com sua conta bancária em um mercado lateral ou bear.
Há muitas outras coisas a serem consideradas no backtesting. Mas, eventualmente, a única maneira de garantir que uma estratégia funcione em condições reais é “testá-la em condições reais”.
(Isenção de responsabilidade: Eu sou o co-fundador da Tauro Wealth. As opiniões apresentadas aqui são apenas minhas opiniões pessoais e são apenas para fins informativos).
A Tauro Wealth é uma empresa de tecnologia financeira (Tauro Wealth) que está procurando resolver os problemas enfrentados pelos investidores de varejo na Índia. Esperamos fornecer soluções abrangentes de investimento a longo prazo por uma fração dos custos tradicionais.
Teste de estratégia.
O backtesting de estratégia é uma ferramenta essencial para ver se sua estratégia funciona ou não. O software de backtesting simula sua estratégia em dados históricos e fornece um relatório de backtesting, que permite conduzir uma análise adequada do sistema de negociação. A versão de 64 bits permite carregar todos os dados necessários para até mesmo o backtesting mais preciso. Para obter informações técnicas sobre este recurso, consulte a página Wiki relacionada.
A precisão é a chave.
O MultiCharts é uma solução criada especificamente para desenvolvimento de estratégias e backtesting. Nossa filosofia é que a estratégia backtesting deve ser tão realista quanto a tecnologia moderna permite. O Multicarts de 64 bits possibilita a grande quantidade de dados Tick-by-Tick para testes precisos.
Backtesting realista.
Mesmo que nenhuma aproximação possa ser 100% perfeita, fizemos tudo para recriar com precisão condições de mercado passadas e execução de ordens para negociação de estratégia. Mecanismos de backtesting típicos têm muitas suposições e atalhos, que resultam em testes irreais e resultados não confiáveis. O MultiCharts é uma plataforma de negociação a nível institucional que minimiza os pressupostos e considera muitos fatores.
Tecnologia avançada.
O backtesting de estratégia geralmente requer muitos dados e softwares capazes de processá-los. Multi-threading é usado quando você processa a Otimização de Estratégia em MultiCharts. Ele espalha várias tarefas em diferentes núcleos, para que eles sejam concluídos muito mais rapidamente. A versão de 64 bits do MultiCharts permite que você carregue anos pares e anos de dados de marca para movimentos de preços detalhados.
Fácil de ler.
Você pode alterar o modo como seus sinais aparecem no gráfico, em apenas alguns cliques. Os pedidos de saída podem ser conectados por uma linha visível a todos os pedidos de entrada relacionados - a linha será verde se o negócio for lucrativo, vermelho, se não for. Se você não gosta dessas cores, ou qualquer outro aspecto visual, você pode mudá-lo facilmente.
Escolha sua moeda para backtesting.
A moeda base permite calcular os lucros e perdas durante a estratégia de backtesting com uma moeda especificada para pares Forex ou símbolos não-americanos. Se você voltar a testar sua estratégia em um símbolo que se baseie em uma moeda diferente da sua conta de corretor, então você pode querer aplicar uma conversão de moeda. Para tornar os resultados tão próximos da perfeição quanto possível, usamos taxas de câmbio reais para cada dia. Toda conversão de moeda ocorre nos bastidores para tornar sua negociação tão fácil quanto possível. Usamos nossos servidores para solicitar dados em segundo plano e realizar os cálculos necessários.
Todos os fatores essenciais contidos dentro
Nosso software de backtesting considera os seguintes fatores essenciais: liquidez, mudanças de preços de tic-by-tick, diferenças de preço de oferta-oferta-comércio, comissão, deslizamento, capital inicial, taxa de juros e tamanho de comércio.
Levando em consideração a liquidez.
Quando o mecanismo do MultiCharts faz o backtest de uma estratégia, ele reconhece que nem todos os pedidos com limite serão preenchidos devido à falta de liquidez. Por este motivo, você pode optar por preencher ordens quando um alvo de preço é atingido ou quando é excedido por um certo número de pontos (pips). Mais informações estão na nossa página Wiki.
Perguntar, licitar e negociar preços.
Backtesting leva em conta que a compra real acontece nos preços de venda, venda real a preços de oferta. Isso faz com que nossa simulação backtesting seja tão realista quanto possível. Backtesting de estratégia precisa pode dar ao usuário uma emulação mais realista. Para testar estratégias de alta freqüência como a arbitragem estatística, o usuário pode precisar levar em consideração os dados históricos de lances / pedidos, além dos dados comerciais históricos.
Simulação tick-by-tick.
Bar Magnifier é essencial para aumentar a precisão durante o backtesting. O MultiCharts pode construir barras maiores de componentes menores - barras de segundo e minuto fora de tiques, barras de hora e dia fora dos minutos. Você pode recriar movimentos de preços exatos dentro de cada barra, usando o Bar Magnifier. Por exemplo, o Magnifier de Bar pode carregar de forma invisível os minutos que compõem a hora, e a estratégia será backtested minuto a minuto. Saiba mais detalhes técnicos aqui.
Estratégias para prática imediata.
O mecanismo de backtesting da MultiCharts mesmo emula o mercado, o limite, o limite, o limite de parada e os pedidos de um-cancelamento-outro (OCO). Destino de lucro, stop-loss e trailing stops também são recursos de backtesting padrão. Além disso, o MultiCharts vem com mais de 80 estratégias EasyLanguage, para que você possa praticar backtesting.
OwnData e todos os produtos MCFX foram descontinuados. Encontre aqui a substituição MCFX. Bitcoin to Dollar Charts on TradingView.
Backtesting
O que é 'Backtesting'
Backtesting é o processo de testar uma estratégia de negociação em dados históricos relevantes para assegurar sua viabilidade antes que o comerciante arrisque qualquer capital real. Um comerciante pode simular a negociação de uma estratégia durante um período de tempo apropriado e analisar os resultados para os níveis de rentabilidade e risco.
BREAKING DOWN 'Backtesting'
Uma quantidade significativa do volume negociado no mercado financeiro de hoje é feita por comerciantes que usam algum tipo de automação de computador. Isto é especialmente verdadeiro para estratégias comerciais baseadas em análises técnicas. Backtesting é parte integrante do desenvolvimento de um sistema de negociação automatizado.
Backtesting significativo.
Quando feito corretamente, backtesting pode ser uma ferramenta inestimável para tomar decisões sobre se utilizar uma estratégia de negociação. O período de tempo da amostra em que um backtest é executado é crítico. A duração do período de tempo da amostra deve ser suficientemente longa para incluir períodos de diferentes condições do mercado, incluindo as tendências de elevação, as tendências de baixa e as negociações vinculadas ao intervalo. Realizar um teste em apenas um tipo de condição de mercado pode produzir resultados únicos que podem não funcionar bem em outras condições do mercado, o que pode levar a conclusões falsas.
O tamanho da amostra no número de trocas nos resultados do teste também é crucial. Se o número da amostra de negócios for muito pequeno, o teste pode não ser estatisticamente significativo. Uma amostra com muitos negócios durante um período muito longo pode produzir resultados otimizados, em que um número irresistible de negociações vencedoras coalesce em torno de uma condição de mercado específica ou tendência favorável para a estratégia. Isso também pode causar um comerciante para tirar conclusões enganosas.
Mantendo a realidade.
Um backtest deve refletir a realidade na melhor medida possível. Os custos de negociação que, de outra forma, podem ser considerados insignificantes pelos comerciantes, quando analisados individualmente, podem ter um impacto significativo quando o custo agregado é calculado durante todo o período de backtesting. Esses custos incluem comissões, spreads e derrapagens, e podem determinar a diferença entre se uma estratégia comercial é lucrativa ou não. A maioria dos pacotes de software de backtesting incluem métodos para explicar esses custos.
Talvez a métrica mais importante associada ao backtesting seja o nível de robustez da estratégia. Isso é conseguido comparando os resultados de um teste de retorno otimizado em um período de tempo de amostra específico (referido como na amostra) com os resultados de um backtest com a mesma estratégia e configurações em um período de tempo de amostra diferente (referido como out - de-amostra). Se os resultados forem igualmente rentáveis, a estratégia pode ser considerada válida e robusta e está pronta para ser implementada em mercados em tempo real. Se a estratégia falhar em comparações fora da amostra, então a estratégia precisa de um desenvolvimento adicional, ou deve ser abandonada por completo.
Back-Testing manual; Praticando a Arte da Negociação.
Ação de preço e macro.
O comércio, como muitas outras coisas da vida, pode ser melhorado com a experiência. Isso é muitas vezes quando novos comerciantes falham. Depois de perceber esse fato, eles consideram uma negociação muito simples.
& ldquo; Está aprendendo a negociar lucrativamente meu tempo? & rdquo;
Eu e muitos outros comerciantes (ou talvez mais precisamente & lsquo; have & rsquo;) responderam um enfático & lsquo; YES! & Rsquo; a essa pergunta, e embarcou em um processo de aprendizagem para obter nossos resultados ao ponto que queremos. Mas nem todos estariam naquele barco.
O difícil sobre a experiência ao negociar é o fato de que essa mesma experiência pode nos custar dinheiro. Ao longo dos anos, eu ouvi muitos argumentos alegadamente e lsquo; ah, que é a sua taxa de matrícula para os mercados. & Rsquo; E esse pode ser o caso. Mas existem outras maneiras de ganhar experiência na velha arte da especulação.
Os comerciantes de cereais e arroz, os criadores originais da análise técnica, empregariam um elemento de & lsquo; paper trading, & rsquo; para rastrear lucros ou perdas hipotéticas para as estratégias que eles estão negociando.
Isso é semelhante ao comércio de demonstração hoje; uma maneira de testar nossas teorias e estratégias no mercado sem risco financeiro. Isso é exatamente o mesmo que operar ao vivo, não, porque não há um provedor de liquidez no outro lado do seu negócio executando a execução REAL; mas pode me permitir testar minhas estratégias em um ambiente dinâmico.
A desvantagem para o comércio de demonstração ou o teste de demonstração de uma estratégia é o fato de que pode levar muito tempo para obter resultados suficientes para determinar a consistência de minhas estratégias. Se eu quiser testar uma estratégia em um gráfico diário, pode levar-me um ano inteiro apenas para colocar alguns negócios. E depois desses poucos negócios, eu não tenho certeza de que eu fiquei confortável o suficiente com a estratégia de empregá-lo ao vivo (afinal, apenas alguns negócios foram colocados, como eu sei se isso era uma anomalia ou não).
É aqui que o back-testing manual pode entrar em jogo. Este é um manoiismo no qual eu posso simular um ambiente de mercado ao vivo com preços dinâmicos. É importante notar que qualquer back-test que realizamos, manual ou automatizado, sofre de uma desvantagem singular; e esse é o fato de que o desempenho passado não é necessariamente se replicar dessa maneira no futuro. Mas esse não é o ponto do back-test manual. A razão pela qual eu estou fazendo o teste é me treinar, usando as ferramentas da estratégia que está sendo testada, para que eu possa saber como efetivamente empregar a abordagem.
Eu posso fazer isso em qualquer período de tempo, com qualquer par de moedas e quase qualquer estratégia que negocie.
Etapa 1: vista o gráfico.
O primeiro passo quando o back-testing manual é para vestir nossos gráficos com os indicadores que usaremos na estratégia que estamos testando. Para esta ilustração, eu irei usar um EMA de 89 períodos e um CCI de 13 períodos. Depois de obter o quadro vestido, estamos prontos para prosseguir.
Criado por James Stanley.
Passo 2: Dê um passo atrás no tempo.
Depois de termos nosso quadro vestido, precisamos ir para um período anterior no gráfico. O aqui é que eu quero não estar familiarizado com a ação de preço para o período testado. Quero que os preços sejam tão próximos da dinâmica do mercado real quanto possível. Quero que isso seja imprevisível.
Para fazer isso, posso simplesmente clicar e arrastar para trás no tempo para chegar a uma data anterior no gráfico.
Criado por James Stanley.
Passo 3: avança no tempo.
Esse recurso é muito benéfico para os comerciantes que realizam muitos back-testing manual, mas muitas vezes desconhecidos para muitos. Isso tem a ver com o & lsquo; forward, & rsquo; e & lsquo; para trás, & rsquo; setas no seu teclado.
Se eu quisesse voltar 1 hora, posso simplesmente pressionar a tecla de seta para trás, & rsquo; um tempo.
No entanto, se o teste de I & rsquo; m em um gráfico de 4 horas e ndash; Pressionar as teclas de seta para frente ou para trás será equivalente a avançar ou retroceder 4 horas de cada vez.
Esta é uma característica extremamente conveniente que me permite percorrer uma grande distância no gráfico em um curto período de tempo.
Neste ponto, quero avançar no gráfico até encontrar um negócio que atenda aos meus critérios. Uma vez que eu faço, eu vou pausar, e estamos pronto para passar para a etapa 5.
Etapa 4: registre os resultados.
Este passo pode se desviar entre comerciante para comerciante com base no estilo e maneirismo da manutenção de registros. Exorto todos os novos comerciantes ou aqueles novos a back-testing manual para escrever cada um desses negócios; seja um diário, uma planilha eletrônica ou um registro comercial. Algumas informações importantes são de destaque aqui:
Onde você colocaria sua parada?
Onde você estaria procurando ganhar lucros?
Você pode registrar todas essas informações, bem como quaisquer outras observações que você fez. Após algumas negociações, você terá algumas informações que você pode usar para tornar a estratégia mais eficaz para seus objetivos.
Passo 5: enxaguar e repetir.
Depois de termos encontrado um comércio hipotético, nesse ponto poderemos avançar no futuro para ter uma idéia de como isso pode ter funcionado. Mais uma vez, podemos registrar esses resultados em nossos periódicos.
Então podemos avançar para o próximo comércio. Podemos continuar a fazer isso até sentir o conforto e a experiência com a estratégia para avançar para a próxima etapa de teste. Para alguns comerciantes que experimentam testes com saldos menores, outros dão o salto diretamente aos mercados ativos, enquanto outros, como eu e o ndash; depois, testará a estratégia em uma conta demo com preços dinâmicos ao vivo.
--- Escrito por James B. Stanley.
Para entrar em contato com James Stanley, você pode seguir James no Twitter @JStanleyFX.
O DailyFX fornece notícias e análises técnicas sobre as tendências que influenciam os mercados monetários globais.
Próximos eventos.
Calendário econômico Forex.
O desempenho passado não é uma indicação de resultados futuros.
DailyFX é o site de notícias e educação do Grupo IG.
Backtesting: Interpretando o Passado.
O backtesting é um componente chave do desenvolvimento efetivo do sistema de negociação. Isso é realizado reconstruindo, com dados históricos, negociações que teriam ocorrido no passado usando regras definidas por uma determinada estratégia. O resultado oferece estatísticas que podem ser usadas para avaliar a eficácia da estratégia. Usando esses dados, os traders podem otimizar e melhorar suas estratégias, encontrar falhas técnicas ou teóricas e ganhar confiança em sua estratégia antes de aplicá-la nos mercados reais. A teoria subjacente é que qualquer estratégia que funcionou bem no passado provavelmente funcionará bem no futuro, e, inversamente, qualquer estratégia que tenha desempenho fraco no passado provavelmente terá um desempenho ruim no futuro. Este artigo analisa quais aplicativos são usados para o backtest, que tipo de dados são obtidos e como usá-los!
Os dados e as ferramentas.
Lucro ou Prejuízo Líquido - ganho ou perda percentual líquido. Prazo - datas passadas em que o teste ocorreu. Universo - Ações que foram incluídas no backtest. Medidas de volatilidade - Máximo percentual de vantagens e desvantagens. Médias - Ganho médio percentual e perda média, barras médias mantidas. Exposição - Porcentagem de capital investido (ou exposto ao mercado). Rácios - rácio de ganhos / perdas Retorno anualizado - Retorno percentual ao longo de um ano. Retorno ajustado ao risco - Retorno percentual em função do risco.
Normalmente, o software de backtesting terá duas telas importantes. O primeiro permite que o comerciante personalize as configurações para o backtesting. Essas personalizações incluem tudo, desde período de tempo até custos de comissão. Aqui está um exemplo de tal tela no AmiBroker:
A segunda tela é o relatório de resultados de backtesting real. É aqui que você pode encontrar todas as estatísticas mencionadas acima. Mais uma vez, aqui está um exemplo desta tela no AmiBroker:
Em geral, a maioria dos softwares de negociação contém elementos semelhantes. Alguns programas de software high-end também incluem funcionalidades adicionais para executar dimensionamento automático de posição, otimização e outros recursos mais avançados.
Os 10 mandamentos.
Leve em conta as amplas tendências de mercado no período de tempo em que uma determinada estratégia foi testada. Por exemplo, se uma estratégia só foi testada novamente em 1999-2000, ela pode não se sair bem em um mercado em baixa. Muitas vezes é uma boa ideia fazer backtest durante um longo período de tempo que engloba vários tipos diferentes de condições de mercado. Leve em conta o universo em que ocorreu o backtesting. Por exemplo, se um sistema amplo de mercado for testado com um universo constituído por ações de tecnologia, ele pode não se dar bem em setores diferentes. Como regra geral, se uma estratégia é direcionada a um gênero específico de estoque, limite o universo a esse gênero; mas, em todos os outros casos, mantenha um universo grande para fins de teste. Medidas de volatilidade são extremamente importantes para considerar no desenvolvimento de um sistema de negociação. Isto é especialmente verdadeiro para as contas alavancadas, que são sujeitas a chamadas de margem se o seu patrimônio cai abaixo de um certo ponto. Os comerciantes devem procurar manter a volatilidade baixa, a fim de reduzir o risco e facilitar a transição dentro e fora de um determinado estoque. O número médio de bares mantidos também é muito importante para assistir ao desenvolver um sistema de negociação. Embora a maioria dos softwares de backtesting inclua custos de comissão nos cálculos finais, isso não significa que você deva ignorar essa estatística. Se possível, aumentar o seu número médio de barras pode reduzir os custos de comissão e melhorar seu retorno geral. A exposição é uma faca de dois gumes. O aumento da exposição pode levar a lucros mais altos ou perdas maiores, enquanto a diminuição da exposição significa lucros menores ou perdas menores. No entanto, em geral, é uma boa ideia manter a exposição abaixo de 70%, a fim de reduzir o risco e facilitar a transição dentro e fora de um determinado estoque. A estatística de ganho / perda médio, combinada com a taxa de ganhos por perdas, pode ser útil para determinar o tamanho ideal de posição e gerenciamento de dinheiro usando técnicas como o Critério Kelly. (Veja Gerenciamento de Dinheiro Usando o Critério Kelly). Os comerciantes podem assumir posições maiores e reduzir os custos de comissão, aumentando seus ganhos médios e aumentando sua taxa de ganhos por perdas. O retorno anualizado é importante porque é usado como uma ferramenta para avaliar os retornos de um sistema em relação a outros locais de investimento. É importante não só olhar para o retorno anualizado global, mas também para levar em conta o aumento ou diminuição do risco. Isso pode ser feito observando o retorno ajustado ao risco, que é responsável por vários fatores de risco. Antes de um sistema de negociação ser adotado, ele deve superar todos os outros espaços de investimento em risco igual ou menor. A personalização de backtesting é extremamente importante. Muitos aplicativos de backtesting têm entradas para quantidades de comissão, tamanhos de lotes redondos (ou fracionários), tamanhos de ticks, requisitos de margem, taxas de juros, premissas de slippage, regras de dimensionamento de posição, regras de saída de barra idêntica, configurações de parada (trailing) e muito mais. Para obter os resultados de backtesting mais precisos, é importante ajustar essas configurações para imitar o broker que será usado quando o sistema for ativado. O backtesting às vezes pode levar a algo conhecido como otimização excessiva. Essa é uma condição em que os resultados de desempenho são tão altamente ajustados ao passado que não são mais precisos no futuro. Geralmente, é uma boa ideia implementar regras que se apliquem a todas as ações, ou a um conjunto selecionado de ações específicas, e que não sejam otimizadas na medida em que as regras não sejam mais compreensíveis pelo criador. O backtesting nem sempre é a maneira mais precisa de avaliar a eficácia de um determinado sistema de negociação. Às vezes, as estratégias que tiveram bom desempenho no passado não se dão bem no presente. O desempenho passado não é indicativo de resultados futuros. Certifique-se de que o comércio de papel é um sistema que foi testado com sucesso antes de entrar em operação para garantir que a estratégia ainda se aplica na prática.
O backtesting é um dos aspectos mais importantes do desenvolvimento de um sistema de negociação. Se criado e interpretado corretamente, ele pode ajudar os traders a otimizar e melhorar suas estratégias, encontrar falhas técnicas ou teóricas, bem como ganhar confiança em sua estratégia antes de aplicá-la aos mercados do mundo real.
Comments
Post a Comment