Monday 16 October 2017

Como Backtest Trading System


Backtesting O que é Backtesting Backtesting é o processo de testar uma estratégia comercial em dados históricos relevantes para garantir 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 adequado e analisar os resultados para os níveis de rentabilidade e risco. BREAKING DOWN Backtesting Se os resultados satisfazem os critérios necessários que são aceitáveis ​​para o comerciante, a estratégia pode ser implementada com algum grau de confiança de que resultará em lucros. Se os resultados forem menos favoráveis, a estratégia pode ser modificada, ajustada e otimizada para alcançar os resultados desejados, ou pode ser completamente descartada. Uma quantidade significativa do volume negociado no mercado financeiro de hoje é feito por comerciantes que usam algum tipo de automação de computador. Isto é especialmente verdadeiro para estratégias de negociação com base em análise técnica. Backtesting é uma parte integrante do desenvolvimento de um sistema automatizado de negociação. Backtesting Significado Quando feito corretamente, backtesting pode ser uma ferramenta inestimável para tomar decisões sobre se deve utilizar uma estratégia de negociação. O período de tempo de amostra em que um backtest é realizado é crítico. A duração do período de tempo de amostragem deve ser suficientemente longa para incluir períodos de condições de mercado variáveis, incluindo tendências de alta, tendências de baixa e negociação de intervalo limitado. 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 de mercado, o que pode levar a conclusões falsas. O tamanho da amostra no número de negócios nos resultados do teste também é crucial. Se o número de amostras de ofícios é muito pequeno, o teste pode não ser estatisticamente significativo. Uma amostra com muitas transações durante um período muito longo pode produzir resultados otimizados em que um número esmagador de trades vencedores coalesce em torno de uma condição de mercado específico ou tendência que é favorável para a estratégia. Isso também pode causar um comerciante para tirar conclusões enganosas. Mantê-lo real Um backtest deve refletir a realidade na medida do possível. Os custos de negociação que de outra forma poderiam ser considerados negligenciáveis ​​pelos comerciantes quando analisados ​​individualmente podem ter um impacto significativo quando o custo agregado é calculado durante todo o período de backtesting. Estes custos incluem comissões, spreads e derrapagens, e eles poderiam determinar a diferença entre se uma estratégia de negociação é rentável ou não. A maioria dos pacotes de software de backtesting inclui métodos para contabilizar esses custos. Talvez a métrica mais importante associada ao backtesting seja o nível de robustez da estratégia. Isto é conseguido comparando os resultados de um teste de volta otimizado em um período de tempo de amostra específico (referido como in-sample) 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 - Da amostra). Se os resultados são igualmente rentáveis, então 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 mais desenvolvimento, ou deve ser abandonada por completo. Teste de teste: interpretando o passado Backtesting é um componente chave do desenvolvimento do sistema de comércio eficaz. É realizado reconstruindo, com dados históricos, os negócios 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 quaisquer falhas técnicas ou teóricas, e ganhar confiança em sua estratégia antes de aplicá-lo aos mercados reais. A teoria subjacente é que qualquer estratégia que funcionou bem no passado é susceptível de funcionar bem no futuro e, inversamente, qualquer estratégia que teve um desempenho ruim no passado é susceptível de funcionar mal no futuro. Este artigo dá uma olhada no que os aplicativos são usados ​​para backtest, que tipo de dados são obtidos, e como colocá-lo para usar Os dados e as ferramentas Backtesting pode fornecer abundância de estatística valiosa comentários sobre um determinado sistema. Algumas estatísticas de backtesting universal incluem: Lucro líquido ou perda - 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 - Percentagem máxima de subida e descida. Médias - Percentagem de ganho médio e perda média, média de barras mantidas. Exposição - Percentual de capital investido (ou exposto ao mercado). Razões - Relação vitórias-perdas. Retorno anualizado - Retorno percentual ao longo de um ano. Retorno ajustado ao risco - Retorno percentual em função do risco. Normalmente, backtesting software terá duas telas que são importantes. A primeira permite que o profissional personalize as configurações para backtesting. Essas personalizações incluem tudo, desde o período de tempo até os custos de comissão. Aqui está um exemplo de tal tela no AmiBroker: A segunda tela é o relatório de resultados de backtesting real. Isto é onde você pode encontrar todas as estatísticas mencionadas acima. Novamente, aqui está um exemplo desta tela no AmiBroker: Em geral, a maioria dos softwares comerciais contém elementos semelhantes. Alguns programas de software high-end também incluem funcionalidades adicionais para realizar dimensionamento automático da posição, otimização e outros recursos mais avançados. Os 10 mandamentos Há muitos fatores que os comerciantes prestam atenção quando eles estão backtesting estratégias de negociação. Aqui está uma lista das 10 coisas mais importantes a lembrar enquanto backtesting: Tome em conta as tendências do mercado amplo 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 de baixa. É muitas vezes uma boa idéia para backtest durante um período de tempo longo que engloba vários tipos diferentes de condições de mercado. Leve em conta o universo no qual o backtesting ocorreu. Por exemplo, se um sistema de mercado amplo é testado com um universo consistindo de ações de tecnologia, pode deixar de fazer bem em diferentes setores. Como regra geral, se uma estratégia é direcionada para um gênero específico de estoque, limitar o universo a esse gênero, mas, em todos os outros casos, manter um grande universo para fins de teste. Medidas de volatilidade são extremamente importantes a considerar no desenvolvimento de um sistema de comércio. Isto é especialmente verdadeiro para as contas alavancadas, que são submetidas a chamadas de margem se a sua equidade desce abaixo de um certo ponto. Os comerciantes devem procurar manter a volatilidade baixa, a fim de reduzir o risco e permitir uma transição mais fácil dentro e fora de um determinado estoque. O número médio de barras mantidas também é muito importante para assistir ao desenvolver um sistema de negociação. Embora a maioria dos backtesting software inclui custos de comissão nos cálculos finais, isso não significa que você deve ignorar esta estatística. Se possível, aumentar 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. Exposição aumentada pode conduzir aos lucros mais elevados ou aos perdas mais elevados, quando a exposição diminuída significa lucros mais baixos ou perdas mais baixas. No entanto, em geral, é uma boa idéia para 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 um determinado estoque. A estatística média de perda de ganho, combinada com a relação ganhos-perdas, pode ser útil para determinar o dimensionamento de posição ótimo e a administração de dinheiro usando técnicas como o Critério de Kelly. (Veja Money Management 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 relação ganhos-para-perdas. Retorno anualizado é importante porque é usado como uma ferramenta para comparar os retornos de sistemas contra outros locais de investimento. É importante não só olhar para o retorno global anualizado, mas também para ter em conta o risco aumentado ou diminuído. Isso pode ser feito olhando para o retorno ajustado ao risco, que explica vários fatores de risco. Antes de um sistema de negociação ser adotado, ele deve superar todos os outros locais de investimento em igual ou menos risco. Backtesting personalização é extremamente importante. Muitas aplicações de backtesting têm entrada para valores de comissão, tamanhos de lote redondos (ou fracionários), tamanhos de carrapatos, requisitos de margem, taxas de juros, pressupostos de deslizamento, regras de dimensionamento de posição, regras de saída da mesma barra e configurações de parada. Para obter os resultados de backtesting mais precisos, é importante ajustar essas configurações para imitar o corretor que será usado quando o sistema for ativado. Backtesting às vezes pode levar a algo conhecido como super-otimização. Esta é uma condição onde os resultados de desempenho são ajustados tão altamente ao passado que eles não são mais precisos no futuro. Geralmente, é uma boa idéia implementar regras que se apliquem a todas as ações ou a um conjunto selecionado de ações segmentadas e não sejam otimizadas na medida em que as regras não sejam mais compreensíveis pelo criador. Backtesting nem sempre é a maneira mais precisa para avaliar a eficácia de um determinado sistema de comércio. À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 comércio de papel de um sistema que foi testado com sucesso antes de ir ao vivo para ter certeza de que a estratégia ainda se aplica na prática. Conclusão Backtesting é um dos aspectos mais importantes do desenvolvimento de um sistema comercial. Se criado e interpretado corretamente, pode ajudar comerciantes a aperfeiçoar e melhorar suas estratégias, encontrar todas as falhas técnicas ou teóricas, assim como ganhar a confiança em sua estratégia antes de aplicá-la aos mercados reais. Recursos - Negociação de alto nível de negociação - AmiBroker (amibroker) - Desenvolvimento de sistema de negociação de orçamento. Teste de negociação de suas idéias de negociação Uma das coisas mais úteis que você pode fazer na janela de análise é back-test sua estratégia de negociação Em dados históricos. Isso pode lhe dar uma visão valiosa em pontos fortes e fracos de seu sistema antes de investir dinheiro real. Este recurso único 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 a sua tolerância ao risco, tamanho de carteira, técnicas de gerenciamento de dinheiro e muitos outros fatores individuais. Depois de ter suas próprias regras para negociação você deve escrevê-los como comprar e vender regras em AmiBroker Formula Lanugage (mais curto e tampa se você quiser testar também negociação curta). Neste capítulo vamos considerar muito básico de média móvel cruzar o sistema. O sistema compraria contratos de ações quando o preço próximo sobe acima da média móvel exponencial de 45 dias e venderá contratos de ações 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 eo 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 de fechamento refere-se à matriz incorporada que mantém 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 função cruzada interna: buy cross (close, ema (close, 45)) A declaração acima define uma regra de negociação de compra. Dá quot1quot ou quottruequot quando o preço próximo cruza acima do ema (próximo, 45). Então podemos escrever a regra de venda que daria quot1quot quando acontecer a situação oposta - fechar preço cruza abaixo ema (close, 45): sell cross (ema (close, 45), close) Por favor, note que estamos usando a mesma função cross, A ordem inversa dos argumentos. A fórmula completa para negócios longos será parecida com a seguinte: cross (close, ema (close, 45)) cross (ema, close, close) NOTA: Para criar uma nova fórmula, abra o editor de fórmulas utilizando o Analysis-gtFormula Editor , Digite a fórmula e escolha Tools-gtSend para o menu Análise no editor de fórmulas 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, comprar e vender regras comerciais (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 negócios simulados. 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 de conclusão estimado. Se quiser interromper o processo, basta clicar no botão Cancelar na janela de progresso. Quando o processo estiver concluído, a lista de negócios simulados é mostrada na parte inferior da janela de 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 bar quando as condições de compra e venda forem atendidas. Se você quiser ver apenas setas de comércio único (abertura e fechamento do 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 de seu sistema clicando no botão Relatório. Para saber mais sobre as estatísticas do relatório, consulte a descrição da janela do relatório. Alterando suas configurações de teste de volta O motor de teste de volta em AmiBroker usa alguns valores predefinidos para executar sua tarefa, incluindo o tamanho da carteira, periodicidade (dailyweeklymonthly), quantidade de comissão, taxa de juros, perda máxima e alvo metas de lucro, tipo de comércios, campos de preço e assim em. 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 novamente o teste de volta se desejar que os resultados estejam em sincronia com as configurações. Por exemplo, para testar as barras semanais em vez de diariamente, basta clicar no botão Configurações, selecione Semanalmente na caixa de combinação Periodicidade e clique em OK. Em seguida, execute a análise clicando em Voltar ao teste. Nomes de variáveis ​​reservadas A tabela a seguir mostra os nomes das variáveis ​​reservadas usadas pelo Automatic Analyzer. O significado e exemplos sobre como usá-los são apresentados mais adiante neste capítulo. Permite a quantidade de dólar de controle ou porcentagem de carteira que é investido no comércio (veja explicações abaixo) Análise Automática (novo em 3.9) Até agora nós discutimos bastante simples uso do testador de volta. AmiBroker, no entanto, suporta métodos muito mais sofisticados e conceitos que serão discutidos mais adiante neste capítulo. Observe que o usuário iniciante deve primeiro jogar um pouco com os tópicos mais fáceis descritos acima antes de prosseguir. Assim, quando você estiver pronto, por favor, dê uma olhada nos seguintes recursos recentemente introduzidos do back-tester: a) host AFL script para escritores fórmula avançada b) suporte melhorado para operações curtas c) a maneira de controlar o preço de execução de ordem a partir do Script d) vários tipos de paradas no back tester e) dimensionamento da posição f) tamanho do lote redondo e tamanho do carrapato g) conta de margem h) backtesting futuros AFL scripting host é um tópico avançado que é abordado em um documento separado disponível aqui e eu não vou discutir Documento. Recursos restantes são muito mais fáceis de entender. Nas versões anteriores do AmiBroker, se você quisesse back-testar sistema usando longas e curtas transações, você só poderia simular stop-and-reverse estratégia. Quando a posição longa foi fechada, uma nova posição curta foi aberta immediatelly. Foi porque comprar e vender variáveis ​​reservadas foram utilizados para ambos os tipos de comércios. Agora (com a versão 3.59 ou superior) existem variáveis ​​reservadas separadas para abrir e fechar negócios longos e curtos: buy - quottruequot ou 1 value abre trading long trade - quottruequot ou 1 value fecha trade short curto - quottruequot ou 1 value abre short trade cover - quottruequot ou 1 valor fecha comércio curto Som, a fim de back-test operações de curto você precisa atribuir curto e cobrir variáveis. Se você usar sistema stop-and-reverse (sempre no mercado) simplesmente atribuir vender a curto e comprar para cobrir curto vender cobertura comprar Isto simula o modo pré-3.59 versões trabalhadas. Mas agora AmiBroker permite que você tenha regras de negociação separadas para ir por muito tempo e para ir curto, como mostrado neste exemplo simples: longas negociações entrada e saída regras: comprar cross (cci (), 100) vender cross (100, cci () (Cci (), -100) Observe que neste exemplo se CCI está entre -100 e 100 você está fora do mercado. Controle de preço de mercado AmiBroker agora fornece 4 novas variáveis ​​reservadas para especificar o preço ao qual as ordens de compra, venda, curto e de cobertura são executadas. Esses arrays têm os seguintes nomes: buyprice, sellprice, shortprice e coverprice. A principal aplicação dessas variáveis ​​é controlar o preço do comércio: BuyPrice IIF (dayofweek () 1, HIGH, CLOSE) na segunda-feira comprar em alta, caso contrário, comprar em close Então você pode escrever o seguinte para simular real stop-orders: BuyStop. A fórmula para comprar stop nível SellStop. A fórmula para o nível do batente da venda se em qualquer altura durante o dia os preços se levantam acima do nível do buystop (highgtbuystop) a ordem de compra ocorre (no buystop ou baixo o que for mais elevado) Compre a cruz (alta, BuyStop) se durante o dia os preços caem abaixo do nível do sellprice (Sellstop baixa), certifique-se de preço de compra não inferior a Baixo preço de SellPrice (SellStop, alta) certifique-se Preço de venda não maior do que Alto Observe que AmiBroker predefinições de preço de compra, sellprice, shortprice e coverprice com os valores definidos na janela de configurações de teste do sistema (mostrado abaixo), então você pode, mas não precisa defini-los em sua fórmula. Se você não os define AmiBroker funciona como nas versões antigas. Durante o back-testing, o AmiBroker verificará se os valores que você atribuiu ao buyprice, sellprice, shortprice, coverprice se encaixam no intervalo alto-baixo da determinada barra. Se não, o AmiBroker irá ajustá-lo a um preço alto (se o preço for maior do que alto) ou ao preço baixo (se o preço for menor do que baixo). Como você pode ver na foto acima, novas configurações para As paradas de destino de lucro estão disponíveis na janela de configurações do teste do sistema. As paradas de objetivo 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 um aumento de ponto do preço de compra. Por padrão, as paradas são executadas ao preço que você define como matriz de preço de venda (para negócios longos) ou matriz de preço de cobertura (para negócios curtos). Esse comportamento pode ser alterado usando QuotExit no stopquot recurso. QuotExit at stopquot feature Se você marcar quotExit at stopquot box nas configurações, as paradas serão executadas no nível de parada exata, ou seja, se você definir o objetivo de lucro stop em 10 sua parada eo preço de compra foi 50 stop order será executado em 55, mesmo se Sua matriz de preço de venda contém valor diferente (por exemplo preço de fechamento de 56). Perda máxima pára de trabalhar 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 dada como uma porcentagem ou ponto de aumento a partir do preço de compra Este tipo de parar é usado para proteger os lucros como ele Acompanha o seu comércio de modo que cada vez que um valor de posição atinge um novo máximo, o stop de arrasto é colocado em um nível mais alto. Quando o lucro cai abaixo do nível de parada final, a posição é fechada. Este mecanismo é ilustrado na imagem abaixo (10 stop de arrasto é mostrado): um exemplo de implementação de baixo nível de lucro-alvo parar em AFL: Buy Cross (MACD (), Signal ()) para (i 0 i BarCount i) If (priceatbuy 0 Buy i) priceatbuy BuyPrice i if (priceatbuy gt 0 SellPrice i gt 1.1 priceatbuy) Sell i 1 SellPrice i 1.1 preçoatbuy priceatbuy 0 else Sell i 0 Este é um novo recurso na versão 3.9. Posição de dimensionamento no backtester é implementado por meio de nova variável reservada PositionSize ltsize arraygt Agora você pode controlar o montante em dólar ou percentual de carteira que é investido no número de comércio positivo definir (dólar) montante que é investido no comércio por exemplo: PositionSize 1000 investir 1000 em todos os números negativos de comércio -100 ..- 1 define porcentagem: -100 dá 100 do tamanho atual da carteira, -33 dá 33 do capital disponível, por exemplo: PositionSize -50 sempre investir apenas metade do exemplo atual de dimensionamento dinâmico de ações: PositionSize - 100 RSI () como RSI varia de 0..100 isso resultará em posição dependendo dos valores RSI - gt valores baixos de RSI resultará em maior percentagem investido Se menos de 100 de dinheiro disponível é investido, em seguida, o montante remanescente ganha taxa de juros Como definido nas configurações. Há também uma nova caixa de seleção na janela de configurações AA: quotAllow tamanho da posição shrinkingquot - isso controla como backtester lida com a situação quando o tamanho da posição solicitada (através da variável PositionSize) excede o dinheiro disponível: quando este sinalizador é marcado a posição é inserida com o tamanho shinked para Disponível se não estiver selecionado, a posição não será inserida. Para ver os tamanhos de posição reais, use um novo modo de relatório na janela de configurações AA: quotLista comercial com preços e pos. Sizequot Para o fim, aqui está um exemplo da técnica de dimensionamento de posição baseada em Tharps ATR codificada na AFL: Comprar ltyour comprar fórmula heregt Vender 0 vender apenas por parar TrailStopAmount 2 ATR (20) Capital 100000 IMPORTANTE: Defini-lo também nas Configurações: Inicial A técnica pode ser resumida da seguinte forma: O capital total por símbolo é de 100.000, estabelecemos o nível de risco em 1 do patrimônio líquido total. O valor total do capital por símbolo é de 100.000, e nós definimos o nível de risco em 1 do patrimônio líquido total (RiskTrailStopAmount). Nível de risco é definido da seguinte forma: se uma parada de arrasto em um estoque 50 é, digamos, 45 (o valor de dois ATRs contra a posição), a perda 5 é dividido em 1000 de risco para dar 200 ações para comprar. Assim, o risco de perda é 1000, mas o risco de alocação é de 200 ações x 50share ou 10.000. Então, estamos alocando 10 do capital próprio para a compra, mas apenas arriscando 1000. (Excerto editado da lista de discussão AmiBroker) Tamanho do lote e tamanho do carrapato Vários instrumentos são negociados com vários quottrading unitsquot ou quotblocksquot. Por exemplo, você pode comprar número fracionário de unidades de fundo mútuo, mas você não pode comprar o número fracionário de ações. Às vezes você tem que comprar em 10s ou 100s lotes. 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 Symbol-gtInformation (figura 3). O valor de zero significa que o símbolo não tem tamanho de lote redondo especial e usará quotDefault round lot sizequot (configuração global) da página de configurações de Análise automática (figura 1). Se o tamanho padrão também é definido como zero, isso significa que o número fracionário de contratos de ações é permitido. Você também pode controlar o tamanho do lote redondo diretamente de sua fórmula AFL usando RoundLotSize variável reservada, 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 redondo, pode definir o tamanho do carimbo por símbolo na página Symbol-gtInformation (figura 3). O valor de zero instrui o AmiBroker a usar quotdefault tick sizequot definido na página Configurações (figura 1) da janela Automatic Analysis. Se o tamanho padrão do alerta também estiver definido como zero, significa que não há movimento de preço mínimo. Você pode definir e recuperar o tamanho do carrapato também da fórmula AFL usando a variável reservada TickSize, por exemplo: Note que a configuração do tamanho do carrapato afeta somente os comércios fechados pelas paradas internas e ou ApplyStop (). O backtester assume que os dados de preço seguem os requisitos de tamanho de tick e não altera os arrays de preço fornecidos pelo usuário. Portanto, especificar o tamanho do alerta só faz sentido se você estiver usando as paradas internas para que os pontos de saída sejam gerados em níveis de preços quotallowedquot em vez de calculados. Por exemplo, no Japão - você não pode ter partes fracionárias de ienes para que você deve definir ticksize global para 1, assim built-in pára comércios de saída em níveis inteiros. Configuração da margem da conta define o requisito de margem percentual para toda a conta. O valor padrão da margem da conta é 100. Isso significa que você tem que fornecer 100 fundos para entrar no comércio e esta é a maneira como backtester trabalhou em versões anteriores. Mas agora você pode simular uma conta de margem. Quando você compra na margem você está simplesmente emprestado dinheiro de seu corretor para comprar ações. Com os regulamentos atuais você pode colocar até 50 do preço de compra do estoque que você deseja comprar e emprestar a outra metade de seu corretor. Para simular isso basta digitar 50 no campo Margem da conta (veja a figura 1). Se o seu patrimônio intial é definido como 10000 seu poder de compra será então 20000 e você será capaz de entrar em posições maiores. Observe que essa configuração define a margem para a conta inteira e NÃO está relacionada a negociação de futuros. Em outras palavras, você pode negociar ações na conta de margem. QuotRegistro inverso força a saída para as configurações do Backtester. Quando está ON (a configuração padrão) - backtester funciona como nas versões anteriores e fecha já positon aberto se novo sinal de entrada no sentido inverso é encontrado. Se este interruptor estiver DESLIGADO - mesmo que ocorra sinal inverso, o backtester mantém o comércio aberto e não fecha a posição até que o sinal de saída regular (venda ou cobertura) seja gerado. Em outras palavras, quando este interruptor é OFF backtester ignora sinais curtos durante longos comércios e ignora Buy sinais durante curtas operações. QuotAver a mesma saída de barra (barra única) opção quot para as Configurações Quando está ON (as configurações padrão) - entrada e saída na mesma barra é permitida (como nas versões anteriores) se estiver OFF - a saída pode acontecer a partir de Apenas a barra seguinte (isto aplica-se a sinais regulares, existe uma definição separada para as saídas geradas pelo ApplyStop). Mudar para OFF permite reproduzir o comportamento do MS backtester que não é capaz de lidar com saídas no mesmo dia. QuotActivate pára imediatamentequot Esta definição resolve o problema de testar sistemas que entram em comércios no mercado aberto. Nas versões anteriores a 4.09, o backtester supôs que você estava entrando em negociações no mercado próximo, de modo que as paradas embutidas foram ativadas a partir do dia seguinte. O problema foi quando você de fato definido preço aberto como o preço de entrada de comércio - então mesmo dia flutuações de preços não desencadear as paradas. Houve algumas soluções publicadas baseadas no código AFL, mas agora você não precisa usá-los. Simplesmente se você trocar em aberto você deve marcar quotActivate pára imediatamentequot (imagem 1). Você pode perguntar por que não basta verificar o buyprice ou shortprice matriz se é igual ao preço aberto. Infelizmente este não funcionará. Por que simplesmente porque há dias de doji quando o preço aberto iguala o close e então o backtester nunca saberá se o comércio foi entrado no mercado aberto ou próximo. Então nós realmente precisamos de uma configuração separada. QuotUtilizar QuickAFLquotQuickAFL (tm) é um recurso que permite um cálculo AFL mais rápido sob certas condições. Inicialmente (desde 2003) estava disponível apenas para indicadores, a partir da versão 5.14 está disponível na Análise Automática também. Inicialmente, a idéia era permitir redesenhos de gráfico mais rápidos através do cálculo da fórmula AFL apenas para aquela parte que é visível no gráfico. De forma semelhante, janela de análise automática pode usar subconjunto de cotações disponíveis para calcular AFL, se selecionado 8220range8221 parâmetro é menor do que 8220Todos os quotationsquot. Explicação detalhada sobre como QuickAFL funciona e como controlá-lo, é fornecida neste artigo da Base de Dados de Conhecimento: amibrokerkb20080703quickafl Observe que essa opção funciona não apenas no backtest, mas também em otimizações, explorações e verificações.

No comments:

Post a Comment