Monday, 16 April 2018

Forex svm


Aprendizado de máquina: como as máquinas de vetor de suporte podem ser usadas na negociação.
O que é uma máquina de vetores de suporte?
Uma máquina de vetores de suporte é um método de aprendizado de máquina que tenta obter dados de entrada e classificar em uma das duas categorias. Para que uma máquina de vetores de suporte seja eficaz, é necessário primeiro usar um conjunto de dados de entrada e saída de treinamento para construir o modelo de máquina de vetores de suporte que pode ser usado para classificar novos dados.
Uma máquina de vetores de suporte desenvolve esse modelo pegando as entradas de treinamento, mapeando-as em um espaço multidimensional e usando regressão para encontrar um hiperplano (um hiperplano é uma superfície no espaço n-dimensional que separa o espaço em dois meio espaços) que separa melhor as duas classes de entradas. Uma vez que a máquina de vetores de suporte tenha sido treinada, ela é capaz de avaliar novas entradas em relação ao hiperplano de separação e classificá-lo em uma das duas categorias.
Uma máquina de vetores de suporte é essencialmente uma máquina de entrada / saída. Um usuário pode inserir uma entrada e, com base no modelo desenvolvido por meio de treinamento, retornará uma saída. O número de entradas para qualquer dada máquina de vetores de suporte teoricamente varia de um a infinito, no entanto, em termos práticos, a capacidade de computação limita o número de entradas que podem ser usadas. Se, por exemplo, N entradas forem usadas para uma determinada máquina de vetores de suporte (o valor inteiro de N pode variar de um a infinito), a máquina de vetores de suporte deve mapear cada conjunto de entradas no espaço N-dimensional e encontrar um (N-1 hiper-plano que melhor separa os dados de treinamento.
Figura 1. Support Vector Machines são máquinas de entrada / saída.
A melhor maneira de conceituar como uma máquina de vetores de suporte funciona é considerando o caso bidimensional. Suponha que queremos criar uma máquina de vetores de suporte que tenha duas entradas e retorne uma única saída que classifique o ponto de dados como pertencente a uma das duas categorias. Podemos visualizá-lo plotando-o em um gráfico bidimensional, como o gráfico abaixo.
Figura 2. Esquerda: Entradas da máquina de vetor de suporte 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: Entradas da máquina de vetor de suporte 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 de separação.
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 de entrada único 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 vetores de suporte é capaz de classificar dados criando um modelo desses pontos no espaço bidimensional. A máquina de vetores de suporte observa os dados no espaço bidimensional e usa um algoritmo de regressão para encontrar um hiperplano de 1 dimensão (linha aka) que separa com mais precisão os dados em suas duas categorias. Essa linha de separação é então usada pela máquina de vetores de suporte para classificar novos pontos de dados na categoria 1 ou na categoria 2.
A animação abaixo ilustra o processo de treinamento de uma nova máquina de vetores de suporte. O algoritmo começará fazendo uma tentativa aleatória de encontrar um hiperplano de separação e, em seguida, melhorará iterativamente a precisão do hiperplano. Como você pode ver, o algoritmo começa de forma bastante agressiva, mas depois diminui à medida que começa a se aproximar da solução de desejos.
Figura 4. Uma animação mostrando um treinamento de máquina de vetores de suporte. O hiperplano converge progressivamente na geometria ideal para separar as duas classes de dados.
O cenário bidimensional apresentado acima nos permite visualizar o processo de uma máquina de vetores de suporte, porém só é capaz de classificar um ponto de dados usando duas entradas. E se quisermos usar mais entradas? Felizmente, o algoritmo de máquina de vetores de suporte nos permite fazer o mesmo em dimensões mais altas, embora se torne muito mais difícil de conceituar.
Considere isso, você deseja criar uma máquina de vetores de suporte que consuma 20 entradas e possa classificar qualquer ponto de dados usando essas entradas na categoria 1 ou na categoria 2. Para fazer isso, a máquina de vetores de suporte precisa modelar os dados no espaço 20 dimensional e use um algoritmo de regressão para encontrar um hiperplano de 19 dimensões que separa os pontos de dados em duas categorias. Isso fica extremamente difícil de visualizar, pois é difícil para nós compreendermos qualquer coisa acima de 3 dimensões, no entanto, tudo o que você precisa saber é que funciona exatamente da mesma maneira que para o caso bidimensional.
Como funcionam as máquinas de vetor de suporte? Exemplo: É um Schnick?
Imagine este cenário hipotético, você é um pesquisador que está investigando um animal raro encontrado apenas nas profundezas do Ártico chamado Shnicks. Dado o afastamento destes animais, apenas um pequeno punhado 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 por um punhado de pesquisadores que viram um. Nestes trabalhos, os autores descrevem certas características sobre os Schnicks que encontraram, ou seja, 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 possível solução para nosso problema é usar uma máquina de vetores de suporte para identificar os padrões nos dados e criar uma estrutura que possa ser usada para classificar os animais como schnick ou não schnick. O primeiro passo é criar um conjunto de dados que possam ser usados ​​para treinar sua máquina de vetores de suporte para identificar schnicks. Os dados de treinamento são um conjunto de entradas e saídas correspondentes para a máquina de vetores de suporte para analisar e extrair um padrão.
Portanto, devemos decidir quais entradas serão usadas e quantas serão usadas. Teoricamente, podemos ter quantas entradas quisermos, mas isso pode levar a lentidão no treinamento (quanto mais entradas você tiver, mais tempo levará a máquina de vetores de suporte para extrair padrões). Além disso, você deseja escolher valores de entrada que tenderão a ser relativamente consistentes em todos os schnicks. Por exemplo, altura ou peso do animal seria um bom exemplo de uma entrada porque você esperaria que isso fosse relativamente consistente em todos os schnicks. No entanto, a idade média de um animal seria uma má escolha de insumo, porque você esperaria que a idade dos animais identificados variaria consideravelmente.
Por esse motivo, as seguintes entradas foram escolhidas:
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 freqüência dos animais que se acasalam chamam.
Com as entradas escolhidas, podemos começar a compilar nossos dados de treinamento. 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 documentos de pesquisa do cientista 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 true ou false para cada um dos exemplos. Os dados de treinamento, neste caso, podem ser semelhantes à tabela abaixo.
Tabela 1. Tabela de exemplo de observações schnick.
Depois de reunir os dados para todas as 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 vetores de suporte criará um modelo no espaço de sete dimensões que pode ser usado para classificar cada um dos exemplos de treinamento em verdadeiro ou falso. A máquina de vetores de suporte continuará a fazer isso até que tenha um modelo que represente com precisão os dados de treinamento (dentro da tolerância de erro especificada). Quando o treinamento estiver concluído, esse modelo poderá ser usado para classificar novos pontos de dados como verdadeiros ou falsos.
A máquina de vetores de suporte funciona realmente?
Usando o cenário Schnick, escrevi um script que testa como uma máquina de vetores de suporte pode realmente identificar novos schnicks. Para fazer isso, usei a biblioteca de ferramentas “Ferramenta de Aprendizado de Máquina de Vetor de Suporte” que pode ser baixada do Market.
Para modelar esse cenário efetivamente, 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 máquinas de vetores de suporte. O primeiro passo é criar uma função que seja capaz de obter as sete entradas para qualquer animal 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 de vetores 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 as entradas e saídas de treinamento. Entradas neste caso serão geradas através da criação de 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 Aprendizagem de Máquina de Vetor de Suporte' disponível no Market. Uma vez criada uma nova máquina de vetores de suporte, é necessário passar as entradas e saídas de treinamento para ela e executar o treinamento.
Agora temos uma máquina de vetores 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 ela 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 vetores 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 vetores de suporte se comporta sob diferentes condições.
Por que a máquina de vetores de suporte é tão útil?
O benefício de usar uma máquina de vetores de suporte para extrair um padrão complexo dos dados é que não é necessário um entendimento prévio do comportamento dos dados. Uma máquina de vetores de suporte é capaz de analisar os dados e extrair seus únicos conhecimentos e relacionamentos. Desta forma, funciona como uma caixa preta recebendo entradas e gerando uma saída que pode ser muito útil para encontrar padrões nos dados que são muito complexos e não óbvios.
Uma das melhores características das máquinas de vetores de suporte é que elas são capazes de lidar com erros e ruído nos dados muito bem. Eles geralmente conseguem ver o padrão subjacente dentro dos dados e filtram outliers de dados e outras complexidades. Considere o seguinte cenário, ao realizar sua pesquisa sobre Schnicks, você se depara com vários trabalhos de pesquisa que descrevem Schnicks com características massivamente diferentes (como um schnick de 200kg e 15000mm de altura).
Erros como esse podem levar a distorções em seu modelo do que é um Schnick, o que poderia fazer com que você cometa um erro ao classificar novas descobertas de Schnick. O benefício da máquina de vetores de suporte é que ela desenvolverá um modelo que esteja de acordo com o padrão subjacente, oposto a um modelo que se encaixa em todos os pontos de dados de treinamento. Isso é feito permitindo-se um certo nível de erro no modelo para permitir que a máquina de vetores de suporte ignore qualquer erro nos dados.
No caso da máquina de vetores de suporte Schnick, se permitirmos uma tolerância de erro de 5%, o treinamento tentará apenas desenvolver um modelo que corresponda a 95% dos dados de treinamento. Isso pode ser útil porque permite que o treinamento ignore a pequena porcentagem de outliers.
Podemos investigar ainda mais essa propriedade da máquina de vetores de suporte 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 por variáveis ​​aleatórias.
Essa função nos permite introduzir erros deliberados em nossos dados de treinamento. Usando esses dados preenchidos com erros, podemos criar e treinar 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 registro de especialistas. Dentro de um conjunto de dados de treinamento com 5000 pontos de treinamento, conseguimos introduzir 500 erros aleatórios. Ao comparar o desempenho dessa máquina de vetores de suporte preenchida por erros com a original, o desempenho é reduzido apenas em & lt; 1%. Isso ocorre porque a máquina de vetores de suporte é capaz de ignorar os valores discrepantes no conjunto de dados durante o treinamento e ainda é capaz de produzir um modelo impressionantemente preciso dos dados verdadeiros. Isso sugere que as máquinas de vetores de suporte podem ser uma ferramenta mais útil na extração de padrões complexos e insights de conjuntos de dados ruidosos.
Figura 5. O log do especialista resultante após a execução do script "Schnick" no MetaTrader 5.
Uma versão completa do código acima pode ser baixada do Code Base, entretanto este script só pode ser executado no seu terminal se você comprou uma versão completa da ferramenta Support Vector Machine Learning do Market. 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 demo 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 do código podem ser baixadas seguindo os links abaixo:
Versão Completa - Usando um Script que é implementado no terminal MetaTrader 5 (requer uma versão comprada da Ferramenta de Aprendizagem de Máquina de Vetor de Suporte)
Versão de Demonstração - Usando um Expert Advisor que é implementado no testador de estratégia do MetaTrader 5 (requer apenas uma versão demo da Ferramenta de Aprendizado de Máquina de Vetor de Suporte)
Como as máquinas de vetores de suporte podem ser usadas no mercado?
É certo que o exemplo de Schnick discutido acima é bastante simples, no entanto, existem algumas semelhanças que podem ser traçadas entre este exemplo e usando as máquinas de vetores de suporte para análise técnica de mercado.
A análise técnica é fundamentalmente sobre o uso de dados históricos de mercado para prever movimentos futuros de preços. Da mesma forma, dentro do exemplo do schnick, estávamos usando as observações feitas por cientistas do passado para prever se um novo animal é um schnick ou não. Além disso, o mercado está repleto de ruído, erros e erros estatísticos que tornam o uso de uma máquina de vetores de suporte um conceito interessante.
A base para um número significativo de abordagens de negociação 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 Observe cada um dos indicadores e avalie quando todos (ou a maioria) estão sinalizando uma negociação.
É possível adotar uma abordagem semelhante para usar máquinas de vetores de suporte para sinalizar novos negócios de maneira 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 essa ferramenta pode ser encontrada no Market, por isso só darei uma rápida visão geral. O processo para usar essa ferramenta é o seguinte:
Figura 6. O diagrama de blocos mostrando o processo para implementar a ferramenta de máquina de vetores de suporte em um Expert Advisor.
Antes de poder usar a Ferramenta de Aprendizado de Máquina de Vetor de Suporte, é importante primeiro entender como as entradas e saídas de treinamento são geradas.
Como as Entradas de Treinamento são Geradas?
Portanto, os indicadores que você deseja usar como entradas já foram inicializados, bem como sua nova máquina de vetores de suporte. A próxima etapa é passar as alças do indicador para sua nova máquina de vetores de suporte e instruí-la sobre como gerar os dados de treinamento. Isso é feito chamando a função setIndicatorHandles (). Essa função permite que você passe as alças dos indicadores inicializados para a máquina de vetores de suporte. Isso é feito passando um array inteiro 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 de deslocamento denota o deslocamento entre a barra atual e a barra inicial a ser usada na geração das entradas de treinamento e o número de pontos de treinamento (indicado 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 vetores de suporte para usar somente 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 vetores de suporte para usar somente as barras capturadas no quadrado azul para gerar entradas e saídas de treinamento.
Uma vez que a função setIndicatorHandles () tenha sido chamada, é possível chamar a função genInputs (). Essa função usará as alças do indicador para passar para gerar uma matriz de dados de entrada a serem usados ​​para treinamento.
Figura 7. Gráfico de velas que ilustra os valores de Offset e N.
Como as saídas de treinamento são geradas?
As saídas de treinamento são geradas pela simulação de negociações hipotéticas com base em dados históricos de preços e na determinação de se essa negociação teria sido bem-sucedida ou malsucedida. 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 malsucedido.
A primeira variável é OP_TRADE. O valor disso pode ser COMPRA ou VENDA e corresponderá a negociações hipotéticas de compra ou venda. Se o valor deste for BUY, então, ao gerar os outputs, ele irá apenas olhar para o sucesso potencial de negociações de compra hipotéticas. Alternativamente, se o valor disso for VENDER, então, ao gerar as saídas, ele apenas examinará o sucesso potencial de negociações de venda hipotéticas.
Os próximos valores usados ​​são 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 da negociação. Essa variável é medida em horas e garantirá que somente negociações concluídas dentro dessa duração máxima serão consideradas bem-sucedidas. A razão para incluir esta variável é evitar as transações de sinalização de máquinas de vetor de suporte em um mercado lateral lento.
Considerações a serem feitas ao escolher entradas.
É importante colocar algum pensamento na seleção de entrada ao implementar máquinas de vetores de suporte em sua negociação. Similar ao exemplo de Schnick, é importante escolher uma entrada que seria esperada ter similar entre incidências de diferença. Por exemplo, você pode se sentir tentado a usar uma média móvel como entrada, mas como o preço médio de longo prazo tende a mudar drasticamente com o tempo, uma média móvel isolada 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 vetores de suporte com uma entrada de média móvel para sinalizar negociações de 'compra'. Digamos que o preço atual é de 1,10, no entanto, está gerando dados de treinamento de seis meses atrás, quando o preço era 0,55. Ao treinar a máquina de vetores de suporte, o padrão encontrado pode levar apenas a uma negociação sendo sinalizada quando o preço estiver em torno de 0,55, já que esses são os únicos dados que ele conhece. Portanto, sua máquina de vetores de suporte nunca pode sinalizar uma negociação até que o preço caia para 0.55.
Em vez disso, uma entrada melhor para usar na máquina de vetores de suporte pode ser um MACD ou um oscilador semelhante, porque o valor do MACD é independente do nível médio de preço e apenas sinaliza o movimento relativo. Eu recomendo que você experimente 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 descobrir em sua própria experiência de negociação que um MACD só é útil quando você tem as cinco últimas barras para olhar, pois isso 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 de vetores de suporte. Há duas maneiras possíveis de fazer isso:
Você pode criar um novo indicador personalizado que use as cinco barras anteriores do indicador MACD para calcular uma tendência como um único valor. Esse indicador personalizado pode ser passado para a máquina de vetores de suporte como uma única entrada ou.
Você pode usar as cinco barras anteriores do indicador MACD na máquina de vetores 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 de vetores de suporte. Deve-se notar que a opção 2 tenderá a causar tempos de execução mais longos para o seu Expert Advisor. Quanto mais entradas você tiver, mais tempo levará para treinar com sucesso.
Implementando Support Vector Machines e Expert Advisor.
Eu preparei um Expert Advisor que é um exemplo de como alguém poderia potencialmente usar máquinas de vetores de suporte em sua própria negociação (uma cópia deste pode ser baixada seguindo este link mql5 / en / code / 1229). Espero que o Expert Advisor permita que você experimente um pouco com as máquinas de vetores de suporte. Eu recomendo que você copie / altere / modifique o Expert Advisor para se adequar ao seu próprio estilo de negociação. O EA funciona da seguinte maneira:
Duas novas máquinas de vetores de suporte são criadas usando a biblioteca svMachineTool. Uma é configurada para sinalizar novas negociações 'Comprar' e a outra é configurada para sinalizar novas negociações 'Venda'.
Sete indicadores padrão são inicializados com cada uma de suas alças armazenadas em uma matriz de inteiros (Nota: qualquer combinação de indicadores pode ser usada como entradas, eles precisam apenas ser passados ​​para o SVM em uma única matriz de inteiros).
A matriz de identificadores de indicador é passada para as novas máquinas de vetores de suporte.
Utilizando o conjunto 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 no treinamento das máquinas de vetores de suporte.
Uma vez que todas as entradas e saídas tenham sido geradas, ambas as máquinas de vetores de suporte são treinadas.
As máquinas de vetores de suporte treinadas são usadas no EA para sinalizar novas negociações de 'compra' e 'venda'. Quando uma nova transação de 'compra' ou 'venda' é sinalizada, a negociação é aberta juntamente com ordens manuais de Stop Loss e Take Profit.
A inicialização e o treinamento da máquina de vetores de suporte são executados dentro da função onInit (). Para sua referência, este segmento do EA do svTrader foi incluído abaixo com notas.
Suporte Avançado Negociação de Máquina de Vetor.
Capacidade adicional foi construída na ferramenta de aprendizado de máquina de vetor de suporte para os usuários mais avançados. A ferramenta permite que os usuários passem seus próprios dados de entrada e dados de saída personalizados (como no exemplo da Schnick). Isso permite que você crie seus próprios critérios personalizados para as entradas e saídas da máquina de vetores de suporte e passe manualmente esses dados para treiná-los. Isso abre a oportunidade de usar máquinas de vetores de suporte em qualquer aspecto de sua negociação.
Não é apenas possível usar máquinas de vetores de suporte para sinalizar novos negócios, mas também pode ser usado para sinalizar o fechamento de negociações, 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 o SVM como uma matriz unidimensional de valores duplos. Por favor, note que qualquer entrada que você criar deve ser passada como um valor duplo. Boolean, integer, etc. devem ser todos convertidos em um valor duplo antes de serem passados ​​para a máquina de vetores de suporte. As entradas são necessárias no seguinte formato. Por exemplo, suponha que estamos passando 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 passadas 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 passados. 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, verifique se o tamanho de suas matrizes corresponde aos valores que você passa. Se eles não corresponderem, será gerado um erro para notificá-lo da discrepância. Por exemplo, se tivermos passado em N_Inputs = 3 e as entradas forem uma matriz de tamanho 16, será gerado um erro (uma vez que, um valor de N_inputs de 3 significará que o comprimento de qualquer array de entrada precisará ser um múltiplo de 3). Da mesma forma, certifique-se de que o número de conjuntos de entradas e o número de saídas transmitidas sejam iguais. Novamente, se você tiver N_Inputs = 3, 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 treinamento. Por exemplo, se você passar 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, a diferenciação entre o caso verdadeiro e o caso falso não é suficiente. Isso tenderá a levar o treinamento SVM muito rápido, mas a solução final é muito ruim. Um conjunto de treinamento mais diversificado freqüentemente levará a um SVM mais afetivo.

Forex svm
Não há compras chamativas na loja.
Como Investir Fundamentos de Investimento Broker Comparison Glossary Stocks Mutual Funds.
Ferramentas de Investimento Stock Screener Guru Screener Financial Advisor.
Artigo de destaque.
Poucos trabalhadores americanos estão confortáveis ​​com seus ganhos.
Classificações de ações Minhas classificações Visão geral do portfólio inteligente Minhas participações Minha análise de portfólio Informações sobre a multidão Meu desempenho Personalize o seu.
Junte-se à comunidade NASDAQ hoje e tenha acesso gratuito e instantâneo a portfólios, avaliações de estoque, alertas em tempo real e muito mais!
já é um membro?
Exibições de lista de símbolos.
Detalhes do estoque.
NOTÍCIAS DA EMPRESA.
ANÁLISE DE AÇÕES
FUNDAMENTOS.
Editar lista de símbolos.
Insira até 25 símbolos separados por vírgulas ou espaços na caixa de texto abaixo. Esses símbolos estarão disponíveis durante sua sessão para uso nas páginas aplicáveis.
Não sabe o símbolo das ações? Use a ferramenta de pesquisa de símbolo.
Alfabetize a ordem de classificação dos meus símbolos.
Pesquisa de símbolo.
Investir ficou mais fácil & # 8230;
Inscreva-se agora para se tornar um membro do NASDAQ e comece a receber notificações instantâneas quando ocorrerem eventos importantes que afetem os estoques que você segue.
Corretores de pesquisa antes de negociar.
Quer negociar FX?
Notícias para SVM.
Próximos ganhos.
Editar favoritos.
Insira até 25 símbolos separados por vírgulas ou espaços na caixa de texto abaixo. Esses símbolos estarão disponíveis durante sua sessão para uso nas páginas aplicáveis.
Personalize sua experiência NASDAQ.
Selecione a cor de fundo de sua escolha:
Selecione uma página de destino padrão para sua pesquisa de cotação:
Por favor, confirme sua seleção:
Você selecionou para alterar sua configuração padrão para a Pesquisa de cotação. Esta será agora sua página de destino padrão; a menos que você altere sua configuração novamente ou exclua seus cookies. Tem certeza de que deseja alterar suas configurações?
Desative seu bloqueador de anúncios (ou atualize suas configurações para garantir que o JavaScript e os cookies estejam ativados), para que possamos continuar a fornecer a você as notícias e os dados de mercado de primeira linha que você espera de nós.

Negociando com SVMs: Performance.
Desempenho de Negociação S & P 500.
Muito agradável! Usando os 5 retornos diários com desfasamento mostra um desempenho semelhante à estratégia ARMA + GARCH, que eu achei muito promissor. Se você se perguntar por que estou tão empolgado com esse fato, é porque aqui estamos na área em que o ARMA + GARCH é o melhor e, no entanto, os SVMs mostram desempenho comparável.
As estatísticas também são impressionantes:
Enquanto escrevia este post, encontrei outro esforço para usar SVMs na negociação pela Quantum Financier. Sua abordagem usa o RSI de comprimento diferente como entrada para o SVM, mas também usa classificação (mapeia os retornos para dois valores, curtos ou longos) em vez de regressão. Desde que eu estava planejando tentar a classificação de qualquer maneira, seu post me inspirou a implementá-lo e executar uma comparação adicional, regressão vs classificação:
S & P 500 SVM Trading - Regressão vs Classificação.
O que posso dizer - ambos parecem funcionar perfeitamente. Como um leitor sugeriu nos comentários, a Classificação exibe retornos mais consistentes.
Olhando para a mesa, a classificação reduziu pela metade o rebaixamento máximo, mas, curiosamente, não melhorou significativamente o índice de Sharpe. Nada conclusivo aqui, porém, foi uma corrida rápida das mais rápidas (em termos de tempo de execução) estratégias.
Ainda há uma longa lista de tópicos para explorar, apenas para ter uma ideia, sem nenhuma ordem específica:
Adicione outros recursos. Pensando principalmente em adicionar algumas séries relacionadas ao Fed, esses dados remontam a 1960, então está chegando. :) Tente outros parâmetros svm: outras regressões, outras classificações, outros kerenls, etc. Isso é mais como um teste de estabilidade. Tente outras funções de erro. O padrão é usar o erro quadrático médio, mas, no caso de regressão, por que não usar o Índice de Sharpe (na amostra)? O caso de regressão é mais simples, já que temos os retornos reais - verifique a entrada de tune. control. Tente períodos mais longos em vez de dias. Semanalmente é um começo, mas, idealmente, gostaria de implementar períodos de dois ou três dias. Varie o período de loopback. Use mais classes com classificação: dias grandes, dias médios, etc.
Isso levará tempo. Como sempre, comentários e comentários são bem-vindos.
Comentários estão fechados.
Posts populares recentes.
Artigos mais visitados da semana.
Jobs para usuários de R.
É alimentado por WordPress usando um design bavotasan.
Direitos autorais & copy; 2017 R-blogueiros. Todos os direitos reservados. Termos e Condições para este site.

Silvercorp Metals Inc (SVM)
Análise.
Últimos comentários Silvercorp Metals.
Bons fundamentos, ótima liderança. Lutou duro para os acionistas contra todos os ataques de vendedores a descoberto. Os shorts estão em modo de pânico agora. Obtenha seus certificados para proteção adicional nesses momentos. . (Consulte Mais informação)
11 de agosto de 2017 21h04 GMT & middot; Resposta.
Este estoque vai rodar pelos próximos 3 anos e melhor fácil $ 12. Para o próximo ano e apostar nele. (Consulte Mais informação)
01 de março de 2017 07:13 GMT & middot; Resposta.
Chamado a bola em um presente, disse para comprá-lo em 0,65 foi para 4,35 agora com preços de prata fracos esta é uma grande oportunidade para pegar mais. (Consulte Mais informação)
De toda a web.
A Fusion Media não aceitará qualquer responsabilidade por perdas ou danos como resultado da confiança nas informações contidas neste site, incluindo dados, cotações, gráficos e sinais de compra / venda. Por favor, esteja completamente informado sobre os riscos e custos associados à negociação dos mercados financeiros, é uma das formas de investimento mais arriscadas possíveis. A negociação de moeda na margem envolve alto risco e não é adequada para todos os investidores. Antes de decidir negociar divisas estrangeiras ou qualquer outro instrumento financeiro, você deve considerar cuidadosamente seus objetivos de investimento, nível de experiência e apetite a risco.
A Fusion Media gostaria de lembrar que os dados contidos neste site não são necessariamente em tempo real nem precisos. Todos os CFDs (ações, índices, futuros) e os preços de Forex não são fornecidos pelas bolsas, mas sim pelos formadores de mercado, e assim os preços podem não ser precisos e podem diferir do preço de mercado real, significando que os preços são indicativos e não apropriados para fins comerciais. Portanto, a Fusion Media não tem qualquer responsabilidade por quaisquer perdas comerciais que você possa incorrer como resultado do uso desses dados.

MetaTrader 4.
Dica o equilíbrio seu caminho com FOREX.
Ferramentas e análise.
Ao contrário da maioria das plataformas padrão do MetaTrader, você terá acesso a notícias da Reuters totalmente integradas, pesquisa FOREX, Autochartist Trade Ideas, análise técnica da Trading Central e ferramentas de gerenciamento de contas.
Dados da conta em tempo real.
Nenhuma ponte de terceiros, sem sincronizações automáticas.
Consultores Especialistas
Nosso MT4 fornece um ambiente otimizado para EA sem nenhuma ponte de terceiros ou sincronização automática, disponibilidade de micro lote (1.000) e aceita todos os EAs.
Hospedagem EA grátis.
Vá além da negociação tradicional com sistemas de negociação totalmente personalizáveis ​​hospedados em um servidor profissional seguro, sem nenhum custo para os clientes qualificados. Saber mais.

Silvercorp Metals Inc (SVM)
Últimos comentários Silvercorp Metals.
Ok pessoal nosso on. (Consulte Mais informação)
13 de outubro de 2017 21:01 GMT & middot; Resposta.
Aqueles SOB. (Consulte Mais informação)
13 de setembro de 2017 18:43 GMT & middot; Resposta.
É melhor você começar agora. (Consulte Mais informação)
08 de setembro de 2017 01:10 GMT & middot; Resposta.
De toda a web.
A Fusion Media não aceitará qualquer responsabilidade por perdas ou danos como resultado da confiança nas informações contidas neste site, incluindo dados, cotações, gráficos e sinais de compra / venda. Por favor, esteja plenamente informado sobre os riscos e custos associados à negociação nos mercados financeiros, é uma das formas de investimento mais arriscadas possíveis. A negociação de moeda na margem envolve alto risco e não é adequada para todos os investidores. Antes de decidir negociar divisas estrangeiras ou qualquer outro instrumento financeiro, você deve considerar cuidadosamente seus objetivos de investimento, nível de experiência e apetite a risco.
A Fusion Media gostaria de lembrar que os dados contidos neste site não são necessariamente em tempo real nem precisos. Todos os CFDs (ações, índices, futuros) e os preços de Forex não são fornecidos pelas bolsas, mas sim pelos formadores de mercado, e portanto os preços podem não ser precisos e podem diferir do preço de mercado real, significando que os preços são indicativos e não apropriados para fins comerciais. Portanto, a Fusion Media não tem qualquer responsabilidade por quaisquer perdas comerciais que você possa incorrer como resultado do uso desses dados.

No comments:

Post a Comment