Biblioteca de Negociação Algorítmica Python.
PyAlgoTrade é uma Biblioteca de Negociação Algorítmica Python com foco em backtesting e suporte para negociação de papel e negociação ao vivo. Digamos que você tenha uma idéia de uma estratégia de negociação e que você gostaria de avaliá-la com dados históricos e ver como ela se comporta. PyAlgoTrade permite que você faça isso com um esforço mínimo.
Principais características.
Totalmente documentado. Evento conduzido. Suporta pedidos Market, Limit, Stop e StopLimit. Suporta Yahoo! Finanças, Google Finance e NinjaTrader CSV. Suporta qualquer tipo de dados da série temporal no formato CSV, por exemplo, Quandl. Suporte comercial Bitcoin através do Bitstamp. Indicadores técnicos e filtros como SMA, WMA, EMA, RSI, Bandas Bollinger, Expositores Hurst e outros. Métricas de desempenho como a taxa de Sharpe e análise de redução. Manipulação de eventos do Twitter em tempo real. Perfil de eventos. Integração TA-Lib.
Muito fácil de dimensionar horizontalmente, ou seja, usando um ou mais computadores para testar uma estratégia.
PyAlgoTrade é gratuito, de código aberto e está licenciado sob a Licença Apache, Versão 2.0.
Estratégias de negociação.
Biblioteca de estratégias de Forex com descrições detalhadas, que foram desenvolvidas por traders profissionais.
Estratégias de negociação Forex compõem uma biblioteca livre de sistemas de negociação criados por traders experientes. Novas estratégias lucrativas de comércio Forex são constantemente adicionadas à nossa biblioteca, selecionamos cuidadosamente os materiais e colecionamos apenas as melhores e melhores estratégias de negociação de moeda em todo o mundo.
Para encontrar a estratégia de negociação de moeda mais adequada para você, você deve levar em conta todos os aspectos do seu comércio: ferramentas preferenciais, modelo de comportamento do mercado, fator psicológico, etc. Uma abordagem sistemática irá ajudá-lo a escolher a estratégia comercial exata em Forex Isso funcionará para você e aumentará a eficiência da negociação Forex.
É por isso que a LiteForex reuniu todo tipo de estratégias de negociação em um só lugar. Nossa biblioteca apresenta estratégias de Forex intraday e sistemas de negociação de médio prazo. Nós selecionamos os melhores padrões de Forex, estratégias de negociação de moeda, bolsa e estratégias de Forex. Selecione a estratégia de negociação que atenda suas preferências completamente e ajudará a tornar seu trabalho no mercado Forex tão eficiente quanto possível.
A estratégia TDI é um manual de operação com este indicador e é necessário estudá-lo após inst.
Existem muitas estratégias de Forex com base em um indicador específico. A estratégia de contra-tendência é uma delas.
Acredita-se que, se você olhar para o abismo por um longo tempo, o abismo começa a olhar para você. O.
Em estratégias de negociação Forex, usamos muitos padrões formados pelo movimento de preços para fazer previsões. Na f.
Um triângulo é um dos padrões, que pode ser visto frequentemente na tabela de preços. Por via de regra, é um si.
A seqüência dos números Fibonacci é uma das ferramentas mais controversas na negociação, que dividiu o mercado.
Alan Andrews é um comerciante bem conhecido que negociou em Forex na primeira metade do século 20. Altho.
A estratégia de Jarroo é baseada no prazo diário, de modo que a formação de um sinal claro pode demorar muito.
De acordo com os sinais de pesquisa dos comerciantes da estratégia CFI usando três indicadores.
Esta estratégia é tão simples e fácil de entender que cada iniciante é capaz de compreendê-la facilmente e.
O estocástico é um indicador disponível na plataforma de negociação. Em regra, nas estratégias de negociação é.
Sonic R System é uma estratégia comercial popular entre comerciantes experientes e iniciantes, que têm.
Muitas estratégias de negociação envolvem análises complexas e completas, o que as torna não aplicáveis para s.
Maioria das estratégias de Forex são projetadas para negociação durante os períodos de alta volatili do mercado.
A maioria das estratégias projetadas para scalping visam negociações agressivas, o que significa que o uso não foi confirmado.
Biblioteca de estratégias de Forex com descrições detalhadas, que foram desenvolvidas por traders profissionais.
Melhores corretores de forex em nós.
Primeiramente, escolha um corretor de câmbio e escolha um intermediário de câmbio.
Lista de corretores de divisas no mundo.
A negociação cambial começa com uma análise de mercado pré-transação apropriada, seguindo com um.
Ratings de corretores Forex.
Há mais do que algumas coisas que entram na imagem quando se trata de negociar nesta ma.
Principais avaliações de corretores de forex.
Agora, os corretores não são apenas corretores. Não em câmbio pelo menos. Mas como um novato, yo.
Melhor forex broker europa.
Um monte de seu futuro de negociação cambial depende do corretor que você está trabalhando com ri.
Os melhores corretores de Forex.
O câmbio é o maior mercado financeiro desse tipo. Existem mais do que alguns t.
Melhores corretores de forex no mundo.
Os corretores em moeda estrangeira não se limitam apenas a transmitir um comércio através de um comerciante. Eles & rsqu.
Melhor forex broker uk.
O Reino Unido ou, em vez disso, o GBP está passando por um pouco de turbulência tardia. Mas isso não significa isso.
Revisões de corretores de Forex.
O comércio cambial é impossível sem corretores e você sabe disso. Há mais tempo.
Este site usa cookies para aprimorar sua experiência. Ao continuar navegando no site, você concorda com o uso de cookies.
Aviso de risco: a negociação nos mercados financeiros traz riscos. Os Contratos de Diferença (CFDs) são produtos financeiros complexos que são negociados na margem. Trading CFDs traz um alto nível de risco, uma vez que a alavancagem pode funcionar tanto para sua vantagem quanto para sua desvantagem. Como resultado, os CFDs podem não ser adequados para todos os investidores porque você pode perder todo seu capital investido. Você não deve arriscar mais do que está preparado para perder. Antes de decidir comercializar, você precisa garantir que compreenda os riscos envolvidos levando em consideração seus objetivos de investimento e nível de experiência. Clique aqui para obter nossa Divulgação de risco completa.
LiteForex Investments Limited registrado nas Ilhas Marshall (número de registro 63888) e regulamentado de acordo com a Lei das Sociedades Comerciais das Ilhas Marshall. Endereço da empresa: Ajeltake Road, Ajeltake Island, Majuro, Marshall Islands MH96960. Email: customersliteforex.
A Liteforex Investments Limited não fornece serviços aos residentes dos EUA, Israel, Bélgica e Japão.
Biblioteca de estratégias de negociação
Obter através da App Store Leia esta publicação em nosso aplicativo!
Negociação de bibliotecas C ++.
Existe alguma biblioteca c ++ livre que teria algumas das funções que seriam usadas no desenvolvimento de uma estratégia de negociação. Por exemplo, cálculo de retirada, Previsão de Volatilidade, MAE, MFE. etc.
Eu sei que eu poderia codificá-los, mas isso me ajudaria a economizar tempo e focar na estratégia e não nas gerações do relatório.
Aqui estão algumas sugestões.
Pesquise a Amazon (ou o seu livreiro favorito) para livros sobre "financiamento quantitativo C ++". Eu encontrei vários títulos que parecem promissores.
Eu fui ao SourceForge (pesquisando em "Trading Systems") e vi vários sistemas promissores que podem lhe dar uma vantagem em drawdown, MAE, etc.
Uso a TradeStation 9.0 para comparar várias estratégias de negociação. Ele fornecerá gráficos MAE / MFE, curvas de equidade comercial e estratégias de classificação com base na redução máxima. Mas não deixe de ler Trading Systems That Work: Construindo e Avaliando Sistemas de Negociação Eficaz, de Thomas Stridsman, para uma crítica adequada aos relatórios gerados pela TradeStation.
Para realmente criar sua estratégia de negociação, você pode usar o código aberto TA Lib (que está escrito em c ++) e que está disponível aqui. Para testá-lo, você poderia usar o R e o pacote PerformanceAnalytics.
Biblioteca Forex.
Os riscos elevados são o principal obstáculo no caminho para se enriquecer através do comércio forex. O mercado monetário é muito instável, o número de fatores que o afetam é bastante alto e, de modo algum, todos podem ser previstos. Por 100 anos de existência de várias bolsas, começando com bolsas de commodities e terminando com bolsas de valores ou de câmbio, ninguém foi capaz de refrear esse ambiente de mercado. Volumes de livros foram escritos, centenas de especialistas e gurus vieram e se foram, sortudos indivíduos ganharam milhões e livros escritos, mas ninguém foi capaz, até agora, de elaborar o esquema geral de trabalho bem-sucedido, com uma vitória. matriz. A exata complexidade do trabalho analítico e da imprevisibilidade do organismo, chamada "mercado monetário global", arrasa 95 dos 100 jogadores que ousaram lutar contra este oceano de oportunidades e ameaças. É necessário considerar que o trabalho profissional na negociação forex é muito exigente psicologicamente, uma vez que o seu cálculo preciso e parecendo 100% negócio bem sucedido pode instantaneamente se transformar em uma perda por motivos que não dependem de você. Nem toda mente consegue aceitar a fatalidade das derrotas. Não basta apenas ser inteligente, é preciso separar-se para o trabalho.
Independentemente da idade e da experiência, a característica invariável de cada trader é o desejo de auto-educação. Não é suficiente fazer conquistas de curto prazo no mercado de câmbio, mas é importante provar a resiliência e rentabilidade de sua estratégia durante um longo período de tempo. É impossível viajar naquela estrada complexa sem conhecimento que se acumula no processo de estudo e análise dos materiais dedicados ao mercado internacional de câmbio.
Materiais para estudar.
Retrospectiva do Mercado de Moedas. O comércio de margem é o princípio fundamental do mercado de câmbio. A noção de negociação de margem é reduzida para a realização de operações financeiras no forex com o uso de alavancagem. A este respeito, o depósito que está na conta do negociante joga como uma garantia (margem). No caso de uma transação mal sucedida, o corretor do forex, que realizou certas operações financeiras em nome do negociante e em sua instrução, sofrerá perdas. A fim de compensá-los, é necessário um depósito; também é chamado de seguro de depósito. Perdas não podem exceder o valor do seguro de depósito; portanto, as corretoras sempre controlam a situação, e se os níveis de perdas na conta atingirem um determinado valor, a transação será fechada sem a participação do negociante. Você precisa lembrar que ao abrir posições, não use todo o dinheiro disponível na conta ao fazer contratos de moeda.
Artigos sobre negociação. A escolha de instrumentos de investimento no mundo moderno é extremamente alta - eles podem ser igualmente representados por ações de empresas, títulos, depósitos bancários, contas impessoais em metais preciosos, opções ou fundos mútuos de investimento. Os tipos de investimentos diferem em dois principais critérios interligados: risco e lucratividade. Além disso, quanto maior a rentabilidade for, maiores serão os riscos, o que é natural. No meio deste esplendor de investimento, o comércio forex ocupa o lugar honroso da ferramenta mais arriscada e rentável. Um depósito bancário lhe dará um máximo de 5-7% (se falamos de valores sérios), investimentos em fundos de investimento mútuo - 20-5-% (no caso de um resultado muito bom). O potencial de negociação Forex é muito maior; aqui, estamos falando de 100% da renda anual e ainda maior. É claro que nenhum negócio legal é capaz de produzir tal percentual, nem qualquer ferramenta financeira conservadora o fará.
Com o que você começa a negociar? Um dos principais segredos da negociação forex de sucesso é o cumprimento das regras de gerenciamento de capital. O comerciante deve sempre perceber a grande importância desse aspecto. Habilidades que ajudam a cuidar do seu depósito de negociação sempre produzem resultados positivos. Qual é a essência da gestão financeira? Primeiro, está limitando o nível de riscos. Isso é possível através da colocação de pedidos de parada, bem como a operação no âmbito da relação percentual das transações. Por exemplo, você não precisa abrir posições em uma direção de mercado com mais de 5% do depósito de negociação. No entanto, muitos profissionais limitam suas regras ainda mais. Tudo depende do tamanho do capital e do nível planejado de lucro. A este respeito, é importante lembrar que o mercado de divisas tem muitas direções que permitem lucros. De modo algum, todos os sistemas de negociação se adequam a um tipo específico de negociação ou a um certo par de moedas. É sempre aconselhável combinar a capacidade de operação da ferramenta pessoal e do mercado, onde uma operação específica é realizada. Isso ocorre porque um método funcionará em um mercado silencioso e o outro será o mais eficaz em caso de fortes saltos e movimentos.
Indicadores de negociação. Qual é o segredo da negociação bem sucedida no mercado forex? É uma questão muito complexa que tem um número infinito de respostas. Todo especialista em mercado de câmbio está pronto para listar várias razões para o saldo positivo na conta. Alguns comerciantes colocam ênfase nos indicadores e outros se concentram no gerenciamento de capital hábil. É muito importante seguir a proporção de ferramentas de negociação que o ajudarão a ser bem sucedido. No entanto, é necessário conhecer os principais componentes da negociação bem sucedida por esse motivo. E tanto a "receita" quanto as proporções terão que ser selecionadas pessoalmente. Em qualquer caso, o uso de indicadores de negociação é uma ferramenta indispensável que permite ao trader não apenas otimizar o sistema de riscos, mas, em geral, aumentar a eficácia de seu sistema de negociação.
Calendário das sessões de negociação. Forex é um mercado financeiro global, onde as vendas e compras de moeda são realizadas 24 horas por dia. No entanto, é importante considerar que o caráter de negociação para cada par de moedas depende do relógio global, que determina a atividade dos operadores em várias regiões do planeta. Desta forma, por exemplo, as operações mais ativas e massivas de USD / JPY, EUR / JPY, bem como as negociações em dólar de Cingapura e em yuan chinês ocorrem durante a sessão asiática (00: 00-09: 00 UTC), enquanto operações cambiais com o JPY produz apenas 16,5% do volume de negócios diário. Para ser bem sucedido na negociação forex, cada comerciante precisa considerar para o seu sistema a influência dos fusos horários na atividade de negociação de pares de moedas selecionadas como ferramentas para a realização de transações.
The Back Testing Library para Desenvolvedores de Estratégia de Negociação Profissional.
O teste de retorno é o processo de testar estratégias de negociação com base em dados históricos de mercado para tentar simular como um sistema de negociação pode funcionar no futuro.
O teste de atraso é o desenvolvimento da estratégia comercial, o que a pesquisa e a melhoria da qualidade são para as indústrias de saúde e transporte. Quem gostaria de experimentar um monitor de coração não testado ou um automóvel? Ninguém. O mesmo vale para as estratégias de negociação financeira.
Todas as estratégias de negociação devem ser testadas, otimizadas e validadas antes de entrar em ação com dinheiro real. Quase qualquer estratégia de negociação de análise técnica pode ser testada.
Embora seja verdade que muitos aplicativos de comércio de nível intermediário fornecem linguagens de script que permitem que os traders desenvolvam e testem estratégias de negociação, descobrimos que não havia bibliotecas de testes disponíveis para desenvolvedores avançados de sistemas de negociação que preferem programar suas estratégias de negociação em programação de baixo nível. idiomas como C ++, C # e Java.
Então, desenvolvemos um mecanismo de teste de back para desenvolvedores de sistemas avançados.
Agora, os desenvolvedores podem criar estratégias em qualquer linguagem de programação, depois testar e otimizar essas estratégias para melhorar o desempenho. O BackTestLib permite que desenvolvedores testem seus sistemas de negociação em C ++, C #, VB, F #, R, IronPython ou qualquer outro idioma, usando dados de ticks ou barras.
Apenas não importa como seu sistema comercial está escrito. Tudo o que você precisa fazer é fornecer uma lista de trades e a biblioteca de teste de volta faz o resto para você.
O BackTestLib pode calcular o desempenho do seu sistema de negociação usando duas dúzias de medidas de risco, incluindo índice de Sharpe, índice Calmar, razão de Sortino, empate máximo, empate de Monte Carlo, P & L total, índice de risco para recompensa, maior lucro, maior perda e número médio de negócios / Month, Trade Logs e muito mais.
Perfeito para otimização de estratégia.
Os comerciantes profissionais sabem que todas as coisas boas acabaram. Mesmo os melhores sistemas de negociação eventualmente caem em períodos perdidos, exigindo a otimização ou a aposentadoria do sistema comercial. Os motivos variam, incluindo mudanças na liquidez, volatilidade e dinâmica do mercado subjacente, bem como outros fatores. O BackTestLib produz resultados que representam um intervalo de medições com base na lucratividade e no risco do seu sistema de negociação quando testados com os dados com os quais foram fornecidos.
Exemplo de código.
// Crie algumas tradições simuladas.
Lista & lt; Trade & gt; trades = new List & lt; Trade & gt; ();
trades. Add (novo Trade (DateTime. Parse (& quot; 1/1/2014 9: 30: 45.422 AM?), SignalType. Buy, 24));
trades. Add (novo comércio (DateTime. Parse (& quot; 1/1/2014 9: 32: 33.891 AM @), SignalType. ExitLong, 24.09));
trades. Add (novo Trade (DateTime. Parse (& quot; 1/1/2014 9: 37: 12.839 AM?), SignalType. Sell, 24.07));
comércios. Adicionar (novo Comércio (DateTime. Parse (& quot; 1/1/2014 9: 48: 27,488 AM @), SignalType. Saída, 24.19));
trades. Add (novo Trade (DateTime. Parse (& quot; 1/1/2014 9: 49: 16.415 AM & quot;), SignalType. Buy, 24));
comércios. Adicionar (novo Comércio (DateTime. Parse (& quot; 1/1/2014 9: 50: 45.512 AM @), SignalType. Saída, 24.09));
trades. Add (novo comércio (DateTime. Parse (& quot; 1/1/2014 9: 51: 14.212 AM & quot;) SignalType. Buy, 24,01));
// Executa o backtest.
Double LastPrice = 24,03;
BacktestResults results = Backtester. Backtest (trades, lastPrice);
// Execute os resultados.
Console. WriteLine (& quot; Número total de negociações: & quot; resultados. TotalNumberOfTrades);
Console. WriteLine (& quot; Número médio de negócios por mês: & quot; results. AverageTradesPerMonth);
Console. WriteLine (& quot; Número total de negócios rentáveis: & quot ;, results. NumberOfProfitableTrades);
Console. WriteLine (& quot; Número total de negociações perdidas: & quot; results. NumberOfLosingTrades);
Console. WriteLine ("lucro total": "quot; results. TotalProfit");
Console. WriteLine (& quot; Perda total: & quot; results. TotalLoss);
Console. WriteLine (& quot; Porcentagem de negociações lucrativas: & quot; results. PercentProfit);
Console. WriteLine (& quot; Porcentagem de negociações lucrativas: & quot; results. PercentProfit);
Console. WriteLine ("Maior lucro: & quot; results. LargestProfit);
Console. WriteLine (a maior perda: & quot; results. LargestLoss);
Console. WriteLine ("Maximum drawdown: & quot ;, results. MaximumDrawDown);
Console. WriteLine ("Maximum drawdown Monte Carlo:" quot; results. MaximumDrawDownMonteCarlo);
Console. WriteLine ("Desvio padrão:", results. StandardDeviation);
Console. WriteLine ("Desvio padrão anualizado:", results. StandardDeviationAnnualizado);
Console. WriteLine ("Desvio de Downside" (MAR = 10%): "quotes", results. DownsideDeviationMar10);
Console. WriteLine (& quot; Value Added Monthly Index (VAMI): & quot; results. ValueAddedMonthlyIndex);
Console. WriteLine ("Sharpe ratio:", results. SharpeRatio);
Console. WriteLine ("Sortino ratio: & quot; results. SortinoRatioMAR5);
Console. WriteLine ("Taxa Sortino Anualizada:", results. AnualizedSortinoRatioMAR5);
Console. WriteLine (& quot; Sterling ratio: & quot ;, results. SterlingRatioMAR5);
Console. WriteLine ("Calmar ratio:" quot; results. CalmarRatio);
Console. WriteLine ("Risk to reward ratio": & quot; results. RiskRewardRatio);
// Exibe o log de comércio.
foreach (Trade trade in results. Trades)
Console. WriteLine (trade. Date + & quot ;: & quot; + trade. Signal. ToString () + & quot; at & quot; + trade. Price. ToString ());
Comece com o BackTestLib>
Por que escolher o módulo?
O Modulus é uma empresa de tecnologia financeira. Embora isso não pareça um diferencial real, é. Isso significa que nossas soluções são de nossos anos de experiência no setor de tecnologia financeira. Nossos produtos e serviços são fornecidos por desenvolvedores e engenheiros que possuem experiência de negociação de primeira mão. Todo mundo aqui no Modulus fala seu idioma.
Direitos autorais e cópia; 2002-2018 pela Modulus Global, Inc., todos os direitos reservados.
Bibliotecas de backtesting de Python para estratégias de negociação Quant.
Escrito por Khang Nguyen Vo, khangvo88gmail, para o blog RobustTechHouse (Mobile App Development Singapore). Khang é formado pelo programa de Mestrado em Finanças Quantitativas e Computacionais, John Von Neumann Institute 2014. Ele é apaixonado por pesquisa em aprendizado de máquina, modelagem preditiva e backtesting de estratégias de negociação.
Bibliotecas de Backtesting de Python, com freqüência mencionada.
É essencial fazer backtest de estratégias de negociação de quant antes de negociá-las com dinheiro real. Aqui, revisamos as bibliotecas de backtesting Python usadas com frequência. Nós as examinamos em termos de flexibilidade (pode ser usada para backtesting, negociação de papéis e negociação ao vivo), facilidade de uso (boa documentação, boa estrutura) e escalabilidade (velocidade, simplicidade e compatibilidade com outras bibliotecas).
Zipline: trata-se de um framework de backtesting dirigido a eventos usado por Quantopian. O Zipline tem uma ótima comunidade, boa documentação, ótimo suporte para a integração Interactive Broker (IB) e Pandas. A sintaxe é clara e fácil de aprender. Tem muitos exemplos. Se o seu principal objetivo de negociação é a equidade dos EUA, esse quadro pode ser o melhor candidato. Quantopian permite que alguém faça um teste, compartilhe e discuta estratégias de negociação em sua comunidade. No entanto, em nosso experimento, o Zipline é extremamente lento. Essa é a maior desvantagem dessa biblioteca. Quantopian tem algum trabalho, como executar a biblioteca Zipline em paralelo na nuvem. Você pode dar uma olhada nesta postagem se isso lhe interessar. Zipline também parece funcionar mal com dados locais e dados não-americanos. É difícil usar esse quadro para diferentes classes de ativos financeiros. PyAlgoTrade: Esta é outra biblioteca orientada a eventos que é ativa e que oferece suporte ao backtesting, ao comércio de papel e ao comércio ao vivo. Está bem documentado e também suporta integração TA-Lib (Biblioteca de Análise Técnica). Supera o Zipline em termos de velocidade e flexibilidade. No entanto, uma grande desvantagem do PyAlgoTrade é que ele não suporta os módulos Pandas-objeto e Pandas. pybacktest: estrutura de backtesting vetorizada em Python que é muito simples e leve. Este projeto pareceu reviver novamente em 21 de maio de 2015. TradingWithPython: Jev Kuznetsov estendeu a biblioteca de pybacktest e construiu seu próprio backtester. Esta biblioteca parece atualizada recentemente em fevereiro de 2015. No entanto, a documentação e o curso para esta biblioteca custam US $ 395. Alguns outros projetos: ultra-finance.
As bibliotecas de backtesting do Python estão resumidas na tabela a seguir:
Zipline vs PyAlgoTrade Python Backtesting Libraries.
Vamos nos concentrar em comparar as bibliotecas de backtesting de Python mais populares da Zipline e PyAlgoTrade abaixo.
A documentação pode ser encontrada em zipline. io/tutorial/ e você pode encontrar algumas implementações no Quantopian. Não entramos em detalhes sobre como usar esta biblioteca aqui, pois a documentação é clara e concisa. O script de exemplo abaixo mostra como essa biblioteca de Backtesting do Python funciona para uma estratégia simples.
A sintaxe para tirolesa é muito clara e simples e é adequada para iniciantes para que eles possam se concentrar na principal estratégia de algoritmo de negociação em si. Suas outras forças incluem:
Boas documentações, ótima comunidade Compatível com IPython: support %% zipline A entrada e a saída para zipline são baseadas no Pandas DataFrame. Esta é uma grande vantagem, uma vez que o Pandas é a maior e mais fácil biblioteca para análise e modelagem de dados. (Ou modelo de impacto, que significa quando você compra ou vende, esta ação impactará o preço real) e modelo de Comissão de transação). A modelagem torna as estratégias de negociação mais realistas.
Essa estratégia de negociação é simples, basicamente compramos 10 ações em cada iteração. Note que o zipline permite dinheiro negativo, então o pedido é sempre preenchido. A iteração ocorre na função handle_data () e, em seguida, cada dado da barra será buscado na variável de dados. Cada barra de dados é definida da seguinte forma:
O tempo médio de execução (10 loops) para este script é de cerca de 66 segundos, o que parece muito longo, considerando que estamos apenas buscando dados diários e executando um algoritmo de negociação simples. Em seguida, tentamos usar o arquivo local em vez de buscar no Yahoo Finance.
APPL. csv é o arquivo local baixado de ichart. finance. yahoo/table. csv? s=APPL. A classificação e a localização de dados são obrigatórias porque a tirolesa considera os dados como uma linha de tempo ascendente e extrai a barra de dados dessa.
Em seguida, os dados mudam da seguinte forma:
* Nota: Temos que ter cuidado com o campo de volume aqui. Com esse método, cada coluna de dados (Abrir, Fechar, Alta, Baixa, Ajuste de Adj e Volume) é tratada como instrumento individual aqui e o campo "volume" é definido como 1000 como padrão. No backtest, o pedido é preenchido ou cancelado com base no volume de mercado disponível (consulte essa referência), portanto, precisamos alterar o campo "volume" definido aqui.
O tempo médio de execução é: 61 segundos, o que não é muito melhor do que o load_bars_from_yahoo () que tentamos antes. O desempenho é, de fato, um problema conhecido para a biblioteca de tirolesa. Apesar de usarmos arquivos de dados locais, o zipline também precisa buscar dados do yahoo para o ambiente de negociação. Isto é devido ao mecanismo de benchmark incorporado nesta biblioteca. por exemplo: pedido de função get_raw_benchmark_data () para o yahoo para obter o ponto de dados para ^ GSPC.
Claro, pode-se tentar personalizar o código para usar os próprios dados do & # 8217; em vez de buscar dados de outras fontes; no entanto, isso exige muito esforço. Jason Swearingen lida com esses problemas (declarado neste post) escrevendo sua própria biblioteca chamada QuanShim, que suporta Zipline e Quantopian. No entanto, isso está fora do escopo aqui.
Além disso, é realmente difícil lidar com dados de negociação de maior frequência (por hora, minutos, dados de marca) aqui. Para trabalhar com dados fora do intervalo de datas de referência fornecido, pode-se:
(1) fornecer seu próprio benchmark (veja esta sugestão e resposta para a questão 271); ou.
(2) execute sem um benchmark e, em seguida, não calcule as métricas de risco que o exigem (comente algumas linhas de código em risk. py ou benchmark. py). Isso é mencionado no número 13.
Se o seu mercado-alvo for o mercado dos EUA, então a tirolesa é uma opção decente para uma biblioteca de Backtesting do Python. Mas, para testar diferentes ativos financeiros em todos os mercados, a falta de flexibilidade e o lento tempo de execução da tirolesa causará problemas.
2. PyAlgoTrade:
Usamos o seguinte script simples para demonstrar como o PyAlgoTrade funciona em comparação com Zipline. A documentação do PyAlgoTrade & # 8217; aqui pode ser encontrada, incluindo estratégias de exemplo e tutorial. Para comparação justa, vamos tentar a mesma estratégia que fizemos acima:
Isso também é bastante simples. O script obtém dados do Yahoo, itera usando o onBars (). Ao contrário da tirolesa, o PyAlgoTrade não permite dinheiro negativo por padrão, por isso devemos defini-lo explicitamente.
Alterar o feed para o arquivo local é muito fácil no PyAlgoTrade, o que torna esta biblioteca mais adequada para backtests de papel do que a tirolesa. No exemplo abaixo, também usamos o arquivo de dados baixado do Yahoo.
Uma coisa que eu gosto sobre PyAlgoTrade é que é mais flexível do que a biblioteca de tirolesa para fazer pedidos. Além de pedidos individuais (por exemplo: mercado, limite, parada, ordem stop-limite), o PyAlgoTrade fornece funções de nível superior que envolvem um par de ordens de entrada / saída (por exemplo: enterLong, enterShort, enterLongLimit, interface enterShortLimit).
PyAlgoTrade definitivamente oferece mais flexibilidade para fazer pedidos. Na maioria dos casos, trabalhamos apenas com os primeiros 6 eventos, ou seja, onEnterOk, onEnterCanceled, onExitOk, onExitCanceled, onOrderUpdated e onBars.
No entanto, o PyAlgoTrade fornece suas próprias classes DataSeries e Bar, e essas classes não funcionam com a biblioteca Pandas. Isso é frustrante, uma vez que a Pandas é comum à Análise e modelagem de dados. Vejamos as barras definidas em cada iteração:
Com a falta de suporte para o Pandas, você provavelmente gastará mais tempo aprendendo o PyAlgoTrade do que o libray de zipline. O Zipline fornece uma interface simples e um tipo de dados familiar (Pandas) para que o usuário possa se concentrar na estratégia em si, em vez de trabalhar com outros encanamentos técnicos.
No entanto, em comparação com a tirolesa, o PyAlgoTrade supera claramente em termos de tempo de execução. Com o mesmo algoritmo, o tempo médio de execução é de apenas 2 segundos, enquanto o script de tirolesa acima leva cerca de um minuto.
Resumo de Zipline vs PyAlgoTrade Python Backtesting Libraries.
Eu provavelmente classificaria essas 2 bibliotecas de teste de Python da seguinte maneira:
Cada biblioteca de Backtesting do Python tem seus próprios pontos fortes e fracos, e muitas funções interessantes que eu não trouxe neste artigo. Então, eu sugiro que você escolha o mais adequado com base em quais são seus requisitos e os prós e contras mencionados acima.
Onde é que o Pyalgotrade é compatível com Interactive Brokers?
Você está certo. Acho que o artigo acabou de ser atualizado para afirmar que o pyalgotrade não suporta o IB.
Woud você está disposto a incluir & # 8220; backtrader & # 8221; na sua comparação? (backtrader)
É bom encontrar este post e ver que meu humilde backtester está incluído! Obrigado por dar uma olhada.
Eu gostaria de mencionar que você não precisa pagar pelo curso para acessar o código de backtesting, que é encontrado no github: github / sjev / trading-com-python / blob / master / lib / backtest. py.
O código neste momento é bastante legível, então você deve ser capaz de usá-lo sem muita documentação extra.
Quanto ao futuro, planejo desenvolver este código e adicionar uma melhor documentação. Aparentemente, não há ferramenta de backtest baseado em vetores de descida por aí ainda. (pelo menos não ao meu link)
Eu adicionei fork para permitir que pyalgotrade extraísse os dados dos pandas diretamente. github / gbeced / pyalgotrade / puxar / 107.
Somos especialistas em sistemas Mobile App e FinTech, apaixonados pelo desenvolvimento de soluções robustas para nossos clientes. Construímos sistemas inovadores de última geração nos setores de comércio eletrônico, comércio móvel e financeiro. Nosso objetivo é ser a principal Tech House na Ásia.
Estamos ansiosos para as suas mensagens. Por favor, deixe-nos uma nota para qualquer consulta e nós voltaremos para você, o mais rápido possível.
No comments:
Post a Comment