Usando o Excel para testar de volta Estratégias de negociação Como testar de volta com o Excel Eu fiz uma boa quantidade de estratégia de negociação de volta teste. Ive usou sofisticadas linguagens de programação e algoritmos e Ive também feito com lápis e papel. Você não precisa ser um cientista de foguetes ou um programador para testar muitas estratégias de negociação. Se você pode operar um programa de planilha como o Excel, então você pode voltar testar muitas estratégias. O objetivo deste artigo é mostrar a você como testar uma estratégia de negociação usando o Excel e uma fonte de dados publicamente disponível. Isso não deve custar-lhe mais do que o tempo necessário para fazer o teste. Antes de começar a testar qualquer estratégia, você precisa de um conjunto de dados. No mínimo, esta é uma série de datas e preços. Mais realista, você precisa dos preços de data e hora, aberto, alto, baixo e fechado. Você geralmente só precisa do componente de tempo da série de dados se você estiver testando estratégias de negociação intraday. Se você quer trabalhar junto e aprender a rever o teste com o Excel enquanto estiver lendo isso, siga as etapas que eu descrevo em cada seção. Precisamos obter alguns dados para o símbolo que vamos voltar a testar. Ir para: Yahoo Finance No campo Enter Symbol (s) digite: IBM e clique em GO Under Quotes no lado esquerdo, clique em Historical Prices e insira os intervalos de datas desejados. Selecionei de 1 de janeiro de 2004 a 31 de dezembro de 2004 Desloque-se até a parte inferior da página e clique em Fazer download da planilha. Salve o arquivo com um nome (como ibm. csv) e em um local que você possa encontrar mais tarde. Preparando os dados Abra o arquivo (que você baixou acima) usando o Excel. Devido à natureza dinâmica da Internet, as instruções que você leu acima eo arquivo que você abrir pode ter alterado pelo tempo que você ler isso. Quando eu baixei este arquivo, as primeiras poucas linhas ficaram assim: Agora você pode excluir as colunas que você não vai usar. Para o teste que estou prestes a fazer vou usar apenas a data, abrir e fechar valores para que eu tenha excluído o Alto, Baixo, Volume e Adj. Fechar. Eu igualmente classifiquei os dados de modo que a data a mais velha fosse primeiramente e a data a mais atrasada fosse na parte inferior. Use as opções de menu Data - gt Sort para fazer isso. Em vez de testar uma estratégia per se eu vou tentar encontrar o dia da semana que forneceu o melhor retorno se você seguiu uma compra a abrir e vender a estratégia de fechar. Lembre-se que este artigo está aqui para apresentá-lo a como usar o Excel para testar estratégias de volta. Podemos construir sobre isso em frente. Aqui está o arquivo ibm. zip que contém a planilha com os dados e fórmulas para este teste. Meus dados agora residem nas colunas A a C (Data, Abrir, Fechar). Nas colunas D a H, tenho fórmulas de lugar para determinar o retorno em um determinado dia. Entrando as fórmulas A parte complicada (a menos que você seja um especialista em Excel) está trabalhando as fórmulas a serem usadas. Isso é apenas uma questão de prática e quanto mais você praticar, mais fórmulas você descobrirá e mais flexibilidade você terá com seus testes. Se você baixou a planilha, então dê uma olhada na fórmula na célula D2. Parece isto: Esta fórmula é copiada para todas as outras células nas colunas D a H (exceto a primeira linha) e não precisa ser ajustada uma vez que foi copiada. Vou explicar brevemente a fórmula. A fórmula IF tem uma condição, parte verdadeira e falsa. A condição é: Se o dia da semana (convertido para um número de 1 a 5 que coincide com a segunda-feira a sexta-feira) é o mesmo que o dia da semana na primeira linha desta coluna (D1). A verdadeira parte da declaração (C2-B2) simplesmente nos dá o valor do Close-Open. Isso indica que compramos o Open e vendemos o Close e este é o nosso profitloss. A parte falsa da declaração é um par de aspas duplas () que não coloca nada na célula se o dia da semana não for combinado. Os sinais à esquerda do número da coluna ou da linha da coluna travam a coluna ou a linha de modo que, quando a cópia dela, parte da referência de célula não muda. Portanto, aqui no nosso exemplo, quando a fórmula é copiada, a referência à célula de data A2 mudará o número da linha se ela for copiada para uma nova linha, mas a coluna permanecerá na coluna A. Você pode aninhar as fórmulas e fazer regras excepcionalmente poderosas E expressões. Os resultados Na parte inferior das colunas do meio-dia eu coloquei algumas funções de resumo. Nomeadamente as funções média e soma. Estes nos mostram que, durante o ano de 2004, o dia mais lucrativo para implementar esta estratégia foi em uma terça-feira e esta foi acompanhada de perto por uma quarta-feira. Quando eu testei as sextas-feiras - Bullish ou Bearish estratégia e escreveu que o artigo que eu usei uma abordagem muito semelhante com uma planilha e fórmulas como esta. O objetivo desse teste era verificar se as sextas-feiras de expiração eram geralmente de alta ou de baixa. Experimente. Faça o download de alguns dados do Yahoo Finance. Carregá-lo no Excel e experimentar as fórmulas e ver o que você pode vir acima com. Publique suas perguntas no fórum. Boa sorte e rentável estratégia de caçaBacktesting em Excel vs MQL4 Inscrito em Jul 2017 Status: Membro 4 Posts Alguém fazer backtesting no Excel, ou conhecer os membros que eu gostaria de discutir a metodologia e modelos com quem usa o Excel. Alguém tem modelos simples (ou complexos) que eles estariam dispostos a partilhar para indicadores ou sistemas básicos? Devo dedicar algum tempo para aprender MQL4 Eu tenho muita experiência de modelagem no Excel, mas eu não tenho qualquer experiência com programação de computadores. Estou relutante em passar tempo aprendendo o MQL4, pois não vou começar, mas talvez isso seja mais fácil. Existem outros não-programadores lá fora, que se tornaram proficientes em MQL4 Registrado em Out 2007 Status: Membro 92 Posts Excel é uma ferramenta poderosa. Enquanto ele é projetado para trabalhar como uma planilha e modelagem, etc, as pessoas têm usado para fazer todos os tipos de coisas incríveis, incluindo AI, bases de dados, etc, embora haja ferramentas especialista projetado especificamente para essas tarefas. MQL4 é uma linguagem muito bruta, mas é projetado especificamente para negociação e por isso tem muitas coisas específicas para essa tarefa. Enquanto theres um debate em curso sobre a eficácia do testador de estratégia como uma ferramenta de teste de volta, Im certeza de que você estará de volta testando dez vezes mais rápido com MQL4 mesmo se você tem que aprender a linguagem do zero. Você provavelmente já está familiarizado com muitos dos conceitos fundamentais de programação como loops e declarações condicionais. Para a rota do Excel, você pode querer procurar ferramentas que já estão disponíveis, seja surpreendido se alguém já tenha feito isso. Se você não pode encontrar algo pronto feito, você terá que primeiro de todos os concepção de um simulador de comércio, lidar com o relatório, processar seus dados históricos e, em seguida, ter uma razoável IU. Tudo isso vem de graça com MT4. Cadastrado Out 2007 Status: Membro 887 Posts Qualquer coisa envolvendo cálculos Eu faço no Excel, tenho feito há anos. No entanto, não tenho certeza youd obter qualquer coisa fora de meus modelos como theyre específico para o que estou fazendo. Excel é maneira mais flexível e transparente, para que você possa interrogar e verificar os dados corretamente. Para o não-programador é dourado. Apenas como um exemplo, quanto tempo demoraria, você derrubaria uma EA que mostra a volatilidade média de qualquer hora dada nos últimos 14 dias. Não estou dizendo que é impossível - não tenho ideia - mas no Excel, uma tabela dinâmica e 5 minutos depois e você está pronto. Onde Excel cai está em negociação ao vivo - ele não joga bem enganche em outras plataformas de negociação (FXCM IBCurrenex), mas para backtesting, que não importa. Cadastrado em Jul 2009 Status. Quando eu comecei a fazer a minha própria análise, comecei com o Excel como eu não tinha experiência de programação e encontrei VBA mais fácil de aprender do que MQL4. Agora eu uso uma combinação de ambos. Na minha experiência limitada, o MQL4 é mais rápido na realização de cálculos que o Excel, em particular se sua folha do Excel fizer uso de muitas funções definidas pelo usuário. Um dos meus projetos em andamento é construir uma planilha para analisar instrumentos diferentes de 70 anos em prazos semanais e diários. No começo eu pensei que eu usaria MQL4 para escrever arquivos. csv de OHLC info para cada instrumento e cronograma, em seguida, crunch os números no Excel. Inábil - demorando alguns minutos para recalcular Então, agora eu executo todos os calcs em MT4 e depois escrevo apenas dois arquivos. Excel é então a interface do usuário e não há espera em calcs. Eu suponho que eu estou começando a, é que se você puder usar ambos, então você está dando-se yourself a abilidade de usar o que é o mais adequado à tarefa que você se ajustou. Apenas meus 2 pence. Inscrito em maio de 2006 Status: Somente um nome de usuário. Testes de Estratégia MT4 Programas personalizados do Python OpenOffice Calc (Excel compatível) Cada EA tem suas próprias características, mas, geralmente Ive teve os melhores resultados com MT4 IndicatorsScripts. Se você pode criar um indicador que duplique as ações de uma determinada EA, é possível transformar esse indicador em uma ferramenta de análise. Todos os EAs não se prestam a esta abordagem, mas se você tiver um que faz, ele irá fornecer resultados quase instantâneos (não precisa para o pip, mas perto o suficiente) e salvar ter que mexer com csv arquivos ou outras técnicas de interface mais complexas. IMHO, deixe a natureza do EA que você está testando ditar o melhor método de teste. Old Benjamin foi rightQSForex é um open-source backtesting evento-driven e plataforma de negociação ao vivo para uso nos mercados de câmbio (forex), atualmente em um estado alfa. Ele foi criado como parte da série Forex Trading Diary em QuantStart para fornecer a comunidade de negociação sistemática com um mecanismo de negociação robusto que permite a implementação direta de estratégia forex e testes. O software é fornecido sob uma licença MIT permissiva (veja abaixo). Open-Source - O QSForex foi lançado sob uma Licença de MIT de código aberto extremamente permissiva, que permite o uso total em aplicações de pesquisa e comerciais, sem restrições, mas sem garantia de qualquer tipo. Grátis - QSForex é completamente gratuito e não custa nada para baixar ou usar. Colaboração - Como a QSForex é de código aberto, muitos desenvolvedores colaboram para melhorar o software. Novos recursos são adicionados com freqüência. Quaisquer erros são rapidamente determinados e corrigidos. Desenvolvimento de Software - QSForex é escrito na linguagem de programação Python para suporte direto de plataforma cruzada. QSForex contém um conjunto de testes de unidade para a maioria do seu código de cálculo e novos testes são constantemente adicionados para novos recursos. Arquitetura Orientada a Eventos - QSForex é completamente orientada a eventos, tanto para backtesting e negociação ao vivo, o que leva à transição direta de estratégias de uma fase de researchtesting para uma implementação de negociação ao vivo. Custos de transação - Os custos de spread são incluídos por padrão para todas as estratégias anteriores. Backtesting - QSForex possui backtesting de vários dias multi-currency multi-day intraday. Negociação - O QSForex atualmente oferece suporte à negociação intradía ao vivo usando a OANDA Brokerage API em um portfólio de pares. Métricas de desempenho - O QSForex atualmente suporta medição básica de desempenho e visualização de equidade através das bibliotecas de visualização Matplotlib e Seaborn. Instalação e uso 1) Visite oanda e configure uma conta para obter as credenciais de autenticação da API, que você precisará realizar uma negociação ao vivo. Eu explico como realizar isto para fora neste artigo: quantstartarticlesForex-Trading-Diary-1-Automated-Forex-Trading-com-OANDA-API. 2) Clone este repositório git em um local adequado em sua máquina usando o seguinte comando em seu terminal: git clone githubmhallsmooreqsforex. git. Alternativa, você pode baixar o arquivo zip do ramo mestre atual no githubmhallsmooreqsforexarchivemaster. zip. 3) Crie um conjunto de variáveis de ambiente para todas as configurações encontradas no arquivo settings. py no diretório raiz do aplicativo. Alternativamente, você pode codificar suas configurações específicas substituindo as chamadas os. environ. get (.) Por cada configuração: 4) Crie um ambiente virtual (virtualenv) para o código QSForex e use pip para instalar os requisitos. Por exemplo, em um sistema baseado em Unix (Mac ou Linux), você pode criar um diretório como o seguinte, digitando os seguintes comandos no terminal: Isso criará um novo ambiente virtual para instalar os pacotes em. Supondo que você baixou o repositório QSForex git em um diretório de exemplo, como projectsqsforex (mude este diretório abaixo para onde você instalou QSForex), então, para instalar os pacotes, você precisará executar os seguintes comandos: Isso levará algum tempo como NumPy, SciPy, Pandas, Scikit-Learn e Matplotlib devem ser compilados. Existem muitos pacotes necessários para que isso funcione, por isso, dê uma olhada nestes dois artigos para obter mais informações: você também precisará criar um link simbólico do seu diretório de pacotes do site para seu diretório de instalação QSForex para poder ligar Importe qsforex dentro do código. Para fazer isso, você precisará de um comando semelhante ao seguinte: Certifique-se de alterar projectsqsforex para seu diretório de instalação e venvqsforexlibpython2.7site-packages para o diretório de pacotes do site virtualenv. Agora você poderá executar os comandos subseqüentes corretamente. 5) Nesta fase, se você simplesmente deseja realizar práticas ou negociação ao vivo, então você pode executar o python tradingtrading. py. Que utilizará a estratégia de negociação padrão do TestStrategy. Isso simplesmente compra ou vende um par de moedas a cada 5%. É puramente para testes - não usá-lo em um ambiente de negociação ao vivo Se você deseja criar uma estratégia mais útil, basta criar uma nova classe com um nome descritivo, p. MeanReversionMultiPairStrategy e verifique se ele tem um método calculatesignals. Você precisará passar esta classe a lista de pares, bem como a fila de eventos, como em tradingtrading. py. Consulte strategystrategy. py para obter detalhes. 6) Para realizar qualquer backtesting, é necessário gerar dados forex simulados ou baixar dados históricos do tick. Se você deseja simplesmente testar o software, a maneira mais rápida de gerar um exemplo de backtest é gerar alguns dados simulados. O formato de dados atual usado por QSForex é o mesmo que o fornecido pelo DukasCopy Historical Data Feed em dukascopyswissenglishmarketwatchhistorical. Para gerar alguns dados históricos, certifique-se de que a configuração CSVDATADIR em settings. py seja configurada para um diretório onde você deseja que os dados históricos vivam. Em seguida, você precisa executar generatesimulatedpair. py. Que está sob o diretório de scripts. Ele espera um único argumento de linha de comando, que neste caso é o par de moedas no formato BBBQQQ. Por exemplo: Nesta etapa, o script é codificado para criar dados de um único mês para janeiro de 2017. Ou seja, você verá arquivos individuais, do formato BBBQQQYYYYMMDD. csv (por exemplo, GBPUSD20170112.csv) aparecem em seu CSVDATADIR para todos os dias úteis em Mês. Se você deseja alterar o mês da saída de dados, simplesmente modifique o arquivo e re-execute. 7) Agora que os dados históricos foram gerados, é possível realizar um backtest. O arquivo backtest em si é armazenado em backtestbacktest. py. Mas isso só contém a classe Backtest. Para executar um backtest, você precisa instanciar esta classe e fornecer os módulos necessários. A melhor maneira de ver como isso é feito é observar a implementação do Crossover de média móvel no arquivo examplesmac. py e usá-lo como um modelo. Isso faz uso do MovingAverageCrossStrategy que é encontrado em strategystrategy. py. Este padrão é a negociação de GBPUSD e EURUSD para demonstrar uso de par de moedas múltiplas. Ele usa os dados encontrados no CSVDATADIR. Para executar o exemplo backtest, simplesmente execute o seguinte: Isso levará algum tempo. No meu sistema de desktop Ubuntu em casa, com os dados históricos gerados via generatesimulatedpair. py. Leva cerca de 5-10 minutos para ser executado. Uma grande parte deste cálculo ocorre no final do backtest real, quando o levantamento está sendo calculado, por favor, lembre-se que o código não desligou Por favor, deixe-o até a conclusão. 8) Se você deseja visualizar o desempenho do backtest, você pode simplesmente usar output. py para ver uma curva de patrimônio, retornos de período (ou seja, tick-to-tick returns) e uma curva de redução: E é isso. Nesta fase você está pronto Para começar a criar seus backtests, modificando ou adicionando estratégias em strategystrategy. py e usando dados reais baixados da DukasCopy (dukascopyswissenglishmarketwatchhistorical). Se você tiver dúvidas sobre a instalação, então fique à vontade para me enviar um e-mail no mikequantstart. Se você tiver algum erro ou outros problemas que você acha que podem ser devido especificamente à base de código, sinta-se livre para abrir uma questão Github aqui: githubmhallsmooreqsforexissues Copyright (c) 2017 Michael Halls-Moore É concedida, gratuitamente, a qualquer pessoa Obter uma cópia deste software e dos arquivos de documentação associados (o Software), para lidar com o Software sem restrições, incluindo, sem limitação, os direitos de usar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar e vender cópias do Software, E para permitir que as pessoas a quem o Software é fornecido a fazê-lo, sujeito às seguintes condições: O aviso de copyright acima e este aviso de permissão devem ser incluídos em todas as cópias ou partes substanciais do Software. O SOFTWARE É FORNECIDO COMO É, SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO, APTIDÃO PARA UM FIM ESPECÍFICO E NÃO INFRACÇÃO. EM NENHUMA CIRCUNSTÂNCIA, OS AUTORES OU TITULARES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER RECLAMAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM AÇÃO DE CONTRATO, DELITO OU DE OUTRA FORMA, DECORRENTE, DESTE OU RELACIONADO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO PROGRAMAS. Disclaimer de Negociação de Forex A troca de câmbio em margem possui um alto nível de risco e pode não ser adequada para todos os investidores. O desempenho passado não é indicativo de resultados futuros. O alto grau de alavancagem pode trabalhar contra você, bem como para você. Antes de decidir investir em divisas você deve considerar cuidadosamente seus objetivos de investimento, nível de experiência e apetite de risco. A possibilidade existe que você poderia sustentar uma perda de alguns ou todos do seu investimento inicial e, portanto, você não deve investir o dinheiro que você não pode dar ao luxo de perder. Você deve estar ciente de todos os riscos associados com negociação de câmbio, e procurar aconselhamento de um consultor financeiro independente, se você tiver quaisquer dúvidas. . Uma maneira fácil de usar o Excel para testar uma estratégia de negociação - Parte 1: 10. 2017. Este vídeo fornece uma maneira fácil para qualquer um backtest uma estratégia de negociação. Se você estiver interessado em testar suas próprias estratégias de negociação, há uma série de planilhas diferentes disponíveis no Tradinformed. Eles vêm com um manual gratuito para mostrar-lhe como alterar e alterar o teste para atender às suas estratégias. Confira os modelos de backtest disponíveis aqui: bit. ly24T9mz0 Meu curso de eBook sobre a construção de modelos de backtest no Excel está disponível na Amazon Kindle Store: amzn. to15NDaw4 Siga-nos em Social Media:
No comments:
Post a Comment