К основному контенту

Forex python machine learning


Jon V.
BigData. Iniciantes. Negociação.
BigData. Iniciantes. Negociação.
Machine Beats Human: Usando Aprendizado de Máquinas em Forex.
A aprendizagem e o comércio de máquinas são um assunto muito interessante. Também é um assunto onde você pode gastar toneladas de tempo escrevendo código e lendo documentos e, em seguida, uma criança pode vencê-lo enquanto joga Mario Kart.
Nas postagens nexts, vamos falar sobre:
Otimize entradas e saídas. Isto e só isso pode fazer uma tonelada de diferença em seu rolo de banco. Calcule o tamanho da posição (no caso de você não gostar do critério de Kelly) Encontre a possível correlação entre diferentes pares (negociação em pares). Adoro a correlação EURUSD vs GBPJPY! Calcule suporte e amp; linhas de resistência.
Mas o que é a Aprendizagem de Máquinas?
Os algoritmos de aprendizagem de máquina são algoritmos em que uma máquina pode identificar padrões em seus dados. Yeap, é assim tão simples. Por exemplo, encontre todos os animais nesta foto e desenhe uma caixa ao redor deles. Além disso, nomeie esse animal. Louco, eu sei. Para negociar como você pode imaginar, é bastante semelhante:
Para que uma máquina "aprenda", você precisa ensinar o que é certo ou errado (aprendizado supervisionado) ou dar-lhe um grande conjunto de dados e deixá-lo ficar selvagem (sem supervisão). Para identificar objetos, isso é direto, e o que é negociar?
Eu olhei em volta para ver se há algum programa de aprendizado de máquina que pode identificar as linhas S / R, mas sem sucesso. Então eu decidi escrever o primeiro programa de aprendizagem de máquinas em python que identifica linhas de suporte e resistência em Python. Outro primeiro! Hooray!
Mas como um algoritmo pode identificar essas áreas? Hoooooow? Senhoras e colegas (e robôs), permitam-me que lhe apresente o MeanShift, um algoritmo sem supervisão que é usado principalmente para o reconhecimento de imagens e que é bastante trivial para configurar e executar (mas também muito lento).
A idéia é que este algoritmo me permita dividir meus dados (txs forex) em áreas e então eu posso usar as "bordas" como suporte e linhas de resistência. Ideia legal, mas isso funciona?
Analisamos cerca de 12 milhões de pontos de dados do EURUSD em 2014 e alguns meses de 2015. As linhas de resistência são colocadas automaticamente por um algoritmo de aprendizado de máquina.
O que é realmente legal (e assustador) é que o algoritmo praticamente o engana. NAILS é difícil. Isso fica realmente assustador quando vamos usar o algoritmo para identificar microestruturas e começar a curar.
O sistema é capaz de processar qualquer tipo de dados temporários (ações, forex, ouro, seja o que for) e renderá um gráfico interativo html (como o gráfico acima) com seus dados e a máquina gerada S / L. O código está aqui, então fique louco.
Agora vamos passar pelo código. Depois de ter seu conjunto de dados, você precisa lê-los e limpá-los. Prepare-se para alguns pandas de magia.
Nós deixamos cair os valores vazios (fins de semana) e depois reescrevemos os dados para candelas de 24 horas (ohcl). Isso torna muito mais fácil traçar. Os dados agrupados são os dados que inseriremos no algoritmo ml.
Em seguida, preparamos os dados que vamos usar no algo.
Na próxima publicação, vamos discutir como melhorar esse trabalho, discutir alguns resultados muito interessantes (o algoritmo pode realmente prever sobre o futuro?) E começar a usá-lo em nossa própria negociação. Se você quiser verificar o próximo artigo e ler mais sobre comércio e investimento usando algoritmos, inscreva-se no boletim informativo.
Próxima próxima: Machine Learning Gone Wild - Usando o código!
Se você tiver mais comentários, clique-me no jonromero ou inscreva-se no boletim informativo.
Legal outro. Este é um tutorial de engenharia sobre como construir uma plataforma algotrading para experimentação e FUN. Qualquer sugestão aqui não é um conselho financeiro. Se você perder qualquer (ou todos) o seu dinheiro porque seguiu quaisquer conselhos de negociação ou implantou este sistema na produção, não pode culpar este blog aleatório (e / ou eu). Aproveite a seu próprio risco.

aprendizado de Forex python machine
A aprendizagem de máquinas de qualquer forma, incluindo o reconhecimento de padrões, tem, naturalmente, muitos usos do reconhecimento de voz e facial à pesquisa médica. Nesse caso, nossa questão é se podemos ou não usar o reconhecimento de padrões para referenciar situações anteriores que eram similares em padrões. Se pudermos fazer isso, podemos fazer negócios com base no que sabemos que aconteceu com esses padrões no passado e, de fato, obter lucro?
Para fazer isso, nós vamos codificar completamente tudo nós mesmos. Se você gosta desse tópico, o próximo passo seria examinar a aceleração ou o encadeamento de GPU. Nós só precisaremos de Matplotlib (para visualização de dados) e alguns NumPy (para o número de crunching), e o resto depende de nós.
Python é, naturalmente, uma linguagem de um único tópico, o que significa que cada script usará apenas uma única CPU (geralmente isso significa que ela usa um único núcleo de CPU e, às vezes, mesmo a metade ou quarta, ou pior, desse núcleo).
É por isso que os programas no Python podem demorar um pouco para o computador, mas seu processamento pode ser de apenas 5% e RAM 10%.
Para saber mais sobre o threading, você pode visualizar o tutorial de threading neste site.
A maneira mais fácil de obter esses módulos hoje em dia é usar a instalação de pip.
Não sabe o que é pip ou como instalar módulos?
Pip provavelmente é a maneira mais fácil de instalar pacotes. Depois de instalar o Python, você pode abrir seu prompt de comando, como cmd. exe no Windows ou bash on linux e digitar:
pip instalar numpy.
pip instalar matplotlib.
Se você ainda está tendo problemas, não hesite em contactar-nos, usando o contato no rodapé deste site.
O plano é levar um grupo de preços em um período de tempo e convertê-los em porcentagem de mudança em um esforço para normalizar os dados. Digamos que nós levamos 50 pontos de preço consecutivos por razões de explicação. O que faremos é mapear esse padrão na memória, avançar um ponto de preço e re-mapear o padrão. Para cada padrão que mapeamos na memória, queremos avançar um pouco, digamos, 10 pontos de preço e registrar onde o preço está nesse ponto. Em seguida, mapeamos esse "resultado" para o padrão e continuamos. Todo padrão tem seu resultado.
Em seguida, tomamos o padrão atual e comparamos isso com todos os padrões anteriores. O que faremos é comparar a percentagem de similaridade com todos os padrões anteriores. Se a sua percentagem de semelhança for superior a um determinado limite, então vamos considerar isso. A partir daqui, talvez tenhamos 20 a 30 padrões comparáveis ​​da história. Com estes padrões semelhantes, podemos agregar todos os seus resultados e chegar a um resultado "médio" estimado. Com esse resultado médio, se for muito favorável, então podemos iniciar uma compra. Se o resultado não é favorável, talvez vendamos, ou seja, curto.
Para visualização, aqui está um exemplo:
No exemplo acima, o padrão médio previsto é subir, então podemos iniciar uma compra.
Esta série não terminará com você com qualquer tipo de algoritmo get-rich-quick. Há alguns erros conhecidos com este programa, e as chances de você ser capaz de executar operações rápidas o suficiente com esses dados de ticks são improváveis, a menos que você seja um banco. O objetivo aqui é mostrar o quão fácil e básico é o reconhecimento de padrões. Enquanto você tiver algum conhecimento básico de programação Python, você deve ser capaz de acompanhar.

aprendizado de Forex python machine
Embora muitas pessoas gostem de fazer parecer som muito complexo, o aprendizado de máquinas é bastante simples no seu núcleo e pode ser melhor concebido como classificação de máquina. O aprendizado de máquina brilha quando o número de dimensões excede o que podemos representar graficamente, mas aqui está uma ótima representação em 2D de aprendizado de máquina com dois recursos: a imagem acima é tirada da parte 11 desta série, onde mostramos um exemplo extremamente básico de como uma Support Vector Machine (SVM) funciona. Este exemplo particular e o estimador específico que vamos usar é SVC linear. Se isso não significa nada para você agora, está perfeitamente bem. A imagem acima é tomada alimentando conjuntos de dados de coordenadas x, y como: [1,2],
Como você pode ver, este conjunto de dados tem alguns pares maiores e alguns pares menores. O que um SVM vai fazer é ajudá-lo a encontrar a linha de divisão perfeita entre os dados. Podemos então dar um passo adiante e pedir ao SVM que preveja em qual grupo uma coordenada como [0.8,0.92] pertenceria.
Com recursos (pense nessas dimensões) como 2D ou 3D, é realmente bastante simples de visualizar e para nós humanos apenas olhar para o gráfico e fazer algum cluster básico. O aprendizado de máquina, no entanto, pode ser usado para analisar, digamos, 100 recursos (100 dimensões). Experimente isso com 5 bilhões de amostras.
Esta série está preocupada com o aprendizado da máquina de forma prática e prática, usando a linguagem de programação Python e o módulo Scikit-learn (sklearn).
Nosso exemplo aqui utilizado é analisar as características fundamentais das empresas de capital aberto (ações), comparando esses fundamentos com o desempenho do valor de mercado da ação ao longo do tempo. Nosso objetivo é ver se podemos usar o aprendizado de máquina para identificar boas ações com fundamentos sólidos que importam para que possamos investir neles.
Vou tentar cobrir mais exemplos de aprendizado de máquina no futuro, pois cada algoritmo de aprendizado de máquina é bastante específico para o "tipo" de problema que você pode ter. A Support Vector Machine (SVM) é excelente para algumas tarefas, mas muito pobre para outras. Existem muitos outros algoritmos de aprendizado de máquinas para aprender, e há muito mais para aprender sobre a aprendizagem de máquinas em geral. Nós vamos tomar apenas uma pequena fatia da torta por algoritmo de aprendizado de máquina que usamos.
A aprendizagem de máquinas, em sua maior parte, não é um aprendizado real, embora muitas pessoas na mídia geralmente tenham medo de ser a premissa.
Com o aprendizado da máquina, podemos realizar muitas tarefas incríveis e dar a aparência, ou provavelmente melhor colocar: "a ilusão" da inteligência, mas não é realmente a inteligência como a conhecemos. A verdadeira questão, no entanto, é se isso importa no final? Se o resultado final for o mesmo e alcançado de forma muito mais eficiente, então, o que importa como a conclusão foi alcançada?
Existem muitas aplicações em que essa forma de computação é superior à inteligência humana. Pesar e analisar adequadamente todos os aspectos simplesmente é feito melhor com menor preconceito e muito mais rápido, por computadores.
Existem duas categorias principais de aprendizagem de máquinas:
Dentro da aprendizagem supervisionada, temos classificação e regressão. Lembre-se mais cedo quando eu disse que a aprendizagem de máquinas é realmente apenas uma classificação de máquina? Ainda é, mas existe também uma forma específica de aprendizagem de máquinas chamada classificação.
Assim, o aprendizado supervisionado é onde nós, o cientista, supervisionamos e, às vezes, orientamos o processo de aprendizagem. Podemos dizer quais são alguns dos dados e deixar alguns para questionar.
Dentro da aprendizagem supervisionada, temos classificação, onde é que já temos as classificações feitas. Um exemplo aqui seria o tutorial de reconhecimento de imagem que fizemos, onde você tem um conjunto de números e você tem um desconhecido que deseja encaixar em uma de suas categorias pré-definidas.
Então, temos uma regressão, ainda sob aprendizagem supervisionada, que talvez seja melhor chamada de indução ou algo assim, onde temos certas variáveis ​​conhecidas dos dados em questão e, usando a amostra anterior ou dados históricos, podemos fazer previsões sobre o desconhecido .
Um exemplo aqui seria o que o Facebook faz para você quando aponta para onde você mora. Dada a sua rede e as pessoas com as quais você tem os laços e comunicações mais próximos, e de onde eles são, o Facebook pode adivinhar que você também é daquele local.
Outro exemplo seria se amostrasse um milhão de pessoas e, em seguida, encontre uma pessoa desconhecida com cabelo loiro e pele pálida. Estamos curiosos que cor olhos que eles têm. Nosso algoritmo de regressão provavelmente sugerirá que nossa nova pessoa tem olhos azuis ou cinza, com base nas amostras anteriores.
Agora, imediatamente as bandeiras vermelhas provavelmente deveriam sair aqui. Para você, filosofia majores lá fora, você sabia que havia um problema imediatamente quando usamos o raciocínio indutivo. Para o resto de vocês, o problema é que estamos fazendo previsões aqui, usando a forma mais fraca de raciocínio.
Tudo o que disse, os humanos deveram um pouco de sua evolução à sua capacidade de fazer um raciocínio indutivo. Não é tudo ruim, mas as pessoas gostam de usar raciocínio indutivo e análise de regressão para coisas como ações comerciais. O problema é que esse raciocínio segue a história e faz previsões para o futuro. Como sabemos e ouvimos muitas vezes repetidamente, a história não é uma representação do futuro.
Não quero passar muito tempo aqui, mas gostaria de sublinhar, com a indução, que os computadores são melhores do que os humanos. Quando se trata de raciocínio indutivo, os seres humanos têm a tendência de perder-julgar e pesar incorretamente vários atributos. Eles geralmente têm muito mais viés, e outras falhas estatísticas que particularmente provocam o raciocínio indutivo. Os computadores não têm esses problemas, e eles podem executar esse raciocínio em um conjunto de dados muito maior a um ritmo astronômico mais rápido do que nós.
A aprendizagem não supervisionada é a forma como criamos o algoritmo de aprendizado, então lançamos uma tonelada de dados no computador e deixamos o computador fazer sentido.
O básico do aprendizado não supervisionado é apenas lançar um conjunto de dados maciços na máquina, e a máquina, você adivinhou, classifica ou agrupa os dados. É por isso que os termos podem ser confusos. Basta lembrar que todo o aprendizado da máquina é a classificação da máquina, e a versão específica do aprendizado da máquina denominada classificação é onde estamos apenas definindo categorias, forçando a máquina a escolher uma.
Os últimos termos principais que eu gostaria de nos cobrir aqui antes de ter nossos pés molhados são testes e treinamento.
Quando "treinamos" a máquina, é aqui que damos dados que são pré-classificados. Então, novamente, com a série de reconhecimento de imagens, treinamos nossa máquina, dando exemplos de 0s a 9s.
Quando testamos este algoritmo, utilizamos novos dados não classificados para a máquina, mas conhecemos a classificação adequada. Geralmente, você alimenta os dados para testá-lo, então você executa as respostas corretas através da máquina e verá quantos a máquina ficou correta e errada.
Como você pode encontrar em breve, realmente adquirir os dados necessários para treinar e testar é a parte mais desafiadora. Para mim e o Sentdex, que faz análise de sentimento de texto, consegui usar críticas de filmes e produtos descontrolados offline como meus conjuntos de treinamento e teste. Os comentários vêm com rankings, então eu poderia treinar e testar a máquina em conjuntos de dados maciços que foram classificados pessoalmente pelo próprio crítico.
Eu fiz essa imagem há muito tempo, mas acho que ainda se aplica à aprendizagem de máquinas:
Embora eu pense que o aprendizado da máquina é realmente mais complicado do que isso, a maioria das pessoas provavelmente lerá sobre o aprendizado da máquina e pensa que é incrivelmente complicado na programação e matematicamente, sendo assim assustado.
Embora os algoritmos de aprendizagem de máquinas sejam realmente incrivelmente longos e complexos, você quase nunca precisará escrever o seu, exceto apenas por diversão ou apenas para ver se você pode.
Em quase todos os casos de produção, você não gostaria de escrever o seu, nem você deveria. Você vai querer usar um algoritmo revisado por pares, altamente eficiente e altamente testado. Para a maioria dos principais casos, haverá um algoritmo muito eficaz disponível para você. Por isso, na verdade, não é necessário que você aprenda sobre todo o funcionamento interno do aprendizado de máquina para ser bem sucedido com ele.
Você pode pensar bem assim como você provavelmente trata seu carro, seu computador ou seu telefone celular. Você pode tirar muita utilidade dessas coisas, mas provavelmente você sabe muito pouco sobre todas as complexidades delas.
O aprendizado da máquina é da mesma maneira. É melhor entender alguns dos principais parâmetros, como "taxa de aprendizado", bem como o que a aprendizagem de máquinas está realmente fazendo para você, dessa maneira você pode descobrir como melhor aplicar a aprendizagem de máquinas para um problema. É por isso que eu acho que a visualização de alguns exemplos antes de entrar em dimensões impossíveis é uma ótima idéia.
Claro, você pode achar que você está curioso sobre o funcionamento interno, e eu gostaria de encorajá-lo a alimentar sua curiosidade. Os algoritmos são verdadeiramente fascinantes, e certamente irá melhorar sua eficácia quanto mais você entender os algoritmos que você pretende empregar.
O foco deste curso é realmente aplicar um algoritmo de aprendizagem de máquina a um problema. Se isso soar como algo que você gostaria de fazer, vá para o próximo tutorial.

Aprendizado de máquinas para negociação.
Oferecido no Georgia Tech como CS 7646.
Programa Nanodegree.
Inteligência artificial.
Aprenda a construir o impossível.
Acelere sua carreira com a credencial que o acompanha rapidamente ao sucesso do trabalho.
Sobre este curso.
Este curso apresenta os alunos aos desafios do mundo real de implementar estratégias de negociação baseadas em aprendizado de máquinas, incluindo os passos algorítmicos da coleta de informações para pedidos de mercado. O foco é sobre como aplicar abordagens de aprendizado de máquina probabilística para decisões de negociação. Consideramos abordagens estatísticas como regressão linear, KNN e árvores de regressão e como aplicá-las a situações reais de negociação de ações.
Custo do curso.
Aprox. 4 meses.
Nível de habilidade.
Incluído no curso.
Rich Learning Content.
Ensinado por profissionais da indústria.
Comunidade de apoio ao aluno.
Junte-se ao caminho da grandeza.
Este curso gratuito é o seu primeiro passo para uma nova carreira com o Programa Nanodegree de Inteligência Artificial.
Curso gratuito.
Aprendizado de máquinas para negociação.
Melhore o seu conjunto de habilidades e aumente a sua hirabilidade através de uma aprendizagem inovadora e independente.
Programa Nanodegree.
Inteligência artificial.
Acelere sua carreira com a credencial que o acompanha rapidamente ao sucesso do trabalho.
Leads do curso.
Tucker Balch.
Arpan Chakraborty.
O que você aprenderá.
Este curso é composto por três mini-cursos:
Mini-curso 1: manipulação de dados financeiros no Python Mini-curso 2: Investimento computacional Mini-curso 3: Algoritmos de Aprendizado de Máquinas para Negociação.
Cada mini-curso consiste em cerca de 7 a 10 lições curtas. As tarefas e os projetos são intercalados.
Estudantes da OMS em queda de 2015: haverá dois testes - um meio de meio após mini-curso 2 e um exame final.
Pré-requisitos e requisitos.
Os estudantes devem ter fortes habilidades de codificação e alguma familiaridade com os mercados de ações. Nenhuma experiência financeira ou de aprendizado de máquina é assumida.
Observe que este curso atende estudantes que se concentram em ciência da computação, bem como estudantes de outras especialidades, como engenharia de sistemas industriais, gerenciamento ou matemática que tenham experiências diferentes. Todos os tipos de alunos são bem-vindos!
Os tópicos ML podem ser "revisar" para estudantes de CS, enquanto peças de finanças serão revisadas para estudantes de finanças. No entanto, mesmo se você tiver experiência nesses tópicos, você achará que os consideramos de uma maneira diferente da que você já viu antes, em particular com o objetivo de implementar para negociação.
A programação será principalmente em Python. Utilizaremos inúmeras bibliotecas numéricas como NumPy e Pandas.
Por que tomar este curso.
No final deste curso, você deve ser capaz de:
Compreender as estruturas de dados utilizadas para negociação algorítmica. Saiba como construir software para acessar dados de capital vivo, avaliá-lo e tomar decisões comerciais. Compreenda 3 algoritmos de aprendizagem de máquina populares e como aplicá-los a problemas comerciais. Compreenda como avaliar o desempenho de um algoritmo de aprendizagem de máquina para dados de séries temporais (dados de preço de estoque). Saiba como e por que as técnicas de mineração de dados (aprendizagem em máquina) falham. Construa um sistema de software comercializado que usa dados diários atuais.
Algumas limitações / restrições:
Usamos dados diários. Este não é um curso HFT, mas muitos dos conceitos aqui são relevantes. Nós não interagimos (negociamos) diretamente com o mercado, mas vamos gerar alocações de capital que você poderia negociar se quisesse.
O que eu ganho?
Vídeos de instrutor Aprenda fazendo exercícios Ensinados por profissionais da indústria.
Cursos relacionados.
Aprendizado de máquinas: Aprendizagem não supervisionada.
Informática de saúde na nuvem.
Big Data Analytics em Saúde.
AI baseada no conhecimento: sistemas cognitivos.
Tecnologia Educacional.
Segmentação e Clustering.
Cursos populares.
Cenas e Objetos do VR.
Engenheiro de automóveis com auto-condução - Sensor Fusion.
VR Software Development.
Programas em destaque.
Somente na Udacidade.
Programas.
O negócio.
"Nanodegree" é uma marca registrada da Udacity. &cópia de; 2011 & ndash; 2018 Udacity, Inc.
Udacity não é uma universidade credenciada e não conferimos graus.

Aprendizado de máquina e sua aplicação em mercados de Forex [MODELO DE TRABALHO]
Na última publicação, cobrimos o conceito de Aprendizado de Máquinas (ML) em breve. Nesta publicação, explicamos alguns mais termos ML e, em seguida, enquadramos regras para uma estratégia forex usando o algoritmo SVM em R.
Para usar o ML na negociação, começamos com dados históricos (estoque / dados forex) e adicionamos indicadores para construir um modelo em R / Python / Java. Em seguida, selecionamos o algoritmo de aprendizagem da máquina certo para fazer as previsões.
Primeiro, vejamos alguns dos termos relacionados ao ML.
Algoritmos de Aprendizagem de Máquina - Existem muitos algoritmos ML (lista de algoritmos) projetados para aprender e fazer previsões sobre os dados. Os algoritmos ML podem ser usados ​​para prever uma categoria (problema de classificação de tackle) ou para prever a direção e a magnitude (enfrentar o problema de regressão).
Prever o preço de uma ação em 3 meses, com base nos últimos resultados trimestrais da empresa. Prever se o Fed aumentará sua taxa de juros de referência.
Indicadores / Características - Os indicadores podem incluir indicadores técnicos (EMA, BBANDS, MACD, etc.), indicadores fundamentais ou indicadores macroeconômicos.
Exemplo 1 & # 8211; RSI (14), preço - SMA (50) e CCI (30). Podemos usar esses três indicadores, construir nosso modelo e usar um algoritmo ML adequado para prever valores futuros.
Exemplo 2 & # 8211; RSI (14), RSI (5), RSI (10), preço - SMA (50), preço - SMA (10), CCI (30), CCI (15), CCI (5)
Neste exemplo, selecionamos 8 indicadores. Alguns desses indicadores podem ser irrelevantes para o nosso modelo. Para selecionar o subconjunto certo de indicadores, utilizamos técnicas de seleção de características.
Seleção de recursos - É o processo de selecionar um subconjunto de recursos relevantes para uso no modelo. As técnicas de seleção de recursos são colocadas em 3 grandes categorias: métodos de filtragem, métodos baseados no Wrapper e métodos incorporados. Para selecionar o subconjunto certo, basicamente fazemos uso de um algoritmo ML em alguma combinação. Os recursos selecionados são conhecidos como preditores na aprendizagem em máquina.
Support Vector Machine (SVM) - O SVM é um algoritmo bem conhecido para o Aprendizado de Máquinas supervisionado e é usado para resolver problemas de classificação e regressão.
Um algoritmo SVM funciona nos pontos de dados rotulados e os separa através de um limite ou um Hyperplane. SVM tenta maximizar a margem em torno do hiperplano separador. Os vetores de suporte são os pontos de dados mais próximos da superfície de decisão.
Regras de enquadramento para uma estratégia forex usando SVM em R & # 8211; Dada a nossa compreensão de recursos e SVM, comecemos com o código em R. Selecionamos o par de moedas EUR / USD com um período de tempo de 1 hora que data de 2010. Os indicadores aqui utilizados são MACD (12, 26, 9), e Parabolic SAR com configurações padrão de (0.02, 0.2).
Primeiro, carregamos as bibliotecas necessárias em R e, em seguida, lemos os dados EUR / USD. Em seguida, calculamos MACD e Parabolic SAR usando suas respectivas funções disponíveis no pacote "TTR". Para calcular a tendência, subtravemos o preço de encerramento EUR / USD do valor SAR para cada ponto de dados. Nós atrasamos os valores dos indicadores para evitar o viés futuro. Nós também criamos uma classe Up / Down com base na mudança de preço.
Posteriormente, mesclamos os indicadores e a classe em um quadro de dados chamado dados do modelo. Os dados do modelo são então divididos em treinamento e dados de teste.
Em seguida, usamos a função SVM do pacote "e1071" e treinamos os dados. Fazemos previsões usando a função de previsão e também traçamos o padrão. Estamos obtendo uma precisão de 53% aqui.
Do enredo, vemos duas áreas distintas, uma área superior maior em vermelho, onde o algoritmo fez previsões curtas e a menor área menor em azul, onde foi longo.
O indicador SAR traça o preço à medida que a tendência se estende ao longo do tempo. A SAR está abaixo dos preços quando os preços estão subindo e acima dos preços quando os preços estão caindo. O SAR pára e inverte quando a tendência do preço reverte e quebra acima ou abaixo dele. Estamos interessados ​​no crossover de Price e SAR, e, portanto, estão tomando medidas de tendência como a diferença entre preço e SAR no código. Da mesma forma, estamos usando os valores do histograma MACD, que é a diferença entre os valores da linha MACD e da linha de sinal.
Olhando para o enredo, enquadramos nossas duas regras e avaliá-las sobre os dados do teste.
Regra curta = (Preço-SAR) & gt; -0,0025 & amp; (Preço - SAR) & lt; 0,0100 & amp; MACD & gt; -0,0010 & amp; MACD & lt; 0,0010.
Long rule = (Price-SAR) & gt; -0,0150 & amp; (Preço - SAR) & lt; -0,0050 & amp; MACD & gt; -0,0005.
Estamos obtendo uma precisão de 54% para nossos negócios curtos e uma precisão de 50% para nossos negócios longos. O algoritmo SVM parece estar fazendo um bom trabalho aqui. Paramos neste ponto e, na nossa próxima publicação na Aprendizagem da máquina, veremos como as regras emolduradas, como as descritas acima, podem ser codificadas e testadas para verificar a viabilidade de uma estratégia comercial.

Negociação Usando Aprendizado de Máquina em Python Part-2.
No final do meu último blog, fiz algumas perguntas. Agora, vou responder a todos ao mesmo tempo. Também discutirei uma maneira de detectar o regime / tendência no mercado sem treinar o algoritmo de tendências. Mas antes de avançarmos, use uma correção para buscar os dados do Google para executar o código abaixo.
A equação é excessiva?
Esta foi a primeira pergunta que eu fiz. Para saber se seus dados estão em excesso ou não, a melhor maneira de testá-lo seria verificar o erro de previsão que o algoritmo faz no trem e os dados de teste.
Para fazer isso, teremos que adicionar um pequeno pedaço de código ao código já escrito.
Primeiro, deixe-me começar minha explicação pedindo desculpas por quebrar as normas: ultrapassando a marca de 80 colunas.
Em segundo lugar, se executarmos esse código, a saída pareceria ser assim.
Nosso algoritmo está melhorando nos dados do teste em comparação com os dados do trem. Esta observação em si é uma bandeira vermelha. Existem alguns motivos pelos quais o erro nos nossos dados de teste pode ser melhor do que o erro de dados do trem:
Se os dados do trem tiveram maior volatilidade (intervalo diário) em comparação com o conjunto de teste, a previsão também apresentaria maior volatilidade. Se houvesse uma tendência inerente no mercado que ajudasse o algo a fazer melhores previsões.
Agora, vamos verificar quais desses casos são verdadeiros. Se o alcance dos dados do teste fosse inferior aos dados do trem, o erro deveria ter diminuído depois de passar mais de 80% dos dados como um conjunto de trens, mas aumenta.
Em seguida, para verificar se houve uma tendência, deixe-nos passar mais dados de um período de tempo diferente.
Se executarmos o código, o resultado seria assim:
Então, dar mais dados não fez o seu algoritmo funcionar melhor, mas isso piorou. Em dados de séries temporais, a tendência inerente desempenha um papel muito importante na performance do algoritmo nos dados do teste. Como vimos acima, pode produzir resultados melhores do que o esperado às vezes. A principal razão pela qual o nosso algo estava indo tão bem foi que os dados do teste estavam aderindo ao padrão principal observado nos dados do trem.
Então, se nosso algoritmo pode detectar a tendência subjacente e usar uma estratégia para essa tendência, então deve dar melhores resultados. Vou explicar isso com mais detalhes:
O algoritmo de aprendizado da máquina pode detectar a tendência ou fase de mercado inerente (bull / bear / sideways / breakout / panic). O banco de dados pode ser cortado de forma a treinar diferentes algos para diferentes situações.
A resposta a ambas as perguntas é um SIM!
Podemos dividir o mercado em diferentes regimes e, em seguida, usar esses sinais para cortar os dados e treinar diferentes algoritmos para esses conjuntos de dados. Para conseguir isso, escolho usar um algoritmo de aprendizado de máquina sem supervisão.
A partir daqui, este blog será dedicado a criar um algoritmo que possa detectar a tendência inerente no mercado sem treinamento explícito para isso.
Primeiro, vamos importar as bibliotecas necessárias.
Então buscamos os dados do OHLC do Google e mudamos um dia para treinar o algoritmo somente nos dados passados.
Em seguida, solte todo o NaN.
Em seguida, vamos instanciar um algoritmo de aprendizagem de máquina sem supervisão usando o modelo de "mistura gaussiana" da sklearn.
No código acima, criei um algo sem supervisão que dividirá o mercado em 4 regimes, com base no critério de sua escolha. Nós não fornecemos nenhum conjunto de dados de trem com rótulos como no blog anterior.
Em seguida, vamos ajustar os dados e prever os regimes. Então, estaremos armazenando essas previsões de regime em uma nova variável chamada regime.
Agora vamos calcular os retornos do dia.
Em seguida, crie um quadro de dados chamado Regimes que terá os valores de OHLC e Return juntamente com a classificação de regime correspondente.
Depois disso, vamos criar uma lista chamada 'ordem' que tenha os valores correspondentes à classificação do regime, e depois traçar esses valores para ver o quão bem o algo classificou.
A diferenciação do regime final seria assim:
Este gráfico parece muito bom para mim. Sem realmente analisar os fatores com base nos quais a classificação foi feita, podemos concluir algumas coisas apenas observando o gráfico.
A zona vermelha é a baixa volatilidade ou a zona lateral A zona roxa é zona de alta volatilidade ou zona de pânico. A zona verde é uma zona de fuga. A zona azul: não é totalmente segura, mas deixe-nos descobrir.
Use o código abaixo para imprimir os dados relevantes para cada regime.
A saída seria assim:
Os dados podem ser inferidos da seguinte forma:
Regime 0: média baixa e alta covariância. Regime 1: média alta e alta covariância. Regime 2: média alta e baixa covariância. Regime 3: baixa média e baixa covariância.
Até agora, vimos como podemos dividir o mercado em vários regimes. Mas a questão da implementação de uma estratégia de sucesso ainda não foi respondida. Se você quiser aprender a codificar uma estratégia de negociação de aprendizado de máquina, sua escolha é simples:
Para reformular Morpheus,
Esta é a sua última chance. Depois disso, não há volta para trás. Você toma a pílula azul - a história acaba, você acorda na sua cama e acredita que pode trocar manualmente. Você toma a pílula vermelha - você fica no Algoland, e eu mostro o quão profundo é o buraco do coelho.
Lembre-se: toda a oferta é a verdade. Nada mais.
Se você quiser aprender vários aspectos da negociação algorítmica, consulte o Programa Executivo em Negociação Algorítmica (EPAT ™). O curso abrange módulos de treinamento como Statistics & amp; Econometria, Computação Financeira e Tecnologia e Algorítmica e Negociação quantitativa. EPAT ™ equipa você com os conjuntos de habilidades necessárias para ser um comerciante bem sucedido. Inscreva-se agora!
Posts Relacionados:
2 pensamentos sobre "Negociação Usando Aprendizagem de Máquina em Python Part-2"
Quote & # 8220; Este gráfico parece muito bom para mim. Sem realmente analisar os fatores com base nos quais a classificação foi feita, podemos concluir algumas coisas apenas observando o gráfico.
A zona vermelha é a baixa volatilidade ou a zona lateral.
A zona roxa é zona de alta volatilidade ou zona de pânico.
A zona verde é uma zona de fuga.
A zona azul: não é inteiramente segura, mas deixe-nos descobrir. & # 8221;
O roxo está abaixo de -27.
O vermelho é de -27 a -08.
O azul é de -08 a +18 e.
O verde está acima de +18.
sem considerar o regime ou co-variação / volatilidade em tudo!
Não passamos nenhum indicador para separar a tendência ou o regime. Acabamos de passar por OHLC, de modo que a classificação foi feita com base apenas em valores de retorno. Não podemos esperar que o algoritmo faça um trabalho melhor em comparação com um humano quando nenhum outro dado é dado. Meu ponto de escrever este código é mostrar como você pode imprimir e analisar os fatores subjacentes da classificação. É bom que você possa ver os valores de classificação de saída com seu olho, mas você passou mais indicadores junto com a OHLC, o resultado final teria sido muito diferente. Como você disse, o parâmetro de retorno pode ser mostrado como o único fator subjacente para esta classificação não supervisionada, mas não passei o valor de retorno como um recurso.

Комментарии

Популярные сообщения из этого блога

Forex trading 500 dólares

As perspectivas de converter $ 100 em Forex em US $ 10.000. Um dos lançamentos de Internet que vendem conselhos para comerciantes de forex é dirigido ao comerciante de potencial com pouco ou nenhum capital. Pode alegar que a partir de US $ 100, você pode ganhar US $ 10.000 por ano ou pode dobrar essa $ 100 em um mês. Isso levanta várias questões, o mais básico: isso é mesmo possível? Possibilidade vs. Probabilidade. Quase qualquer padrão de ganho ou perda é teoricamente possível no forex, mas isso não é provável. O que você precisaria fazer para começar com US $ 100 e ter uma conta comercial no valor de US $ 10.000 por ano depois? Uma calculadora do retorno sobre o investimento (ROI) permite que você quebre-o. Usando a calculadora mostra que, para conseguir isso, sua taxa anual de retorno sobre investimento precisa ser 9,900 por cento! Partindo isso de outra forma, podemos usar a calculadora de juros composta fornecida pela SEC no Investor. gov para determinar quanto sua taxa diária de...

Horário de abertura forex de londres

Horário de Forex. Nota: EST é uma abreviatura para Eastern Standard Time (por exemplo, New York), enquanto o GMT é uma abreviatura para Greenwich Mean Time (por exemplo, Londres). Os principais mercados de Forex, na ordem de seus horários de abertura, são: Sydney, Tóquio, Frankfurt, Londres e Nova York. No gráfico abaixo, você pode ver o curso horário do dia da negociação Forex. Nota: o mercado de Tóquio não inicia no fuso horário devido ao fato de que ele abre 1 hora. após os outros mercados (9:00 da hora local, enquanto outros abrem às 8:00 da manhã, hora local). A tabela a seguir ilustra os horários locais de abertura e fechamento de um dia e semana de Forex, em função dos fusos horários. Se você mora em Nova York, pode ver a partir da tabela (GMT-5) que o comércio diário começa às 17:00 (17:00) e termina às 17:00 (17:00) no dia seguinte. A abertura semanal é no domingo, enquanto o fechamento semanal é sexta-feira. Familiarize-se com os horários de abertura e encerramento locais, po...

Forex plr

Estratégias de negociação Forex (PLR) Descrição. Download do tamanho do arquivo - 3,129Kb Formato eBook - PDF, DOC (fonte) Requisitos de leitura - Qualquer leitor de PDF Número de páginas 35 Data de lançamento - 2008 Preço de varejo sugerido - $ 17,00. Sumario de produtos. O comércio de Forex envolve lidar com moedas internacionais. Aqui, pode-se vender moeda de um país para comprar o outro. O comerciante negocia no Foreign Exchange [Forex] no momento mais apropriado para lucrar com a transação. Boa capacidade de prever tem um papel vital aqui. Pode-se imaginar como o comércio de Forex pode ser uma oportunidade lucrativa, uma vez que as flutuações em troca são tão poucas. O que é Forex Trading? Importância da negociação Forex Quatro principais tipos de pedidos no mercado Forex Movimentos de preços Forex Trading - Como e por que os mercados o movem Prever as tendências das despesas de Forex O mercado obedece Leis científicas O negócio pode ser feito de notícias Tendências de despesas re...