Sunday 24 September 2017

Biblioteca de forex de python


Python Algorithmic Trading Library PyAlgoTrade é uma Python Algorithmic Trading Library com foco em backtesting e suporte para papel-trading e live-trading. Digamos que você tenha uma idéia de uma estratégia comercial e que 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 de Mercado, Limite, Parada e StopLimit. Suporta os arquivos do Yahoo Finance, Google Finance e NinjaTrader CSV. Suporta qualquer tipo de dados de séries temporais 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 no 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. Versão atual: 0.18 (17Aug2016) Novos recursos O analisador de retornos agora armazena os tempos de data e cada amostra. Obrigado MatthiasKauer por implementar isso. A ferramenta Quandl para criar o feed suporta o mapeamento dos nomes das colunas. Os feeds de barra agora suportam colunas extras além de valores de OHLC. Adicionado buildFigureAndSubplots ao plotter para retornar as subparcelas juntamente com a figura. Obrigado Carlos Tse por implementar isso. O analisador de estratégia de retornos agora aceita passar o maxLen para o datasery. Obrigado physicsd00d para implementar isso. Corrigido erro de divisão zero no StochasticOscillator. Obrigado Blake Jennings por relatar isso. Corrigido um erro de arredondamento na estratégia de preenchimento padrão ao calcular o volume deixado para um determinado instrumento. Obrigado Markus Trenkwalder por ter relatado isso. Não estava logando corretamente no corretor backtesting quando os compartilhamentos não são inteiros. Gerenciamento de exceções adicionado ao módulo otimizador. Obrigado Sergey Cheparev por relatar isso. Corrigido um erro no cálculo do VWAP ao usar valores ajustados. Adicionado uma maneira de alterar o valor dataseries. DEFAULTMAXLEN. Adicionado retorno faltando em plotter. Series. getValues. Obrigado physicsd00d por relatar isso. Otimizador. local às vezes foi bloqueado esperando que os processos filho terminassem. Quebrando mudanças Suporte Xignite removido (xignite). Removido código obsoleto que emitiu avisos em versões anteriores. Versão 0.17 (10May2015) Novos recursos Indicador técnico do exponente Hurst (pyalgotrade. technical. hurst. HurstExponent). Adicionado suporte para modelos de deslizamento (pyalgotrade. broker. slippage) incluindo um modelo VolumeShareSlippage como o de Zipline (githubquantopianzipline). Reconecte automaticamente a alimentação do Bitstamp se a conexão for fechada. Feche as conexões o mais rápido possível para evitar a falta de descritores de arquivos quando o GC é atrasado. Obrigado Tibor Kiss por ter relatado e corrigir isso. Falha ao colocar pedidos Market-On-Close quando testar com dados intradiários. Agora, isso não é suportado. Bitstamp backtesting broker estava permitindo trades abaixo de 5. Atualizado padrão Bitstamp taxa para 0,25. Corrigido um erro ao reescrever as datas de entrada intradiárias localizadas. Mudanças de ruptura As estratégias de preenchimento do agente de backtesting foram movidas para o módulo pyalgotrade. broker. fillstrategy. Versão 0.16 (31 de agosto de 2014) Novos recursos Adicionado suporte para estratégias de Bitcoin de negociação ao vivo através do Bitstamp. Exemplo aqui. Suporte para carregamento de gráficos Bitcoin históricos de arquivos comerciais CSV. Suporte para baixar e carregar barras de Quandl. Suporte para arquivos do Google Finance CSV. Obrigado Maciej ok por implementar isso. Corrigido um bug em pyalgotrade. tools. resample e pyalgotrade. dataseries. resampled. ResampledBarDataSeries ao usar frequências de agrupamento superiores a 1 dia. Bitstamp BacktestingBroker e PaperTradingBroker agora não conseguirá fazer pedidos sem dinheiro suficiente ou BTC. Corrigido um erro de arredondamento em pyalgotrade. bitstamp. broker. PaperTradingBroker. Corrigido um bug no BarFeed. getCurrentDateTime. Corrigido um erro em pyalgotrade. technical. cross. crossabove e pyalgotrade. technical. cross. crossbelow. Quebrando as mudanças, o Suporte do Google App Engine removido. Pyalgotrade. bitstamp. client. Client foi removido e a funcionalidade agora está incluída em pyalgotrade. bitstamp. barfeed. LiveTradeFeed. Strategy. onOrderUpdated agora é chamado para todos os eventos de ordem, incluindo aqueles gerados usando a interface de posição. Versão 0.15 (30Mar2014) Novos recursos Xignite suporte para barras em tempo real. Exemplo aqui. Suporte para a comercialização de estratégias Bitcoin através do Bitstamp. Exemplo aqui. Suporte de preenchimento parcial para pedidos. Indicador técnico MACD (pyalgotrade. technical. macd. MACD). Indicador técnico médio True Range (ATR) (pyalgotrade. technical. atr. ATR). LeastSquaresRegression filter (pyalgotrade. technical. linreg. LeastSquaresRegression). Depende do SciPy. Método de marketOrder adicionado à classe Strategy para colocar ordens de mercado. Adicionado método limitOrder para a classe Estratégia para colocar ordens limite. Adicionado método stopOrder para a classe Strategy para colocar ordens stop. Adicionado o método stopLimitOrder para a classe Strategy para colocar ordens de limite de parada. Adicionado métodos de log para a classe Estratégia. Pyalgotrade. barfeed. yahoofeed. Feed agora oferece suporte a barras semanais. Pyalgotrade. tools. resample e pyalgotrade. dataseries. resampled. ResampledBarDataSeries agora suporta qualquer freqüência de agrupamento. Corrigido um erro no pyalgotrade. technical. roc. RateOfChange quando não houve alteração eo valor atual foi 0. pyalgotrade. tools. resample e pyalgotrade. dataseries. resampled. ResampledBarDataSeries agora configura o tempo da data para o início da barra. Quebrando as mudanças, o suporte removido do MtGox. Alterou a ordem dos parâmetros stopPrice e limitPrice em Strategy. enterLongStopLimit, Strategy. enterShortStopLimit e Position. exit. O suporte para a saída automática no fechamento da sessão foi removido. Pyalgotrade. technical. trend. Slope foi movido para o pacote pyalgotrade. technical. linreg. Removido alguns métodos obsoletos do DataSeries (appendValue, appendValueWithDatetime, getValue, getValues, getValuesAbsolute, getFirstValidPos e getLength). Falha ao reenviar pedidos. Falha ao alterar propriedades de ordem definidas durante a inicialização. O último parâmetro para broker. backtesting. FillStrategy. fillStopLimitOrder foi removido. FillStrategy agora irá lidar com todos os detalhes para o preenchimento de pedidos para permitir uma melhor personalização. Outras mudanças setUseAdjustedValues ​​agora devem ser chamadas na estratégia em vez do corretor. Position. getUnalizeNetProfit e Position. getUnrealizedReturn usarão automaticamente o último preço disponível se Nenhum for fornecido. As barras diárias dos feeds Yahoo e NinjaTrader CSV são carregadas com o tempo definido para 00:00:00. Todas as classes agora herdam do objeto. O corretor de backtesting ignora o volumeLimitar ao usar barras comerciais. O corretor de backtesting agora emite o evento de cancelamento quando o cancelamento é solicitado, não na próxima barra. Versão 0.14 (12Oct2013) Baixe aqui: PyAlgoTrade-0.14.tar. gz Perfil de eventos inspirado no QSTK (pyalgotrade. eventprofiler). Exemplo aqui. Filtro de retorno cumulativo (pyalgotrade. technical. cumret. CumulativeReturn). Filtro Z-Score (pyalgotrade. technical. stats. ZScore). Adicionado suporte para outros tipos de dados de séries temporais no formato CSV (pyalgotrade. feed. csvfeed. Feed). Exemplo aqui. Corrigido um erro com loggers ao usar o otimizador: githubgbecedpyalgotradeissues10. Corrigido um erro no analisador de negócios. Comissões proporcionais ao mudar de longo a curto ou viceversa não foram devidamente calculadas. Agradeço a Sam Jackson por ter relatado isso e fornecer um patch. Corrigido um erro ao usar o otimizador e um corretor com valores ajustados. Diminuição da granularidade da tarefa no Google App Engine para melhorar o desempenho. Broker. backtesting. FillStrategy foi alterado para retornar uma instância broker. backtesting. FillInfo. Broker. backtesting. DefaultStrategy agora leva o volume da barra em conta para preencher um pedido. Pyalgotrade. barfeed. BarFeed foi renomeado para pyalgotrade. barfeed. BaseBarFeed e pyalgotrade. barfeed. BasicBarFeed foi removido. Os manipuladores de eventos para pyalgotrade. barfeed. BaseBarFeed. getNewBarsEvent devem esperar dois parâmetros: data e barras. Essa alteração pode quebrar as estratégias existentes que se inscreveram manualmente nos eventos do BarFeed. Versão 0.13 (26Aug2013) Baixe aqui: PyAlgoTrade-0.13.tar. gz Adicionado suporte para o gerenciamento de eventos do Twitter em tempo real (pyalgotrade. twitter. feed). Exemplo aqui. Adicionado suporte para backtesting e papertrading Bitcoin estratégias através MtGox. Obrigado Jeremi Joslin por ajudar nos testes. Exemplo aqui. Os feeds de barra agora suportam a configuração do número máximo de valores para o BarDataSeries no caso de você não querer que eles cresçam demais. Pyalgotrade. dataseries. SequenceDataSeries e filtros DataSeries (tudo dentro do pacote pyalgotrade. technical) agora apóiam a configuração do número máximo de valores a serem mantidos no caso de você não querer que eles cresçam demais. StrategyPlotter agora chama autofmtxdate na figura antes de plotá-lo. Obrigado Thomas Jung por sugerir isso. StrategyPlotter agora suporta apenas a construção da figura para que você possa personalizá-la (StrategyPlotter. buildFigure). Bar. Bar foi otimizado para usar menos memória. Obrigado Tibor Kiss por sugerir isso. Adicionado ferramentas para reescrever BarFeeds para diferentes freqüências e usá-los (pyalgotrade. tools. resample e pyalgotrade. barfeed. csvfeed. GenericBarFeed). Adicionado um BarDataSeries que pode reescrever outro BarDataSeries para uma maior freqüência (pyalgotrade. dataseries. resampled. ResampledBarDataSeries). Indicadores técnicos de alta e baixa (pyalgotrade. technical. highlow. High e pyalgotrade. technical. highlow. Bow). Pyalgotrade. technical. roc. RateOfChange indicador foi alterado e agora ele não se multiplica por 100 os resultados. O pacote pyalgotrade. technical. trend não depende mais da SciPy. A classe de estratégia foi renomeada para BacktestingStrategy (o nome antigo ainda é suportado nesta versão). Max. A duração da retirada é agora devolvida como um objeto datetime. timedelta. O analisador Sharpe Ratio foi modificado para melhor suportar a negociação intradiária. O parâmetro tradingPeriods já não é suportado. Para reenviar a ordem de saída para uma posição, a ordem de saída do orignal deve ser cancelada primeiro usando cancelExit. Os filtros DataSeries e DataSeries (tudo dentro do pacote técnico pyalgotrade.) foram refatorados para um modelo baseado em eventos. BarValueDataSeries e BarDataSeries foram movidos de pyalgotrade. dataseries para pyalgotrade. bards. dataseries. Pyalgotrade. technical. cross. CrossAbove e pyalgotrade. thechnical. cross. CrossBelow foram refactorizados como funções (pyalgotrade. technical. cross. crossabove e pyalgotrade. technical. cross. crossbelow). Eles não são mais o DataSeries. Pyalgotrade. technical. DataSeriesFilter foi removido. Os filtros DataSeries agora precisam ser modelados usando as classes pyalgotrade. technical. EventWindow e pyalgotrade. technical. EventBasedFilter. Pyalgotrade. dataseries. SequenceDataSeries construtor já não aceita valores e data-hora. Pyalgotrade. dataseries. datetimealigned foi movido para pyalgotrade. dataseries. aligned. datetimealigned. Versão 0.12 (20Apr2013) Baixe aqui: PyAlgoTrade-0.12.tar. gz pyalgotrade. optimizer agora tem nomes de trabalhadores associados a cada trabalhador. Obrigado Matthieu Locas por implementar isso. O StrategyPlotter agora permite plotar funções personalizadas. Otimizações em diferentes áreas. Indicador técnico de desvio padrão (pyalgotrade. technical. stats. StdDev). Indicador técnico Bollinger Bands (pyalgotrade. technical. bollinger. BollingerBands). Exemplo aqui. Corrigido um erro no EMA técnico que poderia levar ao máximo. Erro de limite de recursão. Corrigido um bug na classe Strategy que teve um grande impacto no tempo de execução. A contabilidade para posições e pedidos ativos não foi tratada corretamente. Versão 0.11 (17Mar2013) Baixe aqui: PyAlgoTrade-0.11.tar. gz O DataSeries agora fornece o tempo de data associado a cada valor (getDateTimes), tornando mais fácil o enredo usando matplotlib. Função para alinhar dois DataSeries em relação ao tempo (pyalgotrade. dataseries. datetimealigned). Indicador técnico VWAP (pyalgotrade. technical. vwap. VWAP). Indicador técnico Line Break (pyalgotrade. technical. linebreak. LineBreak). Métodos para calcular rendimentos não realizados e PnL em posições (getUnrealizedReturn e getUnrealizedNetProfit). Correção de erro: uma exceção IndexError foi gerada no plotter. py ao traçar muitos dataseries na mesma subtração. Versão 0.10 (11Jan2013) Baixe aqui: PyAlgoTrade-0.10.tar. gz Sharpe Análise da relação (pyalgotrade. stratanalyzer. sharpe. SharpeRatio). Max. Drawdown e max. Análise da duração da retirada (pyalgotrade. stratanalyzer. drawdown. DrawDown). Obrigado Sedov Anton por relatar um erro na implementação antecipada. Análise de retorno (pyalgotrade. stratanalyzer. returns. Returns). Análise de operações (pyalgotrade. stratanalyzer. trades. Trades). Suporte para fuso horário de bar (pyalgotrade. marketsession). O suporte para operações de seqüência em dataseries (getitem e len. GetValue e getValueAbsolute logo serão obsoletos). Suporte para mapeamento como operações em feixes de barras (getitem e contém). Apoio ao mapeamento como operações no bar. Bars (getitem e contém). Google App Engine: Adicionado suporte para reexecução de estratégias. Broker. backtesting. Broker. getValue não precisa mais das barras como um parâmetro. Isso levará aqueles fora do feed. Correção de erro: broker. backtesting. getActiveOrders não estava retornando todos os pedidos durante o envio de eventos. Correção de erro: cálculos de retorno fixos para posições curtas. Obrigado John Fawcett por explicar isso. Correção de erros: corrigiu um bug na classe Strategy e no corretor backtesting ao lidar com vários instrumentos. Não estava lidando com a ausência de barras adequadamente. Obrigado Fabian Braennstroem por ter relatado isso. Solução de erros: as dataseries adicionais adicionadas à subtração de portfólio não estavam mostrando. Obrigado Sedov Anton por relatar isso. Correção de erro: subtramas adicionais (as criadas usando getOrCreateSubplot) agora são ordenadas como criadas. Obrigado Sedov Anton por relatar isso e sugerir a reparação. Versão 0.9 (1Sep2012) Baixe aqui: PyAlgoTrade-0.9.tar. gz Adicionou um método para a classe de estratégia para ser notificado quando um pedido é atualizado (onOrderUpdated). Isso só é chamado se o pedido foi colocado usando diretamente a interface do corretor. Correção de erro: uma exceção KeyError foi criada na classe de estratégia ao fazer pedidos usando a interface do corretor diretamente. Obrigado Femto Trader por ter relatado isso. Versão 0.8 (28 Aug 2012) Baixe aqui: PyAlgoTrade-0.8.tar. gz StrategyPlotter agora traça cada instrumento em uma subtração separada. GetMainSubplot foi substituído por getIntrumentSubplot. Strategy. exitPosition permite configurar a ordem de saída como GTC ou não, ou combinar a ordem de entrada (padrão). Correção de erro: estava atingindo um AssertionError na classe de estratégia ao substituir ordens de saída por novas. Correção de erro: Defina as ordens de saída-na-sessão-fechar como GTC. Versão 0.7 (22 Ago 2012) Baixe aqui: PyAlgoTrade-0.7.tar. gz Backtesting Broker agora permite a personalização de estratégias de preenchimento de pedidos. Adicionado suporte Parar ordens. Obrigado Tibor Kiss por adicionar isso. Adicionado suporte pedidos StopLimit. Obrigado Tibor Kiss por adicionar isso. Integração TA-Lib (pyalgotrade. talibext. indicator). Suporte oficial para o NinjaTrader gerou arquivos CSV (pyalgotrade. barfeed. ninjatraderfeed. Feed). Csvfeed. NinjaTraderRowParser foi removido. Pyalgotrade. barfeed. csvfeed. YahooFeed foi movido para pyalgotrade. barfeed. yahoofeed. Feed. Pyalgotrade. barfeed. csvfeed. YahooFeed ainda funciona, mas será removido em breve. Principais mudanças na interface do corretor para suportar outros tipos de corretores. Essas alterações não são compatíveis com versões anteriores. Obrigado Tibor Kiss por adicionar isso. Correção de erro: não estava honrando o atributo até o cancelado ao enviar ordens de saída dentro das classes de posição. Correção de erro: não estava obtendo melhores preços (quando disponível) para ordens de limite. Obrigado Tibor Kiss por ter relatado isso. Versão 0.6 (26Jun2012) Baixe aqui: PyAlgoTrade-0.6.tar. gz Adicionou suporte inicial para o formato de exportação NinjaTrader (csvfeed. NinjaTraderRowParser). Pyalgotrade. optimizer. server. serve agora retorna os melhores resultados encontrados. Corrige para o módulo optimizer. local quando executado no Windows. Corrige para o módulo optimizer. local. O soquete usado para encontrar uma porta aleatória para ouvir não estava sendo fechado. Obrigado Tibor Kiss por consertar isso. Corrige para plotter. py. O estilo de marcador utilizado não foi suportado em algumas versões do matplotlib. Obrigado Tibor Kiss por consertar isso. Versão 0.5 (21Jun2012) Baixe aqui: PyAlgoTrade-0.5.tar. gz Adicionado suporte para otimização de estratégias dentro do Google App Engine. O StrategyPlotter suporta plotar um intervalo. O oscilador estocástico suporta o uso de valores ajustados. Módulo de otimizador aprimorado para distribuir execuções de estratégia em pedaços. Versão 0.4 (8May2012) Baixe aqui: PyAlgoTrade-0.4.tar. gz Indicador técnico de taxa de variação adicionada. Indicador técnico do oscilador estocástico adicionado. Verificação de erro adicionada para yahoofinance. getdailycsv. Normalizou alguns nomes de métodos no StrategyPlotter. Versão 0.3 (22Apr2012) Baixe aqui: PyAlgoTrade-0.3.tar. gz Suporte para planejar estratégias (StrategyPlotter). Versão 0.2 (14Apr2012) Baixe aqui: PyAlgoTrade-0.2.tar. gz Adicionado os indicadores técnicos CrossAbove e CrossBelow. Adicionado suporte para pedidos de limite. Corrigido um erro quando uma posição foi configurada para sair na sessão fechada, mas a ordem de entrada não foi preenchida. Versão 0.1 (27Mar2012) OANDA API Trading Utilities em Python Exemplo de programas de negociação com a API OANDA através do Python2.7 Este repo contém um programa de negociação que executa negócios quando WMA e SMA se cruzam. Há também um arquivo contendo algumas funções extremamente simples que abrirão um comércio ou uma ordem, respectivamente. Clonar este repo para a localização da sua escolha Modifique api-order. py para fazer o que quiser, ou simplesmente execute api-trade-averages. py usando Python2.7 Para executar o script, especifique o número de velas sobre as quais calcular o WMA e SMA, a granularidade da vela, o instrumento e sua conta. Este script usa o ambiente sandbox, então use você sandbox accountId. Python api-trade-averages. py 10 S5 EURUSD Este programa destina-se a demonstrar a funcionalidade da API OANDA e não se destina a consultoria de investimento ou a uma solução para comprar ou vender qualquer produto de investimento.

No comments:

Post a Comment