Monday 9 April 2018

Novas estratégias de negociação testadas


Backtesting: interpretando o passado.
Backtesting é um componente chave do desenvolvimento efetivo do sistema comercial. É conseguido reconstruindo, com dados históricos, trades 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 comerciantes 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 aos 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 tido um desempenho fraco no passado provavelmente irá apresentar um desempenho fraco no futuro. Este artigo analisa o que os aplicativos são usados ​​para testar, o tipo de dados obtidos e como usá-lo!
Os dados e as ferramentas.
Lucro ou prejuízo líquido - Ganhos ou perdas de percentagem líquida. Prazo - Datas passadas nas quais o teste ocorreu. Universo - estoques incluídos no backtest. Medidas de volatilidade - percentual máximo para cima e para baixo. Médias - Ganho médio percentual e perda média, barras médias mantidas. Exposição - Porcentagem de capital investido (ou exposto ao mercado). Razões - Índice de vitórias para perdas. Retorno anualizado - Retorno percentual ao longo de um ano. Retorno ajustado ao risco - Retorno percentual em função do risco.
Normalmente, o software backtesting terá duas telas que são importantes. O primeiro permite ao comerciante personalizar as configurações de backtesting. Essas personalizações incluem tudo, desde o período de tempo até os custos de comissão. Aqui está um exemplo dessa tela em AmiBroker:
A segunda tela é o relatório de resultados de backtesting. Aqui é onde você pode encontrar todas as estatísticas mencionadas acima. Mais uma vez, aqui está um exemplo desta tela em 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.
Tenha em consideração as tendências gerais do mercado no período em que uma determinada estratégia foi testada. Por exemplo, se uma estratégia só foi testada de 1999 a 2000, pode não estar bem em um mercado ostentoso. Muitas vezes, é uma boa idéia fazer um teste longo em um longo período de tempo que engloba vários tipos diferentes de condições de mercado. Tome em consideração o universo em que ocorreu o backtesting. Por exemplo, se um sistema de mercado amplo é testado com um universo composto por estoques tecnológicos, pode deixar de funcionar bem em diferentes setores. 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 grande universo para fins de teste. As medidas de volatilidade são extremamente importantes a serem consideradas no desenvolvimento de um sistema comercial. Isto é especialmente verdadeiro para as contas alavancadas, que são submetidas a chamadas de margem se o seu patrimônio cai abaixo de um determinado ponto. Os comerciantes devem procurar manter a volatilidade baixa para reduzir o risco e permitir uma transição mais fácil dentro e fora de uma determinada ação. O número médio de barras mantidas é também muito importante para assistir ao desenvolver um sistema comercial. Embora a maioria dos softwares de backtesting incluam custos de comissão nos cálculos finais, isso não significa que você deve ignorar esta estatística. Se possível, aumentando o número médio de barras mantidas pode reduzir os custos de comissão e melhorar seu retorno geral. A exposição é uma espada de dois gumes. O aumento da exposição pode levar a maiores lucros ou maiores perdas, enquanto a menor exposição significa lucros menores ou menores perdas. No entanto, em geral, é uma boa idéia manter a exposição abaixo de 70%, a fim de reduzir o risco e permitir uma transição mais fácil dentro e fora de uma determinada ação. A estatística de ganho médio / perda, combinada com o índice de ganhos para perdas, pode ser útil para determinar o dimensionamento ótimo da posição e gerenciamento de dinheiro usando técnicas como o critério Kelly. (Ver Gestão de Dinheiro Usando o Critério de Kelly.) Os comerciantes podem assumir posições maiores e reduzir os custos de comissão, aumentando seus ganhos médios e aumentando seu índice de ganhos para perdas. O retorno anualizado é importante porque é usado como uma ferramenta para comparar os resultados de um sistema contra outros locais de investimento. É importante não só olhar para o retorno anual anualizado, mas também levar em consideração o aumento ou diminuição do risco. Isso pode ser feito observando o retorno ajustado ao risco, que contabiliza vários fatores de risco. Antes que um sistema de negociação seja adotado, ele deve superar todos os outros locais de investimento com risco igual ou menor. A personalização do backtesting é extremamente importante. Muitos aplicativos de backtesting têm entrada para valores de comissão, tamanhos de lotes redondos (ou fracionários), tamanhos de garotas, requisitos de margem, taxas de juros, suposições de deslizamento, regras de dimensionamento de posição, regras de saída da mesma barra, configurações de parada (muito próximas) e muito mais. Para obter os resultados de backtesting mais precisos, é importante ajustar essas configurações para imitar o corretor que será usado quando o sistema for atualizado. Backtesting às vezes pode levar a algo conhecido como over-optimization. Esta é uma condição em que os resultados de desempenho são tão ajustados ao passado que não são mais precisos no futuro. Geralmente, é uma boa idéia implementar regras que se aplicam a todos os estoques ou um conjunto seleto de ações segmentadas, e não são otimizadas na medida em que as regras não são mais compreensíveis pelo criador. 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 funcionaram bem no passado não conseguem fazer bem no presente. O desempenho passado não é indicativo de resultados futuros. Certifique-se de trocar papel com um sistema que tenha sido testado com sucesso antes de entrar em operação para ter certeza de que a estratégia ainda se aplica na prática.
Backtesting é um dos aspectos mais importantes do desenvolvimento de um sistema comercial. Se criado e interpretado adequadamente, pode ajudar os comerciantes 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.

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.

Novas estratégias de negociação testadas
Uma das coisas mais úteis que você pode fazer na janela de análise é back-testar sua estratégia de negociação em dados históricos. Isso pode lhe dar uma visão valiosa dos pontos fortes e fracos do 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 de sua estratégia e você precisa pensar sobre isso mesmo, já que o sistema deve combinar 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 de negociação, você deve escrevê-las como comprar e vender regras na AmiBroker Formula Lanugage (mais curto e cobrir se você quiser testar também negociação curta).
Neste capítulo consideramos o sistema de cruzamento médio móvel muito básico. O sistema compraria ações / contratos quando o preço fechado subisse 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 embutida EMA. Tudo o que você precisa fazer é especificar a matriz de entrada e o período de média, de modo que a média móvel exponencial de 45 dias dos preços de fechamento pode ser obtida pela seguinte declaração:
O identificador próximo refere-se a matriz incorporada que possui 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 incorporada:
buy = cross (close, ema (close, 45));
A declaração acima define uma regra de negociação de compra. Ele dá "1" ou "verdadeiro" Quando o preço próximo cruza acima de ema (fechar, 45). Então, podemos escrever a regra de venda que daria "1" Quando ocorre situação inversa - o preço próximo se cruza abaixo de ema (fechar, 45):
vender = cruzar (ema (fechar, 45), fechar);
Observe que estamos usando a mesma função cruzada, mas a ordem dos argumentos opostos.
Então, a fórmula completa para negócios longos ficará assim:
buy = cross (close, ema (close, 45));
vender = cruzar (ema (fechar, 45), fechar);
NOTA: Para criar uma nova fórmula, abra o Editor de Fórmula usando o menu Análise - & gt; Fórmula Editor, digite a fórmula e escolha o menu Ferramentas - & gt; Enviar para Análise no editor Fórmula.
Para testar novamente o seu sistema, basta clicar no botão Voltar teste na janela de análise automática. Certifique-se de ter digitado a fórmula que contém, pelo menos, regras de negociação de compra e venda (como mostrado acima). Quando a fórmula está correta, o AmiBroker começa a analisar seus símbolos de acordo com suas regras de negociação e gera uma lista de trades simulados. Todo o processo é muito rápido - você pode voltar a testar milhares de símbolos em questão de minutos. A janela de progresso mostrará o tempo de conclusão estimado. Se você deseja interromper o processo, basta clicar no botão Cancelar na janela de progresso.
Quando o processo é concluído, a lista de trades simulados é mostrada na parte inferior da janela de análise automática. (o painel de resultados). Você pode examinar quando os sinais de compra e venda ocorreu apenas clicando duas vezes no painel Comércio no resultado. Isso lhe dará sinais crus 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 (abrir e fechar o comércio selecionado atualmente), você deve clicar duas vezes na linha enquanto pressiona a tecla SHIFT pressionada. 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 um 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, verifique a descrição da janela do relatório.
Alterando as configurações de teste de volta.
O mecanismo de teste traseiro na AmiBroker usa alguns valores predefinidos para realizar sua tarefa, incluindo o tamanho do portfólio, a periodicidade (diária / semanal / mensal), o montante da comissão, a taxa de juros, a perda máxima e as paradas de lucro, o tipo de negociação, os 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 novamente se desejar que os resultados sejam sincronizados com as configurações.
Por exemplo, para voltar a testar as barras semanais em vez de diariamente, basta clicar no botão Configurações, selecionar Semanal da caixa de combinação de Periodicidade e clicar em OK, então, execute sua análise clicando em Teste Voltar.
Nomes de variáveis ​​reservadas.
A tabela a seguir mostra os nomes das variáveis ​​reservadas usadas pelo analisador automático. O significado e os exemplos sobre a sua utilização são apresentados posteriormente neste capítulo.
define & quot; sell & quot; (fechar posição longa) regra de negociação.
CAVEAT: esta variável AFL é, por padrão, definida como 1 (um), independentemente do conteúdo da janela de informações, AINDA que você ative o modo de futuros (SetOption (& quot; FuturesMode & quot ;, True))
Permite controlar o valor do dólar ou percentual do portfólio que é investido no comércio (ver explicações abaixo)
Até agora, discutimos o uso bastante simples do testador traseiro. AmiBroker, no entanto, suporta métodos e conceitos muito mais sofisticados que serão discutidos mais adiante neste capítulo. Observe que o usuário iniciante deve primeiro tocar um pouco com os tópicos mais fáceis descritos acima antes de prosseguir.
Então, quando estiver pronto, veja os seguintes recursos recentemente introduzidos no back-tester:
a) host de scripts AFL para escritores de fórmula avançados.
b) suporte aprimorado para negócios curtos.
c) a maneira de controlar o preço de execução da ordem do script.
d) vários tipos de paradas no testador traseiro.
e) dimensionamento de posição.
f) tamanho do lote redondo e tamanho da marca.
g) conta de margem.
AFL scripting host é um tópico avançado que é abordado em um documento separado disponível aqui e não vou discutir isso neste documento. Os recursos restantes são muito mais fáceis de entender.
Suporte comercial curto.
Nas versões anteriores do AmiBroker, se você queria testar o sistema usando transações longas e curtas, você só poderia simular a estratégia de parar e reverter. Quando a posição longa foi fechada, uma nova posição curta foi aberta imediatamente. Foi porque as variáveis ​​reservadas de compra e venda foram utilizadas para ambos os tipos de negócios.
Agora (com versão 3.59 ou superior) existem variáveis ​​reservadas separadas para abrir e fechar negócios longos e curtos:
comprar - "verdadeiro" ou 1 valor abre comércio longo.
vender - "verdadeiro" ou 1 valor fecha o comércio longo.
curto - "verdadeiro" ou 1 valor abre curto comércio.
cover - "true" ou 1 valor encerra curto comércio.
Som para fazer back-test de negociações curtas, você precisa atribuir variáveis ​​curtas e de capa.
Se você usa sistema stop-and-reverse (sempre no mercado), simplesmente atribua vender a curto e comprar para cobrir.
Isso simula o modo como as versões pré-3.59 funcionavam.
Mas agora o AmiBroker permite que você tenha regras de negociação separadas para ir longas e curtas, como mostrado neste exemplo simples:
// regras de entrada e saída de negócios longos:
buy = cross (cci (), 100);
vender = cruzar (100, cci ());
// regras de entrada e saída de negociações curtas:
curto = cruzado (-100, cci ());
cover = cross (cci (), -100);
Observe que, neste exemplo, se o CCI estiver entre -100 e 100, você está fora do mercado.
Controle do preço do comércio.
AmiBroker agora fornece 4 novas variáveis ​​reservadas para especificar o preço no qual as ordens de compra, venda, curto e cobertura são executadas. Essas matrizes têm os seguintes nomes: preço de compra, preço de venda, preço reduzido e preço de cobertura.
A principal aplicação dessas variáveis ​​é o controle do preço do comércio:
BuyPrice = IIF (dayofweek () == 1, HIGH, CLOSE);
// na segunda compra em alta, caso contrário, compre de perto.
Então, você pode escrever o seguinte para simular autênticos pedidos de parada:
BuyStop =. a fórmula para comprar parar nível;
SellStop =. a fórmula para o nível de parada de venda;
// o pedido de compra ocorre (no local de compras ou baixo, o que for maior)
Buy = Cross (High, BuyStop);
// se a qualquer momento durante o dia os preços caírem abaixo do nível do preço de venda (low & lt; sellstop)
// a ordem de venda ocorre (na venda ou alta, o que for menor)
Sell ​​= Cross (SellPrice, SellStop);
BuyPrice = max (BuyStop, Low); // certifique-se de comprar um preço não inferior a Baixo.
SellPrice = min (SellStop, High); // certifique-se de que o preço de venda não é superior a Alto.
Observe que as variáveis ​​de compra, preço de venda, shortprice e coverprice das configurações de AmiBroker com os valores definidos na janela de configurações do teste do sistema (mostrado abaixo), para que você possa, mas não precisa defini-las na sua fórmula. Se você não os define, o AmiBroker funciona como nas versões antigas.
Durante o back-testing, a AmiBroker verificará se os valores que você atribuiu ao preço de compra, preço de venda, preço reduzido e preço de cobertura se encaixam na faixa de baixo e baixo. Caso contrário, o AmiBroker ajustá-lo-á ao preço elevado (se o valor da matriz do preço for superior ao alto) ou ao preço baixo (se o valor da tabela de preços for inferior ao baixo)
O objetivo do lucro é interrompido.
Como você pode ver na imagem acima, novas configurações para fins de lucro estão disponíveis na janela de configurações de teste do sistema. As paradas de destino 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 uma porcentagem ou aumento de ponto do preço de compra. Por padrão, as paradas são executadas a preço que você define como matriz de preço de venda (para negócios longos) ou tabela de preços de cobertura (para negociações curtas). Esse comportamento pode ser alterado usando o & quot; Exit at stop & quot; característica.
Se você marcar & quot; Exit at stop & quot; caixa nas configurações, as paradas serão executadas no nível de parada exata, ou seja, se você definir o objetivo de lucro parar em + 10% sua parada e o preço de compra foi de 50 paradas, a ordem será executada em 55, mesmo que sua tabela de preços de venda contenha valor diferente ( por exemplo, preço de fechamento de 56).
A perda máxima pára o trabalho de forma semelhante - eles são executados quando o preço baixo para um determinado dia cai abaixo do nível de parada que pode ser dado como uma porcentagem ou ponto de aumento do preço de compra.
Esse tipo de parada é usado para proteger os lucros à medida que acompanha seu comércio, de modo que cada vez que um valor de posição atinge um novo nível, o ponto final é colocado em um nível mais alto. Quando o lucro cai abaixo do nível de paragem final, a posição é fechada. Este mecanismo está ilustrado na figura abaixo (10% de parada final é mostrado):
/ * uma amostra de implementação de baixo nível de lucro-alvo parar em AFL: * /
priceatbuy = BuyPrice [i];
SellPrice [i] = 1,1 * priceatbuy;
Este é um novo recurso na versão 3.9. O dimensionamento da posição no backtester é implementado por meio da nova variável reservada.
PositionSize = & lt; tamanho array & gt;
Agora você pode controlar o valor em dólares ou a porcentagem do portfólio que é investido no comércio.
número positivo define (dólar) montante que é investido no comércio, por exemplo:
-100 dá 100% do tamanho atual da carteira,
-33 dá 33% do capital disponível, por exemplo:
Se menos de 100% do dinheiro disponível for investido, o valor restante ganhará 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 tamanho de posição diminuindo & quot; - isso controla como o backtester manipula a situação quando o tamanho da posição solicitada (via a variável PositionSize) excede o caixa disponível: quando esse sinalizador é marcado, a posição é inserida com o tamanho cortado para o dinheiro disponível se ele for desmarcado, a posição não foi inserida.
Para ver os tamanhos de posição reais, use um novo modo de relatório na janela de configurações de AA: & quot; Lista de comércio com preços e pos. tamanho "
Para o fim, aqui está um exemplo da técnica de dimensionamento de posição baseada em ATR da Tharp codificada em AFL:
Compre = & lt; sua fórmula de compra aqui & gt;
Vender = 0; // vendendo apenas por parada.
TrailStopAmount = 2 * ATR (20);
Capital = 100000; / * IMPORTANTE: Configure também nas Configurações: Equidade inicial * /
ApplyStop (2, 2, TrailStopAmount, 1);
A técnica pode ser resumida da seguinte forma:
O patrimônio total por símbolo é de US $ 100.000, estabelecemos o nível de risco em 1% do patrimônio total. O nível de risco é definido da seguinte forma: se uma parada final em um estoque de US $ 50 for, digamos, US $ 45 (o valor de dois ATRs contra a posição), a perda de US $ 5 é dividida em risco de US $ 1000 para dar 200 ações para comprar. Assim, o risco de perda é de US $ 1000, mas o risco de alocação é de 200 ações x $ 50 / ação ou US $ 10.000. Então nós estamos.
alocando 10% do capital próprio para a compra, mas apenas arriscando $ 1000. (Editado trecho da lista de discussão AmiBroker)
Tamanho do lote redondo e tamanho da marca.
Vários instrumentos são negociados com várias unidades de negociação e quot; ou "blocos". Por exemplo, você pode comprar um número fracionado de unidades de fundo mútuo, mas você não pode comprar um número fracionado de ações. Às vezes você tem que comprar em lotes de 10s ou 100s. 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 redondo por símbolo na página Informações do Symbol - & gt; (foto 3). O valor de zero significa que o símbolo não tem tamanho de lote redondo especial e usará & quot; tamanho de lote redondo padrão & quot; (configuração global) a partir da página Configurações de análise automática (foto 1). Se o tamanho padrão for definido também para zero, significa que o número fracionado de ações / contratos são permitidos.
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 do preço mínimo de um símbolo dado. Você pode defini-lo no nível global e por símbolo. Tal como acontece com o tamanho do lote redondo, você pode definir o tamanho da marca por símbolo na página Informações do Symbol - & gt; (foto 3). O valor de zero instrui o AmiBroker a usar & quot; tamanho de marca padrão & quot; definido na página Configurações (foto 1) da janela Análise automática. Se o tamanho da marca padrão também estiver definido para zero, isso significa que não há movimento de preço mínimo.
Você pode definir e recuperar o tamanho da marca também da fórmula AFL usando a variável reservada TickSize, por exemplo:
Observe que a configuração do tamanho do tiquetaque afeta SOMENTE trocas exitadas por paradas embutidas e / ou ApplyStop (). O backtester assume que os dados de preços seguem os requisitos de tamanho de marca e não altera os arrays de preços fornecidos pelo usuário.
Então, especificar o tamanho do tiquetaque faz sentido somente se você estiver usando paradas embutidas, então os pontos de saída são gerados em "quest" permitido níveis de preços em vez de calculados. Por exemplo, no Japão - você não pode ter partes fracionadas do iene, então você deve definir ticksize global para 1, então o built-in pára de sair das negociações em níveis inteiros.
A configuração da margem de conta define o requisito de margem de porcentagem para toda a conta. O valor padrão da margem da Conta é 100. Isso significa que você precisa fornecer fundos de 100% para entrar no comércio, e essa é a maneira como o backtester funcionou em versões anteriores. Mas agora você pode simular uma conta de margem. Quando você compra na margem, você está simplesmente emprestando dinheiro do seu corretor para comprar ações. Com os regulamentos atuais, você pode colocar 50% do preço de compra do estoque que deseja comprar e emprestar a outra metade do seu corretor. Para simular isso, basta inserir 50 no campo de margem da Conta (veja a figura 1). Se a sua equidade inicial estiver definida para 10000, seu poder de compra será então 20000 e você poderá entrar em posições maiores. Tenha em atenção que esta configuração define a margem para uma conta inteira e NÃO está relacionada com o comércio de futuros. Em outras palavras, você pode negociar ações na conta de margem.
O sinal de entrada inversa força a saída & quot; caixa de seleção para as configurações do Backtester.
Quando está ligado (a configuração padrão) - o backtester funciona como em versões anteriores e fecha a positon já aberta se o novo sinal de entrada na direção inversa for encontrado. Se esta opção estiver DESLIGADA - mesmo que o sinal inverso ocorra, o backtester mantém o comércio aberto no momento e não fecha até que o sinal de saída (venda ou cobertura) seja gerado.
Em outras palavras, quando este interruptor está desligado, o backtester ignora os sinais curtos durante os negócios longos e ignora os sinais da compra durante transações curtas.
Quando está ligado (as configurações padrão) - entrada e saída na mesma barra é permitido (como em versões anteriores)
se for OFF - a saída pode acontecer apenas a partir da próxima barra (isso se aplica a sinais regulares, há uma configuração separada para saídas geradas pelo ApplyStop). Alterar para DESLIGAR permite reproduzir o comportamento do backtester da MS que não é capaz de lidar com as saídas do mesmo dia.
Inicialmente, a idéia era permitir redragamentos de gráfico mais rápidos ao calcular a fórmula AFL apenas para a parte que está visível no gráfico. De forma semelhante, a janela de análise automática pode usar um subconjunto de cotações disponíveis para calcular AFL, se selecionado & # 8220; range & # 8221; O parâmetro é menor do que o & # 8220; Todas as cotações & quot ;.
Observe que esta opção funciona não apenas no backtester, mas também em otimizações, explorações e varreduras.

Como corrigir corretamente sua estratégia de negociação.
Muitos comerciantes de sucesso compartilham um hábito & # 8211; eles seguem suas estratégias de negociação. Backtesting sua estratégia de negociação não vai garantir que você se tornará rentável, mas é um passo gigante na direção certa. Neste artigo, examinamos alguns viés potenciais que podem se infiltrar em seu backtesting e analisaremos como minimizar o impacto desses preconceitos.
Existem muitos problemas que podem ocorrer quando você faz o teste de seu sistema comercial, mas a maioria dos problemas se enquadra em uma das três categorias: erros posteriores, muitas variáveis ​​ou não antecipar mudanças drásticas no mercado. Cada um desses erros é explicado, juntamente com métodos de evitar erros.
Clique aqui para saber como utilizar as Bandas Bollinger com uma abordagem quantificada e estruturada para aumentar suas margens de negociação e garantir maiores ganhos com o Trading com Bollinger Bands® & # 8211; Um guia quantificado.
1. Erro postdicial.
O erro postativo é apenas uma maneira elegante de dizer que você usou informações apenas disponíveis e depois do fato e # 8221; para testar seu sistema. Acredite ou não, isso é um erro muito comum ao testar sistemas de negociação.
Este erro é fácil de fazer. Algum software permitirá que você use os dados de hoje no teste de um sistema de comércio, que é sempre um erro postdicial (não sabemos se os dados de hoje são úteis ainda para prever o futuro, mas certamente sabemos se for útil para prever o passado). Você não gostaria de usar o preço de fechamento do GBP / USD para prever o que o mercado fará hoje? Claro que sim, eu definitivamente, mas, infelizmente, essa informação não está disponível para nós até o dia acabar. Por exemplo, você pode ter um sistema que incorpora o preço de fechamento, então isso, obviamente, significa que o comércio não pode ser iniciado até o dia acabar, caso contrário, isso é um erro postativo. Outro exemplo pode ajudar a ilustrar o erro postativo, se você tem uma regra em seu sistema comercial sobre os preços mais altos, então você terá um erro postativo. Isso ocorre porque os preços mais altos são geralmente definidos por dados que vierem mais tarde, no futuro.
A maneira de evitar o erro postdicial é certificar-se de que, quando você faz uma prova posterior, um sistema que somente as informações disponíveis no passado são usadas no backtesting. Com backtesting manual ou backtesting com testador de forex, você pode realizar isso com bastante facilidade, mas com backtesting automatizado o erro postativo pode se esgueirar para o seu sistema comercial.
2. Demasiadas variáveis.
Isso também é conhecido como o & # 8220; Graus de Liberdade & # 8221; viés. Isso significa simplesmente que você tem muitas variáveis, ou indicadores de negociação em seu sistema de negociação. É muito possível chegar a um sistema de negociação que possa explicar o comportamento do preço passado de um par de moedas. Na verdade, quanto mais indicadores você adiciona, mais fácil ele se torna. O problema chega quando você deseja aplicar esse sistema ao futuro.
Muitas vezes, quando um sistema de comércio tem muitos indicadores, pode prever o comportamento do mercado durante um período de tempo extremamente bom. Mas, por isso, todo o sistema é bom porque, no futuro, o sistema desmorona.
A declaração acima é muitas vezes difícil para os comerciantes enfrentarem, mas é verdade. Considere o que William Eckhardt, do New Market Wizards tem a dizer sobre os sistemas de negociação. Em geral, os testes delicados que os estatísticos utilizam para espremer o significado dos dados marginais não têm lugar na negociação. Precisamos de instrumentos estatísticos contundentes, técnicas robustas.
Obviamente, ele está alertando contra o erro de graus de liberdade e sugerindo que os sistemas de negociação simples são mais propensos a testar o tempo. Isso é absolutamente verdade.
Alguns dos sistemas de negociação mais poderosos disponíveis são extremamente simples.
Tenha isso em mente à medida que você troca, e enquanto tenta encontrar um sistema comercial lucrativo. A maioria dos comerciantes descobrirá que com experiência, eles se tornam mais propensos a aceitar a visão de que o comércio mais simples é preferido em uma abordagem complexa.
3. Mudanças drásticas no mercado.
Muitos comerciantes esquecem de antecipar eventos imprevistos que ocorrerão no futuro. Não importa realmente que você não conheça o que vai acontecer no futuro e não é o que é o que é o que é o que é o que é o que você quer dizer. porque você sabe disso: haverá momentos no futuro quando os mercados se comportarão de forma errática. Quando isso acontece, você deveria ter projetado seu sistema de negociação para continuar funcionando durante esses horários.
Talvez alguns exemplos possam ajudar com isso: quando Saddam Hussein foi encontrado (durante o fim de semana), os mercados cambiais reagiram drasticamente na abertura da segunda-feira. Quando a crise financeira global começou a se desenrolar em setembro de 2008, a maioria dos pares de divisas negociou com muito mais volatilidade do que se viu há anos.
O fato é que haverá eventos inesperados no futuro, e esses eventos afetarão os mercados, então a melhor coisa que você pode fazer é estar preparado. Como você se prepara para o inesperado? Considere estas soluções simples:
1) Exagere suas perdas esperadas. Se o seu backtesting revelar uma perda máxima de US $ 5000, assumir uma perda máxima de US $ 10.000. Os seus sistemas comerciais ainda serão lucrativos nessas condições?
2) Decidir sobre um nível adequado de risco para cada comércio. Lembre-se que mesmo este nível de risco provavelmente será excedido. Se você decidiu arriscar 1% em cada comércio, você deve assumir que em algum momento no futuro, você pode estar em um comércio e um evento inesperado ocorrerá, e seu comércio não perderá 1%, mas em vez disso 5% serão perdidos .
3) Você deve ter um plano de contingência configurado. Ou seja, como você vai sair de um comércio se algo ruim acontecer e você não pode acessar sua conta? Por exemplo, o que acontece se sua plataforma comercial for inacessível e você quer desesperadamente sair de um comércio? A maioria dos corretores oferecem uma linha telefônica para os comerciantes para essas instâncias. Você tem o número de telefone?
4) Você tem um nível máximo de risco definido? Isso seria aplicável se você tiver vários negócios abertos simultaneamente. Se você decidir arriscar 1% por troca e você tem 7 negociações abertas simultaneamente, isso significa que você estará arriscando 7% de sua conta? Ou você decidiu em um nível de risco máximo de dizer, 3%? Tendo em mente que o inesperado ocorrerá, você provavelmente deve ter um nível máximo de risco para aqueles momentos em que você possui vários negócios abertos.
5) Qual é a redução máxima (quantidade de dinheiro que seu sistema de negociação perde durante um longo período de tempo) você está disposto a tolerar? Tendo em mente que você (e você não está sozinho) é mais provável superestimar a gravidade das reduções que você pode suportar, é importante ser realista. Se você perder 30% da sua conta, você parará de negociar? E se você perder 50%? Ou se você ver 70% da sua conta desaparecer? Mais uma vez, a melhor maneira de planejar as retiradas é fazer testes extensivos para descobrir qual o tipo de retração histórica que seu sistema comercial experimenta e depois planejar cobranças ainda pior no futuro.
Anticipar mudanças drásticas nos mercados é a melhor maneira de preservar o patrimônio em sua conta.
Então, você sabe que os comerciantes bem sucedidos compartilham esse hábito # 8211; eles seguem suas estratégias de negociação. Você sabe que backtesting separa os comerciantes ricos daqueles que perdem dinheiro. Você também conhece várias maneiras de incorporar backtesting em seu regime comercial. E você conhece as armadilhas & # 8211; O que procurar por & # 8211; quando você está testando, para que você possa tirar o máximo proveito do processo. Mas, o que exatamente, você vai sair do backtesting do seu sistema comercial? No próximo artigo, explorarei os efeitos colaterais do backtesting.
Walter Peters, PhD é um comerciante profissional de forex e gerente de dinheiro para um fundo de divisas privado. Além disso, Walter é o co-fundador da Fxjake, um recurso para comerciantes de forex. Walter gosta de ouvir de outros comerciantes, ele pode ser acessado por e-mail em walter @ fxjake.
Artigos recentes sobre TradingMarkets.
Informação da companhia.
The Connors Group, Inc.
10 Exchange Place, Suite 1800.
Jersey City, NJ 07302.
Recursos da empresa.
Propriedades.
Conecte-se com TradingMarkets.
© Copyright 2017 The Connors Group, Inc.
Não se deve presumir que os métodos, técnicas ou indicadores apresentados nesses produtos serão lucrativos ou que não resultarão em perdas. Os resultados passados ​​de qualquer comerciante ou sistema de negociação individual publicado pela Companhia não são indicativos de retornos futuros desse comerciante ou sistema, e não são indicativos de retornos futuros que sejam realizados por você. Além disso, os indicadores, estratégias, colunas, artigos e todas as outras características dos produtos da Companhia (coletivamente, a "Informação") são fornecidos apenas para fins informativos e educacionais e não devem ser interpretados como conselhos de investimento. Os exemplos apresentados no site da empresa são apenas para fins educacionais. Essas configurações não são solicitações de qualquer ordem para comprar ou vender. Consequentemente, você não deve confiar unicamente na Informação ao fazer qualquer investimento. Em vez disso, você deve usar a Informação apenas como ponto de partida para fazer pesquisas independentes adicionais para permitir que você forme sua própria opinião sobre os investimentos. Você sempre deve verificar com seu conselheiro financeiro licenciado e conselheiro fiscal para determinar a adequação de qualquer investimento.
OS RESULTADOS DE DESEMPENHO HIPOTÉTICOS OU SIMULADOS TÊM CERTAS LIMITAÇÕES INERENTES. DESEJO UM REGISTRO DE DESEMPENHO REAL, OS RESULTADOS SIMULADOS NÃO REPRESENTAM NEGÓCIO REAL E NÃO PODEM SER IMPACTOS POR CORREÇÃO E OUTRAS TAXAS DE SLIPPAGE. TAMBÉM, DESDE QUE OS NEGÓCIOS NÃO SEJAM REALMENTE EXECUTOS, OS RESULTADOS PODEM TENER SOB OU COMENTÁRIOS COMPLEMENTARES PARA O IMPACTO, SE HAVER, DE CERTOS FATORES DE MERCADO, TAL COMO FALTA DE LIQUIDEZ. PROGRAMAS DE NEGOCIAÇÃO SIMULADOS EM GERAL SÃO TAMBÉM SUJEITOS AO FATO QUE ESTÃO DESIGNADOS COM O BENEFÍCIO DE HINDSIGHT. NENHUMA REPRESENTAÇÃO ESTÁ FAZENDO QUE QUALQUER CONTA VÁ OU SEJA PROBABILITÁVEL PARA ALCANÇAR LUCROS OU PERDAS SIMILARES ÀOS MOSTRADOS.

Teste de estratégia.
O backtesting de estratégia é uma ferramenta essencial para ver se sua estratégia funciona ou não. O software Backtesting simula sua estratégia em dados históricos e fornece um relatório de backtesting, o que permite que você realize a 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 reciclar com precisão as condições do mercado passado e a execução da ordem para a negociação estratégica. Os motores de backtesting típicos têm muitos pressupostos e atalhos, o que resulta em testes irrealistas 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 precisa de muitos dados e softwares capazes de processá-lo. Multi-threading é usado quando você processa a Otimização de Estratégia em MultiCharts. Ele espalha múltiplas tarefas em diferentes núcleos, para que eles completem muito mais rápido. 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 a forma como seus sinais aparecem no seu gráfico - em apenas alguns cliques. As ordens de saída podem ser conectadas por uma linha visível a todas as ordens de entrada relacionadas - a linha será verde se o comércio fosse lucrativo, se não fosse vermelho. Se você não gosta dessas cores, ou qualquer outro aspecto visual, você pode mudá-lo facilmente.
Escolha a sua moeda para fazer 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 motor do MultiCharts reage a uma estratégia, reconhece que nem todas as ordens de limite serão preenchidas, 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.
Pergunte, ofereça e comercialize 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. O 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 de tique-por-tiquetaque.
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, Bar Magnifier pode invisivelmente carregar minutos que compõem a hora, e a estratégia será testada novamente 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). Os objetivos de lucro, stop-loss e trailing também são recursos padrão de backtesting. 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.

No comments:

Post a Comment