Saturday 17 February 2018

Trading forex multi day wedding


Negociação de vários quadros de tempo Há muitas maneiras de se fazer grandes lucros comercializando os mercados. Geralmente, a abordagem adotada é aquela que se encaixa na zona de conforto dos comerciantes para risco e atividade. Mas, independentemente da abordagem com que um comerciante finalmente decida concentrar-se, examinar o mercado em vários intervalos de tempo só pode ajudar na contagem final. Nós todos ouvimos o ditado de que a tendência de quotthe é seu amigo, troque com a tendência. Eu pessoalmente acredito nessa máxima. Embora a intenção subjacente seja implicar a negociação com a tendência somente para que ela seja sua amiga, isso realmente se resume à sua capacidade de tempo de início e fim dessas tendências, e para fazê-lo pelo prazo que deseja negociar Por exemplo, se você conseguir tempo na parte inferior e superior de cada nova onda dentro de uma tendência com precisão perfeita, a própria tendência não terá significado para você. Você simplesmente compraria os fundos e venderia os tops sem quaisquer outras preocupações. A realidade da análise do comércio é que não existe um modelo de tempo perfeito. O melhor que você pode esperar é uma abordagem de tempo que está acima da média, sem a perfeição. Devido ao fosso que existe entre a média acima e a perfeição, beneficiaria o comerciante a procurar formas de melhorar ainda mais a lei das médias e aumentar a probabilidade de um comércio bem-sucedido. A probabilidade crescente requer disciplina por parte do comerciante. Esperar por oportunidades maduras pode fazer com que alguns comerciantes estejam inquietos, e é por isso que muitos têm mais negociações perdidas do que o necessário para os métodos comerciais que escolheram. O objetivo não é negociar ativamente, mas fazer lucros ativamente. Com a disciplina adequada, o comerciante deve considerar olhar para o mercado a partir de várias perspectivas diferentes. Por exemplo, se você quiser basear seus negócios em sinais encontrados em um gráfico de preços diário, considere a direção em que os preços mensais e semanais estão se movendo atualmente. Se o gráfico mensal e semanal estiver em harmonia, ambos fazendo fundos e tops de swing mais altos, Então o ciclo principal subjacente do mercado é claramente otimista e favoreceria suas compras diárias sobre as vendas. Ao lidar com marcos de tempo ainda mais baixos, como o dia comercializando os gráficos de minutos (ou seja, 5 min, 10 min, etc.), não é necessário examinar prazos mensais ou semanais, uma vez que estão muito distantes do período de tempo que você está Negociação. Uma boa regra de ouro é fazer o seu período mais alto para consideração, não mais do que dizer 20 vezes o prazo que deseja negociar. Aprenda Como Prever as Marcas do Mercado Então, para aqueles que trocam os gráficos diários, o prazo mais alto de consideração seria os gráficos mensais em cada dia. Se você negociar com base nos gráficos de 5 minutos, você pode começar olhando o gráfico de 2 horas (120 minutos) até 5 minutos. Ao olhar para os intervalos de tempo mais altos, observe suas tendências individuais. Quando eles concordam e você toma transações filtradas por esta informação, você aumenta sua probabilidade de ganhar negócios. É provável que você perca muitos sinais comerciais que você teria tomado de outra forma, mas a recompensa geralmente vale o sacrifício por ação. Existe uma exceção a essa linha de pensamento. A negociação com base em maiores tendências temporais para filtrar os sinais comerciais geralmente é apenas eficaz se seu estilo de negociação for permitir que seus lucros sejam executados e reduzir suas perdas curtas, outro fato bem conhecido em círculos comerciais. No entanto, se o seu método de negociação ou sistema se baseia em negociações exitantes com base em um objetivo de lucro fixo, no entanto, é calculado e, em seguida, tirar proveito de tendências de prazo mais altas pode ser simplesmente um obstáculo ao desempenho desse sistema. Se você é um que deseja entrar com trades onde a força do mercado leva você a lucros por durações maiores do que apenas alguns dias, você encontrará que combinar ondas de tempo mais longas com a que você deseja capturar lhe dará o melhor Oportunidade de fazê-lo. Copyright copyProfitMax Trading Inc. - Futuros Mercado de Negociação Previsão FREE Newsletter Artigos Especiais. Receba análises periódicas de mercado e previsões. Obtenha lições e dicas comerciais. Receba ofertas especiais. SUBSCRIBE OFERTA LIVRE Oferta de produtos especiaisForex Trading Diary 6 - Multi-Day Trading e Plotting Results Tem sido um tempo desde a minha última atualização do Forex Trading Diary. Fui ocupado trabalhando na nova placa do Jobs QuantStart e, portanto, não tive tanto tempo como de costume para trabalhar no QSForex. Embora eu tenha feito alguns progressos Em particular, eu tenho sido capaz de adicionar algumas novas funcionalidades, incluindo: Documentação - Ive agora criou uma subseção QSForex no site, que inclui todas as entradas do Forex Trading Diary e documentação para QSForex. Em particular, inclui instruções de instalação detalhadas e um guia de uso para backtesting e negociação ao vivo. Geração de Dados de Tick Simulado - Uma vez que é um desafio para baixar dados de carrapato de forex em massa (ou pelo menos tem sido de certos fornecedores que eu uso) eu decidi que seria mais simples para gerar apenas alguns dados aleatórios para testar o sistema. Multi-Day Backtesting - Uma solicitação de recurso de longa data no QSForex é a capacidade de backtest durante vários dias de dados de carrapatos. Na versão mais recente, o QSForex agora oferece suporte ao backtesting multi-dia e multi-par, tornando-o substancialmente mais útil. Plotting Backtesting Results - Enquanto a saída do console é útil, nada bate ser capaz de visualizar uma curva de equidade ou redução histórica. Ive fez uso da biblioteca Seaborn para traçar os vários gráficos de desempenho. Nesta entrada Ill descrever todos os novos recursos em detalhes abaixo. Se você não tiver sido capaz de seguir a série até à data, você pode ir para a seção QSForex, a fim de recuperar o atraso em entradas anteriores. Simulado Tick Data Script Um recurso extremamente importante solicitado para QSForex foi a capacidade de backtest durante vários dias. Anteriormente, o sistema só suportava backtesting através de um único arquivo. Esta não era uma solução escalável como tal um arquivo deve ser lido na memória e posteriormente em um Pandas DataFrame. Enquanto os arquivos de dados de tiros produzidos não são enormes (aproximadamente 3.5Mb cada), eles se somam rapidamente se considerarmos vários pares ao longo de períodos de meses ou mais. Para começar a criar uma capacidade de arquivo multi-daymulti, comecei a tentar baixar mais arquivos do feed de ticks histórico do DukasCopy. Infelizmente, encontrei alguns problemas e não consegui baixar os arquivos necessários para testar o sistema. Como não estava muito preocupado com a própria série de tempo real, senti que seria mais simples escrever um script para gerar dados simulados de forex. Coloquei este script no arquivo scriptsgeneratesimulatedpair. py. O código atual pode ser encontrado aqui. A idéia básica do script é gerar uma lista de timestamps distribuídos aleatoriamente, cada um possuindo valores de bidask e valores de volume de bidask. O spread entre a oferta e a pergunta é constante, enquanto os próprios valores de bidask são gerados como uma caminhada aleatória. Desde que eu costumo realmente nunca ser testando todas as estratégias reais sobre estes dados eu não estava muito incomodado sobre suas propriedades estatísticas ou seus valores absolutos em relação aos pares de moeda estrangeira real. Contanto que tivesse o formato correto e comprimento aproximado, eu poderia usá-lo para testar o sistema de backtesting de vários dias. O script está atualmente codificado para gerar dados de forex para todo o mês de janeiro de 2017. Ele usa a biblioteca de calendário Python para determinar dias úteis (embora eu ainda não tenha excluído feriados) e, em seguida, gera um conjunto de arquivos do formato BBBQQQYYYYMMDD. csv . Onde BBBQQQ será o par de moedas especificado (por exemplo, GBPUSD) e YYYYMMDD é a data especificada (por exemplo, 20170112). Esses arquivos são colocados no diretório CSVDATADIR, que é especificado nas configurações. py na raiz da aplicação. Para gerar os dados, o seguinte comando deve ser executado, onde BBBQQQ deve ser substituído com o nome de moeda particular de interesse, p. GBPUSD: O arquivo exigirá modificação para gerar vários meses ou anos de dados. Cada lima do tiquetaque diário é na ordem de 3.2Mb no tamanho. No futuro, vou modificar este script para gerar vários meses ou anos de dados com base em uma lista de pares de moedas fornecidos, em vez de os valores serem codificados. No entanto, por enquanto, isso deve ajudá-lo a começar. Tenha em atenção que o formato coincide exactamente com o dos dados históricos da DukasCopy, que é o conjunto de dados que estou a utilizar actualmente. Multi-Day Backtesting Implementado Seguir diretamente a partir da geração de dados de carrapatos simulados é a implementação de backtesting de vários dias. Enquanto meu plano de longo prazo é usar um sistema de armazenamento histórico mais robusto, como PyTables com HDF5. Por enquanto, eu vou fazer uso de um conjunto de arquivos CSV, um arquivo por dia por par de moedas. Esta é uma solução escalável à medida que aumenta o número de dias. A natureza orientada a eventos do sistema requer apenas alguma necessidade de arquivos N na memória ao mesmo tempo, onde N é o número de pares de moeda que são negociados em um determinado dia. A idéia básica do sistema é que o atual HistoricCSVPriceHandler continue a usar o método streamnexttick, mas com uma modificação para contabilizar vários dias de dados através do carregamento de cada dia de dados seqüencialmente. A implementação atual sai do backtest após o recebimento da exceção StopIteration lançada pela próxima (..) chamada para self. allpairs como mostrado neste snippet pseudocode: Na nova implementação, este snippet é modificado para o seguinte: Neste snippet, Quando StopIteration é gerado, o código verifica o resultado de self. updatecsvforday (). Se o resultado for True, o backtest continuará (em self. curdatepairs., Que poderia ter sido alterado para os dados dos dias subsequentes). Se o resultado for False. O backtest termina. Esta abordagem é muito eficiente na memória, pois apenas um determinado dia de dados é carregado em qualquer ponto. Isso significa que podemos realizar meses de backtesting e que são limitados apenas pela velocidade de processamento da CPU e pela quantidade de dados que podemos gerar ou adquirir. Atualizei a documentação para refletir o fato de que o sistema agora espera vários dias de dados em um formato específico, em um diretório particular que deve ser especificado. Traçar resultados de backtesting com Seaborn Library Um backtest é relativamente inútil se não pudermos visualizar o desempenho da estratégia ao longo do tempo. Embora o sistema tenha sido principalmente baseada em console até à data, eu comecei a transição para uma interface gráfica do usuário (GUI) com esta versão. Em particular, criei o habitual painel de três gráficos que muitas vezes acompanham métricas de desempenho para sistemas de negociação quantitativa, nomeadamente a curva de capitais próprios, o perfil de rendimentos ea curva de redução. Todos os três são calculados para cada tick e são enviados para um arquivo chamado equity. csv no OUTPUTRESULTSDIR encontrado em settings. py. Para ver os dados, fazemos uso de uma biblioteca chamada Seaborn. Que produz gráficos de qualidade de publicação (sim, qualidade de publicação REAL) que parecem substancialmente melhores que os gráficos padrão produzidos pela Matplotlib. Os gráficos parecem muito próximos dos produzidos pelo pacote R ggplot2. Além disso Seaborn realmente usa Matplotlib embaixo, assim você ainda pode usar a API Matplotlib. Para permitir a saída Ive escrito o script output. py que vive no diretório backtest. A listagem para o script é a seguinte: Como você pode ver o script importa Seaborn e abre o arquivo equity. csv como um Pandas DataFrame, em seguida, simplesmente cria três subtramas, um cada para a curva de equidade, retornos e levantamento. Observe que o gráfico de retirada em si é realmente calculado a partir de uma função auxiliar que vive em performanceperformance. py. Que é chamado a partir da classe Portfolio no final de um backtest. Um exemplo da saída para a estratégia incluída MovingAverageCrossStrategy, em um conjunto gerado aleatoriamente de dados de GBPUSD para o mês de janeiro de 2017, é dado como segue: Em particular, você pode ver as seções planas da curva de equidade nos fins de semana onde nenhum dado Está presente (pelo menos, para este conjunto de dados simulado). Além disso, você pode ver que a estratégia simplesmente perde dinheiro de forma bastante previsível nesse conjunto de dados simulados aleatoriamente. Esta é uma boa prova do sistema. Estamos simplesmente tentando seguir uma tendência em uma série de tempo gerada aleatoriamente. As perdas ocorrem devido ao spread fixo introduzido no processo de simulação. Isso deixa bem claro que, se quisermos fazer um lucro consistente na negociação forex de maior freqüência, precisaremos de uma borda quantificável específica que gere retornos positivos além dos custos de transação, como o spread e o deslizamento. Teremos muito mais a dizer sobre este ponto extremamente importante nas subseqüentes inscrições do Forex Trading Diary. Próximos passos Cálculos de posição de fixação Ive recentemente tiveram muita correspondência extremamente útil com os usuários do QSForex através dos comentários da Disqus e da página QSForex Issues sobre a correção dos cálculos dentro da classe Position. Alguns observaram que os cálculos podem não refletir exatamente como o OANDA (o corretor que é usado para o sistema trading. py) calcula os negócios de moeda cruzada. Portanto, um dos passos mais importantes é realmente fazer e testar essas modificações sugeridas em position. py e também atualizar os testes de unidade que vivem em positiontest. py. Isso terá um efeito knock-on com portfolio. py e também portfoliotest. py. Medição de desempenho Embora tenhamos agora um conjunto básico de indicadores de desempenho visual através da curva de equidade, retorna perfil e séries de redução, precisamos de medidas de desempenho mais quantificadas. Em particular, precisaremos de métricas de nível estratégico, incluindo rácios comuns de risco, como Ratio Sharpe, Relação de Informações e Razão Sortino. Também precisamos de estatísticas de levantamento, incluindo a distribuição dos levantamentos, bem como estatísticas descritivas, como a redução máxima. Outras métricas úteis incluem a taxa de crescimento anual composto (CAGR) e o retorno total. No nível do tradeposition nós queremos ver métricas como o profitloss do avg, o profitloss máximo, a relação de lucro ea relação do winloss. Uma vez que construímos a classe Position como parte fundamental do software desde o início, isso não deve ser muito problemático para gerar essas métricas através de alguns métodos adicionais. Mais sobre isso na próxima entrada, no entanto, Just Getting Started with Quantitative Trading

No comments:

Post a Comment