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

Forex svm


Aprendizado de máquinas: como o suporte de máquinas vetoriais podem ser usados ​​na negociação.


O que é uma máquina de vetor de suporte?


Uma máquina de vetor de suporte é um método de aprendizado de máquina que tenta tirar dados de entrada e classificar em uma das duas categorias. Para que uma máquina de vetor de suporte seja efetiva, é necessário primeiro usar um conjunto de dados de entrada e saída de treinamento para construir o modelo de máquina vetorial de suporte que pode ser usado para classificar novos dados.


Uma máquina de vetor de suporte desenvolve esse modelo, levando as entradas de treinamento, mapeando-as para o espaço multidimensional e, em seguida, usando regressão para encontrar um hiperplano (um hiperplano é uma superfície no espaço n-dimensional que separa o espaço em dois meios) que se separa melhor as duas classes de insumos. Uma vez que a máquina de vetor de suporte tenha sido treinada, é capaz de avaliar novas entradas em relação ao hiperplaneamento de separação e classificá-lo em uma das duas categorias.


Uma máquina de vetor de suporte é essencialmente uma máquina de entrada / saída. Um usuário é capaz de colocar uma entrada, e com base no modelo desenvolvido através do treinamento, ele retornará uma saída. O número de entradas para qualquer máquina de vetor de suporte dada varia teoricamente de um para o infinito, no entanto, em termos práticos, o poder de computação limita o número de entradas que podem ser utilizadas. Se, por exemplo, N entradas são usadas para uma máquina de vetor de suporte particular (o valor inteiro de N pode variar de um para o infinito), a máquina de vetor de suporte deve mapear cada conjunto de entradas em espaço N-dimensional e encontrar um (N-1 ) - hiperplaneamento dimensional que melhor separa os dados de treinamento.


Figura 1. As máquinas de vetor de suporte são máquinas de entrada / saída.


A melhor maneira de conceituar como uma máquina de vetor de suporte funciona é considerando o caso bidimensional. Suponha que queremos criar uma máquina de vetor de suporte que tenha duas entradas e retorna uma única saída que classifique o ponto de dados como pertencente a uma das duas categorias. Podemos visualizar isso, plotando-o em um gráfico bidimensional, como o gráfico abaixo.


Figura 2. À esquerda: As entradas da máquina vetorial de suporte são mapeadas para um gráfico 2D. Os círculos vermelhos e os cruzamentos azuis são usados ​​para denotar as duas classes de entradas.


Figura 3. Direita: As entradas da máquina do vetor de suporte são mapeadas para um gráfico 2D. Os círculos vermelhos e os cruzamentos azuis são usados ​​para denotar as duas classes de entradas com uma linha preta indicando o hiperplano separador.


Neste exemplo, os cruzamentos azuis indicam pontos de dados que pertencem à categoria 1 e os círculos vermelhos que representam pontos de dados pertencentes à categoria 2. Cada um dos pontos de dados individuais tem valor exclusivo de entrada 1 (representado por sua posição no eixo x ) e um valor único de entrada 2 (representado por sua posição no eixo y) e todos esses pontos foram mapeados para o espaço bidimensional.


Uma máquina de vetor de suporte é capaz de classificar dados criando um modelo desses pontos no espaço bidimensional. A máquina do vetor de suporte observa os dados no espaço bidimensional e usa um algoritmo de regressão para encontrar uma hiperligação 1-dimensional (aka line) que separe com precisão os dados em suas duas categorias. Esta linha de separação é então usada pela máquina de vetor de suporte para classificar novos pontos de dados em categoria 1 ou categoria 2.


A animação abaixo ilustra o processo de treinamento de uma nova máquina vetorial de suporte. O algoritmo começará fazendo uma descoberta aleatória ao encontrar um hiperplano separador, então melhorará iterativamente a precisão do hiperplano. Como você pode ver, o algoritmo começa de forma bastante agressiva, mas depois diminui quando ele começa a se aproximar da solução de desejos.


Figura 4. Uma animação que mostra um treinamento de máquina vetorial de suporte. O hiperplaneiro converge progressivamente na geometria ideal para separar as duas classes de dados.


O cenário bidimensional acima apresentado nos permite visualizar o processo de uma máquina vetorial de suporte, no entanto, ele só é capaz de classificar um ponto de dados usando duas entradas. E se quisermos usar mais entradas? Felizmente, o algoritmo de máquina de vetor de suporte nos permite fazer o mesmo em dimensões superiores, embora seja muito mais difícil de conceituar.


Considere isso, você deseja criar uma máquina de vetor de suporte que leva 20 entradas e pode classificar qualquer ponto de dados usando essas entradas para categoria 1 ou categoria 2. Para fazer isso, a máquina de vetores de suporte precisa modelar os dados em espaço de 20 dimensões e use um algoritmo de regressão para encontrar um hiperplano 19 dimensional que separe os pontos de dados em duas categorias. Isso é extremamente difícil de visualizar, pois é difícil para nós compreender algo acima de 3 dimensões, no entanto, tudo o que você precisa saber é que funciona exatamente da mesma forma que para o caso bidimensional.


Como funcionam as máquinas de suporte de vetores? Exemplo: é um Schnick?


Imagine este cenário hipotético, você é um pesquisador que investiga um animal raro encontrado apenas nas profundezas do Ártico chamado Shnicks. Dado o afastamento destes animais, apenas um pequeno punhado já foi encontrado (digamos, cerca de 5000). Como pesquisador, você está preso à questão. Como posso identificar um Schnick?


Tudo o que você tem à sua disposição são os trabalhos de pesquisa publicados anteriormente pelo punhado de pesquisadores que já viram um. Nestes trabalhos de pesquisa, os autores descrevem certas características sobre os Schnicks encontrados, isto é, altura, peso, número de pernas, etc. Mas todas essas características variam entre os documentos de pesquisa sem padrão discernível.


Como podemos usar esses dados para identificar um novo animal como um schnick?


Uma possível solução para o nosso problema é usar uma máquina de vetor de suporte para identificar os padrões nos dados e criar uma estrutura que possa ser usada para classificar os animais como um schnick ou não um schnick. O primeiro passo é criar um conjunto de dados que podem ser usados ​​para treinar sua máquina de vetores de suporte para identificar os schnicks. Os dados de treinamento são um conjunto de entradas e saídas correspondentes para a máquina de vetor de suporte para analisar e extrair um padrão.


Portanto, devemos decidir quais entradas serão usadas e quantos. Teoricamente, podemos ter tantas entradas como desejamos, no entanto isso geralmente pode levar a um treinamento lento (quanto mais entradas você tiver, mais tempo demora a máquina de vetor de suporte para extrair padrões). Além disso, você deseja escolher valores de insumos que tendem a ser relativamente consistentes em todos os schnicks. Por exemplo, altura ou peso do animal seria um bom exemplo de uma contribuição porque você esperaria que isso fosse relativamente consistente em todos os schnicks. No entanto, a idade média de um animal seria uma fraca escolha de contribuição porque você esperaria que a idade dos animais identificados variasse bastante.


Por esse motivo, foram escolhidas as seguintes entradas:


Altura Peso O número de pernas O número de olhos O ​​comprimento dos braços do animal A velocidade média dos animais A frequência do chamado de acasalamento dos animais.


Com as entradas escolhidas, podemos começar a compilar nossos dados de treinamento. Os dados de treinamento efetivos para uma máquina vetorial de suporte devem atender a certos requisitos:


Os dados devem ter exemplos de animais que são schnicks. Os dados devem ter exemplos de animais que não são schnicks.


Neste caso, temos os trabalhos de pesquisa de cientistas que identificaram com sucesso um schnick e listaram suas propriedades. Portanto, podemos ler esses trabalhos de pesquisa e extrair os dados em cada uma das entradas e alocar uma saída de verdade ou falso para cada um dos exemplos. Os dados de treinamento neste caso podem parecer semelhantes à tabela abaixo.


Tabela 1. Tabela de exemplos de observações schnick.


Uma vez que reunimos os dados para todas as nossas entradas e saídas de treinamento, podemos usá-lo para treinar nossa máquina de vetores de suporte. Durante o processo de treinamento, a máquina de vetor de suporte criará um modelo em espaço de sete dimensões que pode ser usado para classificar cada um dos exemplos de treinamento em verdade ou em falso. A máquina de vetor de suporte continuará a fazer isso até que ele tenha um modelo que represente com precisão os dados de treinamento (dentro da tolerância de erro especificada). Uma vez que o treinamento está completo, este modelo pode ser usado para classificar novos pontos de dados como verdadeiro ou falso.


A máquina de suporte de vetores realmente funciona?


Usando o cenário de Schnick, escrevi um script que testa o quão bem uma máquina de vetor de suporte pode realmente identificar novos schnicks. Para fazer isso, usei a Biblioteca de funções "Support Vector Machine Learning Tool" que pode ser baixada do Market.


Para modelar este cenário de forma eficaz, precisamos primeiro decidir quais são as propriedades reais de um Schnick. As propriedades que assumi neste caso foram listadas na tabela abaixo. Se um animal satisfaz todos os critérios abaixo, então é um Schnick.


Tabela 2. Resumo dos parâmetros que definem um schnick.


Agora que definimos nosso Schnick, podemos usar essa definição para experimentar com máquinas de vetor de suporte. O primeiro passo é criar uma função que seja capaz de tomar as sete entradas para qualquer animal dado e devolver a classificação real do animal como um schnick ou não. Esta função será usada para gerar dados de treinamento para a máquina vetorial de suporte, além de avaliar o desempenho do mesmo no final. Isso pode ser feito usando a função abaixo;


O próximo passo no processo é criar uma função que pode gerar entradas e saídas de treinamento. As entradas neste caso serão geradas criando números aleatórios dentro de um intervalo definido para cada um dos sete valores de entrada. Então, para cada um dos conjuntos de entradas aleatórias geradas, a função isItASchnick () acima será usada para gerar a saída desejada correspondente. Isso é feito na função abaixo:


Agora temos um conjunto de entradas e saídas de treinamento, agora é hora de criar nossas máquinas de vetores de suporte usando a "Ferramenta de Aprendizado de Máquinas de Vector de Suporte" disponível no Mercado. Uma vez que uma nova máquina de vetor de suporte é criada, é necessário passar as entradas e saídas de treinamento para ele e executar o treinamento.


Agora temos uma máquina de vetor de suporte que foi treinada com sucesso na identificação de Scnhicks. Para verificar isso, podemos testar a máquina vetorial de suporte final pedindo que ele classifique novos pontos de dados. Isso é feito primeiro gerando entradas aleatórias e, em seguida, usando a função isItASchnick () para determinar se essas entradas correspondem a um Schnick real, use a máquina de vetor de suporte para classificar as entradas e determinar se o resultado previsto corresponde ao resultado real. Isso é feito na função abaixo:


Recomendo jogar com os valores dentro das funções acima para ver como a máquina de vetor de suporte funciona em diferentes condições.


Por que o Support Vector Machine é tão útil?


O benefício de usar uma máquina de vetor de suporte para extrair um padrão complexo dos dados é que não é necessário uma compreensão prévia do comportamento dos dados. Uma máquina de vetor de suporte é capaz de analisar os dados e extrair seus únicos insights e relacionamentos. Desta forma, funciona de forma semelhante a uma caixa preta recebendo entradas e gerando uma saída que pode revelar-se muito útil na busca de padrões nos dados que são muito complexos e não óbvios.


Uma das melhores características das máquinas de vetor de suporte é que eles são capazes de lidar com erros e ruídos nos dados muito bem. Muitas vezes, eles são capazes de ver o padrão subjacente dentro dos dados e afastar os outliers de dados e outras complexidades. Considere o seguinte cenário, ao realizar sua pesquisa em Schnicks, você se deparou com vários trabalhos de pesquisa que descrevem Schnicks com características maciçamente diferentes (como um schnick com 200kg e 15000mm de altura).


Erros como este podem levar a distorções seu modelo do que é um Schnick, o que poderia causar um erro ao classificar novas descobertas de Schnick. O benefício da máquina de vetor de suporte é que ele irá desenvolver um modelo que concorda com o padrão subjacente oposto a um modelo que se encaixa todos os pontos de treinamento de dados. Isso é feito permitindo que um certo nível de erro no modelo habilite a máquina de vetor de suporte a ignorar todos os erros nos dados.


No caso da máquina de vetor de suporte da Schnick, se permitimos uma tolerância de erro de 5%, o treinamento só tentará desenvolver um modelo que concorde com 95% dos dados de treinamento. Isso pode ser útil porque permite que o treinamento ignore a pequena porcentagem de valores esporádicos.


Podemos investigar esta propriedade da máquina de vetor de suporte ainda mais, modificando nosso script Schnick. A função abaixo foi adicionada para introduzir erros aleatórios deliberados em nosso conjunto de dados de treinamento. Esta função selecionará pontos de treinamento aleatoriamente e substituirá as entradas e a saída correspondente com variáveis ​​aleatórias.


Esta função nos permite introduzir erros deliberados nos nossos dados de treinamento. Usando esses dados preenchidos por erros, podemos criar e formar uma nova máquina de vetores de suporte e comparar seu desempenho com o original.


Quando o script é executado, ele produz os seguintes resultados no Expert Log. Dentro de um conjunto de dados de treinamento com 5000 pontos de treinamento, conseguimos introduzir 500 erros aleatórios. Ao comparar o desempenho desta máquina de vetor de suporte preenchido com o original, o desempenho é reduzido apenas em & lt; 1%. Isso ocorre porque a máquina de vetor de suporte é capaz de ignorar os outliers no conjunto de dados ao treinar e ainda é capaz de produzir um modelo impressionantemente preciso dos dados verdadeiros. Isso sugere que as máquinas de vetor de suporte poderiam potencialmente ser uma ferramenta mais útil na extração de padrões complexos e insights de conjuntos de dados ruidosos.


Figura 5. O log perito resultante após a execução do script "Schnick" no MetaTrader 5.


Uma versão completa do código acima pode ser baixada da Base de Código, no entanto, este script só pode ser executado em seu terminal se você tiver comprado uma versão completa da ferramenta de Aprendizado de Máquinas de Vetores de Suporte do Mercado. Se você tiver apenas uma versão de demonstração desta ferramenta baixada, você estará limitado a usar a ferramenta através do testador de estratégia. Para permitir o teste do código "Schnick" usando a versão de demonstração da ferramenta, reescrevi uma cópia do script em um Expert Advisor que pode ser implantado usando o testador de estratégia. Ambas as versões de código podem ser baixadas seguindo os links abaixo:


Versão Completa - Usando um Script que é implantado no terminal MetaTrader 5 (requer uma versão adquirida da Ferramenta de Aprendizagem de Máquinas de Vetores de Suporte)


Versão Demo - Usando um Consultor Especializado que é implantado no testador de estratégia MetaTrader 5 (requer apenas uma versão demo da Ferramenta de Aprendizado de Máquinas de Vetores de Suporte)


Como pode suportar máquinas vetoriais ser usado no mercado?


É certo que o exemplo de Schnick discutido acima é bastante simples, no entanto, existem algumas semelhanças que podem ser desenhadas entre este exemplo e o uso de máquinas de vetor de suporte para análises técnicas de mercado.


A análise técnica é fundamentalmente sobre o uso de dados históricos do mercado para prever futuros movimentos de preços. Da mesma forma, dentro do exemplo schnick, estávamos usando as observações feitas por cientistas anteriores para prever se um novo animal é um schnick ou não. Além disso, o mercado está atormentado com ruído, erros e valores atípicos estatísticos que tornam o uso de uma máquina vetorial de suporte um conceito interessante.


A base para um número significativo de abordagens de análise de análise técnica envolve as seguintes etapas:


Monitorando vários indicadores Identificando quais condições para cada indicador se correlacionam com um comércio potencialmente bem sucedido Veja cada um dos indicadores e avalie quando todos (ou a maioria) estão sinalizando um comércio.


É possível adotar uma abordagem semelhante para usar máquinas de vetor de suporte para sinalizar novos negócios de forma semelhante. A ferramenta de aprendizado da máquina de vetor de suporte foi desenvolvida com isso em mente. Uma descrição completa de como usar esta ferramenta pode ser encontrada no Market, então eu só darei uma visão geral rápida. O processo para usar esta ferramenta é o seguinte:


Figura 6. O diagrama de blocos que mostra o processo para implementar a máquina-ferramenta de vetor de suporte em um Expert Advisor.


Antes de poder usar a Ferramenta de Aprendizagem de Máquinas de Vetores de Suporte, é importante primeiro entender como as entradas e saídas de treinamento são geradas.


Como são geradas Entradas de Treinamento?


Assim, os indicadores que você deseja usar como entradas já foram inicializados, bem como sua nova máquina de vetores de suporte. O próximo passo é passar as alças de indicadores para a sua nova máquina de vetores de suporte e instruí-lo sobre como gerar os dados de treinamento. Isso é feito chamando a função setIndicatorHandles (). Esta função permite que você passe as alças dos indicadores inicializados na máquina vetorial de suporte. Isso é feito passando e matriz inteira contendo as alças. As outras duas entradas para esta função são o valor de deslocamento e o número de pontos de dados.


O valor do deslocamento denota o deslocamento entre a barra atual e a barra de partida a ser usada na geração das entradas de treinamento e o número de pontos de treinamento (denotado por N) define o tamanho dos dados de treinamento. O diagrama abaixo ilustra como usar esses valores. Um valor de deslocamento de 4 e um valor N de 6 dirão à máquina de vetor de suporte que use apenas as barras capturadas no quadrado branco para gerar entradas e saídas de treinamento. Da mesma forma, um valor de deslocamento de 8 e um valor N de 8 dirão à máquina de vetor de suporte que use apenas as barras capturadas no quadrado azul para gerar entradas e saídas de treinamento.


Uma vez que a função setIndicatorHandles () foi chamada, é possível chamar a função genInputs (). Esta função usará as alças de indicadores para passar para gerar uma matriz de dados de entrada a ser usada para treinar.


Figura 7. Gráfico de velas que ilustra os valores de Offset e N.


Como são geradas as saídas de treinamento?


Os resultados de treinamento são gerados simulando negociações hipotéticas com base em dados de preços históricos e determinando se tal comércio teria sido bem sucedido ou mal sucedido. Para fazer isso, existem alguns parâmetros que são usados ​​para instruir a ferramenta de aprendizado da máquina de vetor de suporte, como avaliar um comércio hipotético como bem sucedido ou mal sucedido.


A primeira variável é OP_TRADE. O valor desta pode ser COMPRAR ou VENDER e corresponderá a operações de compra ou venda hipotéticas. Se o valor for COMPRAR, então, ao gerar as saídas, apenas examinará o potencial sucesso de negociações de compra hipotéticas. Alternativamente, se o valor deste é VENDER, então, ao gerar as saídas, apenas analisará o potencial sucesso de negociações de venda hipotéticas.


Os próximos valores utilizados são Stop Loss e Take Profit para esses negócios hipotéticos. Os valores são definidos em pips e definem os níveis de parada e limite para cada uma das negociações hipotéticas.


O parâmetro final é a duração do comércio. Essa variável é medida em horas e assegurará que apenas as negociações que estejam completas dentro dessa duração máxima serão consideradas como bem-sucedidas. A razão para incluir esta variável é evitar o suporte de máquinas de vetor de sinalização comercial em um mercado paralelo lento.


Considerações para fazer ao escolher entradas.


É importante colocar algum pensamento na seleção de entrada ao implementar máquinas de vetor de suporte em sua negociação. Semelhante ao exemplo de Schnick, é importante escolher uma entrada que seria esperada para ter semelhanças entre as incidências de diferença. Por exemplo, você pode ser tentado a usar uma média móvel como uma entrada, no entanto, uma vez que o preço médio a longo prazo tende a mudar drasticamente ao longo do tempo, uma média móvel em isolamento pode não ser a melhor entrada para usar. Isso ocorre porque não haverá semelhança significativa entre o valor médio móvel hoje e os valores médios móveis há seis meses.


Suponha que estamos negociando EURUSD e usando uma máquina de vetor de suporte com uma entrada média móvel para o sinal de "comprar" trades. Digamos que o preço atual é 1,10, no entanto, está gerando dados de treinamento de seis meses atrás, quando o preço foi de 0,55. Ao treinar a máquina de vetores de suporte, o padrão que ele encontra só pode levar a que um comércio seja sinalizado quando o preço é de cerca de 0,55, pois esses são os únicos dados que conhece. Portanto, sua máquina de vetores de suporte pode nunca sinalizar um comércio até que o preço caia de volta para 0,55.


Em vez disso, uma melhor entrada a ser usada para a máquina de vetor de suporte pode ser um MACD ou um oscilador similar porque o valor do MACD é independente do nível de preço médio e apenas indica um movimento relativo. Eu recomendo que você experimente com isso para ver o que produz os melhores resultados para você.


Outra consideração a ser feita ao escolher entradas é garantir que a máquina de vetor de suporte tenha um instantâneo adequado de um indicador para sinalizar um novo comércio. Você pode achar em sua própria experiência de negociação que um MACD só é útil quando você tem as últimas cinco barras para ver, pois isso irá mostrar uma tendência. Uma única barra do MACD pode ser inútil isoladamente, a menos que você possa dizer se está indo para cima ou para baixo. Portanto, pode ser necessário passar as últimas barras do indicador MACD para a máquina vetorial de suporte. Existem duas maneiras possíveis de fazer isso:


Você pode criar um novo indicador personalizado que usa as últimas cinco barras do indicador MACD para calcular uma tendência como um valor único. Este indicador personalizado pode então ser passado para a máquina de vetor de suporte como uma única entrada, ou.


Você pode usar as cinco barras anteriores do indicador MACD na máquina vetorial de suporte como cinco entradas separadas. A maneira de fazer isso é inicializar cinco instâncias diferentes do indicador MACD. Cada um dos indicadores pode ser inicializado com um deslocamento diferente da barra atual. Em seguida, as cinco alças dos indicadores separados podem ser passadas para a máquina vetorial de suporte. Note-se que a opção 2 tenderá a causar tempos de execução mais longos para o seu Consultor Especialista. Quanto mais entradas você tiver, mais tempo será necessário para treinar com êxito.


Implementando máquinas de vetor de suporte e consultor especialista.


Eu preparei um Expert Advisor que é um exemplo de como alguém poderia potencialmente usar máquinas de vetor de suporte em suas próprias negociações (uma cópia disso pode ser baixada seguindo este link mql5 / pt / code / 1229). Esperemos que o Consultor Especialista permita que você experimente um pouco com máquinas de vetor de suporte. Eu recomendo que você copie / modifique / modifique o Consultor Especial para se adequar ao seu próprio estilo de negociação. A EA funciona da seguinte forma:


Duas novas máquinas de vetor de suporte são criadas usando a biblioteca svMachineTool. Um é configurado para assinalar novos negócios 'Buy' e o outro está configurado para assinalar novos negócios 'Sell'.


Sete indicadores padrão são inicializados com cada um de seus identificadores armazenados em uma matriz inteira (Nota: qualquer combinação de indicadores pode ser usada como entradas, eles só precisam ser passados ​​para o SVM em uma única matriz de números inteiros).


A matriz de alças de indicadores é passada para as novas máquinas de vetor de suporte.


Usando a matriz de alças de indicadores e outros parâmetros, os dados de preços históricos são usados ​​para gerar entradas e saídas precisas a serem usadas para treinar as máquinas de vetor de suporte.


Uma vez que todas as entradas e saídas foram geradas, ambas as máquinas de vetor de suporte são treinadas.


As máquinas de vetores de suporte treinados são usadas na EA para sinalizar novos negócios "comprar" e "vender". Quando um novo comércio "comprar" ou "vender" é sinalizado, o comércio abre junto com as ordens manuais Stop Loss e Take Profit.


A inicialização e treinamento da máquina de vetor de suporte são executados dentro da função onInit (). Para sua referência, este segmento do svTrader EA foi incluído abaixo com notas.


Advanced Support Vector Machine Trading.


A capacidade adicional foi incorporada na ferramenta de aprendizado de máquinas vetoriais de suporte para os usuários mais avançados lá fora. A ferramenta permite que os usuários passem seus próprios dados de entrada e dados de saída personalizados (como no exemplo de Schnick). Isso permite que você crie seus próprios critérios para obter entradas e saídas de máquinas vetoriais de suporte, e passar manualmente nesses dados para treiná-lo. Isso abre a oportunidade de usar máquinas de vetor de suporte em qualquer aspecto de sua negociação.


Não é possível usar máquinas de vetor de suporte para sinalizar novos negócios, mas também pode ser usado para sinalizar o fechamento de negócios, gerenciamento de dinheiro, novos indicadores avançados, etc. No entanto, para garantir que você não receba erros, é importante entenda como esses insumos e saídas devem ser estruturados.


Entradas: as entradas são passadas para o SVM como uma matriz de dois valores duplos. Observe que qualquer entrada que você crie deve ser passada como um valor duplo. Boolean, integer, etc. devem ser convertidos em um valor duplo antes de serem passados ​​para a máquina vetorial de suporte. As entradas são necessárias no formulário a seguir. Por exemplo, suponha que estamos passando em entradas com 3 entradas x 5 pontos de treinamento. Para conseguir isso, nossa matriz dupla deve ter 15 unidades de comprimento no formato:


| A 1 | B 1 | C 1 | A 2 | B 2 | C 2 | A 3 | B 3 | C 3 | A 4 | B 4 | C 4 | A 5 | B 5 | C 5 |


Também é necessário passar um valor para o número de entradas. No caso, N_Inputs = 3.


Saídas: as saídas são transmitidas como uma matriz de valores booleanos. Esses valores booleanos são a saída desejada do SVM correspondente a cada um dos conjuntos de entradas passadas. Seguindo o exemplo acima, digamos que temos 5 pontos de treinamento. Neste cenário, passaremos em uma matriz booleana de valores de saída com 5 unidades de comprimento.


Ao gerar suas próprias entradas e saídas, certifique-se de que o comprimento de suas matrizes coincida com os valores que você passa. Se eles não combinarem, será gerado um erro informando sobre a discrepância. Por exemplo, se passamos em N_Inputs = 3, e as entradas são uma matriz de comprimento 16, um erro será lançado (uma vez que, um valor N_inputs de 3 significará que o comprimento de qualquer matriz de entrada precisará ser um múltiplo de 3). Da mesma forma, assegure-se de que o número de conjuntos de entradas e o número de saídas que você passa são iguais. Novamente, se você tiver N_Inputs = 3, comprimento das entradas de 15 e um comprimento de saídas de 6, outro erro será lançado (como você tem 5 conjuntos de entradas e 6 saídas).


Tente garantir que você tenha variação suficiente em suas saídas de treino. Por exemplo, se você passar em 100 pontos de treinamento, o que significa uma matriz de saída de comprimento 100 e todos os valores são falsos com apenas um verdadeiro, então a diferenciação entre o caso verdadeiro eo caso falso não é suficiente. Isso tenderá a levar ao treinamento SVM muito rápido, mas a solução final é muito pobre. Um conjunto de treinamento mais diversificado geralmente levará a uma SVM mais afetiva.


Negociação com máquinas de vetor de suporte (SVM)


Finalmente, todas as estrelas se alinharam e posso dedicar algum tempo para o teste posterior de novos sistemas de negociação, e o Support Vector Machines (SVM) é o novo "brinquedo" que vai me manter ocupado por um tempo.


Os SVMs são uma ferramenta bem conhecida da área de Aprendizagem Automática supervisionada, e são usados ​​tanto para classificação quanto para regressão. Para mais detalhes, consulte a literatura.


Parece-me que o aplicativo mais intuitivo para negociação é a regressão, então comecemos pela construção de um modelo de regressão SVM.


Seguindo nossa experiência com os modelos ARMA + GARCH, começaremos tentando prever os retornos, em vez dos preços. Da mesma forma, em nossos primeiros testes, usaremos apenas os retornos dos 5 dias anteriores como os recursos que determinam o retorno de um determinado dia. Começaremos com história de 500 dias como o conjunto de treinamento.


Em termos mais matemáticos, para o conjunto de treinamento, temos recursos N, para cada um deles temos M amostras. Nós também temos respostas M.


Dada uma linha de valores de característica, a matriz esquerda, o SVM é treinado para produzir o valor da resposta. Em nosso exemplo específico, temos cinco colunas (características), cada coluna correspondente aos retornos com atraso diferente (de 1 a 5). Temos 500 amostras e as respostas correspondentes.


Uma vez que o SVM é treinado neste conjunto, podemos começar a alimentá-lo com conjuntos de cinco recursos, correspondentes aos retornos dos cinco dias anteriores, e o SVM nos fornecerá a resposta, qual é o retorno previsto. Por exemplo, depois de treinar o SVM nos 500 dias anteriores, usaremos os retornos para os dias 500, 499, 498, 497 e 496 (estes são nossos como entrada para obter o retorno previsto para o dia 501.


De todos os pacotes disponíveis em R, decidi escolher o pacote e1071. Uma segunda escolha foi o pacote kernlab, que ainda estou planejando tentar no futuro.


Então tentei algumas estratégias. Primeiro tentei algo muito parecido com a abordagem ARMA + GARCH - os retornos atrasados ​​dos cinco dias anteriores. Fiquei bastante surpreso ao ver esta estratégia ter melhor desempenho do que a ARMA + GARCH (esta é a terra natal da ARMA + GARCH e eu teria ficado bastante feliz apenas com desempenho comparável)!


Em seguida, tentei os mesmos cinco recursos, mas tentando selecionar o melhor subconjunto. A seleção foi feita usando uma abordagem gananciosa, começando com 0 recursos e adicionando de forma interativa o recurso que minimiza melhor o erro. Esta abordagem melhorou ainda mais as coisas.


Finalmente, tentei uma abordagem diferente com cerca de uma dúzia de recursos. Os recursos incluíram retornos em diferentes períodos de tempo (1 dia, 2 dias, 5 dias, etc.), algumas estatísticas (média, mediana, sd, etc.) e volume. Eu usei a mesma abordagem gananciosa para selecionar recursos. Este sistema final também mostrou um desempenho muito bom, mas demorou um momento para correr.


Hora de terminar esta publicação, os resultados dos back-testing devem aguardar. Até então você pode jogar com o código fonte completo você mesmo. Aqui está um exemplo de usá-lo:


Comentários estão fechados.


Posts populares recentes.


Artigos mais visitados da semana.


Empregos para usuários R.


É alimentado pelo WordPress usando um design bavotasan.


Direitos autorais e cópia; 2017 R-bloggers. Todos os direitos reservados. Termos e Condições para este site.


Compre sistemas comerciais de gerenciamento de pedidos comerciais.


Taxas Saxo forex.


Como comerciante, é muito importante que você entre no forex na direção certa. Por exemplo, você deve ter certeza de que o mercado vai forex antes de entrar em um svm de compra.


Se você entrar em um comércio de compras e o mercado diminui, o comércio acabará batendo na perda de parada. Na última publicação, falei sobre o idioma e o software R e como você pode usar o R ​​na melhoria do seu sistema comercial. R é um poderoso software estatístico de forex e é de código aberto. Há mais do que pacotes R que estão disponíveis para você que você pode usar para fazer seus modelos preditivos. Nosso objetivo é melhorar nosso sistema comercial. A estratégia é combinar seu modelo estatístico preditivo com o seu modelo de negociação nua, baseado exclusivamente na análise técnica da ação de preços.


Por exemplo, você detecta um padrão Gartley em seu gráfico e você tem um sinal de compra. O que você deve forex Você não deve entrar em um comércio de compra. Você verá até o final do dia svm você se salvou de um mau comércio.


Nesta publicação, vamos discutir como prever a direção do mercado usando um SVM do Support Vector Machine. Você pode usar uma máquina de vetores de suporte em qualquer momento forex. Suponha que você esteja planejando entrar em um período de compra forex H1. Seu modelo SVM prevê que a próxima vela seja mais baixa. Você pode usar essa previsão para entrar a um preço muito melhor na próxima hora.


Você deve forex R software e software RStudio e instalá-lo antes de continuar com esta publicação. As máquinas de vetor de suporte são classificadores não-lineares que usam uma função de núcleo para transformar o problema de classificação não-linear svm em um problema de classificação linear. Assista ao vídeo abaixo que explica o que é um SVM :.


Support Vector Machine is an important Machine Learning Algorithm. You should just have a broad understanding what is this algorithm and how you can use to cut your losses in your daily trading. As you can see from the above calculations it took around 6. We have used a radial basis function as the kernel. We need to do some tweaking and see if forex can improve the predictive accuracy. The above calculations have svm made using 5 lags of simple returns.


The time taken by R to do forex the calculations is just 5. We can trade binary options with this model on intraday timeframes of M15 and M Training error is always an overestimate.


This time we make the prediction svm EURUSD. These were the calculations for Svm candles. As you can see R forex the calculations pretty fast in 5 seconds.


Now if svm tweak the model more we can make the predictive accuracy svm. This is what I do. I have this model make the prediction. As you have seen above this forex hardly takes a few seconds to predict the next candle.


Once I have the prediction, I use my candlestick trading system and see if it confirms with the prediction. When both the predictions confirm each other, I open the trade otherwise I skip the trade. This helps in reducing the losses. You can see in the above calculations we reduced the number of lags from 10 to 5. This is svm indication that we should not try to reduce the number of lags. As you can see we can perform these calculations in just a few seconds.


If the prediction is svm up candle, we should avoid svm sell trade. Use your knowledge forex candlestick patterns and enter into a buy trade. Home About Privacy Policy FTC Disclosure Courses Fuzzy Logic For Traders Java For Traders Java Machine Learning For Traders Svm For Algorithmic Trading. How To Use A Support Vector Machine SVM In Daily Trading? How To Use Support Svm Machine SVM In Predicting Market Direction On Any Timeframe?


Watch the video below that explains what an SVM is: Get My Forex Systems FREE!! A Forex Scalping System That Makes Pips Anytime With A Small Stop Loss Of 10 Pips! Download My 3 Powerful Day Trading Indicators FREE Join Our Million Dollar Trading Challenge Today!


Download My Swing Trading System FREE. Join My Million Dollar Trading Challenge Today! Send Me The FREE System Plus Videos!!


Python Trading Strategy and Machine Learning Implementation.


4 thoughts on “Forex svm”


Students learn the past and current methods of artistic study, including psychoanalysis, feminism, social history, anthropology, and semiotics.


As a math teacher explains in his blog: most students who are receiving As or Bs and need homework the least will do it, while most students who are receiving Ds or Fs and need extra practice of a concept or skill do not do the homework anyway, or do it with almost no effort (Meyer).


More About Elijah Hand Tucker: Burial: College Corner (Union) IN iii.


In the Choose Color dialog box, select the Midnight Blue color and click OK.


How To Use A Support Vector Machine (SVM) In Daily Trading?


As a trader it is very important for you to enter the trade in the right direction. For example, you should be pretty sure the market is going to go up before you enter into a buy trade. If you enter a buy trade and market goes down, trade will end up hitting stop loss. If you have a method that can predict market direction with an accuracy above 70%, you can cut your overall risk of losing by 70%. In the last post I told you about R language and software and how you can use R in improving your trading system . R is a powerful statistical analysis software and is open source. There are more than 2000 R packages that are available to you that you can use to make your predictive models.


Our aim is to improve our trading system. The strategy is to combine your predictive statistical model with your naked trading model that is solely based on the technical analysis of price action. For example you spot a Gartley pattern on your chart and you have a buy signal. Your statistical predictive model tells you there is a 75% chance market will go down today. O que você deveria fazer? You should not enter into a buy trade. You will see by the end of the day you have saved yourself from a bad trade. In this post we will discuss how to forecast market direction using a Support Vector Machine (SVM). You can use a support vector machine on any time frame. Suppose you are planning to enter into a buy trade on H1 timeframe. Your SVM model predicts that next candle to be bearish. You can use this prediction to enter at a much better price in the next hour.


How To Use Support Vector Machine (SVM) In Predicting Market Direction On Any Timeframe?


You should download R software and RStudio software and install it before you continue with this post. Support Vector Machines are non-linear classifiers that use a kernel function to transform a non-linear classification problem into a linear classification problem. Watch the video below that explains what an SVM is:


Support Vector Machine is an important Machine Learning Algorithm. Now you don’t need to master how to do the modelling with an SVM. You should just have a broad understanding what is this algorithm and how you can use to cut your losses in your daily trading.


SV type: eps-svr (regression)


parameter : epsilon = 0.1 cost C = 5.


Gaussian Radial Basis kernel function.


Hyperparameter : sigma = 0.05.


Number of Support Vectors : 1884.


Objective Function Value : -3870.229.


Training error : 0.285461.


Cross validation error : 0.08664.


& gt; #calculate the time taken to make an SVM.


& gt; user system elapsed.


As you can see from the above calculations it took around 6.65 seconds for R to perform all the above calculations. The training error is 28% meaning the predictive accuracy of this SVM Model is 72%. We have used a radial basis function as the kernel. We need to do some tweaking and see if we can improve the predictive accuracy. The above calculations have been made using 5 lags of simple returns. With these 5 simple return lags we are getting a training error of 28%. Let’s repeat the calculations with 10 lags and see if we succeed in reducing the training.


As you can see above we did the calculations with 10 lags and were able to reduce the training error to 22% meaning we achieved a predictive accuracy of 78%. The time taken by R to do all the calculations is just 5.13 seconds which means we can also use our model on intraday timeframes like M15 and M30. We can trade binary options with this model on intraday timeframes of M15 and M30. Training error is always an overestimate. When we do out of sample testing, we will get an error that will be something between 22% to 28%. As long as we have a predictive accuracy above 70%, we can use this SVM Model in our daily trading. Now let’s do the calculations for the intraday timeframe of M15. This time we make the prediction for EURUSD.


These were the calculations for EURUSDM15 candles. As you can see R made the calculations pretty fast in 5 seconds. The training error is approximately 25% meaning we achieved a predictive accuracy of 75%. Now if we tweak the model more we can make the predictive accuracy better.


This is what I do. I have this model make the prediction. As you have seen above this model hardly takes a few seconds to predict the next candle. Once I have the prediction, I use my candlestick trading system and see if it confirms with the prediction. When both the predictions confirm each other, I open the trade otherwise I skip the trade. This helps in reducing the losses.


You can see in the above calculations we reduced the number of lags from 10 to 5. We reduced the time of calculations by 1 second by training error went up to 30%. This is an indication that we should not try to reduce the number of lags. As you can see we can perform these calculations in just a few seconds. After this statistical modelling we know with at least 70% certainty the direction of the next candle. If the prediction is an up candle, we should avoid a sell trade. Use your knowledge of candlestick patterns and enter into a buy trade .


0 comentários.


Baixe um sistema simples de Forex GRÁTIS que duplica a conta todos os meses com 3-4 de baixo risco e evite negócios no horário H4 e também pode trocar opções binárias nos prazos M5, M15 e M30!


Sua informação é 100% segura conosco e nunca será compartilhada.


Direitos autorais e cópia; 2015 · Forex. TradingNinja · All Rights Reserved.


Get A Binary Options Strategy That Has 92% Average Winrate FREE!

Комментарии

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

Hafizzat rusli forex strategy

Hafizzat rusli forex strategy SEMINARIA BERSAMA HAFIZZAT RUSLI | Kuala Lumpur allevents. in & # 8250; Kuala Lumpur. 15 de agosto de 2015 - SEMINÁRIO BERSAMA HAFIZZAT RUSLI, Kota Damansara, Kuala Lumpur, Kuala. Receba ebook e indicador (worth usd300 GRÁTIS) Facebook: Prince of Forex - Hafizzat Rusli busca as pessoas crédulas para fraudá-las com seus falsos "sistemas de negociação vencedores", "indicadores proprietários" e assim por diante. Bagi sesiapa yg ingin mencuba dunia forex, boleh lah registrar-se em anda di sini secara PERCUMA. Kemudian boleh cuba trade menggunakan akaun Demo Elite Trader - Hafizzat Rusli - Facebook facebook / princehafizzat. klass "principe forex" (fizzat bilionare) Esse cara é real? Prince of forex - Lowyat forum. lowyat & # 8250; Lifestyle & # 8250; Kopitiam. Prince of Forex - Hafizzat Rusli 16 de dezembro - Haffizat Rusli. perghh siap Ensinar velas básicas e indicadores é uma ótima idéia. Você pode. Aventura de Hafi...

Forex hisse takas verileri

Forex takas verileri 3 aylk. Gvenilir, hzl ve profesyonel bir foreks deneyimi em ALB Forex'i tercih edin. Página mais quente - Bats Alternative Trading System Saiba mais sobre a versão branca do pokemon 2 guia oficial de estratégia pdf, seminários forex filipinas e forex na czym polega. Oferta especial - qbasis forex garant plus, noções básicas de opções de ações da empresa e forex pune gratuitamente. Bugn gnde 6 trilyon dolarlk ilem hacmi olan forex piyasas, Takasbank nezdinde Bu ilemleri piyasay takip ederek ve ekonomik verileri doru. Usando o gráfico não indicativo de futuros. Uma conta aylik forex takas verileri 3 autorizada permite que o negociante da atividade comercial lhe dê dólares. Página mais quente - Timetrade Appointment Systems Veja nossas galerias - hisse senedi takasbank forex takasbank verileri forex, líderes de mercado forex e contoh mm forex Últimos conteúdos de vx e forex vx e nomes de estratégias de negociação. Vídeo por tema: 25 02 2017 Borsa 1 Seans Д ° Г§i. ...

Forex fm-8100

Forex fm-8100 10. MP3 / WMA müzik formatı destekli. 11. Son frekansı ve müzik parçasını hatırlar ve tekrar başladığında geri getirir. 12. Araç çakmağı güç desteği. 13.. Uzaktan kumandanın 20 tuşu ve direksiyon uzaktan kumandası tercihidir. uma. Cihazı aracın çakmak girişine takın ve SD kartı veya USB diski cihazın girişine takın. MP3. veya WMA müzik dosyaları daha önceden SD karta veya USB diske aktarılabilir. Cihaz. müzik parçalarını arayacak ve otomatik olarak çalacaktır. Oynat \ durdur değişikliği için. b. Aracın ses sistemini FM radyoya ayarlayın, cihazın radyosunun frekansını FM vericiyle aynı. Frekansa ayarlayın, böylece aracınızın radyosu FM vericideki müzikleri çalacaktır. c. Frekans ayarı. Cihazın ön kısmındaki "CH-" ve "CH + tuşlarıyla frekansı aracınızın radyosuyla aynı. frekansa getirin. Frekans hızı ayarlamak için parmağınızı birkaç saniye tuşa basılı tutun. d. Önceki veya sonraki parçaya geçmek için veya tuşuna basın. Sesi azaltmak veya. Arttırmak için par...