Friday 26 January 2018

Forex support vector machine


Olá, isso parece um ótimo indicador. Na verdade, eu tropecei na página de Wikipedia no SVM e pensei imediatamente que teria excelentes aplicativos para o Forex. Mais tarde, no mesmo dia eu tropecei com este indicador, coincidência de sorte. Eu baixei a versão demo da biblioteca e estou tentando executar este indicador no EURUSD H1. Eu tento anexá-lo ao gráfico, no entanto, nada acontece e não há saída de log. Estou usando o Demo MT5 Alpari-US. Alguém mais teve esse problema? Preciso aguardar a formação do SVM. Qualquer sugestão sobre como ativar o indicador. Também estou no Windows 8 e estou usando a versão demo da biblioteca. Olá Esta é realmente uma limitação da versão de demonstração da biblioteca. Os produtos de demonstração disponíveis no mercado só são utilizáveis ​​no testador de estratégia, eles não podem ser usados ​​em gráficos do livesemo. A versão paga da biblioteca não tem essa limitação, no entanto, se você estiver procurando por resolver isso com o objetivo de testar a biblioteca, você pode escrever uma EA simples que usa o indicador e iniciar esta EA no testador de estratégia no modo de teste visual. Isso deve ser possível usando a versão de demonstração da biblioteca, mas deixe-me saber se você tem algum problema. Rgds, Cubix Olá, isso parece um ótimo indicador. Na verdade, eu tropecei na página de Wikipedia no SVM e pensei imediatamente que teria excelentes aplicativos para o Forex. Mais tarde, no mesmo dia eu tropecei com este indicador, coincidência de sorte. Eu baixei a versão demo da biblioteca e estou tentando executar este indicador no EURUSD H1. Eu tento anexá-lo ao gráfico, no entanto, nada acontece e não há saída de log. Estou usando o Demo MT5 Alpari-US. Alguém mais teve esse problema? Preciso aguardar a formação do SVM. Qualquer sugestão sobre como ativar o indicador. Também estou no Windows 8 e estou usando a versão demo da biblioteca. 1. Por que você não baixa o código na base do código e anexá-lo, veja o que aconteceu. 2. Uma vez que você está falando sobre a demonstração do mercado, faça essa pergunta para cubix aqui QuestionAnswer on Support Vector Machine Learning Tool, Cubix: Olá Esta é realmente uma limitação da versão de demonstração da biblioteca. Os produtos de demonstração disponíveis no mercado só são utilizáveis ​​no testador de estratégia, eles não podem ser usados ​​em gráficos do livesemo. A versão paga da biblioteca não tem essa limitação, no entanto, se você estiver procurando por resolver isso com o objetivo de testar a biblioteca, você pode escrever uma EA simples que usa o indicador e iniciar esta EA no testador de estratégia no modo de teste visual. Isso deve ser possível usando a versão de demonstração da biblioteca, mas deixe-me saber se você tem algum problema. Rgds, Cubix Obrigado pela resposta rápida, eu darei um tiro. MetaTrader 5 - Aprendizagem da máquina de negociação: como as máquinas de vetor de suporte podem ser usadas 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 Pegue dados de entrada e classifique 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 este modelo, tomando as entradas de treinamento, mapeando-as para o espaço multidimensional e, em seguida, usando a regressão para encontrar um hiperplano (um hiperplaneiro é uma superfície no espaço n-dimensional que separa o espaço em dois espaços) que se separa melhor As duas classes de insumos. Uma vez que a máquina de vetores de suporte tenha sido treinada, é capaz de avaliar novas entradas em relação ao hiperplane 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 determinada 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 entrada de saída A melhor maneira de conceituar como uma máquina de vetor de suporte funciona é considerando o caso bidimensional. Suponha que desejamos 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 as cruzes 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 as cruzes 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 de entrada 1 exclusivo (representado por sua posição no eixo x ) E um valor de entrada 2 exclusivo (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 um hiperplano 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 um achado aleatório ao encontrar um hiperplano separador, então melhorará iterativamente a precisão do hiperplane. Como você pode ver, o algoritmo começa de forma bastante agressiva, mas depois diminui quando começa a se aproximar da solução de desejos. Figura 4. Uma animação que mostra um treinamento de máquina de vetor 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, é possível 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 em qualquer 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 algo acima das 3 dimensões, no entanto, tudo o que você precisa saber é que funciona exatamente da mesma maneira que acontece com 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 destes 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 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 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 vetorial de suporte para identificar os schnicks. Os dados de treinamento são um conjunto de entradas e saídas correspondentes para a máquina vetorial de suporte para analisar e extrair um padrão. Portanto, devemos decidir quais os insumos serão usados ​​e quantos. Teoricamente, podemos ter tantas entradas como desejamos, no entanto isso geralmente pode levar a um treinamento lento (mais entradas você tem mais tempo leva 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 insumo, 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 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 frequência dos animais que acoplam a chamada Com as entradas escolhidas, podemos começar a compilar nossos dados de treinamento . Os dados de treinamento efetivos para uma máquina de vetor 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 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 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 da Ferramenta de Aprendizagem 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 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 tomar as sete entradas para qualquer animal dado e retornar 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, bem como para 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. Em seguida, 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 Aprendizado de Máquinas de Vetores de Suporte disponível no Mercado. Uma vez que uma nova máquina de vetores 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 vetores 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: Eu 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 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ê encontra vários trabalhos de pesquisa que descrevem Schnicks com características massivamente 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 ao permitir um certo nível de erro no modelo para habilitar a máquina vetorial de suporte para ignorar quaisquer 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 outliers. 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 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 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 no seu terminal se você tiver comprado um Versão completa da Ferramenta de Aprendizado de Máquinas de Vetores de Suporte do Market. Se você tiver apenas uma versão de demonstração dessa 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 implantado no terminal MetaTrader 5 (requer uma versão adquirida da Ferramenta de Aprendizagem de Máquina de Vetores de Suporte) Versão Demo - Usando um Consultor Especialista que é Implantado no testador de estratégia 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 vetoriais ser usado 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, 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 de vetor 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 ferramentas de suporte de ferramentas de vetores foi desenvolvida com isso em mente. Uma descrição completa de como usar esta ferramenta pode ser encontrada no mercado, então eu vou apenas dar 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 do vetor de suporte em um consultor especialista Antes de poder usar a Ferramenta de Aprendizado de Máquinas de Vector 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, bem como a 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 uma 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 de 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 deste pode ser COMPRAR ou VENDER e corresponderá a operações de compra ou venda hipotéticas. Se o valor deste for BUY, então, ao gerar as saídas, apenas analisará o potencial sucesso de negociações de compras 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 definirão 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 os negócios que estejam completos dentro dessa duração máxima serão considerados bem-sucedidos. A razão para incluir esta variável é evitar o suporte de máquinas de vetores de máquinas de sinalizaçã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 de forma bastante dramática 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 compra 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, uma vez que este é o único dado que conhece. Portanto, sua máquina de vetor 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 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 vetores 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 comercial 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 saber 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 valor único. Este indicador personalizado pode então ser passado para a máquina vetorial 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 insumos você tiver, maior será o tempo necessário para treinar com êxito. Implementando máquinas de vetor de suporte e consultor especial Eu preparei um consultor especialista que é um exemplo de como alguém poderia 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 consultor especialista 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 de compra 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 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 vetores 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 vetorial 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 O recurso adicional foi incorporado na ferramenta de ferramentas de suporte de máquinas vetoriais 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 da 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 Esses insumos e saídas devem ser estruturados. 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. Booleano, inteiro, 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 um 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. 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 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 geralmente levará a uma SVM mais afetiva.

No comments:

Post a Comment