Wednesday 12 July 2017

Building A Stock Trading System


Até agora, discutimos os componentes básicos dos sistemas de negociação, os critérios que eles têm de cumprir e algumas das muitas decisões empíricas que um designer de sistemas deve fazer. Nesta seção, vamos examinar o processo de construção de um sistema de comércio, as considerações que precisam ser feitas, e alguns pontos-chave a lembrar. A Construção do Sistema de Seis Passos 1. Configuração - Para começar a construir um sistema de negociação você precisará de várias coisas: Dados - Porque o designer do sistema deve usar backtesting extensa. História do preço passado é essencial para a construção de um sistema comercial. Esses dados podem ser integrados no software de desenvolvimento de sistemas comerciais ou como um feed de dados separado. Os dados ao vivo são frequentemente fornecidos por uma taxa mensal, enquanto dados envelhecidos podem ser obtidos gratuitamente. Software - Embora seja possível desenvolver um sistema comercial sem software, é altamente impraticável. Desde o final dos anos 90, o software tornou-se parte integrante da construção de sistemas de negociação. Alguns recursos comuns permitem que o comerciante faça o seguinte: Coloque automaticamente negócios - Isso geralmente requer permissão do proprietário do corretor porque uma conexão constante deve estar no lugar entre seu software ea corretora. As operações devem ser executadas imediatamente ea preços exatos para garantir a conformidade. Para ter o seu software colocar negócios para você, tudo que você precisa fazer é inserir o número da conta e senha, e tudo o mais é feito automaticamente. Observe que a utilização deste recurso é estritamente opcional. Código de um sistema de negociação - Este recurso de software implementa uma linguagem de programação proprietária que permite que você crie regras facilmente. Por exemplo, MetaTrader usa MQL (MetaQuotes Language). Heres um exemplo de seu código para vender se a margem livre é inferior a 5.000: Se FreeMargin lt 5000, em seguida, saia Muitas vezes, basta ler o manual e experimentação deve permitir que você pegar no básico do idioma seu software usa. Backtest sua estratégia - Desenvolvimento de sistema sem backtesting é como jogar tênis sem uma raquete. Software de desenvolvimento de sistema geralmente contém um aplicativo de backtesting simples que permite definir uma fonte de dados, informações de conta de entrada e backtest para qualquer quantidade de tempo com o clique de um mouse. Aqui está um exemplo do MetaTrader: Depois que o teste de volta é executado, um relatório é gerado que descreve as especificidades dos resultados. Este relatório geralmente inclui lucro, número de negócios sem êxito, dias consecutivos para baixo, número de negócios e muitas outras coisas que podem ser úteis ao tentar determinar como solucionar problemas ou melhorar o sistema. Finalmente, o software geralmente cria um gráfico mostrando o crescimento do investimento ao longo do período de tempo testado. 2. Design - O design é o conceito por trás do seu sistema, a forma como os parâmetros são usados ​​para gerar um lucro ou perda. Você implementa essas regras e parâmetros ao programá-los. Às vezes, esta programação pode ser feita automaticamente através de uma interface gráfica do usuário. Isso permite que você crie regras sem aprender uma linguagem de programação. Aqui está um exemplo de um sistema cross-over de média móvel: Se SMA (20) CrossOver EMA (13), em seguida, insira SMA (20) CrossUnder EMA (13), em seguida, saia Regras como estas que são colocadas em código permitem que o software automaticamente Gerar entradas e saídas nos pontos em que as regras são aplicáveis. Aqui está o aspecto da interface de design no MetaTrader: O sistema é criado simplesmente digitando as regras na janela e salvando-as. Referências para as diferentes funções disponíveis (por exemplo, osciladores e outros) podem ser encontradas clicando no ícone do livro. A maioria de software terão uma referência similar disponível dentro do programa próprio ou em seu Web site. Depois de criar as regras desejadas e codificar o sistema, basta salvar o arquivo. Então você pode colocá-lo em uso, selecionando-o na tela principal. 3. Tomada de Decisão - Há muitas decisões a serem tomadas neste ponto: Que mercado eu quero negociar em 13 Qual período de tempo devo usar 13 Que série de preços devo usar 13 Que subconjunto de ações devo usar para testes Manter em Mente que os sistemas de negociação deve fazer consistentemente um lucro em muitos mercados. Ao personalizar o período de tempo e série de preços muito, você pode manchar os resultados e produzir resultados inusitados. Prática - Backtesting e papel de negociação são essenciais para o desenvolvimento bem sucedido de um sistema de comércio: Executar vários backtests em diferentes períodos de tempo e certifique-se que os resultados são consistentes e satisfatórios. Livro de comércio do sistema (dinheiro imaginário uso, mas gravar os comércios e os resultados), e novamente, olhar para rentabilidade consistente. Verifique cuidadosamente para erros no programa, ou comércios não intencionais. Estes podem ser o resultado de programação defeituosa ou falha em prever certas circunstâncias que têm repercussões indesejadas. 5. Repita - Repetição é necessária. Continue trabalhando no sistema até que você possa fazer um lucro consistentemente na maioria dos mercados e condições. Sempre há eventos imprevistos que ocorrem assim que um sistema é ativado. Aqui estão alguns fatores que muitas vezes causam resultados distorcidos: Custos de transação - Certifique-se de que você está usando a comissão real. E alguns extra para conta de preenchimentos imprecisos (diferença entre lance e pedir preços). Em outras palavras, evite a derrapagem (Para rever o que é e como isso ocorre, consulte a seção anterior deste tutorial.) Watchfulness - Não ignore perder trades manter um olho em todos os ofícios. Otimização - Não sobre otimizar o sistema. Em outras palavras, não adaptar o sistema a um ambiente de mercado muito específico tentar ser rentável em um ambiente tão amplo quanto possível. Risco - Nunca ignorar ou esquecer o risco. É muito importante ter formas de limitar as perdas (também conhecidas como stop-loss), e formas de lock-in lucros (tomar lucros). 6. Comércio - Experimente, mas espere resultados não desejados. Certifique-se de usar a negociação não automatizada até que você esteja confiante no desempenho e consistência dos sistemas. Demora muito tempo para desenvolver um sistema de negociação bem sucedido e antes de aperfeiçoá-lo, você pode ter de suportar algumas perdas de negociação ao vivo para detectar falhas: teste de volta não pode perfeitamente representar condições de mercado ao vivo, e negociação de papel pode ser impreciso. Se o seu sistema perde dinheiro, volte para a prancheta e veja onde correu mal (veja o passo 5). Conclusão Estes seis passos dar-lhe uma visão geral de todo o processo de construção de um sistema comercial. Na próxima seção, vamos construir sobre este conhecimento e ter um olhar mais aprofundado na solução de problemas e modification. Build um sistema de negociação de ações para a sua vida Trading para uma vida é uma idéia emocionante, e os sistemas de negociação de ações podem lhe dar a vida você quer. Um sistema é simplesmente um conjunto de regras que define como você vai entrar e sair dos mercados financeiros para ganhar dinheiro. Os sistemas de negociação de ações funcionam porque eliminam a emoção, criam consistência e capturam uma vantagem nos mercados. Mostxa0new comerciantes falham e perdem moneyxa0because eles tomam dicas de outros, eles fazem o que é popular, eles fazem o que soa bem em festas de jantar, eles fazem o que é comercializado pesadamente pela indústria, eles usam alguém elses stock trading systemxa0- eles não fazem o que é Rentável Eu acredito que você pode ter sucesso onde tantos outros falharam Você pode ganhar dinheiro negociando, xa0YOU pode viver e trabalhar em qualquer lugar do mundo e você pode ser livre de escravidão corporativa. Construir seu próprio sistema de negociação que atenda aos SEUS objetivos, se encaixa SUA personalidade e lhe dá a vida que você quer é a resposta. Posso mostrar-lhe em quatro etapas simples como construir um sistema rentável que irá trabalhar para você, independentemente de você quer negociar o mercado de ações, mercado de futuros ou os mercados de forex. Meu objetivo é ajudá-lo a ter sucesso através da construção de seu próprio sistema de negociação de ações rentável que atenda aos seus objetivos e lhe dá a vida que você quer. A maioria dos novos comerciantes falhar porque eles não têm um guia para ajudá-los a construir um sistema rentável que lhes convier. Em seu próprio país esta é uma viagem difícil - Deixe-me ajudá-lo a se tornar um comerciante rentável rapidamente Certifique-se também verificar o meu novo site na Enlightened Stock Trading para aprender a desenvolver um sistema vencedor de negociação de ações que se adapte a sua personalidade, Estilo de vida ideal. Onde eu começo Há inúmeros cursos, serviços de assinatura caros e sistemas para venda nesta indústria. Nenhuma delas é a resposta isolada. . A resposta é projetar seu próprio sistema negociando com uma compreensão de yourself. Alguém que gosta de ação terá dificuldade em negociar uma abordagem semanal de longo prazo O paciente, pessoa considerada dificil de mover para dentro e para fora dos mercados várias vezes ao dia como um comerciante dia A pessoa que gosta de estar certo terá problemas com Um estilo de negociação que é errado 80 do tempo (mesmo que os 20 restantes faz um monte de dinheiro em geral) A pessoa que está aprendendo a negociar, enquanto em um emprego a tempo inteiro vai achar mais fácil fazer a sua análise depois de horas para que seu trabalho doesnt Sofrer e vai precisar de um sistema de fim de dia que acomoda isso A questão que a maioria dos novos comerciantes perguntam: Como você faz o dinheiro de negociação é a pergunta errada A pergunta que cada comerciante deve perguntar é: Como posso fazer o comércio de dinheiro Todo mundo é diferente, Fazer dinheiro de forma consistente estar tomando dicas de amigos, seguindo boletins, subscrever serviços de depósito de ações, lendo boletins informativos, pagando caro seminários para aprender métodos de negociação secreta. Porque Porque todas essas coisas têm uma coisa em comum - eles não levam em conta VOCÊ Há muitos equívocos sobre como fazer consistentes lucros comerciais. A verdade é que você pode construir a liberdade financeira através de negociação. Sem ser obrigado a assistir aos mercados o dia todo, sem negociação diária, sem negociação de alta freqüência, sem scalping, sem conhecimento interno Apesar de todo o hype, estes são apenas como um trabalho estressante que você cadeias para a tela do computador. Você pode ter tempo livre e dinheiro. Médio a longo prazo estratégias de negociação pode dar-lhe isso. Minha abordagem de 4 passos para sistemas de negociação de ações A grande notícia é que o melhor sistema não é complexo ou difícil de projetar. Não importa se você troca o mercado de ações, mercado de futuros, xa0forex ou opções ou qualquer outro instrumento, o melhor sistema é aquele que você construir para si mesmo para que você entenda como e por que ele funciona. Minha abordagem para orientá-lo é um processo simples e transparente para o sucesso comercial. Passo 2: Selecione a estratégia de negociação de ações que melhor se adequa a você Passo 3: Construa seus sistemas de negociação de ações da maneira correta Etapa 4: Documentar a sua negociação Plano Como você está indo através destes passos você também vai precisar de considerar Desenvolver o gerenciamento de riscos e regras de gerenciamento de portfólio para atender aos seus objetivos Escolher o seu software para garantir que é até a tarefa de desenvolver um sistema robusto Obtendo os melhores livros de negociação para expandir seus conhecimentos Eliminar Negociação erros Ixa0had precioso pouco apoio na minha própria jornada para o sucesso comercial. Demorou vários anos para encontrar uma abordagem que deu o estilo de vida que eu queria. Meu objetivo era a liberdade através da negociação, não um emprego de tempo integral de negociação. Havia um apoio útil muito limitado na indústria comercial, e bons recursos eram difíceis de encontrar. Eu gradualmente desenvolvi o meu entendimento da psicologia de negociação e investigaram inúmeras estratégias de negociação e abordagens de investimento. Ixa0read inúmeros livros sobre sistemas de negociação, projetado e testado meus próprios sistemas, aprendeu o software e encontrou o meu caminho. Muitas pessoas falham porque este é um caminho desafiador, mas o resultado vale a pena a viagem. Espero que a partilha da minha viagem traz-lhe sucesso e atalhos sua curva de aprendizagem para trading profitably. Build um sistema de negociação de ações com Aprendizagem da máquina Eu passei muito tempo recentemente sobre como construir e testar uma estratégia de negociação de ações usando Machine Learning. No final da minha pesquisa, acho que é uma tarefa impossível, no entanto, é muito divertido no processo e às vezes pode até ser rentável. Vou abordar os seguintes tópicos neste artigo do blog: 1) Tipos de análise de mercado Vou começar com alguns termos-chave e métodos de análise quando se lida com os mercados financeiros. Existem inúmeros termos financeiros, tais como ações, títulos, fundos, ETFs, moedas, e assim por diante. Mas vou me concentrar nas ações e no mercado de ações aqui. Quando você compra ações e ações, você possui parte da empresa tem o direito de votar nas assembleias gerais. Cada ação é uma pequena participação em uma empresa e você pode comprar um grande número de lotes. Espera-se que o preço de uma ação aumente quando as perspectivas futuras para a empresa aumentarem e diminuir à medida que essas perspectivas diminuem. Os investidores geralmente caem em um de dois campos. O primeiro campo acredita na análise fundamental. Os analistas fundamentais derramam através das finanças da companhia que procuram a informação que indica que de algum modo o mercado está undervaluing as partes de uma companhia. Esses investidores olham para vários fatores, como receitas, ganhos e fluxo de caixa. Eles também examinam inúmeras razões relativas a esses valores. Muitas vezes isso envolve olhar como uma empresa comparar com outras 8217s. O segundo campo de investidores são os analistas técnicos. Analistas técnicos acreditam que o preço da ação de uma ação já reflete toda a informação pública disponível, e que olhar através dos fundamentos é em grande parte um desperdício de tempo. Eles acreditam que, ao olhar para o gráfico histórico, a área de produção pode ver áreas onde os preços tendem a subir, cair ou estagnar. Geralmente, sentem que estas cartas revelam pistas à psicologia do investor. O que ambos os grupos têm em comum é uma crença subjacente que a análise correta pode levar a lucros. Isso é verdade, no entanto, uma das mais influentes teoria do mercado de ações nos últimos 50 anos, não há muita esperança de ganhar dinheiro através da exploração de padrões No mercado de ações. Felizmente, enquanto o mercado opera de uma maneira amplamente eficiente em geral, bolsos distintos de ineficiência foram descobertos. A maioria destes tendem a ser efêmeros, mas alguns persistem. Um dos mais pervasiveeven segundo o 8216pestre de EMH8217, Eugene Fama é o outperformance de estratégias de momentum. Assim, o que exatamente é uma estratégia de impulso Há uma série de variações sobre o tema, mas a idéia básica é que as ações são classificadas do mais alto para o mais baixo de acordo com o seu retorno ao longo de algum período anterior. Os melhores artistas são comprados e mantidos por algum período de tempo e, em seguida, o processo é repetido após algum período fixo de detenção. Uma estratégia de momentum típica de longa duração pode envolver a compra dos 25 melhores estoques de desempenho no SampP 500 no ano passado, mantendo-os por um ano e, em seguida, repetindo o processo. Isso pode soar como uma estratégia absurdamente simples e é. No entanto, ele tem consistentemente retornado resultados que desafiam expectativa. Por que Como você pode imaginar, muita pesquisa examinou esse efeito, ea hipótese é que há algo inerentemente, sistematicamente tendenciosa sobre como os seres humanos lidam com novas informações. Pesquisas sugerem que eles não respondem às notícias no curto prazo e, em seguida, reagem exageradamente às notícias a longo prazo. Será este efeito arbitraged afastado como mais comerciantes aprender e pilha em Tem havido alguma evidência disso nos últimos anos, mas ainda não está claro. Independentemente disso, o efeito foi real e persistiu muito mais do que pode ser atualmente contabilizado pela hipótese do mercado eficiente, então há esperança. Com este leve lampejo de esperança, vamos agora passar para ver como podemos ir sobre encontrar nossas próprias anomalias. 3) Desenvolver um sistema de negociação de ações Vou começar a desenvolver um sistema de negociação de ações nesta seção. Eu uso o Python com Aprendizado de Máquina e os seguintes pacotes de Python científicos. Se você é novo em Aprendizado de Máquina e Python, eu recomendo ler o livro Python Machine Learning. Pandas 8211 Biblioteca de análise de dados Python, incluindo estruturas como dataframes. Isso nos dará acesso a várias fontes de dados de estoque, incluindo Yahoo e Google. Scikit-learn 8211 os algoritmos de aprendizado de máquina usados ​​para análise de dados e tarefas de mineração de dados Por favor don8217t fazer coisas estúpidas com as informações nesta seção. Não arrisque o dinheiro que você não pode perder. Se você decidir usar qualquer coisa que aprendeu aqui para trocar, você está sozinha. Este não deve ser considerado conselho de investimento de qualquer tipo, e eu não aceito qualquer responsabilidade por suas ações. Primeiro, vou precisar instalar o pacote datareader. Então, we8217ll vai adiante um jogo nossas importações, como segue: Agora, we8217ll começ nossos dados para o ETF do ESPIÃO. Este instrumento representa os estoques do SampP 500. We8217ll puxar dados desde o início de 2010 até o início de março de 2016: O código anterior gera a seguinte saída: Agora podemos plotar nossos dados. We8217ll seleciona apenas o preço de fechamento, da seguinte forma: O código gera o seguinte resultado: Na figura anterior, vemos o gráfico de preços do preço de fechamento diário do SampP 500 para o período que selecionamos. Let8217s executar um pouco de análise para ver o que os retornos ao longo deste período poderia ter sido se tivéssemos investido neste ETF. Let8217s puxar os dados para o primeiro abrir primeiro: O código anterior gera a seguinte saída: Em seguida, let8217s obter o preço de fechamento no dia final do período: Isso resultará na seguinte saída: E, finalmente, let8217s ver a mudança sobre a plena Período: Aqui está a saída: Então, parece que uma compra de 100 ações no início do período teria nos custado aproximadamente 11.237, e no final do período, que 100 mesmas ações teriam sido avaliadas em cerca de 19.811. Esta transação teria nos dado um ganho de mais de 76 durante o período. Não bad. Let8217s agora dê uma olhada no retorno sobre o mesmo período para apenas os ganhos intraday. Isto pressupõe que nós compramos o estoque no aberto de cada dia e o vendemos no fim desse mesmo dia: Isto nos dará a mudança do aberto ao fim cada dia. Let8217s dê uma olhada nisto: O código anterior gera a seguinte saída: Let8217s agora somam essas mudanças ao longo do período: O código gera a seguinte saída: Então, como você pode ver, passamos de um ganho de mais de 85 pontos para um De pouco mais de 41 pontos. Ouch Mais de metade dos ganhos de market8217s vieram de segurar durante a noite durante o período. Os retornos overnight foram melhores do que os retornos intradiários, mas como sobre a volatilidade Retornos são sempre julgados em uma base ajustada ao risco, por isso let8217s dar uma olhada em como as operações overnight em comparação com os comércios intraday com base em seu desvio padrão. Podemos usar NumPy para calcular isso para nós, da seguinte forma: O código anterior gera a seguinte saída: Agora, let8217s obter o desvio padrão. O código gera a seguinte saída: Assim, nossa negociação overnight teve menor volatilidade em comparação com o comércio intradia também. No entanto, nem toda a volatilidade é criada igual. Let8217s comparar a mudança média em dias de baixa versus dias de valor para ambas as estratégias. Primeiro, vamos olhar para os dias de vantagem: O código anterior gera a seguinte saída: Agora, olhar we8217ll para os dias de baixa: O código anterior gera a seguinte saída: Novamente, vemos que a média desvantagem é menor para a nossa estratégia de negociação overnight Versus nossa estratégia de negociação intradia. Até agora, nós olhamos tudo em termos de pontos, mas vamos agora passar a olhar para os retornos. Isso ajudará a colocar nossos ganhos e perdas em um contexto mais realista. Continuando com nossas três estratégias, construiremos uma série de pandas para cada cenário: retornos diários (perto de fechar), retornos intradiários (abertos ao fechamento) e retornos overnight (próximos a abertos) como segue: O que fizemos é usar os pandas. shift () para subtrair cada série da série day8217s anterior. Por exemplo, para a primeira série no código anterior, subtraímos o fechamento há um dia do preço de fechamento atual para cada dia. Uma nova série é gerada que contém um ponto de dados menos devido à diferenciação. Se você imprimir a nova série, você pode ver o seguinte: O código anterior gera a seguinte saída: Let8217s agora dê uma olhada nas estatísticas para todas as três estratégias. We8217ll criar uma função que pode tomar em cada série de retornos e irá imprimir os resultados de resumo. We8217re que vai obter estatísticas para cada um de nossos ganhando, perdendo, e breakeven comércios, e algo chamado a relação de Sharpe. Eu disse anteriormente que os retornos são julgados com base no risco ajustado. Isto é exatamente o que a relação de Sharpe nos fornece. É um método de comparação de retornos por contabilização da volatilidade desses retornos. Aqui, usamos a relação de Sharpe com um ajuste para anualizar a razão: Let8217s agora executar cada estratégia para ver as estatísticas. O código anterior gera a seguinte saída: O código anterior gera a seguinte saída: O código anterior gera a seguinte saída: Como você pode Ver, a estratégia de comprar e segurar tem o maior retorno médio, bem como o maior desvio padrão dos três. Isso também tem a maior redução diária (perda). Observe também que mesmo que a estratégia overnight-only tem quase o mesmo retorno médio como a estratégia intraday, tem substancialmente menos volatilidade. Isto, por sua vez, dá-lhe uma relação de Sharpe que é maior do que a estratégia intraday. Neste ponto, temos uma base sólida para comparar nossas estratégias futuras. Agora, vou dizer-lhe sobre uma estratégia que sopra todas essas três estratégias fora da água. Com esta estratégia, eu quase triplicou a relação de Sharpe sobre comprar e segurar, baixou a volatilidade substancialmente, aumentou a vitória máxima, e reduziu a perda máxima por quase metade. Como eu planejei essa estratégia de truque de mercado? Eu fiz isso gerando 1.000 ensaios de sinais overnight aleatórios (para comprar ou não) para o período de teste e, em seguida, escolheu o melhor desempenho. Isso me deu a estratégia com os melhores 1.000 sinais aleatórios. Esta não é obviamente a maneira de bater o mercado. Então, por que eu fiz isso, eu fiz isso para demonstrar que se você testar estratégias suficientes, o fato é que apenas por acaso, você vai encontrar algumas estratégias que parecem ser incrível. Isso é chamado de falha de mineração de dados. E é um risco real no desenvolvimento da estratégia de negociação. É por isso que é tão importante que uma estratégia está ancorada no comportamento do mundo real comportamento que é sistematicamente tendenciosa devido a alguma restrição do mundo real. Se você quer uma vantagem na negociação, você não troca os mercados, você troca com as pessoas que comercializam os mercados. Nossa vantagem vem da compreensão de como as pessoas podem reagir a certas situações. Estendendo o nosso período de análise Let8217s agora estender nossa análise. Primeiro, we8217ll puxar dados para o índice a partir do ano de 2000: Let8217s ter um olhar para o nosso gráfico agora: O código anterior gera a seguinte saída: Aqui, vemos a ação de preço para o SPY desde o início de 2000 até março 1, 2016. Tem havido certamente muito movimento nesse período porque o mercado experimentou regimes altamente positivos e altamente negativos. Let8217s obter nossa linha de base para o nosso novo período expandido para as nossas três estratégias de base. Primeiro, vamos configurar nossas variáveis ​​para cada um deles, como segue: Agora, vamos ver quais são os totais de pontos para cada um deles. Primeiro, perto de fechar: O código anterior gera a seguinte saída: Em seguida, abra para fechar: O código anterior gera a seguinte saída: Finalmente, perto de abrir: O código anterior gera o seguinte resultado: Agora, let8217s olhar para as estatísticas para cada um deles. Primeiro, obtemos a estatística para perto de fechar: O código anterior gera o seguinte resultado: Em seguida, recuperamos as estatísticas de retorno intra-dia: O código anterior gera o seguinte resultado: Finalmente, obtemos as estatísticas de retorno overnight: O código anterior Gera a seguinte saída: Podemos ver que as diferenças entre os três são ainda mais pronunciadas durante um período mais longo. Se só mantivéssemos este SampP ETF durante o dia nos últimos 16 anos, teríamos perdido dinheiro. Se mantivéssemos o ETF somente durante a noite, nós teríamos melhorado nossos retornos por mais de 50 Obviamente este presume nenhuns custos de troca e nenhuns impostos junto com enchimentos perfeitos, mas não obstante, esta é uma descoberta notável. 4) Construa e avalie o modelo de aprendizagem de máquina Eu construirei a primeira estratégia negociando usando uma regressão do vetor do apoio, ea segunda estratégia negociando usando o warping dinâmico do tempo. Construindo nosso modelo com uma regressão de vetor de suporte Agora que temos uma linha de base para comparar, vamos construir nosso primeiro modelo de regressão. We8217re vai começar com um modelo muito básico usando apenas os valores de fechamento anteriores stock8217s para prever o próximo day8217s fechar. Vamos construir este modelo usando uma regressão do vetor de suporte. Com isso, vamos configurar nosso modelo. O primeiro passo é configurar um objeto DataFrame que contém o histórico de preços para cada dia. We8217re vai incluir os últimos 20 fecha em nosso modelo, da seguinte forma: O código anterior gera a seguinte saída: Este código nos dá cada day8217s preço de fechamento junto com o anterior 20 todos na mesma linha. Isso formará a base da matriz X que alimentaremos nosso modelo. No entanto, antes de estarmos prontos para isso, existem alguns passos adicionais. Primeiro, vamos inverter nossas colunas para que o tempo passe da esquerda para a direita, da seguinte forma: O código anterior gera a seguinte saída: Agora, vamos importar nossa máquina de vetores de suporte e definir nossas matrizes de treinamento e teste e nossos vetores de destino para cada: Apenas um pouco mais de 4.000 pontos de dados para trabalhar, e optar por usar os últimos 1.000 para testes. Let8217s agora se encaixam em nosso modelo e usá-lo para testar fora de dados de amostra, da seguinte forma: Agora que temos nossas previsões, let8217s compará-los aos nossos dados reais: O código anterior gera o seguinte resultado: Avaliar o desempenho do nosso modelo 8217s agora Olhar para o desempenho do nosso modelo. We8217re vai comprar o próximo day8217s aberto se o próximo é previsto para ser superior ao aberto. We8217ll, em seguida, vender no final do mesmo dia. We8217ll seguinte adicionar alguns pontos de dados extra para o nosso objeto DataFrame para calcular os nossos resultados, da seguinte forma: O código anterior gera a seguinte saída: Aqui we8217ll adicionar o seguinte código para obter o nosso sinal e os nossos lucros e perdas para o sinal: Gera a seguinte saída: Let8217s agora ver se fomos capazes de prever com sucesso o preço do dia seguinte8217s usando apenas o histórico de preços. Começamos por calcular os pontos obtidos, como segue: O código anterior gera a seguinte saída: Ouch Não está muito quente até agora. Mas o que sobre o período que nós testamos Nós nunca avaliamos ele no isolamento. Quantos pontos nossa estratégia intraday básica teria gerado durante os últimos 1.000 dias: O código anterior gera o seguinte resultado: Assim, parece que nossa estratégia falhou em igualar a estratégia básica de compra intradia. Let8217s obter as estatísticas completas para comparar os dois. Primeiro, a estratégia intraday básica para o período é a seguinte: O código anterior gera a seguinte saída: Agora, os resultados para o nosso modelo são os seguintes: O código anterior gera a seguinte saída: Isso parece ruim. E se nós modificássemos nossa estratégia de negociação? E se nós tomássemos somente os comércios que eram esperados ser maiores por um ponto ou mais em vez de apenas ser qualquer quantidade maior do que o aberto. Isso ajudaria Let8217s experimentá-lo. O código anterior gera a seguinte saída: Agora as estatísticas são as seguintes: O código anterior gera a seguinte saída: Fomos de mau a pior. Parece que se passado história de preços sugere coisas boas para vir, você pode esperar exatamente o oposto. Parece que desenvolvemos um indicador contrariano com nosso modelo. E se explorarmos esta Let8217s ver como nossos ganhos se pareceriam se lançássemos nosso modelo de modo que quando nós predizemos ganhos fortes, nós don8217t o comércio, mas de outra maneira nós fazemos, como segue: O código precedente gera o seguinte output: Let8217s começ nosso stats : Isso resultará no seguinte resultado: Parece que temos um indicador contrarian aqui. Quando nosso modelo prevê fortes ganhos no dia seguinte, o mercado significativamente underperforms (pelo menos para o nosso período de teste). Isso seria verdade na maioria dos cenários? Não é provável. Os mercados tendem a inverter regimes de reversão média para regimes de persistência de tendências. Let8217s re-run nosso modelo para um período diferente para testá-lo ainda mais: O código anterior gera a seguinte saída: Assim, podemos ver que o nosso novo modelo e período de teste retornou mais de 33 pontos. Vamos comparar isso com a estratégia intraday para este mesmo período de tempo: Isso resulta na seguinte saída: Então, parece que o nosso modelo contrária também superou significativamente durante o nosso novo período de teste também. Neste ponto, há uma série de extensões que poderíamos fazer para este modelo. Nós até já tocamos em usar indicadores técnicos ou os dados fundamentais em nosso modelo, e limitamos nossos ofícios a um dia. Tudo isso poderia ser ajustado e estendido. No entanto, neste ponto, eu quero introduzir um outro modelo que usa um algoritmo completamente diferente. Este algoritmo é chamado dinâmico tempo deformação. O que ele faz é dar-lhe uma métrica que representa a semelhança entre duas séries de tempo. Modelagem com Warping de Tempo Dinâmico Para começar, we8217ll precisa instalar a biblioteca fastdtw da linha de comando usando pip install fastdtw. Uma vez feito isso, importaremos as bibliotecas adicionais que precisamos, como segue: Em seguida, we8217ll criará a função que terá em duas séries e retornará a distância entre elas: Agora, we8217ll dividir nossos 16 anos de séries de dados em cinco Dias. Juntaremos cada período com um ponto adicional. Isto servirá para criar os nossos dados x e y, da seguinte forma: Podemos dar uma olhada em nossa primeira série para ter uma idéia de como os dados se parecem: O código anterior gera o seguinte resultado: Agora que temos cada série, Pode executá-los através de nosso algoritmo para obter a métrica de distância para cada série contra todas as outras séries: Uma vez que temos isso, podemos colocá-lo em um objeto DataFrame. We8217ll série de queda que têm distância zero, uma vez que representam a mesma série. We8217ll também classificar pela data da série e olhar apenas para aqueles onde a primeira série é cronologicamente antes do segundo: Finalmente, we8217ll limitar os nossos comércios para onde a distância é inferior a 1 ea primeira série tem um retorno positivo: O precedente Codificar gera a seguinte saída: Let8217s ver o que um dos nossos top padrões se parece com quando plotada: O código anterior gera a seguinte saída: Agora, we8217ll plot o segundo: O código anterior irá gerar a seguinte saída: Como podemos ver, o Curvas são quase idênticas, que é exatamente o que queremos. We8217re vai tentar encontrar todas as curvas que têm positivo no próximo dia ganhos. Então, uma vez que temos uma curva que é altamente semelhante a uma dessas curvas rentáveis, vamos comprá-lo em antecipação de outro ganho. Let8217s agora construir uma função para avaliar os nossos negócios. Nós compraremos as curvas similares a menos que não retornem um resultado positivo. Se isso acontecer, we8217ll eliminá-los: Agora que temos todos os retornos de nossos negócios armazenados em returnlist, let8217s avaliar os resultados: O código anterior gera a seguinte saída: Estes resultados são de longe o melhor que we8217ve visto. A proporção de winloss ea média estão muito acima dos nossos outros modelos. Parece que podemos estar em algo com este novo modelo, especialmente em comparação com os outros que já vimos. Neste ponto, para avaliar ainda mais nosso modelo, devemos explorar sua robustez examinando outros períodos de tempo para nossos jogos. Estender além dos quatro dias melhorar o modelo Deveríamos sempre excluir os padrões que geram uma perda Há muitas perguntas adicionais que poderíamos explorar neste ponto, mas deixá-lo como um exercício para o leitor. Se você utilizar essas técnicas, saiba que acabamos de arranhar a superfície, e que muito mais testes são necessários sobre janelas adicionais para testar adequadamente estes models. building um computador comercial. Kd2013 Jun 3, 2013, 3:31 AM Estou considerando ter um sistema personalizado construído. Meu computador morreu e eu sei que ao construir você costuma obter um negócio melhor do que comprar um modelo fabricado. Ao construir um computador quais são as características mais significativas que farão a diferença quando as ações de negociação. Que tipos de tecnologia a maioria das redes de corretores on-line, systemsplatforms uso Eu li em algum lugar que thinkorswim tem limites máximos sobre o uso de ram. Eu não quero gastar centenas de recursos que realmente não fazem muita diferença. Basicamente algumas orientações e opiniões sobre o que é realmente necessário eo que vai fazer uma diferença drástica na velocidade de execução, reconhecimento de padrões, etc, em geral, onde a velocidade ea memória realmente começam a diferir quando se trata de standardsupgrades quando o dia de negociação estas são questões gerais que eu Estou tentando classificar qualquer ajuda é apreciada 1. Processador de CPU (processador) A. Does multi-core realmente acelerar os resultados A maioria dos processadores agora um dia têm em algum lugar entre 2-8 núcleos, o 2 e 4 cpus núcleo parece bastante popular. Assim, alguns processadores têm o mesmo GHz, mas vários núcleos é que algo significativo, as tarefas são espalhadas por vários núcleos, significando que o processador de núcleo mais alto, em teoria, deve ser muito mais rápido para completar a mesma tarefa B. Será que as diferenças nas velocidades GHz visivelmente melhorar o desempenho 2. Ghz vs 3ghz vs 4ghz etc etc maioria dos processadores caem no intervalo médio de 3 a 4, será 3.5ghz realmente ser tudo o que diferente de 4.0ghz 2.Memory (ram). Eu sei ram é basicamente taskmultitasking atual memory. So rápido memória confiável deve ser algo para investir e as diferenças de preços arent realmente tudo o que significativo. A velocidade de ram faz uma diferença enorme DDR3-1600 vs DDR3-2800 Eu sei que a quantidade de ram útil é crucial, mas quanto é realmente necessário, 4gb, 6gb, 8gb, 16gb Eu planejo apenas executando o sistema operacional, a plataforma, Internet, antivírus - sem programas de fundo. É provável com apenas correndo gráficos e uma plataforma on-line de corretores que eu vou sempre acertar uma parede ao usar 4-8gb de memória RAM 3. armazenamento ssd - drive de estado sólido é mais rápido, Ive ler o seu valor vale a pena a atualização vs sata típico rígido Drive-o que sobre hybirds (msata - eu acho que msata é híbrido entre os dois).SSDs são caros se Im sortudo eu posso pegar um SSD barato para o mesmo preço que um padrão 1T 7200rpm disco rígido. Estou pensando 120gb ssd a menos que 250gb vai à venda 4.graphic-placa de vídeo (s) - deve ser capaz de executar vários monitores. Mas a qualidade da imagem de gráficos realmente não é alta prioridade, a velocidade mais do que a qualidade de qualidade ou crispness então eu acho que tentar obter o maior possível de vídeo ram e obter algo crossfire ou sli capaz se estou usando vários cartões. 5.psu fonte de alimentação e cooler CPU basicamente depende do que o seu watt e uso são, obviamente, eu deveria ir para a qualidade, mas não overkill 6.same vai para a placa-mãe e caso ir para a qualidade, mas as especificidades do que eu preciso será baseado em Todos os acima e realmente o que o sistema precisa - para mim a parte mais difícil vai ser a seleção das especificações do processador cpu e placa de vídeo que eu quero. Vou precisar minium um sistema que pode executar 3 monitores e, possivelmente, com base na diferença de preço algo que pode executar até 6. Eu acho que a maioria dos processadores modernos vai começar o trabalho bem feito, e uma placa gráfica de vídeo decente com adaptadores necessários como Enquanto eles trabalham juntos e estender a minha área de trabalho e não lag. Então estou pensando intel i3 série cpu, talvez i5. Dê ou tome a série i3 são cerca de metade do custo do i5, é i5 e i7 2-4x mais rápido porque o preço dar ou tomar 2x mais. Se eu não estou couro cabeludo comercial com 10 milhares de ações e enormes lotes será um processador atualizado ser benéfico e vale o investimento que eu sei que posso obter um AMD muito melhor para preços semelhantes, mas os computadores que eu tinha com processadores AMD realmente parecem diminuir a velocidade após o tempo E eu tenho certeza que tinha mais a ver com a durabilidade do processador do que o RAM e disco rígido dos meus computadores anteriores. Meus computadores de intel duraram mais por muito tempo também começaram mais lentos com idade não tão visivelmente assim. Im orçamentação cerca de 100-150 por maior parte alguns serão menos de 100 e vai compensar as peças ligeiramente mais caras. Minha esperança é construir um sistema decente para 500-700 Im não sure como realístico que a meta é mas eu sinto que o computador será provavelmente melhor do que o que eu poderia comprar naquela faixa de preço - basicamente a diferença de preço de compra de construção contra seria na maior parte A presença de placa gráfica (s), ssd armazenamento e ram mais andor ou mais rápido ram. O que você compra para 500-700 provavelmente não será capaz de exibir vários monitores - pode não ser capaz de expandir a memória ram, é provavelmente vai ter ram ligeiramente mais lento, bem como mais lento storagehard unidade 1 resposta Última resposta 3 de junho de 2013 Mais sobre Computador de comércio de construção

No comments:

Post a Comment