MetaTrader 5 - Aprendizagem da máquina de negociação: como o suporte de máquinas vetoriais pode ser usado 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 vetores de suporte desenvolve este 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-espaços) 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 de 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. Máquinas de vetor de suporte são máquinas de saída de entrada A melhor maneira de conceituar como uma máquina de vetor de suporte funciona é considerando o caso de duas dimensões. 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 que pertencem à categoria 2. Cada um dos pontos de dados individuais possui um 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 de 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 separa com maior 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 um achado aleatório 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 sobre a 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, é possível classificar um ponto de dados usando duas entradas. E se quisermos usar mais entradas. Felizmente, o algoritmo da 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 em categoria 1 ou categoria 2. Para fazer isso, a máquina vetorial 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 tudo acima das 3 dimensões, no entanto, tudo o que você precisa saber é que funciona exatamente da mesma forma que para o caso bidimensional. Como funciona o Vector de Ferramentas de Suporte Exemplo: É um Schnick Imagine esse cenário hipotético, você é um pesquisador que investiga um animal raro encontrado apenas nas profundezas do Ártico chamado Shnicks. Dado o afastamento desses animais, apenas um punhado pequeno 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 que encontraram, isto é, altura, peso, número de pernas, etc. Mas todas essas características variam entre os trabalhos de pesquisa sem padrão discernível. Como podemos usar esses dados para identificar um novo animal como um schnick. Uma solução possível 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 consideravelmente. Por esta razão, foram escolhidas as seguintes entradas: Altura Peso O número de pernas O número de olhos O comprimento dos braços dos animais A velocidade média dos animais A freqüê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 de vetores 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 documentos 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 de 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 do vetor de suporte 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 da Ferramenta de Aprendizado de Máquinas de Vector de Suporte que pode ser baixada do Mercado. 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 o nosso Schnick, podemos usar essa definição para experimentar com máquinas de vetor de suporte. O primeiro passo é criar uma função capaz de receber 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 possa 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 vetor de suporte usando a Ferramenta de Aprendizagem de Máquina de Vetores 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 de vetor 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 condições diferentes. Por que o Support Vector Machine é tão útil O benefício de usar uma máquina de vetor de suporte para extrair padrões complexos 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 dados de treinamento. 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 em nossos dados de treinamento. Usando esses dados preenchidos com erros, podemos criar e formar uma nova máquina de vetores de suporte e comparar seu desempenho com o original. Quando o script é executado, 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 somente em lt1. 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 possam potencialmente ser uma ferramenta mais útil na extração de padrões complexos e insights de conjuntos de dados ruidosos. Figura 5. O registro experiente resultante após a execução do script Schnick no MetaTrader 5. Versões de Demonstração 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 um Versão completa da Ferramenta de Aprendizado de Máquinas de Vetores de Suporte do Mercado. Se você tiver apenas uma versão demo dessa ferramenta baixada, você estará limitado a usar a ferramenta através do testador de estratégia. Para permitir o teste do código de 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 do MetaTrader 5 (requer uma versão adquirida da Ferramenta de Aprendizagem de Máquinas de Vetores de Suporte) Versão Demo - Usando um Consultor Especialista que é Implantado no testador de estratégia do MetaTrader 5 (requer apenas uma versão de demonstração da Ferramenta de Aprendizagem de Máquinas de Vetores de Suporte) Como pode suportar máquinas de vetores serem usadas no mercado. É certo que o exemplo de Schnick discutido acima é bastante simples, no entanto, existem algumas semelhanças que Pode ser desenhado entre este exemplo e usando as máquinas de vetor de suporte para análise técnica 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, no exemplo schnick, usamos as observações feitas por cientistas passados 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 correlaciona com um comércio potencialmente bem-sucedido. Assista a 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 de 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 mercado, 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 mostrando o processo para implementar a máquina-ferramenta de vetor de suporte em um consultor especialista Antes de poder usar a Ferramenta de Aprendizagem de Máquinas de Vetores de Suporte, é importante primeiro entender como o treinamento Entradas e saídas são geradas. Como são as Entradas de Treinamento Geradas, os indicadores que você quer usar como entradas já foram inicializados, assim como sua nova máquina vetorial 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 de 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 Deslocamento e N Como são geradas as Saídas de Treinamento As saídas de Treinamento são geradas 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 de máquina de vetor de suporte, como avaliar um comércio hipotético como bem sucedido ou mal sucedido. A primeira variável é OPTRADE. 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 analisará o potencial sucesso de negociações de compras hipotéticas. Alternativamente, se o valor desta é 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. Esta 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 vetores de negociação 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. De forma 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 comprar compras de sinal. 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, já que este é o único dado que conhece. Portanto, sua máquina de vetores de suporte pode nunca sinalizar um comércio até o preço cair de volta para 0,55. Em vez disso, uma melhor entrada a ser usada para a máquina vetorial 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 sinais de 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 encontrar 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 em isolamento, 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 use as últimas cinco barras do indicador MACD para Calcule uma tendência como um único valor. 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 de vetor 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. Deve notar-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 Support Vector Machines and Expert Advisor 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 mql5encode1229). Espero que o Consultor Especialista permita que você experimente um pouco com máquinas de vetor de suporte. Eu recomendo que você copie o nome do Expert Advisor 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 está configurado para assinalar novos negócios da Buy e o outro está configurado para assinalar novos negócios de venda. 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 identificadores 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 vetoriais 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 de compra e venda. Quando um novo comércio de compra ou venda é 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 ferramentas de suporte de ferramentas de vetores 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 esses 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 entender como Essas entradas e saídas devem ser estruturadas. Entradas: as entradas são passadas para SVM como uma matriz de dois valores de dimensão 1. 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 Para passar num valor para o número de entradas. No caso, NInputs3. 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. Nesse 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 corresponda aos valores que você passa. Se eles não combinarem, será gerado um erro informando sobre a discrepância. Por exemplo, se nós passamos em NInputs3, e as entradas são uma matriz de comprimento 16, um erro será lançado (uma vez que, um valor de Ninputs 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 NInputs3, comprimento de 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, muitas vezes, levará a um SVM mais afetivo. Comércio cambial estrangeiro com máquinas de vetor de suporte Referências BOSER, B. E. GUYON, I. M. e VAPNIK, V. N. (1992): Algoritmo de Treinamento para Classificadores de Margem Ótima. Em: D. Haussler (Ed.): Procedimentos do 5º Workshop Anual ACM sobre Teoria da Aprendizagem Computacional. ACM Press, 144152. BOX, G. E.P. E JENKINS, G. M. (1976): Análise das séries temporais: previsão e controle. Holden-Day, San Francisco. MATH BROWN, M. GRUNDY, W. LIN, D. CRISTIANINI, N. SUGNET, C. FUREY, T. ARES, M. e HAUSSLER, D. (1999): Análise baseada em conhecimento de dados de expressão de genes de microarray usando o vetor de suporte Máquinas. Relatório técnico . Universidade da Califórnia, Santa Cruz. CHANG, C. C. E LIN, C. J. (2001): LIBSVM: uma biblioteca para máquinas de vetor de suporte (versão 2.31). Relatório técnico . Departamento de Ciências da Computação e Engenharia da Informação, Universidade Nacional de Taiwan, Taipei, Taiwan. CORTES, C. e VAPNIK, V. (1995): Support Vector Network. Aprendizado de máquinas. 20, 273297. MATH FRANCOIS, D. WERTZ, V. e VERLEYSEN, M. (2005): Sobre a Localidade dos Núcleos em Espaços de Alta Dimensão. ASMDA 2005 - Simpósio Internacional sobre Modelos Estocásticos Aplicados e Análise de Dados. Brest, França, 238245. GRANGER, C. W.J. (1969): Investigando relações causais por modelos econométricos e métodos cruzados espectral. Econometrica. 37, 424438. CrossRef JOACHIMS, T. (1998): Categorização de texto com máquinas de vetor de suporte. Procedimentos da Conferência Européia sobre Aprendizado de Máquinas (ECML). KAMRUZZAMAN, J. e SARKER, R. A. (2003a): Previsão da Taxa de Câmbio: Um Estudo de Caso. Procedimentos da Conferência Internacional IEEE sobre Processamento de Sinais de Amostras de Redes Neurais (ICNNSP). Nanjing. KAMRUZZAMAN, J. e SARKER, R. A. (2003b): Aplicação do Support Vector Machine to Forex Monitoring. Terceira Conferência Internacional sobre Sistemas Inteligentes Híbridos (HIS). Melbourne. KAMRUZZAMAN, J. SARKER, R. A. E AHMAD, I. (2003): modelos baseados em SVM para prever câmbios de câmbio. Procedimentos da Terceira Conferência Internacional IEEE sobre Mineração de Dados (ICDM). KARATZOGLOU, A. HORNIK, K. SMOLA, A. e ZEILEIS, A. (2004): Kernlab-An S4 Package for Kernel Methods in R. Journal of Statistical Software. 11, 9. CrossRef KUAN, C. M. E LIU, T. (1995): Previsão de Taxas de Câmbio Usando Feedforward e Redes Neurais Recorrentes. Journal of Applied Econometrics. 10, 347364. CrossRef MLLER, K. R. SMOLA, A. RTSCH, G. SCHLKOPF, B. KOHLMORGEN, J. e VAPNIK, V. (1999): Usando máquinas de vetor de suporte para a Previsão de séries temporais. Em: B. Schlkopf, C. J.C. Burges e A. J. Smola (Eds.): Avanços nos Métodos do Kernel. MIT Press, 242253. PLATT, J. C. (1998): Otimização mínimaqüencialqüencial: um algoritmo rápido para o treinamento de ferramentas de vetores de suporte. Relatório técnico . Pesquisa da Microsoft. QUINLAN, M. J. CHALUP, S. K. E MIDDLETON, R. H. (2004): Aplicação de SVMs para classificação de cores e detecção de colisão com robôs AIBO. Avanços nos Sistemas de Processamento de Informação Neural. 16. 635642. SCHLKOPF, B. (2001): The Kernel Trick for Distances. Relatório Técnico, MSR 2000-51. Microsoft Research, Redmond, WA. VAPNIK, V. (1998): Teoria da aprendizagem estatística. Wiley, Nova York. Aprendizado MATHMachine Se alguém estiver interessado em desenvolver estratégias baseadas em aprendizado de máquinas, confira deep-thought. co. Suporte Máquinas de vetores. Gradient Boosted Trees. Florestas aleatórias. Árvores extremamente aleatorizadas. Multi-layer Perceptron, também conhecido como Neural Network. Conjuntos: Combine as previsões de qualquer número de preditores. Treinamento contínuo, sempre adaptando-se ao mercado. Por favor, note que esta é uma ferramenta para desenvolver suas próprias estratégias e sistemas, e não uma estratégia comercial pré-enlatada. Também estão incluídos dois EAs MT4, com fonte, para trocar os sinais ou combinar com qualquer outro sistema que você possa ter.
No comments:
Post a Comment